Zend-πλαίσιο Per-Ενότητα με βάση τις ρυθμίσεις
Έχω δημιουργήσει ένα σε αυτή τη θέση η οποία απαιτεί λιγότερη ρύθμιση, ανατρέξτε στην Ενότητα Βασισμένο Διάταξη - Zend-πλαίσιο .
Όταν χρησιμοποιείτε το Zend-πλαίσιο με τις ενότητες, προφανές, ότι αν τρέχετε διαφόρων (υπο-) περιοχές από την ίδια αίτηση δεν θέλετε αναγκαστικά το ίδιο σενάρια διάταξη για κάθε τμήμα. Αποφάσισα να πάω με την ακόλουθη δομή της ιστοσελίδας:
/ Εφαρμογή / Ελεγκτές ... / Μοντέλα / Modules / Default / Ελεγκτές / Layout / Σενάρια / Απόψεις / Σενάρια / AnotherModule ... / Σενάρια
Το πρόβλημα ήταν για τη σύσταση της διάταξης σενάρια για μια ανά μονάδα βάσης. Η απάντηση ήρθε μέσα από τη χρήση Δράσης Helper. Ρύθμιση του σχεδιαγράμματα σε ένα ανά μονάδα βάσης περιλαμβάνει τρία βήματα:
- Application.ini (ή παρόμοια εγκατάσταση διαμόρφωση):
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 / μέλη / layouts / scripts "affiliate.resources.layout.layoutPath = APPLICATION_PATH" / modules / θυγατρικών / layouts / scripts " - Δημιουργήστε Δράση Helper σας:
<? Php / ** * Ορίζει τη διαδρομή διάταξης σε μια ανά μονάδα βάσης * * @ Συγγραφέας Λόιντ Watkin <lloyd@evilprofessor.co.uk> * @ Δεδομένου 01/01/2010 * / τάξη Pro_Controller_Action_Helper_SetLayoutPath επεκτείνει Zend_Controller_Action_Helper_Abstract { / ** * Διαδρομή διάταξης Σετ που βασίζονται στην ενότητα * / δημόσια preDispatch λειτουργία () { $ Ενότητα = $ this-> getRequest () -> getModuleName ()? if ($ bootstrap = $ this-> getActionController () -> GetInvokeArg («εκκίνησης»)) { $ Config = $ bootstrap-> getOptions ()? αν (isset ($ config ['layout'] [$ ενότητας] ['πόρων'] ['layoutPath'])) { $ LayoutPath = $ Config [$ ενότητα] ['layout'] ['πόρων'] ['layoutPath']? $ This-> getActionController () -> GetHelper («διάταξη») - SetLayoutPath> ($ layoutPath)? } } } }
- Και boostrap τέλος, η βοηθός δράσης:
... / ** * Διαμορφώνει σενάρια διάταξης στην ανά μονάδα βάσης * / προστατεύονται _initLayoutHelper λειτουργία () { $ This-> bootstrap («frontController ')? $ Layout = Zend_Controller_Action_HelperBroker:: addHelper ( νέα Pro_Controller_Action_Helper_SetLayoutPath ())? } ...


















































Γεια σας ευχαριστώ για την πρώτη σας βοηθήσει φροντιστήριο, αλλά να μου πείτε πού μπορώ να δημιουργήσω βοηθός δράση με το όνομα του αρχείου μάγισσα;
behrang
Γεια σου Behrang, να δημιουργήσει ο βοηθός δράσης με όποιο όνομα θέλετε, έχω τη δική «βιβλιοθήκη» μου με το χώρο ονομάτων «Pro». Θα μπορούσατε ακριβώς όπως καλέσετε εύκολα «SetLayoutPath» την τάξη και το βάζουμε όπου κι αν θέλετε, υπό την προϋπόθεση ο κώδικας μπορεί να το βρει και να επεκτείνετε τις απαιτούμενες τάξεις
Γεια σου, IAM συγχέεται με τη δημιουργία μονάδας ειδικές ρυθμίσεις της βάσης δεδομένων ... Έχει κανείς μια ιδέα;
Νομίζω ότι αυτό θα μπορούσε εύκολα να επιτευχθεί usign παραπάνω μοτίβο. Πρώτον, να δημιουργήσει τις επιλογές στο αρχείο ini σας κατά μήκος των αρχείων:
moduleName.db.user = "
moduleName.db.password = "
moduleName2.db.user = "
... Κλπ ...
Στη συνέχεια, δημιουργούν απλώς σύνδεσης της βάσης δεδομένων σας όπως σας βολεύει (Zend_Db:: Εργοστάσιο () ή κάτι παρόμοιο) και stash μακριά στο μητρώο ή να ορίσετε ως προεπιλεγμένο τον προσαρμογέα όταν χρησιμοποιείτε Zend_Db_Table (Zend_Db_Table:: setDefaultAdapter ()).