IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 PHP Discussion :

Créer un jeu avec Symfony [1.x]


Sujet :

PHP

  1. #21
    Membre extrêmement actif
    Avatar de Ryu2000
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    9 605
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2008
    Messages : 9 605
    Points : 18 523
    Points
    18 523
    Par défaut
    Dans apps\frontend\modules\membre\actions\actions.class.php j'ai ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    <?php
     
    /**
    * membre actions.
    *
    * @package    jeu
    * @subpackage membre
    * @author     Your name here
    * @version    SVN: $Id: actions.class.php 23810 2009-11-12 11:07:44Z Kris.Wallsmith $
    */
    class membreActions extends sfActions
    {
    	/**
    	* Executes index action
    	*
    	* @param sfRequest $request A request object
    	*/
    	public function executeIndex(sfWebRequest $request)
    	{
    		//$this->forward('default', 'module');
    	}
    	public function executeNew(sfWebRequest $request)
    	{
    		$membre = new membre();
     
    		$this->form = new membreForm($membre);
     
    	}
     
    	public function executeCreate(sfWebRequest $request)
    	{
    		$this->form = new membreForm();
    		$this->processForm($request, $this->form);
    		$this->setTemplate('new');
    	}
     
    	public function executeEdit(sfWebRequest $request)
    	{
    		$this->form = new membreForm($this->getRoute()->getObject());
    	}
     
    	public function executeUpdate(sfWebRequest $request)
    	{
    		$this->form = new membreForm($this->getRoute()->getObject());
    		$this->processForm($request, $this->form);
    		$this->setTemplate('edit');
    	}
     
    	public function executeDelete(sfWebRequest $request)
    	{
    		$request->checkCSRFProtection();
     
    		$job = $this->getRoute()->getObject();
    		$job->delete();
     
    		$this->redirect('job/index');
    	}
     
    	protected function processForm(sfWebRequest $request, sfForm $form)
    	{
    		$form->bind(
    		$request->getParameter($form->getName()),
    		$request->getFiles($form->getName())
    		);
     
    		if ($form->isValid())
    		{
    			$job = $form->save();
     
    			$this->redirect('job_show', $job);
    		}
    	}
    }
    C'est du copier/coller d'un exemple.

    Et dans il y a apps\frontend\modules\membre\templates\_form.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="submit" value="Suivant" />
    Faut que je fasse quelque chose dans apps\frontend\config\routing.yml ?

    ===================================================
    Edit :
    Je vais reprendre avec ton lien http://www.symfony-project.org/forms...orm-Validation je devrais bien finir par y arriver et ça à l'air bien expliqué.

    Effectivement la 1ere chose que je regarde et déjà je trouve quelque chose que j'ai mal fais.
    Je vais mettre dans IndexSucces.php et pas -form.php et j'avais pas ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <form action="<?php echo url_for('membre/index') ?>" method="POST">
    Je ne sais pas pourquoi mais mon IndexSucces.php ne connait pas $form, alors que _form.php le faisait.

    Edit :
    C'est la meilleur page Symfony que j'ai vu pour le moment !
    Ça explique vraiment bien, c'est beaucoup plus simple que A Gentle Introduction to symfony ou Practical symfony.
    J'avance beaucoup plus vite.
    Mais tout ce que j'ai fais avant c'était n'importe quoi...

    Ça y est j'ai les validators qui fonctionnent.
    Et je commence à comprendre plein de trucs !
    C'est cool je vais peut être enfin réussir à me débloquer.

    Pour l'enregistrer dans la base j'ai mis ça dans thankyouSuccess.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?php
    	$membre = new membre();
    	$membre->setNom($sf_params->get('nom'));
    	$membre->setEmail($sf_params->get('email'));
    	$membre->setPassword($sf_params->get('password'));
    	$membre->save();	
    ?>
    Ça ce fait ou pas ?
    De toute façon ce n'était qu'un test puisque je suis censé faire une partie membre...
    Pour un password il ni a t'il pas mieux que :
    sfWidgetFormInputText() et sfValidatorString ?

    =========================================================
    Ben dis donc je met jamais bien longtemps à me retrouver coincé !
    Je suis aller voir :
    http://www.symfony-project.org/plugi...ineApplyPlugin
    La première chose à faire c'est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    symfony plugin:install sfForkedDoctrineApplyPlugin
    J'ai obtenu l'erreur suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    C:\jeu>symfony plugin:install sfForkedDoctrineApplyPlugin
    >> plugin    installing plugin "sfForkedDoctrineApplyPlugin"
    PHP Warning:  require_once(PEAR/Config.php): failed to open stream: No such file
     or directory in C:\symfony\lib\plugin\sfPearEnvironment.class.php on line 16
     
    Warning: require_once(PEAR/Config.php): failed to open stream: No such file or d
    irectory in C:\symfony\lib\plugin\sfPearEnvironment.class.php on line 16
    PHP Fatal error:  require_once(): Failed opening required 'PEAR/Config.php' (inc
    lude_path='c:/wamp/bin/php/php5.3.0/PEAR') in C:\symfony\lib\plugin\sfPearEnviro
    nment.class.php on line 16
     
    Fatal error: require_once(): Failed opening required 'PEAR/Config.php' (include_
    path='c:/wamp/bin/php/php5.3.0/PEAR') in C:\symfony\lib\plugin\sfPearEnvironment
    .class.php on line 16
    J'ai installé PEAR comme ça :
    http://www.geeksengine.com/article/i...n-windows.html

    Apparemment mes modifications du php.ini sont prise en compte puisqu'on retrouve bien :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    include_path='c:/wamp/bin/php/php5.3.0/PEAR'
    Je ne comprend pas l'erreur, car C:\wamp\bin\php\php5.3.0\PEAR\Config.php existe bien et pourtant symfony n'arrive pas à l'ouvrir.

    Je viens de faire le test et mon PEAR ne fonctionne pas...
    Je ne comprend pas d'où ça vient...

    =========================================================
    Après avoir désinstallé wamp 2.0 et réinstaller wamp 2.1 j'ai cette erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    C:\jeu>symfony plugin:install sfForkedDoctrineApplyPlugin
    >> plugin    installing plugin "sfForkedDoctrineApplyPlugin"
    PHP Warning:  require_once(PEAR.php): failed to open stream: No such file or dir
    ectory in C:\symfony\lib\plugin\sfPearEnvironment.class.php on line 15
    PHP Stack trace:
    PHP   1. {main}() C:\symfony\data\bin\symfony:0
    PHP   2. include() C:\symfony\data\bin\symfony:37
    PHP   3. sfSymfonyCommandApplication->run() C:\symfony\lib\command\cli.php:20
    PHP   4. sfTask->runFromCLI() C:\symfony\lib\command\sfSymfonyCommandApplication
    .class.php:76
    PHP   5. sfBaseTask->doRun() C:\symfony\lib\task\sfTask.class.php:97
    PHP   6. sfPluginInstallTask->execute() C:\symfony\lib\task\sfBaseTask.class.php
    :68
    PHP   7. sfBaseTask->getPluginManager() C:\symfony\lib\task\plugin\sfPluginInsta
    llTask.class.php:105
    PHP   8. sfCoreAutoload->autoload() C:\symfony\lib\autoload\sfCoreAutoload.class
    .php:0
    PHP   9. require() C:\symfony\lib\autoload\sfCoreAutoload.class.php:99
     
    Warning: require_once(PEAR.php): failed to open stream: No such file or director
    y in C:\symfony\lib\plugin\sfPearEnvironment.class.php on line 15
     
    Call Stack:
        0.0003     328424   1. {main}() C:\symfony\data\bin\symfony:0
        0.0038     587944   2. include('C:\symfony\lib\command\cli.php') C:\symfony\
    data\bin\symfony:37
        0.2612    6644296   3. sfSymfonyCommandApplication->run() C:\symfony\lib\com
    mand\cli.php:20
        0.2632    6645960   4. sfTask->runFromCLI() C:\symfony\lib\command\sfSymfony
    CommandApplication.class.php:76
        0.2633    6646520   5. sfBaseTask->doRun() C:\symfony\lib\task\sfTask.class.
    php:97
        0.3223    6691688   6. sfPluginInstallTask->execute() C:\symfony\lib\task\sf
    BaseTask.class.php:68
        0.3225    6692344   7. sfBaseTask->getPluginManager() C:\symfony\lib\task\pl
    ugin\sfPluginInstallTask.class.php:105
        0.3225    6692584   8. sfCoreAutoload->autoload() C:\symfony\lib\autoload\sf
    CoreAutoload.class.php:0
        0.3232    6754856   9. require('C:\symfony\lib\plugin\sfPearEnvironment.clas
    s.php') C:\symfony\lib\autoload\sfCoreAutoload.class.php:99
     
    PHP Fatal error:  require_once(): Failed opening required 'PEAR.php' (include_pa
    th='.;C:\php\pear') in C:\symfony\lib\plugin\sfPearEnvironment.class.php on line
     15
    PHP Stack trace:
    PHP   1. {main}() C:\symfony\data\bin\symfony:0
    PHP   2. include() C:\symfony\data\bin\symfony:37
    PHP   3. sfSymfonyCommandApplication->run() C:\symfony\lib\command\cli.php:20
    PHP   4. sfTask->runFromCLI() C:\symfony\lib\command\sfSymfonyCommandApplication
    .class.php:76
    PHP   5. sfBaseTask->doRun() C:\symfony\lib\task\sfTask.class.php:97
    PHP   6. sfPluginInstallTask->execute() C:\symfony\lib\task\sfBaseTask.class.php
    :68
    PHP   7. sfBaseTask->getPluginManager() C:\symfony\lib\task\plugin\sfPluginInsta
    llTask.class.php:105
    PHP   8. sfCoreAutoload->autoload() C:\symfony\lib\autoload\sfCoreAutoload.class
    .php:0
    PHP   9. require() C:\symfony\lib\autoload\sfCoreAutoload.class.php:99
     
    Fatal error: require_once(): Failed opening required 'PEAR.php' (include_path='.
    ;C:\php\pear') in C:\symfony\lib\plugin\sfPearEnvironment.class.php on line 15
     
    Call Stack:
        0.0003     328424   1. {main}() C:\symfony\data\bin\symfony:0
        0.0038     587944   2. include('C:\symfony\lib\command\cli.php') C:\symfony\
    data\bin\symfony:37
        0.2612    6644296   3. sfSymfonyCommandApplication->run() C:\symfony\lib\com
    mand\cli.php:20
        0.2632    6645960   4. sfTask->runFromCLI() C:\symfony\lib\command\sfSymfony
    CommandApplication.class.php:76
        0.2633    6646520   5. sfBaseTask->doRun() C:\symfony\lib\task\sfTask.class.
    php:97
        0.3223    6691688   6. sfPluginInstallTask->execute() C:\symfony\lib\task\sf
    BaseTask.class.php:68
        0.3225    6692344   7. sfBaseTask->getPluginManager() C:\symfony\lib\task\pl
    ugin\sfPluginInstallTask.class.php:105
        0.3225    6692584   8. sfCoreAutoload->autoload() C:\symfony\lib\autoload\sf
    CoreAutoload.class.php:0
        0.3232    6754856   9. require('C:\symfony\lib\plugin\sfPearEnvironment.clas
    s.php') C:\symfony\lib\autoload\sfCoreAutoload.class.php:99
    J'ai modifié go-pear.bat et maintenant il s'exécute.
    Ah ben il semblerait que ça fonctionne.

    Pour faire cours l'erreur est devenu :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
      Unable to install plugin "sfForkedDoctrineApplyPlugin" (version  >= 5.0.0 <= 5
    .9.9 exclude 5.9.9) because it depends on plugin "sfDoctrineGuardPlugin" which i
    s not installed (install dependencies by hand or use the --install_deps option f
    or automatic installation).
    J'ai essayé d'installer sfDoctrineGuardPlugin mais ça il manque Structures/Graph.php.

    Je ne m'en sors pas du tout :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    C:\wamp\bin\php\php5.3.5>pear install Structures_Graph
    downloading Structures_Graph-1.0.4.tgz ...
    Starting to download Structures_Graph-1.0.4.tgz (30,318 bytes)
    .........done: 30,318 bytes
     
    Warning: require_once(Structures/Graph.php): failed to open stream: No such file
     or directory in PEAR\Downloader.php on line 1217
    PHP Warning:  require_once(Structures/Graph.php): failed to open stream: No such
     file or directory in C:\wamp\bin\php\php5.3.5\PEAR\PEAR\Downloader.php on line
    1217
    ========================================================
    A force de bricolage j'ai trouvé, il faut télécharger :
    http://pear.php.net/package/Structures_Graph/download

    Et mettre les dossiers dans C:\wamp\bin\php\php5.3.5\PEAR.

    Ça fait plaisir :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    >> sfSymfonyPluginManager Installation successful for plugin "sfDoctrineGuardPlugin"
    >> sfSymfonyPluginManager Installation successful for plugin "sfForkedDoctrineApplyPlugin"
    >> sfSymfonyPluginManager Installing web data for plugin
    Keith Flint 1969 - 2019

  2. #22
    Membre extrêmement actif
    Avatar de Ryu2000
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    9 605
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2008
    Messages : 9 605
    Points : 18 523
    Points
    18 523
    Par défaut
    Laissez tomber tout ce que j'ai dis avant.
    L'important c'est qu'aujourd'hui je sache créer un formulaire (même si ça ce limite à quelques textarea) et que j'ai réussi à installer sfDoctrineGuardPlugin et sfForkedDoctrineApplyPlugin.

    J'ai suivi le readme de sfGuardDoctrine.
    Donc en fait ma classe membre ne sert à rien et je dois utiliser la classe myUser ?
    Keith Flint 1969 - 2019

  3. #23
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Août 2008
    Messages
    26 619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 26 619
    Points : 188 605
    Points
    188 605
    Par défaut
    Citation Envoyé par thierrybenji Voir le message
    Donc en fait ma classe membre ne sert à rien et je dois utiliser la classe myUser ?
    Quelle classe membre ?

    Tu dois tout faire avec ton myUser, c'est lui qui est prévu dans symfony et pas un autre. Tu peux y ajouter autant de méthodes que tu veux, le faire hériter de n'importe quelle classe héritant de sfUser.
    Vous souhaitez participer aux rubriques Qt (tutoriels, FAQ, traductions) ou HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  4. #24
    Membre extrêmement actif
    Avatar de Ryu2000
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    9 605
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2008
    Messages : 9 605
    Points : 18 523
    Points
    18 523
    Par défaut
    J'avais créer une classe membre pour tester les formulaires.
    D'accord, merci je vais utiliser la classe myUser.
    Keith Flint 1969 - 2019

  5. #25
    Expert éminent
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Points : 8 486
    Points
    8 486
    Par défaut
    Class ou class, ceci ne veux pas dire grand chose si on ne sait pas où les placer dans la hierarchie des classes.

    Si tu veux modifier le myUser, tu as, généralement, intérêt à le faire directement dans le myUser. Si les modifications doivent prendre effet dans plusieurs applications de ton projet, il convient alors de dérivée une classe enfants de sfUser, idéallement de sfUserBase et d'y rajouter les méthodes et valeurs dont tu as besoin. Et de faire dériver myUser de cette nouvelle classe dans chacune des applications.

    Question, ta classe membre est-elle enfants de sfUser ou d'un de ces enfants ?
    Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).

    • Pensez à valoriser les réponses pertinantes, cliquez sur le bouton vert +1 pour indiquer votre accord avec la solution proposée.
    • Pensez à utiliser la balise [code] pour afficher du code, elle est cachée sous le bouton [#] dans l'éditeur.
    • Une discussion est terminée ? Alors le bouton est votre ami !

  6. #26
    Membre extrêmement actif
    Avatar de Ryu2000
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    9 605
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2008
    Messages : 9 605
    Points : 18 523
    Points
    18 523
    Par défaut
    Je pense que je devrais réussir à utiliser myUser sans le modifier.
    Ma classe membre c'était qu'un test pour apprendre à utiliser les formulaires.
    Du coup j'ai compris pas mal sur les formulaires

    Par contre pour les noms des attributs, est-ce que c'est les mêmes que dans la base ?
    J'ai une table sf_guard_user, dedans il y a par exemple email_address.
    Est-ce que je peux faire ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $params = array(
    	'email_address'   => $request->getParameter('email_address')
    );
    Est-ce que je pourrais faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $myUser = new myUser();
    $myUser->setEmail_Adress($sf_params->get('email_address'));
    $myUser->save();
    Est-ce que la méthode setEmail_Address existe, enfin est-ce qu'elle s'écrit comme ça, parce qu'elle doit bien exister.

    Ah ben j'ai la réponse en fait c'est setEmailAddress().
    C'est écrit dans :
    lib\model\doctrine\sfDoctrineGuardPlugin\base\BasesfGuardUser.class

    Purée je commence à trouver ce que je recherche tout de suite, c'est vraiment une sensation cool.
    Je commence à comprendre des trucs de Symfony !

    Merci les gars

    Ah ben j'ai même la réponse à ma première question :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    @property string $email_address
    C'est email_address.

    Bon ben du coup ce message est encore bien inutile.
    Keith Flint 1969 - 2019

  7. #27
    Expert éminent
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Points : 8 486
    Points
    8 486
    Par défaut
    Pas tout a fait inutile.

    Juste que ta méthode est déclarée dans l'objet user modifié pour sfGuard, ce n'est pas une méthode standard.

    Que dans symfony, le nom des méthodes est Camelisé. Donc setEmailAddress() et pas set_email_address(). Mais c'est plus cosmétique qu'obligatoire.
    Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).

    • Pensez à valoriser les réponses pertinantes, cliquez sur le bouton vert +1 pour indiquer votre accord avec la solution proposée.
    • Pensez à utiliser la balise [code] pour afficher du code, elle est cachée sous le bouton [#] dans l'éditeur.
    • Une discussion est terminée ? Alors le bouton est votre ami !

  8. #28
    Membre extrêmement actif
    Avatar de Ryu2000
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    9 605
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2008
    Messages : 9 605
    Points : 18 523
    Points
    18 523
    Par défaut
    Ah d'accord !
    Merci.

    J'ai fais l'installation de sfDoctrineGuardPlugin et maintenant à la racine de mon site, il y a un formulaire de connexion quand je met true dans is_secure: de security.yml.

    Je suppose que c'est en rapport avec module: sfGuardAuth, action: signin.
    Si j'arrive à l'intégrer dans mon site plus tard, je serais quitte de créer mon propre formulaire de connexion.

    Par contre le formulaire d'inscription on doit forcement le créer soit même ?

    J'ai essayé de créer un utilisateur et de me connecter depuis frontend_dev.php/login mais ça ne fonctionne pas.
    J'ai même crypté mon mot de passe en Sha1. (mais j'ai laissé salt NULL)

    Ça me met toujours : The username and/or password is invalid.

    Bon par contre je suis content j'ai trouvé sfWidgetFormInputPassword.
    Je vais créer un formulaire d'inscription, ça marchera peut être mieux.
    En entrant que email_address, username, password, c'est suffisant ?
    Ou alors faut il d'autres comme created_at ?
    Keith Flint 1969 - 2019

  9. #29
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Août 2008
    Messages
    26 619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 26 619
    Points : 188 605
    Points
    188 605
    Par défaut
    Citation Envoyé par thierrybenji Voir le message
    J'ai fais l'installation de sfDoctrineGuardPlugin et maintenant à la racine de mon site, il y a un formulaire de connexion quand je met true dans is_secure: de security.yml.
    C'est le but de cette directive : pour voir tout ce qui en dépend, il faut être utilisateur connecté. Tu peux restreindre l'effet en la plaçant dans les fichiers de configuration security.yml des modules.

    Citation Envoyé par thierrybenji Voir le message
    Je suppose que c'est en rapport avec module: sfGuardAuth, action: signin.
    Si j'arrive à l'intégrer dans mon site plus tard, je serais quitte de créer mon propre formulaire de connexion.
    Il suffit de dériver du formulaire actuel et de dire à symfony d'utiliser ce nouveau formulaire.

    Citation Envoyé par thierrybenji Voir le message
    Par contre le formulaire d'inscription on doit forcement le créer soit même ?
    Le plug-in sfForkedDoctrineApplyPlugin est fait pour ça.
    Vous souhaitez participer aux rubriques Qt (tutoriels, FAQ, traductions) ou HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  10. #30
    Membre extrêmement actif
    Avatar de Ryu2000
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    9 605
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2008
    Messages : 9 605
    Points : 18 523
    Points
    18 523
    Par défaut
    Merci.
    Je vais aller voir du côté de sfForkedDoctrineApplyPlugin.

    ======================================================
    C'est chouette, j'ai le formulaire d'inscription frontend_dev.php/user/new.
    Le problème c'est que si les champs sont bien remplit et que j'appuie sur le bouton, j'ai l'erreur suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    app_sfApplyPlugin_from is not set
    J'ai recherché sur internet et apparemment c'est une erreur fréquente, mais j'ai pas encore trouvé de solution.
    Peut être une erreur dans mon app.yml :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    all:
          sfForkedApply:
            applyForm: sfApplyApplyForm
            resetForm: sfApplyResetForm
            resetRequestForm: sfApplyResetRequestForm
            settingsForm: sfApplySettingsForm
            mail_editable: false
     
            routes:
              apply: /user/new
              reset: /user/password-reset
              resetRequest: /user/reset-request
              resetCancel: /user/reset-cancel
              validate: /user/confirm/:validate
              settings: /user/settings
     
            confirmation:
              reset: true
              apply: true
              email: false
              reset_logged: false
     
     
            sfApplyPlugin:
              afterLogin: after_login_route
              after: after_route
     
              from:
                email: "thierrybenji@hotmail.com"
                fullname: "the staff at yoursite.com"
    Faut que j'aille voir du côté de i18n aussi.
    Keith Flint 1969 - 2019

  11. #31
    Membre extrêmement actif
    Avatar de Ryu2000
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    9 605
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2008
    Messages : 9 605
    Points : 18 523
    Points
    18 523
    Par défaut
    Je suis coincé...
    J'ai bien un form dans sfApplyPlugin et pourtant j'ai cette erreur...

    Edit :
    En vérifiant les espaces du app.yml j'ai une nouvelle erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Connection could not be established with host localhost [No connection could be made because the target machine actively refused it. #10061]
    J'ai même eu celle la :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    The route "after_route" does not exist.
    Et effectivement j'ai pas de route after_route dans routing.yml.
    Ah ben oui c'est à moi de choisir des routes, faut pas juste copier/coller, c'est bien ça ?

    ===================================================
    Le log d'Apache :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    [Tue Jan 18 13:30:56 2011] [error] [client 127.0.0.1] File does not exist: C:/jeu/web/favicon.ico
    [Tue Jan 18 13:31:17 2011] [error] [client 127.0.0.1] PHP Warning:  fsockopen() [<a href='function.fsockopen'>function.fsockopen</a>]: unable to connect to localhost:25 (No connection could be made because the target machine actively refused it.\r\n) in C:\\symfony\\lib\\vendor\\swiftmailer\\classes\\Swift\\Transport\\StreamBuffer.php on line 233, referer: http://127.0.0.1:8080/frontend_dev.php/user/new
    [Tue Jan 18 13:31:17 2011] [error] [client 127.0.0.1] PHP Stack trace:, referer: http://127.0.0.1:8080/frontend_dev.php/user/new
    [Tue Jan 18 13:31:17 2011] [error] [client 127.0.0.1] PHP   1. {main}() C:\\jeu\\web\\frontend_dev.php:0, referer: http://127.0.0.1:8080/frontend_dev.php/user/new
    [Tue Jan 18 13:31:17 2011] [error] [client 127.0.0.1] PHP   2. sfContext->dispatch() C:\\jeu\\web\\frontend_dev.php:13, referer: http://127.0.0.1:8080/frontend_dev.php/user/new
    [Tue Jan 18 13:31:17 2011] [error] [client 127.0.0.1] PHP   3. sfFrontWebController->dispatch() C:\\symfony\\lib\\util\\sfContext.class.php:170, referer: http://127.0.0.1:8080/frontend_dev.php/user/new
    [Tue Jan 18 13:31:17 2011] [error] [client 127.0.0.1] PHP   4. sfController->forward() C:\\symfony\\lib\\controller\\sfFrontWebController.class.php:48, referer: http://127.0.0.1:8080/frontend_dev.php/user/new
    [Tue Jan 18 13:31:17 2011] [error] [client 127.0.0.1] PHP   5. sfFilterChain->execute() C:\\symfony\\lib\\controller\\sfController.class.php:238, referer: http://127.0.0.1:8080/frontend_dev.php/user/new
    [Tue Jan 18 13:31:17 2011] [error] [client 127.0.0.1] PHP   6. sfRenderingFilter->execute() C:\\symfony\\lib\\filter\\sfFilterChain.class.php:53, referer: http://127.0.0.1:8080/frontend_dev.php/user/new
    [Tue Jan 18 13:31:17 2011] [error] [client 127.0.0.1] PHP   7. sfFilterChain->execute() C:\\symfony\\lib\\filter\\sfRenderingFilter.class.php:33, referer: http://127.0.0.1:8080/frontend_dev.php/user/new
    [Tue Jan 18 13:31:17 2011] [error] [client 127.0.0.1] PHP   8. sfExecutionFilter->execute() C:\\symfony\\lib\\filter\\sfFilterChain.class.php:53, referer: http://127.0.0.1:8080/frontend_dev.php/user/new
    [Tue Jan 18 13:31:17 2011] [error] [client 127.0.0.1] PHP   9. sfExecutionFilter->handleAction() C:\\symfony\\lib\\filter\\sfExecutionFilter.class.php:42, referer: http://127.0.0.1:8080/frontend_dev.php/user/new
    [Tue Jan 18 13:31:17 2011] [error] [client 127.0.0.1] PHP  10. sfExecutionFilter->executeAction() C:\\symfony\\lib\\filter\\sfExecutionFilter.class.php:78, referer: http://127.0.0.1:8080/frontend_dev.php/user/new
    [Tue Jan 18 13:31:17 2011] [error] [client 127.0.0.1] PHP  11. sfActions->execute() C:\\symfony\\lib\\filter\\sfExecutionFilter.class.php:92, referer: http://127.0.0.1:8080/frontend_dev.php/user/new
    [Tue Jan 18 13:31:17 2011] [error] [client 127.0.0.1] PHP  12. BasesfApplyActions->executeApply() C:\\symfony\\lib\\action\\sfActions.class.php:60, referer: http://127.0.0.1:8080/frontend_dev.php/user/new
    [Tue Jan 18 13:31:17 2011] [error] [client 127.0.0.1] PHP  13. BasesfApplyActions->sendVerificationMail() C:\\jeu\\plugins\\sfForkedDoctrineApplyPlugin\\modules\\sfApply\\lib\\BasesfApplyActions.class.php:55, referer: http://127.0.0.1:8080/frontend_dev.php/user/new
    [Tue Jan 18 13:31:17 2011] [error] [client 127.0.0.1] PHP  14. BasesfApplyActions->mail() C:\\jeu\\plugins\\sfForkedDoctrineApplyPlugin\\modules\\sfApply\\lib\\BasesfApplyActions.class.php:368, referer: http://127.0.0.1:8080/frontend_dev.php/user/new
    [Tue Jan 18 13:31:17 2011] [error] [client 127.0.0.1] PHP  15. sfMailer->send() C:\\jeu\\plugins\\sfForkedDoctrineApplyPlugin\\modules\\sfApply\\lib\\BasesfApplyActions.class.php:400, referer: http://127.0.0.1:8080/frontend_dev.php/user/new
    [Tue Jan 18 13:31:17 2011] [error] [client 127.0.0.1] PHP  16. Swift_Mailer->send() C:\\symfony\\lib\\mailer\\sfMailer.class.php:300, referer: http://127.0.0.1:8080/frontend_dev.php/user/new
    [Tue Jan 18 13:31:17 2011] [error] [client 127.0.0.1] PHP  17. Swift_Transport_AbstractSmtpTransport->start() C:\\symfony\\lib\\vendor\\swiftmailer\\classes\\Swift\\Mailer.php:74, referer: http://127.0.0.1:8080/frontend_dev.php/user/new
    [Tue Jan 18 13:31:17 2011] [error] [client 127.0.0.1] PHP  18. Swift_Transport_StreamBuffer->initialize() C:\\symfony\\lib\\vendor\\swiftmailer\\classes\\Swift\\Transport\\AbstractSmtpTransport.php:101, referer: http://127.0.0.1:8080/frontend_dev.php/user/new
    [Tue Jan 18 13:31:17 2011] [error] [client 127.0.0.1] PHP  19. Swift_Transport_StreamBuffer->_establishSocketConnection() C:\\symfony\\lib\\vendor\\swiftmailer\\classes\\Swift\\Transport\\StreamBuffer.php:70, referer: http://127.0.0.1:8080/frontend_dev.php/user/new
    [Tue Jan 18 13:31:17 2011] [error] [client 127.0.0.1] PHP  20. fsockopen() C:\\symfony\\lib\\vendor\\swiftmailer\\classes\\Swift\\Transport\\StreamBuffer.php:233, referer: http://127.0.0.1:8080/frontend_dev.php/user/new
    [Tue Jan 18 13:31:17 2011] [error] [client 127.0.0.1] Connection could not be established with host localhost [No connection could be made because the target machine actively refused it.\r\n #10061], referer: http://127.0.0.1:8080/frontend_dev.php/user/new
    On dirait que le problème vient de la configuration d'SMTP non ?

    ========================================================
    php.ini :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    [mail function]
    ; For Win32 only.
    ; http://php.net/smtp
    SMTP = smtp.free.fr
    ; http://php.net/smtp-port
    smtp_port = 25
     
    ; For Win32 only.
    ; http://php.net/sendmail-from
    sendmail_from = thierrybenji@hotmail.com
    factories.yml :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    all:
      mailer:
        class: sfMailer
        param:
          logging:           %SF_LOGGING_ENABLED%
          charset:           %SF_CHARSET%
          delivery_strategy: realtime
        transport:
          class: Swift_SmtpTransport
     
      routing:
        class: sfPatternRouting
        param:
          generate_shortest_url:            true
          extra_parameters_as_query_string: true
     
      view_cache_manager:
        class: sfViewCacheManager
        param:
          cache_key_use_vary_headers: true
          cache_key_use_host_name:    true
    =================================================
    Je ne sais pas pourquoi mais ça marche maintenant.
    Il devait y avoir une erreur dans mon factories.yml.

    Tout marche là.
    J'ai reçu un mail de confirmation et je suis connecté sur mon compte !

    Wahou !
    Je vais pouvoir passer à l'étape suivante.

    Le layout.php et le main.css vont être fait.
    Mais ça c'est pas ce qui m'intéresse le plus, quoi que ce sera bien quand ce sera fait !

    C'est un grand jour aujourd'hui.
    Dire que depuis le début, on m'avait donné le nom des deux plugins à utilisé et qu'au final j'aurais pu le faire sans connaître les formulaires...
    Mais bon ça ma aidé d'apprendre ça !
    Keith Flint 1969 - 2019

  12. #32
    Membre extrêmement actif
    Avatar de Ryu2000
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    9 605
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2008
    Messages : 9 605
    Points : 18 523
    Points
    18 523
    Par défaut
    Bon alors je reprend depuis le début.
    Est-ce que :


    Peut se traduire par ça, dans schema.yml :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    Carte:
       columns:
          Largeur: integer
          Hauteur: integer
    Zone:
       columns:
          Nom: string(255)
       relations:
          Carte:
             onDelete: CASCADE
    Case:
       columns:
          PositionX: integer   
          PositionY: integer
          Passabilite: boolean
       relations:
          Zone:
             onDelete: CASCADE
    Terrain:
       columns:
          Image: string(255)
       relations:
          Case:
             onDelete: CASCADE
    Hey mais en fait il est complétement nul ce diagramme de classe !
    La classe terrain ne sert à rien.
    Et la classe Zone non plus dans ce cas là !

    Enfin bref, les classes vont changer, mais je voudrais juste apprendre à faire du doctrine.
    Keith Flint 1969 - 2019

  13. #33
    Expert éminent
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Points : 8 486
    Points
    8 486
    Par défaut
    Je vais être vache (meuuuuu non !), ton shema.yml vaut ton schéma Aie ! bon, j’arrête.

    • Il n'y a pas de champs de liaison pour qu'il crée les relations et je ne suis pas sur que doctrine puisse les créer seul. Par exemple, zone et case, une case appartiens à une zone et une zone possède plusieurs case. Il faudra créer, dans la table case, un champ "zone_id: integer" pour matérialiser la liaison.
    • Dans ton cas, je pense que le "ondelete: cascade" ne sert à rien.
    • Dans les relations, il faut préciser le "foreignAlias" qui est le nom de la relation vue depuis l'objet en relation. Exemple, dans le relation entre case et zone, définie sur la table case, tu définis un nom de relation vers zone qui est "getZone", logique, une case à une zone. Par contre, il faut définir le nom depuis zone, donc, toujours du côté case, tu va utiliser "foreignAlias: cases" ce qui signifie que, vu de l'autre côté de la relation, du côté zone, tu récupères plusieurs cases par "getCases". Le "s" ici sert de rappel, ta méthode retourne un "doctrine_collection" et pas un enregistrement unique.

    Le reste semble viable vu le schéma. Génial une fois le schéma viable
    Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).

    • Pensez à valoriser les réponses pertinantes, cliquez sur le bouton vert +1 pour indiquer votre accord avec la solution proposée.
    • Pensez à utiliser la balise [code] pour afficher du code, elle est cachée sous le bouton [#] dans l'éditeur.
    • Une discussion est terminée ? Alors le bouton est votre ami !

  14. #34
    Membre extrêmement actif
    Avatar de Ryu2000
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    9 605
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2008
    Messages : 9 605
    Points : 18 523
    Points
    18 523
    Par défaut
    Merci.
    Je vais regarder zone_id, foreignAlias et d'autres choses nécessaire avec Doctrine.

    En fait, j'étais en train de me dire que chaque myUser pourraient avoir une position X et une Y et un identifiant de carte.
    Je pourrais faire plusieurs carte, par exemple une principal et quand on passe sur une case spécifique on est projeté dans une autre carte plus petite.
    Une carte serait composé de cases, par exemple si une carte fait 51*51, elle a 2601 cases.
    L'affichage de la carte se ferait en récupérant les positions X et Y du myUser ainsi que l'id de la carte dans lequel il se trouve, on afficherait qu'une partie de la carte réduite de, par exemple, 11*11.
    Dans l'interface il y aura 4 boutons (haut, bas, gauche, droite) et en appuyant sur un on changerait une coordonné du joueur, ce qui lui coutera un point d'action.

    J'ai l'impression que c'est réalisable comme ça.
    Mais du coup je dois ajouter 4 attributs à mes utilisateurs.
    Keith Flint 1969 - 2019

  15. #35
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Août 2008
    Messages
    26 619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 26 619
    Points : 188 605
    Points
    188 605
    Par défaut
    Citation Envoyé par thierrybenji Voir le message
    J'ai l'impression que c'est réalisable comme ça.
    Mais du coup je dois ajouter 4 attributs à mes utilisateurs.
    C'est aussi l'impression que ça me donne. Mais pourquoi l'ajouter à un utilisateur ? Je verrais plus ajouter ces données à un personnage, avec une table faisant le lien entre les utilisateurs et les personnages (un utilisateur pourrait avoir plusieurs personnages : je joue avec mon mage le matin et mon moine multi-classé voleur (si si, ça existe ). Surtout que ça évite de venir ajouter une couche sur la table de sfGuard, ce que je préfère personnellement éviter (c'est du sfGuard et il n'y a que lui qui est censé savoir ce qui se fait dans ses tables, j'ai droit de regard mais sans plus). Aussi, chaque personnage aura une certaine quantité de propriétés inaliénables (points d'action, par exemple), si tu les mets tous là-bas, tu vas finir avec une table hexakilométrique à afficher, par exemple, dans PhpMyAdmin.
    Vous souhaitez participer aux rubriques Qt (tutoriels, FAQ, traductions) ou HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  16. #36
    Expert éminent
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Points : 8 486
    Points
    8 486
    Par défaut
    Perso je ne vois pas trop le rapport entre 4 boutons sur l'interface et 4 attributs dans la table. Je ne dois pas être assez branché jeu. J'ai bien fais appel à un mage devin de lvl 78 avec option programmation informatique, mais il n'avait pas la boule de process à évolution attributal (il est 0h20... ceci peut expliquer cela).

    Le début est sérieux !

    Après, je ne sais pas trop comment tu veux faire tourner ton jeu. Le système des cases qui en donnent de plus petites, pourquoi pas. Mais comment tu sauvegarde la position du joueur ? Et comment tu sais si un autre joueur est au même endroit où à proximité de toi ?
    Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).

    • Pensez à valoriser les réponses pertinantes, cliquez sur le bouton vert +1 pour indiquer votre accord avec la solution proposée.
    • Pensez à utiliser la balise [code] pour afficher du code, elle est cachée sous le bouton [#] dans l'éditeur.
    • Une discussion est terminée ? Alors le bouton est votre ami !

  17. #37
    Membre extrêmement actif
    Avatar de Ryu2000
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    9 605
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2008
    Messages : 9 605
    Points : 18 523
    Points
    18 523
    Par défaut
    Les 4 attributs c'était :
    Position X
    Position Y
    ID de la carte
    Nombre de point d'action

    Haut, bas, gauche, droite ça modifierait X et Y.
    Et X et Y seraient la position du joueur.

    Je commence à être limité en temps et je me dis que ce serait plus simple de faire qu'un membre n'ait qu'un personnage, mais c'est vrai que c'est plutôt une mauvaise idée.
    Maintenant je pense que ce serait plus facile de créer une nouvelle table et de ne pas toucher à myUser.

    Faut que je réfléchisse aux personnages du joueur maintenant.

    ========================================
    Je ne peux pas appeler une classe Case.
    Parce que :
    Vous voyez "Case" est reconnu.
    Je vais essayer avec Cellule.
    Keith Flint 1969 - 2019

  18. #38
    Expert éminent
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Points : 8 486
    Points
    8 486
    Par défaut
    Je suppose que ton projet est plutôt scolaire que destiné à finir en ligne ?

    Dans ton schema ton objet case va avoir un champ Id (integer autoincremanté et clef primaire) qui sera ajouté automatiquement. Je te pensais faire la liaison sur celui-là, donc un seul champ, et comme ta case est liée à la carte... on reste sur un seul champ.

    Quant au nombre de mouvement, ils sont à faire en ligne, donc je pense qu'il n'est pas nécessaire de le stocker, mais là, je n'en suis pas sur.

    Je pense qu'il faut travailler par étape, commence par avoir un schéma valide et définitif, la suite en deuxième journée
    Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).

    • Pensez à valoriser les réponses pertinantes, cliquez sur le bouton vert +1 pour indiquer votre accord avec la solution proposée.
    • Pensez à utiliser la balise [code] pour afficher du code, elle est cachée sous le bouton [#] dans l'éditeur.
    • Une discussion est terminée ? Alors le bouton est votre ami !

  19. #39
    Membre extrêmement actif
    Avatar de Ryu2000
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    9 605
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2008
    Messages : 9 605
    Points : 18 523
    Points
    18 523
    Par défaut
    Oui effectivement c'est un projet dans le cadre de ma licence LPRO SIL CDOOAMT.
    Je suis avec un autre étudiant, mais il est reste encore plus coincé que moi sur Symfony et en plus il a souvent été absent.
    Bref !

    Le projet doit comporter au moins 3 des 4 éléments suivants :
    • Personnages
    • Lieux
    • Objets
    • Compétences


    Il doit y avoir un système de point d'action, l'utilisateur doit pouvoir y jouer depuis son navigateur et nous devons utiliser le framework Symfony.

    J'ai refais le schema.yml :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Carte:
       columns:
          Largeur: integer
          Hauteur: integer
          Nom: string(255)
    Cellule:
       columns:
          PositionX: integer
          PositionY: integer
          Image: string(255)
          Passabilite: boolean
       relations:
          Carte:
             onDelete: CASCADE
             foreignAlias: Cellules
    Les id de Carte et Cellule ont été généré automatiquement et dans schema.sql :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ALTER TABLE cellule ADD CONSTRAINT cellule_carte_id_carte_id FOREIGN KEY (carte_id) REFERENCES carte(id) ON DELETE CASCADE;
    Apparemment, plusieurs cellules peuvent appartenir à une carte ?

    ========================================================
    Pour le reste pour le moment je pense un peu à ça, mais c'est peut être mauvais :


    Type ça signifierait par exemple bouclier, potion, épée.
    Classe ce serait : mage, voleur, aventurier.
    Compatibilité ce serait en rapport avec les classes.

    Mais là du coup je me dis que je pourrais mettre une relation entre Item et Classe et virer compatibilité.
    Et que je devrais faire une classe type, avec autant d'instance que de type.

    Ouais ce serait déjà un peu mieux comme ça :
    Keith Flint 1969 - 2019

  20. #40
    Expert éminent
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Points : 8 486
    Points
    8 486
    Par défaut
    Donc, soit tu es le plus débrouillard de ta classe (pour avoir fini ici), soit les autres parlent tous anglais couramment et son sur le forum de sensio

    Pour ton schéma, je ne vois pas trop l'utilité de carte. Par contre, si tu fonctionnes par cellules, il faudrait une table cellule qui décrive ce qui est censé se passer dans la cellule... et lier le personnage à la cellule.

    Ne tiens pas compte de la remarque, très juste, de dourouc sur les perso, pour ce type de projet, rien ne sert de compliquer.

    As-tu a mettre en place un système d’authentification ? De création de compte ? Il n'y a rien dans ton modèle. Si oui, jette un œil sur la liste des plugin dans le forum idoine.

    Si tu veux correctement gérer les classe et les items il faut rajouter deux tables. Une qui décrit la classe et une qui permet de lier les classes du perso aux classes (s'il peut avoir plusieurs classes). Idem pour les item.

    Et il faut peut-être une liaison entre les item et les classes pour savoir quels item il est possible d'utiliser par quel classe. Probablement une liaison n-n donc une table intermédiaire...

    Après, j'en resterais là, c'est déjà assez compliqué. Si on rajoute un sac a dos et des coffres dans les cellules... Et des marchants ! Et des ok, j'arrête !
    Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).

    • Pensez à valoriser les réponses pertinantes, cliquez sur le bouton vert +1 pour indiquer votre accord avec la solution proposée.
    • Pensez à utiliser la balise [code] pour afficher du code, elle est cachée sous le bouton [#] dans l'éditeur.
    • Une discussion est terminée ? Alors le bouton est votre ami !

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 7 PremièrePremière 123456 ... DernièreDernière

Discussions similaires

  1. Compte-rendu Android LiveCode #5 : créer un jeu en 1 h avec Project Anarchy
    Par LittleWhite dans le forum Développement 2D, 3D et Jeux
    Réponses: 0
    Dernier message: 16/10/2013, 20h01
  2. Créer une table avec un jeu de données de test
    Par xarkam dans le forum SQLite
    Réponses: 2
    Dernier message: 08/08/2013, 13h39
  3. Réponses: 1
    Dernier message: 07/04/2010, 15h28
  4. Créer un jeu C avec SDL (hexagones)
    Par gaby_1 dans le forum Développement 2D, 3D et Jeux
    Réponses: 5
    Dernier message: 21/03/2007, 16h39
  5. Créer un jeu avec plusieurs langages
    Par spidouille dans le forum Pascal
    Réponses: 6
    Dernier message: 04/10/2005, 14h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo