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

Zendex - Documentation (fr)

Date de publication : 13/02/2008


III. Zendex_Setup
III-A. Introduction
III-B. Les setups par défaut
III-B-1. Zendex_Setup_Cache
III-B-2. Zendex_Setup_Config
III-B-3. Zendex_Setup_Db
III-B-4. Zendex_Setup_IncludePath


III. Zendex_Setup


III-A. Introduction

L'objectif de Zendex_Setup est d'optimiser la gestion des composants de base de Zend Framework.
Zendex_Setup consiste à centraliser la création et la récupération d'objets, par un système de configuration et de mise en cache simplifiée.
Dans le cadre de gros projets, il peut arriver d'utiliser plusieurs fichiers de configuration, plusieures connexions à différentes bases de données, sans pour autant avoir besoin de ces éléments dans toutes les pages du site.
Vous allez me dire, "eh bien dans ce cas, tu n'as qu'a les créer uniquement lorsque tu en as besoin". C'est cela que Zendex_Setup optimise : la configuration des fichiers de config, connexions, etc... se fait dans le bootstrap, jusque là, les objets ne sont pas créer.
C'est uniquement lorsque l'on fait appel à un objet précis, qu'on le créer s'il n'a pas déjà été créer, ou qu'on va le rechercher dans Zend_Registry si l'objet est créer.
L'objectif est donc de rendre plus facile ce processus.
La meilleure explication, c'est l'exemple, lisez la suite pour y voir plus clair.


III-B. Les setups par défaut


III-B-1. Zendex_Setup_Cache

Pour gérer vos objets Zend_Cache, la manière la plus centralisée est d'utiliser l'instance unique de Zendex_Setup :

<?php
$frontend = array(
   'lifetime' => (3600 * 24) * 365,
   'automatic_serialization' => true
);
$backend = array(
    'cache_dir' => API_ROOT.'/tmp/'
);

/**
 * Récupère l'instance unique
 */
$setup = Zendex_Setup::getInstance();

/**
 * Configure un nouveau cache, l'objet n'est pas créer, juste configuré
 */
$setup->setCache('myCache', 'Core', 'File', $frontend, $backend);

/**
 * Ici, je récupère mon cache grâce à son id unique 'myCache'.
 * C'est la première fois que j'y fait appel, donc l'objet est créer,
 * puis enregistré dans Zend_Registry avec pour préfix 'Cache'.
 */
$setup->getCache('myCache');

/**
 * Je l'appel une deuxième fois, cette fois, l'objet n'est pas créer 
 * mais récupéré via Zend_Registry :
 */
$setup->getCache('myCache');
Il existe une seconde manière de configurer ou d'accéder à vos caches, elle consiste à récupérer l'instance de setup Zendex_Setup_Cache via la méthode statique getSetup() :

<?php
/**
 * Récupère uniquement le setup 'Cache'
 */
$cache = Zendex_Setup::getSetup('Cache');

$cache->set('myCache', 'Core', 'File', $frontend, $backend);

$cache->get('myCache');

III-B-2. Zendex_Setup_Config

Pour gérer vos objets Zend_Config, la manière la plus centralisée est d'utiliser l'instance unique de Zendex_Setup :

<?php
/**
 * Récupère l'instance unique
 */
$setup = Zendex_Setup::getInstance();

/**
 * Configure un nouvel objet Zend_Config :
 * Ce sera un fichier XML que nous appèlerons 'env'.
 * Nous souhaitons que notre objet soit enregistré en
 * cache via notre objet configuré préalablement, 'myCache' :
 */
$setup->setConfig('env', 'Xml', '/usr/local/env.xml', false, 'myCache');

/**
 * Ici, je récupère mon fichier de config grâce à son id unique 'env'.
 * Si le cache trouve quelque chose, il le chargera, sinon l'objet sera créer,
 * puis enregistré dans Zend_Registry avec pour préfix 'Config'.
 */
$setup->getConfig('env');

/**
 * Je l'appel une deuxième fois, cette fois, l'objet est récupéré via Zend_Registry :
 */
$setup->getConfig('env');
}}}

Il existe une seconde manière de configurer ou d'accèder à des objets Zend_Config,
elle consiste à récupérer l'instance de setup Zendex_Setup_Config via
la méthode statique getSetup() :
Il existe une seconde manière de configurer ou d'accéder à des objets Zend_Config, elle consiste à récupérer l'instance de setup Zendex_Setup_Config via la méthode statique getSetup() :

<?php
/**
 * Récupère uniquement le setup 'Config'
 */
$config = Zendex_Setup::getSetup('Config');

$config->set('env', 'Xml', '/usr/local/env.xml', false, 'myCache');

$config->get('env');

III-B-3. Zendex_Setup_Db

Pour gérer vos connexions, la manière la plus centralisée est d'utiliser l'instance unique de Zendex_Setup :

<?php
$db_config =array(
    'host'	=> 'localhost',
    'username'	=> 'root',
    'password'	=> '',
    'dbname'	=> 'kelcourt_db'
);

/**
 * Récupère l'instance unique
 */
$setup = Zendex_Setup::getInstance();

/**
 * Configure un nouvel objet Zend_Db :
 * Nous souhaitons que notre objet soit enregistré en
 * cache via notre objet configuré préalablement, 'myCache' :
 */
$setup->setDb('myDb', 'Pdo_Mysql', $db_config, 'myCache');

/**
 * Ici, je récupère ma connexion grâce à son id unique 'myDb'.
 * Si le cache trouve quelque chose, il le chargera, sinon l'objet sera créer,
 * puis enregistré dans Zend_Registry avec pour préfix 'Db'.
 */
$setup->getDb('myDb');

/**
 * Je l'appel une deuxième fois, cette fois, l'objet est récupéré via Zend_Registry :
 */
$setup->getDb('myDb');
Il existe une seconde manière de configurer ou d'accéder à des objets Zend_Db, elle consiste à récupérer l'instance de setup Zendex_Setup_Db via la méthode statique getSetup() :

<?php
/**
 * Récupère uniquement le setup 'Db'
 */
$db = Zendex_Setup::getSetup('Db');

$db->set('myDb', 'Pdo_Mysql', $db_config, 'myCache');

$db->get('myDb');

III-B-4. Zendex_Setup_IncludePath

Ce setup permet de simplifier la définition de l'include_path via un tableau associatif :

<?php
$my_paths =array(
    'appli_dir'		=> '/usr/local/myApplication',
    'config_dir'	=> '/usr/local/myApplication/config'
);

/**
 * Récupère l'instance unique
 */
$setup = Zendex_Setup::getInstance();

/**
 * Définition de l'include_path
 */
$setup->setIncludePath($my_paths, true);

/**
 * Comme nous avons activer l'argument $createConstants à true, 
 * nous pouvons accèder à nos répertoires via des constantes :
 */
echo APPLI_DIR;
echo CONFIG_DIR;
 

Valid XHTML 1.1!Valid CSS!

Copyright © 2008 Simon Martins. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.