|
|
Ici vous trouverez une documentation type API concernant les
composants coeurs de Zend_Application.
Zend_Application est la classe de base du composant
et le point d'entrée de votre application Zend Framework. Ses buts sont multiples :
configurer l'environnement PHP (incluant l'autoloading)
et exécuter le bootstrap de votre application.
Typiquement, vous allez passer toute la configuration au constructeur de
Zend_Application, mais vous pouvez aussi configurer l'objet
via ses méthodes. Ce chapitre illustrera les deux aspects.
| Option | Description |
|---|---|
| phpSettings | Tableau de paramètres php.ini à utiliser. Les clés doivent être des clés reconnues dans php.ini. |
| includePaths | Chemins additionnels à ajouter à include_path. Ces chemins sont ajoutés avant l'include_path. L'option doit être un tableau de chemins. |
| autoloaderNamespaces |
Tableau d'espaces de noms à enregistrer dans
|
| bootstrap | Soit une chaîne vers le fichier contenant la classe de bootstrap, soit un tableau avec les clés 'path' et 'class' menant vers le bootstrap. |
Note: Noms des options
Notez que les noms des options ne sont pas sensibles à la casse.
| Méthode | Valeur de retour | Paramètres | Description |
|---|---|---|---|
| __construct($environment, $options = null) | Void |
|
Une instance de |
| getEnvironment() | String | N/A | Récupère l'environnement passé au constructeur. |
| getAutoloader() | Zend_Loader_Autoloader |
N/A |
Récupère l'objet |
| setOptions(array $options) | Zend_Application |
|
Toutes les options sont stockées en interne, et appeler plusieurs fois la même méthode fusionnera les options qu'elle définit. Les options qui correspondent aux diverses méthodes setter seront passées à ces méthodes. Par exemple, l'option "phpSettings" sera passée à setPhpSettings(). |
| getOptions() | Array | N/A |
Récupère toutes les options utilisées pour initialiser l'objet.
Pourrait être utilisé pour mettre en cache les options
|
| hasOption($key) | Boolean |
|
Indique si une option correspondant à une clé précise a été utilisée ou pas. Les clés sont insensibles à la casse. |
| getOption($key) | Mixed |
|
Récupère l'option correspondant à la clé passée, NULL si celle-ci n'existe pas. |
| setPhpSettings(array $settings, $prefix = '') | Zend_Application |
|
Affecte à la volée des paramètres de php.ini.
Les paramètres séparés par des points peuvent être imbriqués
hiérarchiquement (comme dans le cas des paramètres
INI de |
| setAutoloaderNamespaces(array $namespaces) | Zend_Application |
|
Enregistre des espaces de noms dans
|
| setBootstrap($path, $class = null) | Zend_Application |
|
|
| getBootstrap() |
NULL |
Zend_Application_Bootstrap_Bootstrapper
|
N/A | Récupère l'instance du bootstrap enregistrée. |
| bootstrap() | Void | N/A | Appelle la méthode bootstrap() du bootstrap pour lancer l'application. |
| run() | Void | N/A | Appelle la méthode run() du bootstrap pour lancer le dispatch de l'application. |
Zend_Application_Bootstrap_Bootstrapper est l'interface de base
que toutes les classes de bootstrap doivent implémenter. Les fonctionnalités apportées sont
la configuration, l'identification des ressources, le bootstrap (d'une ressource ou de
l'application entière), et le lancement (dispatching) de l'application.
Voici les méthodes définies par l'interface.
| Méthode | Valeur de retour | Paramètres | Description |
|---|---|---|---|
| __construct($application) | Void |
|
Constructeur. Accepte un argument qui peut être une instance de
|
| setOptions(array $options) | Zend_Application_Bootstrap_Bootstrapper |
|
Une option qui correspond à un setter lui sera passé, sinon l'option est stockée pour pouvoir être utilisée plus tard. |
| getApplication() |
Zend_Application |
Zend_Application_Bootstrap_Bootstrapper
|
N/A | Récupère l'objet d'application passé au constructeur. |
| getEnvironment() | String | N/A | Récupère la chaîne d'environnement enregistrée dans l'objet d'application. |
| getClassResources() | Array | N/A | Retourne la liste des classes utilisées comme classes de ressources. |
| bootstrap($resource = null) | Mixed |
|
Si $resource est vide, exécute toutes les ressources. Si une chaîne est passée, exécute uniquement la ressource considérée. Enfin, si un tableau de chaînes est passé, toutes les ressources représentées par ses chaînes sont exécutées. |
| run() | Void | N/A | Définit la logique à lancer après avoir lancé le bootstrap. |
Zend_Application_Bootstrap_ResourceBootstrapper est une interface
utilisée lorsqu'une classe de bootstrap chargera une ressource externe, ce qui signifie
que les ressources peuvent ne pas être définies comme de simples méthodes, mais via des
classes "plugins". Cette interface devrait être utilisée avec Zend_Application_Bootstrap_Bootstrapper ;
Zend_Application_Bootstrap_BootstrapAbstract
implémente cette fonctionnalité.
Voici les méthodes définies par l'interface.
| Méthode | Valeur de retour | Paramètres | Description |
|---|---|---|---|
| registerPluginResource($resource, $options = null) |
Zend_Application_Bootstrap_ResourceBootstrapper
|
|
Enregistre une ressource avec la classe, ajoutant une configuration optionnelle à fournir à la ressource. |
| unregisterPluginResource($resource) |
Zend_Application_Bootstrap_ResourceBootstrapper
|
|
Supprime un plugin de ressource de la classe. |
| hasPluginResource($resource) | Boolean |
|
Détermine si une ressource donnée a été enregistrée. |
| getPluginResource($resource) | Zend_Application_Resource_Resource |
|
Récupère une instance de plugin de ressource par son nom. |
| getPluginResourceNames() | Array | N/A | Récupère une liste de noms de tous les plugins enregistrés. |
| setPluginLoader(Zend_Loader_PluginLoader_Interface $loader) |
Zend_Application_Bootstrap_ResourceBootstrapper
|
|
Enregistre un PluginLoader (chargeur de classes) à utiliser pour résoudre les noms de plugins en classes. |
| getPluginLoader() | Zend_Loader_PluginLoader_Interface |
N/A | Récupère l'objet pluginLoader chargé. |
Zend_Application_Bootstrap_BootstrapAbstract est une classe
abstraite qui propose les fonctionnalités de base d'un bootstrap classique. Elle
implémente à la fois Zend_Application_Bootstrap_Bootstrapper
et Zend_Application_Bootstrap_ResourceBootstrapper.
| Méthode | Valeur de retour | Paramètres | Description |
|---|---|---|---|
| __construct($application) | Void |
|
Constructeur. Accepte un seul argument de type
|
| setOptions(array $options) | Zend_Application_Bootstrap_Bootstrapper |
|
Toute option possédant un setter l'invoquera, sinon l'option sera stockée pour une utilisation ultérieure. Par exemple, si votre classe fille définit une méthode setFoo(), l'option 'foo' passera sa valeur à cette méthode. Deux options supplémentaires spéciales peuvent aussi être utilisée. pluginPaths spécifie des préfixes de chemin vers les plugins ; on attend ici un tableau de paires préfixes, chemins. resources permet de spécifier un plugin à utiliser. |
| getOptions() | Array | N/A | Retourne toutes les options enregistrées via setOptions(). |
| hasOption($key) | Boolean |
|
Détermine si une option est présente. |
| getOption($key) | Mixed |
|
Récupère la valeur de l'option associée à la clé passée comme paramètre retourne NULL si aucune option n'est enregistrée avec cette clé. |
| setApplication(Zend_Application | Zend_Application_Bootstrap_Bootstrapper $application) |
Zend_Application_Bootstrap_BootstrapAbstract
|
|
Enregistre l'objet application parent, ou un objet de bootstrap. |
| getApplication() |
Zend_Application |
Zend_Application_Bootstrap_Bootstrapper
|
N/A | Récupère l'objet application ou bootstrap passé par le constructeur. |
| getEnvironment() | String | N/A | Récupère l'environnement (chaîne) enregistré dans l'objet parent, application ou bootstrap. |
| getClassResources() | Array | N/A | Récupère la liste des noms des chargeurs de ressources définis dans la classe. Spécifique à l'implémentation. |
| getContainer() | Object | N/A | Récupère le conteneur stockant les ressources. Si aucun conteneur n'est spécifié, un objet Zend_Registry sera crée pour cet usage, puis retourné. |
| setContainer($container) |
Zend_Application_Bootstrap_BootstrapAbstract
|
|
Définit un conteneur mémorisant les ressources. Lorsqu'une ressource est demandée, elle est chargée puis stocker dans ce conteneur pour être retournée lors des prochains appels. |
| hasResource($name) | Boolean |
|
Lorsqu'une ressource est demandée (retournée par une méthode ou un plugin), elle est stockée dans un objet conteneur (voyez getContainer() et setContainer().) Cette méthode interroge le conteneur pour savoir si une ressource y est présente. |
| getResource($name) | Mixed |
|
Lorsqu'une ressource est demandée (retournée par une méthode ou un plugin), elle est stockée dans un objet conteneur (voyez getContainer() et setContainer().) Cette méthode récupère une ressource depuis le conteneur. |
| bootstrap($resource = null) | Mixed |
|
Si $resource est vide, charge toutes les ressources (bootstrap). Si une chaîne est passée, charge uniquement la ressource demandée. Enfin si un tableau est passé, charge les ressources nommées dans ce tableau. Cette méthode peut être utilisée pour déclencher le chargement d'une ressource, définit sous forme de méthode ou de plugin (c'est égal). Attention si vous spécifiez à la fois une méthode et un plugin pour une même ressource, alors la méthode sera préférée comme bootstrap, le plugin sera ignoré. |
| run() | Void | N/A | Définit la logique applicative à lancer après le bootstrap (la configuration) |
| __call($method, $args) | Mixed |
|
Propose une interface agréable pour configurer (bootstrap) des ressources individuelles en appelant 'bootstrap<NomDeLaRessource>()' à la place de bootstrap(). |
Zend_Application_Bootstrap_Bootstrap est une implémentation
concrète de Zend_Application_Bootstrap_BootstrapAbstract.
Ces caractéristiques principales sont l'enregistrement de la ressource Front
Controller, et la méthode run() qui vérifie d'abord
la présence d'un module par défaut dans le contrôleur frontal, avant de lancer
le dispatching.
Dans la plupart des cas, vous étendrez cette classe dans vos bootstraps, ou encore vous utiliserez cette classe en lui fournissant une liste de plugins à utiliser.
De plus, cette implémentation de bootstrap fournit la possibilité de spécifier l'espace de noms ou le préfixe de classe pour les ressources situées dans son arborescence, ce qui va activer le chargement automatique des différentes resources de l'application ; essentiellement, ceci instancie un objet Zend_Application_Module_Autoloader, en fournissant l'espace de noms requêté et le dossier de bootstrap en tant qu'arguments. Vous pouvez activer cette fonctionnalité en fournissant l'espace de noms à l'option de configuration "appnamespace". Par exemple avec un fichier INI :
appnamespace = "Application"
Ou en XML :
Application
Par défaut, Zend_Tool va activer cette option avec la valeur
"Application".
Alternativement, vous pouvez simplement définir la propriété $_appNamespace de votre classe de bootstrap avec la valeur appropriée :
class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{
protected $_appNamespace = 'Application';
}
Zend_Application_Resource_Resource est une interface implémentée par
les plugins de ressources lorsqu'ils sont utilisés par des classes de bootstrap implémentant
Zend_Application_Bootstrap_ResourceBootstrapper. Les classes de
plugins de ressources doivent accepter de la configuration, doivent pouvoir être lancées
("bootstrapées") et doivent utiliser un pattern strategy pour initialiser la ressource.
| Méthode | Valeur de retour | Paramètres | Description |
|---|---|---|---|
| __construct($options = null) | Void |
|
Le constructeur doit posséder un paramètre permettant de configurer l'état de la ressource. |
| setBootstrap(Zend_Application_Bootstrap_Bootstrapper $bootstrap) | Zend_Application_Resource_Resource |
|
Doit autoriser l'enregistrement du bootstrap parent. |
| getBootstrap() | Zend_Application_Bootstrap_Bootstrapper |
N/A | Récupère l'objet bootstrap enregistré. |
| setOptions(array $options) | Zend_Application_Resource_Resource |
|
Définit l'état d'initialisation de la ressource. |
| getOptions() | Array | N/A | Récupère les options enregistrées. |
| init() | Mixed | N/A | Pattern strategy: exécute l'initialisation de la ressource. |
Zend_Application_Resource_ResourceAbstract est une classe abstaite
implementant Zend_Application_Resource_Resource,
c'est un bon point de départ pour créer vos propres plugins de ressources.
Note: Cette classe abstraite n'implémente pas la méthode init(); elle doit donc être implémentée par les extensions concrêtes de cette classe.
| Méthode | Valeur de retour | Paramètres | Description |
|---|---|---|---|
| __construct($options = null) | Void |
|
Le constructeur doit accepter un paramètres permettant de définir l'état de la ressource. |
| setBootstrap(Zend_Application_Bootstrap_Bootstrapper $bootstrap) | Zend_Application_Resource_ResourceAbstract |
|
Doit accepter l'enregistrement du bootstrap parent. |
| getBootstrap() | Zend_Application_Bootstrap_Bootstrapper |
N/A | Récupère l'objet bootstrap enregistré. |
| setOptions(array $options) | Zend_Application_Resource_ResourceAbstract |
|
Définit l'état de la ressource. |
| getOptions() | Array | N/A | Retourne les options enregistrées. |
Lorque vous enregistrez des plugins de ressources, il existe alors 3 manières d'y faire référence dans la classe du bootstrap parent, en fonction de la manière dont vous avez configuré le bootstrap.
D'abord, si vos classes de plugins existent dans un chemin précis, vous pouvez alors y
faire référence simplement par leur nom court -- la portion du nom de la classe située
après le préfixe de classe. Par exemple, la classe
"Zend_Application_Resource_View" peut être référencée simplement
via "View" car le préfixe "Zend_Application_Resource"
est déja enregistré. Vous pouvez aussi utiliser le nom long de classe complet :
$app = new Zend_Application(APPLICATION_ENV, array(
'pluginPaths' => array(
'My_Resource' => 'My/Resource/',
),
'resources' => array(
// Si la classe suivante existe:
'My_Resource_View' => array(),
// alors ceci est équivalent:
'View' => array(),
),
));
Quoiqu'il en soit, vous pouvez lancer (bootstrap) la ressource ou la récupérer via son nom court:
$bootstrap->bootstrap('view');
$view = $bootstrap->getResource('view');
Ensuite, si aucun chemin précis n'est enregistré, il reste possible de passer ses plugins de ressources via leur nom de classe complet :
$app = new Zend_Application(APPLICATION_ENV, array(
'resources' => array(
// Ceci va charger le plugin de ressource standard 'View':
'View' => array(),
// Alors que ceci charge une classe spécifiquement via son nom:
'My_Resource_View' => array(),
),
));
La récupération de ces objets se fait alors de manière plus clarifiée :
$bootstrap->bootstrap('My_Resource_View');
$view = $bootstrap->getResource('My_Resource_View');
La troisième méthode découle des deux précédentes. Il est possible de donner un nom court à n'importe quelle classe. Ajoutez une variable publique $_explicitType dans la classe du plugin, sa valeur sera alors utilisée comme nom court pour référencer le plugin dans le bootstrap. Définissons par exemple notre propre vue :
class My_Resource_View extends Zend_Application_Resource_ResourceAbstract
{
public $_explicitType = 'My_View';
public function init()
{
// du code ici...
}
}
Nous pouvons dès lors lancer cette ressource (bootstrap) ou la récupérer via le nom
"My_View":
$bootstrap->bootstrap('My_View');
$view = $bootstrap->getResource('My_View');
Grâce à ses différentes manières de faire, vous pouvez redéfinir des plugins existants, en ajouter ou encore les mixer pour accomplir des tâches d'initialisation complexes.
|
|
Copyright © 2005-2011 Zend Technologies Inc (compiled by mikaelkael with ZFDocumentor - SVN 21540).

