Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 10-11-2012 00:35:12

NicoC
Membre
Date d'inscription: 03-11-2012
Messages: 13

[Résolu][ZF1.10] Autoloader & Class

Bonsoir,

J'ai un petit soucis sur l'auto-chargement d'une class se trouvant dans le dossier forms de mon application.

Voici pour commencer la structure de mon appli :
http://kcin.testing-ground.lorbac.net/zend/imgForum/structureApp.jpg

Les champs de mon formulaire sont paramétrés dans la fonction init() de la class

Code:

class Core_forms_CreateUser extends Zend_Form
{
...
}

Elle se situe dans application/Core/forms/CreateUser.php

J'instancie cette class dans mon controller Login, via l'action create :

Code:

public function createAction()
{
      $form = new Core_forms_CreateUser();
}

Malheureusement, à l'éxécution, çà me sort une erreur :

Fatal error: Class 'Core_forms_CreateUser' not found in /home/kcin/www/TNA/application/Core/controllers/LoginController.php on line 47

Mais dès que je mets un require_once avant l'instanciation, çà fonctionne.
Que me manque t'il, ou plutôt sur quoi Zend bloque pour ne pas réussir à comprendre Core_forms_CreateUser en Core/forms/CreateUser.php ?

Merci beaucoup.

Dernière modification par NicoC (10-11-2012 20:00:11)

Hors ligne

 

#2 10-11-2012 13:49:16

shadypierre
Membre
Date d'inscription: 24-03-2010
Messages: 617

Re: [Résolu][ZF1.10] Autoloader & Class

Tu n'as pas une architecture standard. Nommer une classe avec des minuscules dans son nom est une mauvaise pratique.

A quoi ressemble ton application.ini et ton Bootstrap.php ?

Hors ligne

 

#3 10-11-2012 13:56:47

NicoC
Membre
Date d'inscription: 03-11-2012
Messages: 13

Re: [Résolu][ZF1.10] Autoloader & Class

En ce qui concerne le nom de la class, même avec des majuscules, çà fonctionne pas (Core_Forms_CreateUser)


Application.ini
Certains éléments sont pas nécessaire. Je les ai pas encore retiré.

Code:

[production]

phpSettings.display_errors = 0

includePaths.library = ROOT_PATH "/library"

bootstrap.class = Bootstrap
bootstrap.path = ROOT_PATH "/application/Bootstrap.php"

appnamespace = App
pluginPaths.My_Application_Resource = ROOT_PATH "/library"

resources.frontController.defaultModule = Core
resources.frontController.controllerDirectory = ROOT_PATH "/application/Core/controllers"
resources.frontController.moduleDirectory = ROOT_PATH "/application"

resources.modules[] = 

resources.layout.layout = layout
resources.layout.layoutPath = ROOT_PATH "/application/Core/views/layouts"
resources.view.doctype = XHTML1_TRANSITIONAL

resources.cachemanager.front.frontend.name = "Core"
resources.cachemanager.front.frontend.options.caching = 1
resources.cachemanager.front.frontend.options.lifetime = 7200
resources.cachemanager.front.frontend.options.automatic_serialization = 1
resources.cachemanager.front.backend.name = "ZendServer_Disk"

resources.cachemanager.metadata.frontend.name = "Core"
resources.cachemanager.metadata.frontend.options.caching = 1
resources.cachemanager.metadata.frontend.options.lifetime = "86400"
resources.cachemanager.metadata.frontend.options.automatic_serialization = 1
resources.cachemanager.metadata.backend.name = "ZendServer_Disk"

resources.cachemanager.i18n.frontend.name = "Core"
resources.cachemanager.i18n.frontend.options.caching = 0
resources.cachemanager.i18n.frontend.options.lifetime = 86400
resources.cachemanager.i18n.frontend.options.automatic_serialization = 1
resources.cachemanager.i18n.backend.name = "ZendServer_Disk"

resources.locale.cache = i18n

resources.translate.adapter = array
resources.translate.data = ROOT_PATH "/application/Core/i18n"
resources.translate.locale = browser
resources.translate.options.scan = directory
resources.translate.options.disableNotices = 1
resources.translate.cache = i18n

resources.log.stream.writerName = Stream
resources.log.stream.writerParams.stream = ROOT_PATH "/data/log/error.log"

enableAutoloaderCache = 1

[development : production]

phpSettings.display_errors = 1
enableAutoloaderCache = 0

resources.log.firebug.writerName = Firebug




[testing : production]
phpSettings.display_errors = 1
resources.translate.locale = fr
resources.frontController.returnResponse = true



resources.cachemanager.i18n.frontend.options.caching = 0
resources.cachemanager.metadata.frontend.options.caching = 0
resources.cachemanager.cache.frontend.options.caching = 0

resources.log.stream.writerName = "Null"

[staging : production]

Bootstrap application :

Code:

<?php 

class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{
    
    protected function _initDefaultTranslation()
    {
        if (!$this->hasResource('locale')) {
            $this->bootstrap('locale');
        }
        
        if (!$this->hasResource('translate')) {
            $this->bootstrap('translate');
        }
        
        $language = $this->getResource('locale')->getLanguage();
        $translate = $this->getResource('translate');
        if (!$translate->isAvailable($language)) {
            $translate->setLocale('fr');
        }
        
        $writer = new Zend_Log_Writer_Stream(
            ROOT_PATH . '/data/log/untranslated.log'
        );
        $logger = new Zend_Log($writer);
        $translate->setOptions(
            array(
                'log' => $logger,
                'logUntranslated' => true
            )
        );
        
    }
    
    protected function _initAutoloaderCache()
    {
        $enabled = (bool) $this->getOption('enableAutoloaderCache');
        if ($enabled) {
            $file = ROOT_PATH . DIRECTORY_SEPARATOR .
                    'data' . DIRECTORY_SEPARATOR . 
                    'loaderCache.php';
            
            if (file_exists($file)) {
                require_once $file;
            }
            Zend_Loader_PluginLoader::setIncludeFileCache($file);
        }
    }
    

    
    
}

Bootstrap module :

Code:

<?php

class Core_Bootstrap extends Zend_Application_Module_Bootstrap
{
    
    protected function _initLoadNavConfig()
    {
         $navConfig = new Zend_Config_Ini(
             ROOT_PATH . DIRECTORY_SEPARATOR .
             'application' . DIRECTORY_SEPARATOR .
             'Core' . DIRECTORY_SEPARATOR . 
             'configs' . DIRECTORY_SEPARATOR . 
             'navigation.ini', APPLICATION_ENV
         );
        
        $nav = new Zend_Navigation($navConfig);
        
        Zend_Registry::set('Zend_Navigation', $nav);
        
    }
    
    protected function _initRouter()
    {
       $routeConfig = new Zend_Config_Ini(
           ROOT_PATH . DIRECTORY_SEPARATOR .
           'application' . DIRECTORY_SEPARATOR .
           'Core' . DIRECTORY_SEPARATOR . 
           'configs' . DIRECTORY_SEPARATOR . 
           'routes.ini', APPLICATION_ENV
       );
        
      Zend_Controller_Front::getInstance()
                                   ->getRouter()
                                   ->addConfig($routeConfig, 'routes');
    }
    
}

Hors ligne

 

#4 10-11-2012 19:59:46

NicoC
Membre
Date d'inscription: 03-11-2012
Messages: 13

Re: [Résolu][ZF1.10] Autoloader & Class

C'est bon, j'ai compris mon erreur >.>

Code:

class Core_Form_CreateUser extends Zend_Form
{
...
}

Code:

public function createAction()
{
      $form = new Core_Form_CreateUser();
}

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