Précédent   Forum du club des développeurs et IT Pro > PHP > Bibliothèques et frameworks > Symfony2
Symfony2 Forum d'entraide sur le framework PHP Symfony2.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 09/01/2013, 22h27   #1
badjinmb
Futur Membre du Club
 
Homme Nadjib Belkebir
freelance
Inscription : mars 2006
Messages : 16
Détails du profil
Informations personnelles :
Nom : Homme Nadjib Belkebir
Localisation : Algérie

Informations professionnelles :
Activité : freelance
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : mars 2006
Messages : 16
Points : 19
Points : 19
Envoyer un message via MSN à badjinmb
Par défaut Refactoriser code controleur

bonsoir .
je voudrais avoir vos avis/conseils.

j'ai ce code dans deux methodes addUserAction(), updateUserAction
Code :
1
2
3
4
$factory = $this->get('security.encoder_factory');
$encoder = $factory->getEncoder($entity);
$password = $encoder->encodePassword($entity->getPassword(), $entity->getSalt());
$entity->setPassword($password);
de même je voudrais créer une commande console pour ajouter/modifier un utilisateur.

manifestement mon code a besoin d’être factorisée.
ca serais plus simple de mettre tout le code qui concerne mon entité dans une classe; on pourrais aussi imaginer des méthodes pour bannir un utilisateur x temps, ajouter un utilisateur a un groupe sans se soucier de mettre a jour l'entite inverse en dur dans le controleur...ect

ou mettre tout ce code qui concerne mon entité:
- une nouvelle: classe UserManager extends entityManager .
- des méthodes dans l’entité elle même.
- dans un repository.
- dans une simple class a qui on passerais les paramètres nécessaires.
- une combinaison de ce qui est cité ci-dessus (cas par cas)

je suis un peut perdu entre bonnes pratiques et code perso , vous qui avez l’expérience comment organisez vous votre code ?
badjinmb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2013, 22h30   #2
arnooo999
Membre expérimenté
 
Homme
Inscription : juin 2011
Messages : 423
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : juin 2011
Messages : 423
Points : 569
Points : 569
Bonjour,

Ce dont tu as besoin c'est de mettre ce code dans une classe "UserManager" qui aura un attribut encoder (et sans doute un attribut EntityManager)
et d'enregistrer cette classe en tant que service.
tu pourras alors faire:
Code :
1
2
3
4
5
 
//controller
$this->get('my_user.manager')->encodePassWord($user);
//ou bien
$this->container->get('my_user.manager')->encodePassWord($user);
Lis la doc sur le container d'injection de dépendances, c'est l'une des bases du fonctionnement de Symfony2:
http://symfony.com/fr/doc/current/bo...container.html
arnooo999 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2013, 17h15   #3
badjinmb
Futur Membre du Club
 
Homme Nadjib Belkebir
freelance
Inscription : mars 2006
Messages : 16
Détails du profil
Informations personnelles :
Nom : Homme Nadjib Belkebir
Localisation : Algérie

Informations professionnelles :
Activité : freelance
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : mars 2006
Messages : 16
Points : 19
Points : 19
Envoyer un message via MSN à badjinmb
Citation:
Envoyé par arnooo999 Voir le message
Bonjour,

Ce dont tu as besoin c'est de mettre ce code dans une classe "UserManager" qui aura un attribut encoder (et sans doute un attribut EntityManager)
et d'enregistrer cette classe en tant que service.
tu pourras alors faire:
Code :
1
2
3
4
5
 
//controller
$this->get('my_user.manager')->encodePassWord($user);
//ou bien
$this->container->get('my_user.manager')->encodePassWord($user);
Lis la doc sur le container d'injection de dépendances, c'est l'une des bases du fonctionnement de Symfony2:
http://symfony.com/fr/doc/current/bo...container.html
merci pour ta réponse, en effet après avoir cherché sur le web je suis tombé plusieurs fois sur des managers personnalisé en services, je vais essayer de mettre à jour mon post avec la solution retenue .
badjinmb est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 08h00.


 
 
 
 
Partenaires

Hébergement Web