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