Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 14-01-2010 13:12:48

elec
Membre
Date d'inscription: 16-10-2009
Messages: 118

Problème avec ma configuration(index.php)

Bonjour,

J'ai un problème au niveau de la configuration de mes applications avec Zend Framework,quand j'ai commencé avec ce framework et après la mise en place de mon "bootstrap",je dois à chaque fois spécifier le chemin vers mes classes dans mon  contrôleur ou dans d'autre classes  par :

Code:

require_once('chemin/vers/ma/classe/')

Et je trouve ce problème quand j'utilise plusieurs dossiers pour mes classe (models,forms,...),Après j'ai trouvé  une autre méthode et j'explique comment :

voilà le code de mon index.php:

Code:

<?php
    defined('APPLICATION_PATH')
        || define('APPLICATION_PATH', realpath(dirname(__FILE__) . '/../application'));
        
        set_include_path(implode(PATH_SEPARATOR, array(realpath(dirname(__FILE__) . '/../library'),get_include_path(),)));
        defined('ZEND_PATH');

    defined('APPLICATION_ENV')
        || define('APPLICATION_ENV', (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV') : 'production'));
 
    require_once 'Zend/Application.php';
 
    $application = new Zend_Application(
            APPLICATION_ENV,
            APPLICATION_PATH . '/configs/application.ini');
 

    $application->bootstrap();

    $application->run();

et dans mon bootstrap.php:

Code:

<?php

    class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
    {

        protected function _initAutoload()
        {
            $autoloader = new Zend_Application_Module_Autoloader(array(
                'namespace' => 'Projet',
                'basePath'  => dirname(__FILE__),
            ));
            return $autoloader;
        }

        protected function _initDoctype()
        {
            $this->bootstrap('view');
            $view = $this->getResource('view');
            $view->doctype('XHTML1_STRICT');
        }
    }

et enfin application.ini :

Code:

;section production
[production]
;configure php (ici l'affichage des erreurs)
phpSettings.display_startup_errors = 0
phpSettings.display_errors = 0

;renseigne le répertoire qui contiendra nos propres librairies
includePaths.library = APPLICATION_PATH "/../library"

;configure le bootstrap à utiliser
bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
bootstrap.class = "Bootstrap"

;configure les chemins pour les controllers et les layouts
;le layout est essentiellement utilsé pour le template des pages du site
resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"
resources.layout.layoutPath = APPLICATION_PATH "/layouts/scripts"
resources.view[] =

;configure l'accès à la base de données
resources.db.adapter = "PDO_MYSQL";
resources.db.params.dbname = "DB";
resources.db.params.host = "localhost";
resources.db.params.username = "root";
resources.db.params.password = "";

;section development, hérite de production (":")
[development : production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1

Alors avec la nouvelle configuration je peux créer par exemple une classe dans mon dossier "model(s)"(ici la lettre s est obligatoire) parès on dois créer et nommer la classe qui est dans models/city.php :

Code:

class Projet_model_City
{

}

Alors lui il connait directement que la classe  qui est appelé par exemple dans notre contrôleur par "variable = new Projet_model_City()" se trouve dans le dossier models.

Ici je ne sais pas qu'elle est l'utilité du nom "Projet" qui est déclaré comme "namespace" dans mon bootstrap et aussi au début de chaque classe en savant que je n'utilise pas un dossier "Projet" qui contient toute l'application ou qui contient le dossier models( l'arborescence est : Work/application/models(ou forms))donc il n'est pas utile pour l'arborescence(à mon avis).

Voilà c'est mon problème et ce que je souhaite c'est comment je peux mettre ma configuration pour déclarer ma classe de cette façon :

Code:

class country_city()
{
}

Alors qu'il connait directement que la classe city.php  dans le dossier  "country" lors de la déclaration dans mon contrôleur(cette méthode je l'es déjà vu quelque part mais je ne trouve pas la configuration exacte).

Je souhaite que j'ai bien expliqué mon problème.

Merci.Nll

Hors ligne

 

#2 14-01-2010 13:52:31

nORKy
Membre
Date d'inscription: 06-03-2008
Messages: 1098

Re: Problème avec ma configuration(index.php)

Beh, si le suffix 'Projet' , ne te plait pas, tu l'enlèves smile

Code:

$autoloader = new Zend_Application_Module_Autoloader(array(
                'namespace' => '',
                'basePath'  => dirname(__FILE__),
            ));

EDIT :
Non, je dis des bêtises.
Si tu veux pas utiliser les prefix prédéfini dans Module_Autoloader, alors, ne l'utilise pas

Tu n'as rien à déclarer (car tu ne veux pas utilisé de namespace)
Si Counter/City.php est dans ton library_path, ca devrait fonctionner tout seul

Dernière modification par nORKy (14-01-2010 13:55:00)


----
Gruiiik !

Hors ligne

 

#3 15-01-2010 12:08:05

elec
Membre
Date d'inscription: 16-10-2009
Messages: 118

Re: Problème avec ma configuration(index.php)

Bonjour,

Merci pour votre réponse,ce n'est pas une bêtise du tout,j'ai testé avant mais cela n'as pas marché alors hier j'ai enlevé et j'ai testé encore et cela marche bizarrement,pour votre deuxième solution je la comprends mais je souhaite du code de la configuration.

A+.Nll

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