IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Zend Framework PHP Discussion :

comment configurer index.php?


Sujet :

Zend Framework PHP

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2011
    Messages : 12
    Par défaut comment configurer index.php?
    Bonjour,

    Débutant avec Zend Framework, j'ai commencé à apprendre quelques fonctionnalités en me basant sur des structures de fichiers MVC utilisée dans les différents tutoriel que j'ai pu trouvé.

    Le problème, c'est que je voudrai maintenant redémarrer un projet mais en partant d'une structure générée par Zend Framework. Et là! je ne sais pas comment configurer le fichier index.php et application.ini

    Quelqu'un pourrait-il me mettre sur le bon chemin?
    merci


    fichier index.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
     
    <?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'),
        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();
     
    ?>
    fichier application.ini
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    [production]
    phpSettings.display_startup_errors = 0
    phpSettings.display_errors = 0
    includePaths.library = APPLICATION_PATH "/../library"
    bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
    bootstrap.class = "Bootstrap"
    appnamespace = "Application"
    resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"
    resources.frontController.params.displayExceptions = 0
     
    [staging : production]
     
    [testing : production]
    phpSettings.display_startup_errors = 1
    phpSettings.display_errors = 1
     
    [development : production]
    phpSettings.display_startup_errors = 1
    phpSettings.display_errors = 1
    resources.frontController.params.displayExceptions = 1

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    utilise le zend tool ca sera plus simple pour créer un projet
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    zf create project monprojet

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2011
    Messages : 12
    Par défaut
    Salut,

    je l'avais déjà fait, en fait j'ai bien une arborescence qui à bien été générer depuis la console avec une commande zf, mais je ne sais pas comment me connecter à une base de données

    pour apprendre j'ai utiliser ce fichier index.php ci-dessous trouvé dans un tuto et tout fonctionnait parfaitement pour se connecter à la db:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
     
    <?php
     
    error_reporting(E_ALL|E_STRICT);
    ini_set('display_errors', 1);
    date_default_timezone_set('Europe/Paris');
     
    // mise en place des répertoires et chargement des classes
    set_include_path('.'
        . PATH_SEPARATOR . './library'
        . PATH_SEPARATOR . './application/models/'
        . PATH_SEPARATOR . get_include_path());
     
     
    include "Zend/Loader.php";
     
     
    Zend_Loader::registerAutoload();
    //on définit un nouvel objet de configuration
    $oConfig = new Zend_Config_Ini('./application/config.ini', 'connexion');
    // Mise en place de la BDD
    $oDb = Zend_Db::factory($oConfig->db);
    // on définit notre objet de base de données par défaut
    Zend_Db_Table::setDefaultAdapter($oDb);
     
     
    // setup controller
    $frontController = Zend_Controller_Front::getInstance();
    $frontController->throwExceptions(true);
    $frontController->setControllerDirectory('./application/controllers');
     
    // on définit le chemin des layouts
    $aOptions = array(
        'layout'     => 'home',
        'layoutPath' => './application/layouts'
    );
    Zend_Layout::startMvc($aOptions);
     
    // run!
    $frontController->dispatch();
    ?>


    celui générer par zend tool est différent

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
     
    <?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'),
        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();
     
    ?>

  4. #4
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    celui du tuto est un vieux code, celui du zend tool est l'actuel

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2011
    Messages : 12
    Par défaut
    ok, mais doit-on rajouter quelque chose comme un adaptateur pour pouvoir se connecter à une db?

  6. #6
    Membre éclairé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2007
    Messages
    314
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2007
    Messages : 314
    Par défaut
    Bonjour ,
    si tu as utilisé le Zend Tool ( recommander) :
    pour la connexion à une base de donnée , je te propose une méthode (je ne sais pas si la meilleur ou pas )

    dans configs\application.ini , tu ajoutes les paramètres de de connexion :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    [production]
    .............
    .............
    resources.db.adapter = "PDO_MYSQL"
    resources.db.params.host = "localhost"
    resources.db.params.dbname = "mabase"
    resources.db.params.username = "vanbom"
    resources.db.params.password = "12345"
    resources.db.params.charset = "utf8"
    dans ton fichier d'amorçage application\Bootstrap.php , tu crée une méthode (par exemple : _intDb() ) qui lit les paramètres de connexion, et on met notre objet dans le registre ( comme ça on peut le récupérer partout où on est )
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
    {
     
    	public function  _initDb()
    	{
    		$config = new Zend_Config_Ini(APPLICATION_PATH.'/configs/application.ini','production');
    		$params = $config->resources->db;
    		$db = Zend_Db::factory($params);
    		Zend_Registry::set('db-adapter',$db);
     
    	}
    }
    puis , en utilisant toujours le Zend Tool pour avoir un model :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    zf create model monModel
    on aura dans application\models\monMdel.php , ici tu peux récupérer l'objet de base de donnée depuis le registre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    class Model_monModel
    {
            // variable privée : on stock l'objet db  
    	private $db;
     
    	public function __construct()
    	{ 
                    // on récupère notre objet depuis le registre  
    		$this->db = Zend_Registry::get('db-adapter');
    	}
            /**
           * exemple : et là on peut exécuter les requête depuis des méthodes public  
           */
    	public function listeArticle()
    	{
    		$sql = " SELECT .................";
    		return $this->db->fetchAll($sql);
    	}
    }
    et en fin dans un controller tu creer une instance de Model_monModel , et tu demande la méthode public .

    c'est manière que tu utilise personnellement.

  7. #7
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 505
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 505
    Par défaut
    Le même bootstrap que Van Bom, mais en plus simple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    protected function _initDb() {
            $pluginDb = $this->getPluginResource('db');
            $db = $pluginDb->getDbAdapter();
            Zend_Registry::set('db', $db);
        }
    Pas besoin de relire le fichier .ini avec Zend_Config, c'est déjà fais

Discussions similaires

  1. Comment rendre index.php le seul protégé par .htaccess ?
    Par Mister Paul dans le forum Apache
    Réponses: 7
    Dernier message: 03/10/2008, 18h59
  2. Comment afficher par echo dans index.php ?
    Par whitespirit dans le forum Zend Framework
    Réponses: 2
    Dernier message: 30/01/2008, 05h52
  3. Réponses: 3
    Dernier message: 04/01/2008, 09h10
  4. [Zend] Configuration .htaccess et/ou index.php
    Par leroidje dans le forum MVC
    Réponses: 2
    Dernier message: 21/06/2007, 17h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo