Utiliser Zend_Layout
    
    
        L'utilisation classique de Zend_Layout est simple. En supposant
        que vous utilisez Zend_Application, il suffit simplement de
        passer des options de configuration et créer un script de layout.
     
    Layout Configuration
        
        
            L'endroit recommandé pour stocker les layouts est
            "layouts/scripts/" dans l'application:
         
        application  
|-- Bootstrap.php  
|-- configs  
|   `-- application.ini  
|-- controllers  
|-- layouts  
|   `-- scripts  
|       |-- layout.phtml 
  
        
            Pour initialiser Zend_Layout, ajouter ceci à votre fichier
            de configuration ("application/configs/application.ini"):
         
        resources.layout.layoutPath = APPLICATION_PATH "/layouts/scripts"  
resources.layout.layout = "layout" 
  
        
            La première ligne indique où chercher les scripts de layout; la seconde donne le
            nom du script à utiliser (l'extension est supposée ".phtml"
            par défaut).
         
     
    Créer un script de layout
        
        
            Il convient maintenant de créer un script de layout. D'abord, vérifiez l'existance du
            dossier "application/layouts/scripts"; puis ouvrez un éditeur et
            créez une mise en page balisée. Les scripts de layout sont des scripts de vue, avec
            quelques différences tout de même.
         
        <html>  
<head>  
    <title>My Site</title>  
</head>  
<body>  
    <?php echo $this-> layout()-> content ?>  
</body>  
</html> 
  
        
            Dans l'exemple ci-dessus, un appel à l'aide de vue  layout() y
            est effectué. Lorsque vous activez l'instance de Zend_Layout,
            vous avez aussi accès à une aide d'acion et de vue qui permettent d'accéder à l'instance
            de Zend_Layout; et vous pouvez ainsi appeler des méthodes
            sur l'objet layout. Dans notre cas, nous récupérons une variable appelée
            $content, et nous l'affichons. Par défaut, $content
            est peuplée du contenu de la vue rendue pour l'action en cours. Sinon, tout ce que vous
            feriez dans un script de vue est valide dans un script de layout: appel d'aides ou
            de méthodes sur la vue.
         
        
            Maintenant, nous avons un script de layout fonctionnel et notre application sait où le
            trouver.
         
     
    Accéder à l'objet Layout
        
        
            Il est probable que vous ayez besoin d'accéder à l'objet instance layout. Cela est
            possible de trois manières:
         
        
            - 
                
                    Dans des scripts de vue: utilisez l'aide de vue
                     layout(), qui retourne l'instance de
                    Zend_Layout enregistrée au moyen du plugin MVC.
                 
                <?php $layout = $this->layout(); ?> 
  
                
                    Comme cela retourne l'objet de layout, vous pouvez appeler dessus toute méthode
                    ou assigner des variables.
                 
             
            - 
                
                    Dans vos contrôleurs: utilisez ici l'aide d'action
                     layout(), qui agit comme l'aide de vue.
                 
                // Appel de l'aide comme méthode sur le gestionnaire d'aides:  
$layout = $this->_helper->layout();  
   
// Ou, de manière plus détaillée:  
$helper = $this->_helper->getHelper('Layout');  
$layout = $helper->getLayoutInstance(); 
  
                
                    Comme avec l'aide de vue, vous pouvez appeler dès lors n'importe quelle
                    méthode de layout ou lui assigner des variables.
                 
             
            - 
                
                    Ailleurs:  utilisez la méthode statique
                     getMvcInstance(). Cette méthode retourne l'instance
                    de layout comme déja vu plus haut maintenant.
                 
                $layout = Zend_Layout::getMvcInstance(); 
  
             
            - 
                
                    Via le bootstrap:  utilisez la ressource layout qui
                    crée, configure et retourne l'objet Zend_Layout.
                 
                $layout = $bootstrap->getResource('Layout'); 
  
                
                    Partout où vous avez accès à l'objet bootstrap, il s'agit de la méthode
                    recommandée par rapport à  getMvcInstance().
                 
             
         
     
    Autres opérations
        
        
            Dans la plupart des cas, le script de configuration de layout ci-dessus (avec quelques
            modifications) répondra à vos besoins. Cependant, dans certains cas il peut être
            intéressant d'utiliser d'autres fonctionnalités. Dans les exemples qui suivent,
            vous allez utiliser une desméthodes listées ci-dessus pour
            récupérer l'objet layout.
         
        
            - 
                
                    Affecter les variables de layout.
                    Zend_Layout garde en mémoire les variables de vue
                    spécifiques à la layout, la clé $content en est un
                    exemple. Vous pouvez assigner et récupérer ces variables grâce à la méthode
                     assign() ou en y accédant comme des attributs
                    classiques.
                 
                // Affecter du contenu:  
$layout->somekey = "foo"  
   
// Afficher ce même contenu:  
echo $layout-> somekey;  // 'foo'  
   
// Utiliser la méthode assign() :  
$layout->assign('someotherkey', 'bar');  
   
// Accéder à la variable reste identique:  
echo $layout-> someotherkey;  // 'bar' 
  
             
            - 
                
                     disableLayout(). Occasionellement, vous pouriez vouloir
                    d"sactiver totalement les layouts, par exemple, pour répondre à une requête AJAX
                    ou autravers d'une API RESTful. Dans ces cas, appelez la méthode
                     disableLayout() de l'objet layout.
                 
                $layout->disableLayout(); 
  
                
                    Le contraire de cette méthode,  enableLayout(), permet
                    de ré-activer le rendu des layouts pour l'action en cours.
                 
             
            - 
                
                    Utiliser un autre script de layout: Si vous avez plusieurs scripts
                    de layout pour votre application, vous pouvez selectionner lequel rendre grâce à la
                    méthode  setLayout(). Précisez alors le nom du script de layout,
                    sans l'extension.
                 
                // Utiliser le script de layout "alternate.phtml":  
$layout->setLayout('alternate'); 
  
                
                    Le script de layout doit se trouver dans le $layoutPath précisé via
                    la configuration (en bootstrap générallement). Zend_Layout
                    utilisera le nouveau script à rendre.
                 
             
         
     
 
         
            
 | 
         
 
  |