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

Zend Framework PHP Discussion :

Incohérences dans Zend Framework


Sujet :

Zend Framework PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 50
    Par défaut Incohérences dans Zend Framework
    Oui enfin pour _get et _set c'est pas la réponse pour $view ?

    C'est un peu bizarre d'avoir $this->view alors que view devrait être privée ou protégée donc $this->_view et si on veut l'avoir depuis l'extérieur $controllerX->getView() ou $controllerX->getResource('view') mais Zend Fmk est très bien foutu il y a quand même des choses pas cohérentes. Un coup on a des accesseurs getX un autre un accesseur direct simulté avec __get(), bref j'espère avoir bientôt la version 2 qu'ils enlèvent les méthodes magiques.

    A part ça, certaines briques sont très agréables.

    $form->addValidator(new ...);
    $this->getBaseUrl();

    Et aussi le toString implicite ça fait bizarre mais c'est pas anormal. Mais par exemple echo $form; je préfère echo $form->render(); ...

  2. #2
    Membre Expert
    Avatar de 5h4rk
    Homme Profil pro
    CTO at TabMo
    Inscrit en
    Février 2011
    Messages
    813
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : CTO at TabMo
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2011
    Messages : 813
    Par défaut
    Un Controller sous Zernd hérite de Zend_Controller_Action et c'est cette classe qui possède l'attribut $view qui est de visibilité public, cela est donc normal que tu puisse y accéder simplement dans les controllers avec $this->view.

    Les accesseurs c'est quand on accède à des attribut du autre classe pas quand il y a de l'héritage, ce n'est pas spécifique à Zend.

    Pour le toString implicite je trouve cela tout à fait normal, car comme en java il y a des toString implicite, mais attention ce n'est pas tout le temps le cas comme en java

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 50
    Par défaut
    le toString implicite n'est pas critiquable en soit, ca fait juste vraiment bizarre. Les placeholders, c'est pire

    public $view;

    Ooooh, je suis choqué. En gros, depuis un plugin, je pourrais faire $controller->view = "coucou".

    Impossible, il y a anguille sous roche ... Ils le disent eux mêmes :

    /**
    * View object
    * @var Zend_View_Interface
    */

    Il est sensé être une instance de Zend_View_Interface ou spécialisée. Non vraiment, je ne comprends pas ...

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 50
    Par défaut
    Je cite http://framework.zend.com/manual/fr/...nventions.html :

    Pour des méthodes d'objet qui sont déclarées avec la construction "private" ou "protected", le premier caractère du nom variable doit être un tiret bas simple ("_"). C'est la seule utilisation autorisé d'un tiret bas dans un nom de méthode. Les méthodes déclarées "public" ne devraient jamais commencer par un tiret bas.
    Je cite Zend_Registry :

    public static function _unsetInstance()
    {
    self::$_registry = null;
    }
    Trouver l'erreur ? Ok, ce n'est pas une méthode d'objet mais une méthode de classe, mais quand même ...

  5. #5
    Membre Expert
    Avatar de 5h4rk
    Homme Profil pro
    CTO at TabMo
    Inscrit en
    Février 2011
    Messages
    813
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : CTO at TabMo
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2011
    Messages : 813
    Par défaut
    Merci d utiliser l option éditer à l avenir

    Ton exemple n est pas bon du fait que ce soit une methode static du cout une methode static n a aucun interet d etre private ou protected, et sa visibilité n est pas vraiment public protected ou private c est un cas à part, par contre si tu trouve une methode simplement public avec une telle notation c est qu il y aura confusion

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 50
    Par défaut
    Là je ne suis pas d'accord, la visibilité d'une méthode ou d'une propriété n'est pas influencée par le fait qu'elle agit sur la classe ou sur l'instance. Et je suis tombé d'accord tout de suite sur la convention de nommage de Zend, et ce serait bien jouer avec les mots que de ne pas inclure les statiques dans leur règle de nommage.

    Du par le principe qu'à part l'interface de la classe je mets tout le reste en privé ou protégée, pour éviter la redondance du code, j'aurais obligatoirement un moment donné une méthode statique privée ou protégée.

    De plus le langage le permet, ce n'est pas pour rien. Et j'ai fait l'effort de chercher un exemple :

    Zend_Crypt :

    protected static function _detectHashSupport($algorithm)
    {
    Ici, on a bien le underscore. Il est possible que ce soit une erreur sur l'autre, pour moi ça n'a pas de sens. Evidemment, il faut s'adapter à la fois aux choix des développeurs et à la fois aux erreurs surtout si elles ne provoquent pas de beug. Je ne cherche pas non plus à avoir raison absolument, mais à faire triompher la vérité ^^

    Oui, je n'ai pas pensé à éditer (là j'ai tort ).

Discussions similaires

  1. Appel de procedure stocké oracle dans zend framework
    Par Essedik dans le forum Zend_Db
    Réponses: 3
    Dernier message: 20/06/2014, 09h04
  2. [ZF2] PHPExcel intégrer dans Zend Framework
    Par khalil_ha dans le forum Zend Framework
    Réponses: 1
    Dernier message: 13/09/2013, 09h21
  3. Autocomplétion Zend Framework dans le Zend Studio
    Par gforce dans le forum Zend Studio
    Réponses: 7
    Dernier message: 28/04/2008, 23h16
  4. Installer zend framework dans Xampp
    Par gtraxx dans le forum Zend Framework
    Réponses: 6
    Dernier message: 28/12/2007, 17h24
  5. Réponses: 1
    Dernier message: 28/11/2007, 11h52

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