Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 22-06-2008 12:18:36

acharrex
Membre
Lieu: Suisse
Date d'inscription: 27-04-2008
Messages: 135

[Zend_Controller_Plugin] Organisation des fichiers et accès aux vues

Salut,

Je viens de me mettre à l'utilisation des plugins et je me posais quelques petites questions. Tout d'abord, voici mes quelques fichiers :

./index.php (bootstrap) :

Code:

<?php
set_include_path('.'
    . PATH_SEPARATOR . './library'
    . PATH_SEPARATOR . './application/default/models/'
    . PATH_SEPARATOR . './application/admin/models/'
    . PATH_SEPARATOR . get_include_path());

// ...

Zend_Loader::loadClass('Zend_Controller_Plugin_Abstract');
require_once('./application/default/controllers/plugins/myplugin.php');

$router = new Zend_Controller_Router_Rewrite();
$router->addRoute(
    "default",
    new Zend_Controller_Router_Route(
        "/:language/:modules/:controller/:action/*",
        array(
            "language"      =>  "fr",
            "modules"       =>  "default",
            "controller"    =>  "index",
            "action"        =>  "index"
        )
    )
);
 
$frontController = Zend_Controller_Front::getInstance();
$frontController->throwExceptions(true)
                       ->setRouter($router)
                      ->addModuleDirectory("./application")
                      ->registerPlugin(new MyPlugin())
                      ->dispatch();

./application/default/controllers/plugins/myplugin.php (le plugin lui-même) :

Code:

<?php

class MyPlugin extends Zend_Controller_Plugin_Abstract
{
    
    
    public function preDispatch(Zend_Controller_Request_Abstract $request)
    {
        
        $viewRenderer = Zend_Controller_Action_HelperBroker::getStaticHelper('viewRenderer');
        $viewRenderer->initView();

        $viewRenderer->view->headLink()->appendStylesheet("css/styles.css", 'screen, print');
        $viewRenderer->view->headScript()->appendFile("js/main.js");
        $viewRenderer->view->assign("stats", 15);

        return;
        
    }

}

Et dans une de mes vues :

Code:

<html>
    <head>
        <?php echo $this->headLink(); ?>
        <?php echo $this->headScript(); ?>
    </head>
    <body>
        <p>Stats : <?php echo $this->stats; ?></p>
    </body>
</html>

Déjà, je me demandais s'il n'existait un moyen permettant d'éviter de devoir inclure "manuellement" chaque plugin que je créerais dans le répertoire "application/default/controllers/plugins". Donc de supprimer cette ligne du bootstrap :

Code:

require_once('./application/default/controllers/plugins/myplugin.php');

Ensuite, n'y aurait-il pas un moyen plus simple de passer des valeurs du plugin à ma vue (sans utiliser le viewRenderer) ?

Voilà, je pense que c'est tout. Merci d'avance pour vos réponses wink

Dernière modification par acharrex (22-06-2008 12:24:39)

Hors ligne

 

#2 22-06-2008 17:19:54

-=blu3+3y3s=-
Membre
Lieu: Toulouse
Date d'inscription: 01-04-2008
Messages: 47

Re: [Zend_Controller_Plugin] Organisation des fichiers et accès aux vues

Salut,
je crois que tu as la solution à ta question ici

A+

Hors ligne

 

#3 22-06-2008 17:36:01

acharrex
Membre
Lieu: Suisse
Date d'inscription: 27-04-2008
Messages: 135

Re: [Zend_Controller_Plugin] Organisation des fichiers et accès aux vues

Salut,

Merci je me suis justement inspiré de ce topic pour en arriver là. Mais maintenant je me demandais s'il existait une meilleure solution.

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages