Catégorie: Zend Framework

Zend Framework par module les paramètres en fonction

Par , Vendredi 1er Janvier 2010 22h40

J'ai créé un suivi à ce poste qui nécessite moins de configuration, s'il vous plaît voir la disposition des modules base - le Zend Framework .

Lorsque vous utilisez le Zend Framework avec des modules, son évident que si vous utilisez différents (sous-) sites au large de la même application que vous ne voulez pas nécessairement les mêmes scripts configuration pour chaque partie. J'ai décidé d'aller avec la structure du site suivant:

  / Application
     / Contrôleurs
         ...
     / Modèles
     / Modules
         / Par défaut
             / Contrôleurs
             / Mise en page
                 / Scripts
             / Vues
                 / Scripts
         / AnotherModule
             ...
     / Scripts

Le problème a été mise en place des scripts de disposition sur une base par module. La réponse est venue grâce à l'aide d'une aide d'action. Mise en place les mises sur une base par module comprend trois étapes:

  1. Application.ini (ou procédure de configuration similaire):
      admin.resources.layout.layoutPath = APPLICATION_PATH "/ modules / admin / layouts / scripts"
     default.resources.layout.layoutPath = APPLICATION_PATH "/ modules / default / layouts / scripts"
     member.resources.layout.layoutPath = APPLICATION_PATH "/ modules / membres / layouts / scripts"
     affiliate.resources.layout.layoutPath = APPLICATION_PATH "/ modules / affilié / layouts / scripts" 
  2. Créez votre aide d'action:
      <? Php
     / **
      * Définit le chemin tracé sur une base par module
      *
      * @ Author Lloyd Watkin <lloyd@evilprofessor.co.uk>
      * @ Depuis 2010-01-01
      * /
     Classe Pro_Controller_Action_Helper_SetLayoutPath
         s'étend Zend_Controller_Action_Helper_Abstract
     {
         / **
          * Définit le chemin aménagement basé sur le module
          * /
         preDispatch fonction publique ()
         {
        	 $ Module = $ this-> getRequest () -> getModuleName ();
    
    	     if ($ bootstrap = $ this-> getActionController ()
    	                        -> GetInvokeArg («bootstrap»)) {
    
    	         $ Config = $ bootstrap-> getOptions ();
    
    	         if (isset ($ config [$ module] ['ressources'] ['layout'] ['layoutPath'])) {
    	             LayoutPath $ =
    	                  [Module $] $ config ['ressources'] ['layout'] ['layoutPath'];
    	             $ This-> getActionController ()
    	                  -> GetHelper ("layout")
    	                  -> SetLayoutPath (layoutPath $);
    	         }
        	 }
         }
     } 
  3. Et enfin boostrap l'aide d'action:
      ...
         / **
          * Met en place des scripts sur une mise en page par module
          * /
         protégée fonction _initLayoutHelper ()
    	 {
    	     $ This-> bootstrap ('frontController');
    	     $ Layout = Zend_Controller_Action_HelperBroker:: addHelper (
    	         nouvelle Pro_Controller_Action_Helper_SetLayoutPath ());
    	 }
     ... 

Doctrine: DATETIME défaut MAINTENANT ()

Par , Mercredi 30 Décembre 2009 18:30

J'ai été aux prises avec la mise en place un schéma de base pour un nouveau Zend Framework projet. Je suis utilisant d'essayer d'utiliser Doctrine ORM pour mes modèles de bases de données. J'ai besoin de mettre en place le schéma afin qu'il m'a permis de fixer une date et heure par défaut pour un `datetime` colonne, par exemple lorsque vous ajoutez un nouveau message je obtenir le timestamp courant. Après de longues recherches et d'expérimentation que j'ai trouvé la solution afin que je le partage.

Dans votre schéma YAML fichier simplement faire ce qui suit:

 Message:
   ActAs:
     Timestampable:
       créé:
         Nom: created_at
         Type: timestamp
         Format: Ymd H: i: s
       Mise à jour:
         Nom: LAST_UPDATED
         Type: timestamp
         Format: Ymd H: i: s
   colonnes:
     Identifiant:
       Type: entier
       primaires: vrai
       autoincrement: true
     Nom: string (255)
     courriel: string (300)
     message: String (2000)

Si d'autre part vous ne voulez pas une `updated_at` vous pouvez utiliser les éléments suivants:

 Message:
   ActAs:
     Timestampable:
       créé:
         Nom: created_at
         Type: timestamp
         Format: Ymd H: i: s
       Mise à jour:
         personnes handicapées: true
   colonnes:
     Identifiant:
       Type: entier
       primaires: vrai
       autoincrement: true
     Nom: string (255)
     courriel: string (300)
     message: String (2000)

