Page 1 of 1

Server syntax error: Fatal error: Call to undefined method

Posted: 18 January 2014, 12:25
by bidulpik
Bonjour,

je suis en train de faire le backgammon, mon premier développement, et je suis coincé sur cette erreur :

Server syntax error: Fatal error: Call to undefined method action_backgammon::rollDice() in /var/tournoi/release/tournoi-140106-0923-gs/www/include/webActionCore.inc.php on line 126

J'ai bien l'appel ajax dans mon backgammon.js

Code: Select all

        onRollDice: function ( evt ) {
            console.log( 'hubc onRollDice 1' );
            dojo.stopEvent( evt );
            console.log( 'hubc onRollDice 2' );

            if( ! this.checkAction( 'rollDice' ) )
            {
                console.log( 'hubc pas possible action' );
                return;
            }

            this.ajaxcall( "/backgammon/backgammon/rollDice.html", {

                },
                this,
                function( result ) {

                    // What to do after the server call if it succeeded
                    // (most of the time: nothing)

                },
                function( is_error) {

                    // What to do after the server call in anyway (success or failure)
                    // (most of the time: nothing)

                } );
        },
Je peux changer mon action pour tester, j'aurais le même message Call to undefined method action_backgammon::myTest()
J'ai un backgammon pour lequel juste ma modélisation BDD est différente et cela fonctionne, mais cela ne peut pas venir de là (c'est juste pour dire que j'ai compris le principe ;) )

Dans la console JS j'ai

"Server syntax error: SyntaxError: missing ) in parenthetical
Fatal error: Call to undefined method action_backgammon::rollDice() in /var/tournoi/release/tournoi-140106-0923-gs/www/include/webActionCore.inc.php on line 126
" ly_studio.js:15

Si vous avez déjà rencontrer cette erreur, je suis preneur !

a+

Bdk

Re: Server syntax error: Fatal error: Call to undefined meth

Posted: 18 January 2014, 21:51
by pikiou
C'est une erreur PHP qui dit que tu n'as pas de méthode rollDice dans gamename.action.php
En as-tu pourtant une ?

Re: Server syntax error: Fatal error: Call to undefined meth

Posted: 20 January 2014, 09:52
by bidulpik
salut et merci pour ta réponse

Et oui, j'en ai une ;)

J'ai créé une autre méthode pour tester, appelée par le ajax et même message.

Re: Server syntax error: Fatal error: Call to undefined meth

Posted: 20 January 2014, 12:53
by pikiou
Est-ce que tu as bien listé 'rollDice' dans les 'possibleactions' de ton état ? (cf states.inc.php)

Si tu me donnes les droits de lecture sur ton projet je jetterai un coup d’œil.

Re: Server syntax error: Fatal error: Call to undefined meth

Posted: 21 January 2014, 16:36
by sourisdudesert
Hello

il s'agit bien du projet "backgammon" (et pas "hubbackgammon") ?

Si oui, y a t il toujours le problème ? Je ne vois rien d'anormal à part que "rollDice" est commenté.

Re: Server syntax error: Fatal error: Call to undefined meth

Posted: 22 January 2014, 10:39
by Kennyyy
Bon, c'est debugge (en tout cas cette etape la, maintenant ca bug plus loin mais c'est une autre histoire...).

Ce qui se passe: ajax appelle bien une fonction rollDice(), presente dans .action, mais cette meme fonction appele a son tour une methode du meme nom (rollDice()) de .game... et c'est la que ca pose probleme. Le message d'erreur est trompeur parce qu'il fait penser que la methode n'existe pas dans .action alors qu'en realite c'est qu'il ne doit pas supporter le fait d'avoir une methode nommee excactement de la meme maniere dans .game et .action . Bref, pour etre claire, en renommant le rollDice() de .game en rollDice2() on atteint bien l'appel a cette derniere => ca tourne.

C'est un peu curieux que les deux ne puissent pas etre nommees de la meme maniere etant donnee qu'elles sont de classes differentes mais bon, je connais pas les dessous de l'affaire (pardon, du framework ;-))... Pour la petite histoire, tout ca fonctionne avec une methode de meme nom mais avec un prototype different (pas la meme liste de parametres...).

Reste a debugger la suite ;-)

EDIT: Bidulpik m'a demande un coup de main et ajoute au projet d'ou le fait que je reponde sur ce topic et que j'ai eut acces au code.

Re: Server syntax error: Fatal error: Call to undefined meth

Posted: 22 January 2014, 11:35
by sourisdudesert
Bonjour,

Ok :)

Je confirme que normalement il n'y a aucun soucis pour avoir des noms de méthodes identiques (même avec le prototype identique): les classes PHP sont totalement distinctes. Généralement c'est même plutôt une bonne idée d'avoir le même nom pour la méthode d'entrée et la méthode dans le game.

Mais bon, l'essentiel c'est que ça marche :)

Re: Server syntax error: Fatal error: Call to undefined meth

Posted: 22 January 2014, 14:57
by bidulpik
\o/

Ouahou, c'est trop classe, merci les gars pour vos réponses :) et merci à Kennyyy pour la soluce :D !!!

J'ai cherché des bons moment et je ne trouvais pas.

Je vais pouvoir continuer à avancer et me à familiariser avec le framework, et à tomber dans tous les pièges bien sur ;) c'est le métier qui rentre !