Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 29-03-2012 09:00:28

BeRoots
Membre
Date d'inscription: 15-05-2008
Messages: 79

[resolu]Classe de plugin introuvable...

Bonjour à tous smile

Je recherche à utiliser un plugin pour redefinir le dossier de layout pour chaque module.

le plugin (application/commonsPlugins/setModularLayoutPlugin.php):

Code:

[lang=php]
class setModularLayoutPlugin extends Zend_Controller_Plugin_Abstract
{
    /**
    * Chargement de la configuration des layouts suivant le modules
    * appelé en surchargent la methode routeShutdown
    *
    * @name    routeShutdown
    * @access  public
    * @param   object $request object request du front controlleur
    */
    public function routeShutdown(Zend_Controller_Request_Abstract $request)
    {
        // on recupere le module cible de l'objet request
        $module = $request->getModuleName();
        // on definit les options par defaut de layout pour le module appelé
        $layout_options = array(
            'layout'     => 'DefaultLayout',
            'layoutPath' => 'application/modules/'.$module.'/layouts/',
            'contentKey' => 'content'
        );
        // on lance le MVC et on definit le typage
        $layout = Zend_Layout::startMvc($layout_options);
        $layout->getInflector()->setTarget(':script.:suffix')
                               ->setStaticRule('suffix', 'phtml');
    }
}

voilà mon index.php

Code:

[lang=php]
<?php

// Define path to application directory
defined('APPLICATION_PATH')
    || define('APPLICATION_PATH', realpath(dirname(__FILE__) . '/../application'));

// Define application environment
defined('APPLICATION_ENV')
    || define('APPLICATION_ENV', (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV') : 'production'));

// Ensure library/ is on include_path
set_include_path(implode(PATH_SEPARATOR, array(
    realpath(APPLICATION_PATH . '/../library'),
    realpath(APPLICATION_PATH),
    realpath(APPLICATION_PATH . '/../commonsPlugins/'),      //ici mon inclusion du path des plugins
    realpath(APPLICATION_PATH . '/modules/default/models/'),
    realpath(APPLICATION_PATH . '/modules/default/plugins/'),
    realpath(APPLICATION_PATH . '/modules/default/forms/'),
    get_include_path(),
)));

/** Zend_Application */
require_once 'Zend/Application.php';

// Create application, bootstrap, and run
$application = new Zend_Application(
    APPLICATION_ENV,
    APPLICATION_PATH . '/configs/application.ini'
);
$application->bootstrap()
            ->run();

Et mon appel au plugin dans le bootstrap

Code:

[lang=php]
    /*
    * instanciation et paramètrage de Zend_Controller_Front (singleton de contrôleur frontale)
    *
    * @name    _initControllerFront
    * @access  public
    * @return  object Zend_Controller_Front object
    */
   protected function _initControllerFront()
    {
        self::$frontController = Zend_Controller_Front::getInstance();
        self::$frontController->setBaseUrl('/');
        self::$frontController->registerPlugin(new setModularLayoutPlugin());
    }

J'ai l'erreur suivante:

Fatal error: Class 'setModularLayoutPlugin' not found in C:\wamp\www\at-home-media-cli\application\Bootstrap.php on line 150

Est je oublié quelque chose ?
Merci d'avance wink

Dernière modification par BeRoots (03-04-2012 13:51:41)


wink Non au language SMS sur nos forums wink

Hors ligne

 

#2 29-03-2012 09:52:14

Roromix
Membre
Date d'inscription: 05-12-2011
Messages: 55

Re: [resolu]Classe de plugin introuvable...

Bonjour,

As-tu essayé de remplacer:

Code:

[lang=php]realpath(APPLICATION_PATH . '/../commonsPlugins/')

par

Code:

[lang=php]realpath(APPLICATION_PATH . '/commonsPlugins/')

??

Dernière modification par Roromix (29-03-2012 09:53:58)

Hors ligne

 

#3 29-03-2012 16:28:33

BeRoots
Membre
Date d'inscription: 15-05-2008
Messages: 79

Re: [resolu]Classe de plugin introuvable...

Bon, j'étais un peu HS et je n'ai pas mis le bon index.php :p

Je corrige donc:

Code:

[lang=php]
<?php

// Define path to application directory
defined('APPLICATION_PATH')
    || define('APPLICATION_PATH', realpath(dirname(__FILE__) . '/../application'));

// Define application environment
defined('APPLICATION_ENV')
    || define('APPLICATION_ENV', (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV') : 'production'));

// Ensure library/ is on include_path
set_include_path(implode(PATH_SEPARATOR, array(
    realpath(APPLICATION_PATH . '/../library'),
    realpath(APPLICATION_PATH . '/commonsPlugins'),
    realpath(APPLICATION_PATH . '/modules/default/models'),
    realpath(APPLICATION_PATH . '/modules/default/plugins'),
    realpath(APPLICATION_PATH . '/modules/default/forms'),
    get_include_path(),
)));

echo get_include_path();

/** Zend_Application */
require_once 'Zend/Application.php';

// Create application, bootstrap, and run
$application = new Zend_Application(
    APPLICATION_ENV,
    APPLICATION_PATH . '/configs/application.ini'
);
$application->bootstrap()
            ->run();

J'ai toujours la même erreur:

Fatal error: Class 'setModularLayoutPlugin' not found in C:\wamp\www\monsitezf\application\Bootstrap.php on line 150

fonction ---> Bootstrap->_initControllerFront( )

Voici un echo de get_include_path():

C:\wamp\www\monsitezf\library;C:\wamp\www\monsitezf\application\commonsPlugins;C:\wamp\www\monsitezf\application\modules\Default\models;;;.;C:\php\pear

Si quelqu'un a une idée? wink

Dernière modification par BeRoots (29-03-2012 16:30:56)


wink Non au language SMS sur nos forums wink

Hors ligne

 

#4 01-04-2012 12:01:11

BeRoots
Membre
Date d'inscription: 15-05-2008
Messages: 79

Re: [resolu]Classe de plugin introuvable...

Vraiment personne n'a une idée?
Je n'est pour l'heure qu'une application faite comme suis:

Code:

[lang=shell]
zf create project monprojet
zf enable layout
zf create module monblog

apres vous avez tout ce qui faut entre le index.php à la racine corrigé si dessus et le reste en premier post...

C'est encore du par defaut comme utilisation et donc le dossier du plugin de chargement de path pour les layout suivant le path vers le dossier de module appelé. donc /appliction/commonsPlugins/

Moi je voit pas où si ce n'est le index.php où ce fait l'inclusion via set_include_path() mais pourtant le chemin est correct ???

Si quelqu'un à une idée... Merci d'avance wink


wink Non au language SMS sur nos forums wink

Hors ligne

 

#5 03-04-2012 13:51:11

BeRoots
Membre
Date d'inscription: 15-05-2008
Messages: 79

Re: [resolu]Classe de plugin introuvable...

Bien... Le problème était du coté de l'autoloader en fin de compte.... Je n'avais pas déclarer d'espace de nommage...

Encore Merci smile


wink Non au language SMS sur nos forums wink

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