Zend Framework: Fondamentaux - Revue

Par , samedi 28 Novembre 2009 22h42

Mon employeur a récemment payé pour un groupe d'entre nous de prendre les développeurs de Zend Framework: Fondements bien sûr, ici, je vais résumer mes pensées et mes opinions sur le parcours pour les autres. Pour ceux qui cherchent à gagner du temps, voici mon résumé:

Pour les développeurs qui n'ont pas eu le temps de regarder le Zend Framework ce cours (Zend Framework: Fondamentaux) offre une bonne vue d'ensemble du cadre de vous présenter les principaux domaines et de donner suffisamment d'informations pour continuer. Pour ceux qui ont passé du temps à regarder le cadre et ont suivi un ou deux tutoriels ce cours n'offre pas beaucoup au-delà.

Contexte

J'ai été un PHP développeur pour environ 5-6 ans, et ont commencé à travailler avec le Zend Framework pour chaque composante au cours des 6 derniers mois. J'ai développé et / ou un développeur sur un couple de petits Zend Framework MVC sites. Je vais être honnête, je n'ai pas eu une énorme quantité d'exposition à d'autres cadres d'un point de vue du code, mais ont passé plusieurs heure des recherches sur les sites du projet et évaluer them.â Le cadre et la communauté environnante du Zend Framework, il est tout à fait passionnant et il semble y avoir des possibilités énormes dans où il va.

À propos du cours

Le cours est dispensé plus de 9 deux sessions WebEx heures (avec une pause de 10 minutes dans le milieu). Le temps est passé en passant par une série de diapositives fournies par Zend avec une discussion à tout moment. Vous pouvez utiliser un microphone pour parler à l'instructeur, mais pour être honnête, je n'ai vu personne utiliser autre chose que la fenêtre de chat. En plus d'une machine VMWare Ubuntu est fourni qui a des exemples de code et des projets mis en place une version d'essai a de Zend Studio. Les pourparlers animateur de cours aux participants soit plus d'une solution intégrée de VoIP, ou vous pouvez composer en utilisant l'une des nombreuses composer dans le monde en chiffres.

Au cours de la matière se compose d'un bref aperçu du cadre et le modèle MVC avant d'aller dans un exemple d'application le livre d'or. La discussion a démontré bootstrapping, Zend_Application, tables DB, la base de données d'accès, les formes, filtrage, ACL, Validation, etc, etc Fondamentalement couvrant tous les sujets que vous avais besoin pour obtenir un site de base jusqu'à une marche tout le temps en vous donnant les outils pour aller chercher plus avancés dans le cadre (bien que cela ne montant à 'Voir le site "la plupart du temps).

Temps est donné au code de quelques exemples, et de développer le «livre» et simple application «wiki». Personnellement je me suis senti que fournir le code ou chaque application et ensuite nous demander de développer ce qui était essentiellement une copie aux côtés n'a pas vraiment une bonne expérience d'apprentissage. J'aurais préféré pour développer une application similaire mais non identique. à l'exemple d'application avec l'avantage d'avoir un guide à consulter. Alternativement construire des applications à partir de zéro avec le démonstrateur serait d'éventuellement conduit à davantage de questions sur pourquoi et comment, donnant ainsi une meilleure compréhension du cadre, après tout, vous pouvez consulter les détails après le cours.

La dernière conférence a consisté à travailler sur l'application wiki avec l'aide / des conseils de l'instructeur. Après la rétroaction cours a été suivi, il a été souligné à plusieurs reprises à travers le cours que prend Zend commentaires très au sérieux, en fait, apparemment notre version de ce cours était tout à fait nouveau. Certains des autres développeurs de la société sera de suivre le cours dès sorte qu'il sera intéressant de voir si ce qui s'est passé.

Le style bien sûr était informelle, a permis pour la rétroaction et la collaboration entre les participants et le formateur. Le chef de cours a été conviviale, abordable (adresses e-mail ont été partagés pour les questions), et tandis que sa présentation de la glisse a été un peu fragile semblait pleinement compétente dans le cadre. Il était clairement quelqu'un qui a utilisé le cadre sur une base régulière plutôt que quelqu'un qui est appris à enseigner le cours, j'ai aimé l'expérience du «monde réel» à cet égard.

Sentiment général

D'une certaine manière j'ai trouvé le cours une perte de temps, dans d'autres elle était très pratique. J'espère que je vais obtenir mon raisons travers clairement, et peut-être apporter quelques éléments de réflexion ou de rétroaction utile (me connaissant il est peu probable!).

Pour moi ce cours était destiné à un niveau trop bas. Ayant passé par le guide de démarrage rapide, lisez Rob Allen Zend Framework in Action, et a travaillé avec le cadre un peu, je n'ai pas vraiment obtenir quelque chose trop. Je voudrais d'aimé le cours de ramasser de la fin de l'installation rapide et de développer des compétences supplémentaires.

Cela dit, le titre du cours ne énoncer clairement "Zend Framework: Principes fondamentaux» et dans cet aspect du cours atteint ce qu'il se propose de faire. Les autres membres de l'équipe de développement qui n'ont pas passé le temps à la recherche dans le cadre de chaque session terminée avec enthousiasme et ont posé des questions qui était vraiment agréable à voir.

Tout n'était pas perdu, il était bon de passer du temps pour confirmer les détails de base du cadre et l'occasion de poser quelques questions dans des domaines où je n'étais pas à 100%. Il était également temps que j'ai obtenu de s'asseoir chaque jour et penser à codage utilisant le cadre et les projets futurs, quelque chose que je ne serait pas d'été en mesure de faire autrement (pouvez-vous imaginer votre entreprise acceptant que:?)). Last but not least, vous obtenez également un certificat de Nice à partir de Zend à dire que vous avez fréquenté le cours (quoique par email).

Certification Zend Framework

Cela a été une question qui revenait à l'esprit pendant le cours, ne serait-il me préparer à la certification? Le simple, rapide est un non retentissant. L'instructeur a été très clair sur ce avec les conseils supplémentaires que pour la certification, vous devez vraiment être en utilisant le cadre sur une base quotidienne et se sentir très à l'aise et confiant dans son utilisation et de méthodologies.

Résumé

Compte tenu de tout ce que j'ai écrit ci-dessus, je vais tout résumer en deux points de balle facile:

  • Nouveau à Zend Framework: Ce cours fait exactement ce que vous attendez, il vous donne une bonne introduction au cadre et une bonne base sur les bases à partir de laquelle vous pouvez construire. Le cours semble susciter l'intérêt et l'enthousiasme pour le cadre parmi les développeurs.
  • Utilisé le Zend Framework: Bien qu'il était agréable de consolider certaines des bases très J'ai senti le temps, d'efforts et de fonds de suivre le cours de l'été pourrait mieux dépensé ailleurs. Il sera agréable de SCEE Zend créer un cours de niveau plus élevé de nouveaux développeurs pour prendre au prochain niveau -. Au moins à la norme de certification et au-delà pour que je signe immédiatement.

Connexion à la DB en utilisant le Zend Framework

Par , mardi 14 avril 2009 21:06

J'ai réussi à obtenir un site et d'exécution avec le Zend Framework , tout est bien l'exploitation forestière à Firebug / FirePHP sorte étape suivante a consisté à se connecter à la DB. Je voulais aussi vous connecter quelques informations supplémentaires en utilisant le cadre comme agent d'utilisateur, la date et l'heure, GET et POST variables. Alors pour prolonger le manuel un peu ici ce que j'ai fait:

// Set up logging to DB
$db = Zend_Registry ::get('dbAdapters');
$db = $db['general'];

$ ColumnMapping = array ('prioritaire' => 'prioritaire',
'Message' => 'message',
'Datetime' => 'timestamp',
«User_agent '=>' user_agent»,
«Get_vars '=>' get_vars»,
«Post_vars '=>' post_vars»,
'Site' => 'site'
);

WriterDb $ = new Zend_Log_Writer_Db ($ db, 'error_logging', $ ColumnMapping);
$ Logger = new Zend_Log (writerDb $);

$ Logger-> setEventItem ('datetime', date ('Ymd H: i: s'));
$ Logger-> setEventItem ('user_agent', $ _SERVER ['HTTP_USER_AGENT']);
$ Logger-> setEventItem ('get_vars', print_r ($ _GET, true));
$ Logger-> setEventItem ('post_vars', print_r ($ _POST, true));
$ Logger-> setEventItem («site», site);

$ Logger-> info ("Message d'information");

Où les clés du tableau en $ ColumnMapping sont mes noms de colonnes. «Prioritaires» et «message» sont comprises par Zend_Log_Writers mais les champs supplémentaires ont été ajoutés à me donner quelques informations supplémentaires.

Évidemment, cela suppose que vous avez journalisation de travail en utilisant l'un des écrivains les autres premiers:)













Thème Panorama par Themocracy

7 visiteurs en ligne aujourd'hui
6 invités, 1 bots, 0 membres
Max visiteurs aujourd'hui: 16 à 12:59 UTC
Ce mois-ci: 19 à 06h09 UTC 19-08-2011
Cette année: 130 à 28-03-2011 22:40 UTC
Tout le temps: 130 à 28-03-2011 22:40 UTC