Server syntax error: Fatal error: Call to undefined method

Game development with Board Game Arena Studio
Post Reply
User avatar
bidulpik
Posts: 79
Joined: 17 November 2011, 09:02

Server syntax error: Fatal error: Call to undefined method

Post 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
User avatar
pikiou
Posts: 389
Joined: 03 October 2011, 05:36

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

Post 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 ?
User avatar
bidulpik
Posts: 79
Joined: 17 November 2011, 09:02

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

Post 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.
User avatar
pikiou
Posts: 389
Joined: 03 October 2011, 05:36

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

Post 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.
User avatar
sourisdudesert
Administrateur
Posts: 4630
Joined: 23 January 2010, 22:02

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

Post 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é.
Kennyyy
Posts: 9
Joined: 29 November 2013, 00:50

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

Post 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.
User avatar
sourisdudesert
Administrateur
Posts: 4630
Joined: 23 January 2010, 22:02

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

Post 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 :)
User avatar
bidulpik
Posts: 79
Joined: 17 November 2011, 09:02

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

Post 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 !
Post Reply

Return to “Developers”