| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!-- EN-Revision: 24249 -->
- <!-- Reviewed: no -->
- <sect1 id="zend.application.quick-start">
- <title>Zend_Application démarrage rapide</title>
- <para>
- Il existe deux manières d'aborder
- <classname>Zend_Application</classname>, elles dépendent de la manière dont vous commencez
- votre projet. Dans tous les cas, vous devrez créer une classe
- <classname>Bootstrap</classname> et un fichier de configuration.
- </para>
- <para>
- Si vous souhaitez utiliser <classname>Zend_Tool</classname> pour créer votre projet,
- continuez votre lecture. Si vous ajoutez
- <classname>Zend_Application</classname> à un projet existant, vous devriez
- <link linkend="zend.application.quick-start.manual">passer à la suite</link>.
- </para>
- <sect2 id="zend.application.quick-start.zend-tool">
- <title>Utiliser Zend_Tool</title>
- <para>
- La manière la plus rapide d'utiliser <classname>Zend_Application</classname> est
- d'appeler <classname>Zend_Tool</classname> pour créer votre projet. Ceci va aussi
- créer la classe de <classname>Bootstrap</classname>.
- </para>
- <para>
- Pour créer un projet, éxecutez la commande <command>zf</command> (sur les
- systèmes *nix) :
- </para>
- <programlisting language="sh"><![CDATA[
- % zf create project newproject
- ]]></programlisting>
- <para>
- Pour Windows, <filename>zf.bat</filename>:
- </para>
- <programlisting language="dos"><![CDATA[
- C:> zf.bat create project newproject
- ]]></programlisting>
- <para>
- Ceci va créer une structure de projet ressemblant à:
- </para>
- <programlisting language="text"><![CDATA[
- newproject
- |-- application
- | |-- Bootstrap.php
- | |-- configs
- | | `-- application.ini
- | |-- controllers
- | | |-- ErrorController.php
- | | `-- IndexController.php
- | |-- models
- | `-- views
- | |-- helpers
- | `-- scripts
- | |-- error
- | | `-- error.phtml
- | `-- index
- | `-- index.phtml
- |-- library
- |-- public
- | `-- index.php
- `-- tests
- |-- application
- | `-- bootstrap.php
- |-- library
- | `-- bootstrap.php
- `-- phpunit.xml
- ]]></programlisting>
- <para>
- Dans une telle structure, le bootstrap est
- <filename>newproject/application/Bootstrap.php</filename>, et ressemble
- en premier lieux à ceci:
- </para>
- <programlisting language="php"><![CDATA[
- class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
- {
- }
- ]]></programlisting>
- <para>
- Notez aussi la présence d'un fichier de configuration
- <filename>newproject/application/configs/application.ini</filename>, il
- contient :
- </para>
- <programlisting language="dosini"><![CDATA[
- [production]
- phpSettings.display_startup_errors = 0
- phpSettings.display_errors = 0
- includePaths.library = APPLICATION_PATH "/../library"
- bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
- bootstrap.class = "Bootstrap"
- resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"
- [staging : production]
- [testing : production]
- phpSettings.display_startup_errors = 1
- phpSettings.display_errors = 1
- [development : production]
- phpSettings.display_startup_errors = 1
- phpSettings.display_errors = 1
- ]]></programlisting>
- <para>
- Tous ces paramètres s'utilisent avec
- <classname>Zend_Application</classname> et avec le bootstrap.
- </para>
- <para>
- Un autre fichier intéressant est
- <filename>newproject/public/index.php</filename>, qui invoque
- <classname>Zend_Application</classname> et le démarre.
- </para>
- <programlisting language="php"><![CDATA[
- // 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'));
- /** 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();
- ]]></programlisting>
- <para>
- Pour continuer le guide de démarrage rapide,<link
- linkend="zend.application.quick-start.resources">voyez la section sur les
- Ressources</link>.
- </para>
- </sect2>
- <sect2 id="zend.application.quick-start.manual">
- <title>Ajouter Zend_Application à votre existant</title>
- <para>
- Les bases de <classname>Zend_Application</classname> sont très simples :
- </para>
- <itemizedlist>
- <listitem><para>
- Créez un fichier <filename>application/Bootstrap.php</filename> contenant
- une classe <classname>Bootstrap</classname>.
- </para></listitem>
- <listitem><para>
- Créez un fichier <filename>application/configs/application.ini</filename>
- contenant la configuration de base pour <classname>Zend_Application</classname>.
- </para></listitem>
- <listitem><para>
- Modifiez <filename>public/index.php</filename> afin d'utiliser
- <classname>Zend_Application</classname>.
- </para></listitem>
- </itemizedlist>
- <para>
- D'abord, créez la classe <classname>Bootstrap</classname> class. Dans le fichier
- <filename>application/Bootstrap.php</filename>, voici le contenu :
- </para>
- <programlisting language="php"><![CDATA[
- class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
- {
- }
- ]]></programlisting>
- <para>
- Créez maintenant votre configuration. Pour ce tutoriel, nous utilisons une syntaxe
- <acronym>INI</acronym>, bien sûr une syntaxe <acronym>XML</acronym>,
- <acronym>JSON</acronym>, <acronym>YAML</acronym> ou
- <acronym>PHP</acronym> est utilisable aussi. Créez donc le fichier
- <filename>application/configs/application.ini</filename>, et ajoutez lui ce
- contenu :
- </para>
- <programlisting language="dosini"><![CDATA[
- [production]
- phpSettings.display_startup_errors = 0
- phpSettings.display_errors = 0
- includePaths.library = APPLICATION_PATH "/../library"
- bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
- bootstrap.class = "Bootstrap"
- resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"
- [staging : production]
- [testing : production]
- phpSettings.display_startup_errors = 1
- phpSettings.display_errors = 1
- [development : production]
- phpSettings.display_startup_errors = 1
- phpSettings.display_errors = 1
- ]]></programlisting>
- <para>
- Maintenant, modifions le script de démarrage
- <filename>public/index.php</filename>. Si le fichier n'existe pas, créez le, et
- placez ce contenu dedans :
- </para>
- <programlisting language="php"><![CDATA[
- // 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'));
- // Typically, you will also want to add your library/ directory
- // to the include_path, particularly if it contains your ZF installed
- set_include_path(implode(PATH_SEPARATOR, array(
- dirname(dirname(__FILE__)) . '/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();
- ]]></programlisting>
- <para>
- Notez que l'environnement applicatif est défini dans une constante
- "APPLICATION_ENV". Nous recommandons la spécification d'un tel paramètre dans la
- configuration générale du serveur Web. Pour Apache, vous pouvez utiliser
- <filename>.htaccess</filename> si votre serveur le permet. Nous recommandons un
- fichier <filename>public/.htaccess</filename> avec le contenu suivant :
- </para>
- <programlisting language="conf"><![CDATA[
- SetEnv APPLICATION_ENV development
- RewriteEngine On
- RewriteCond %{REQUEST_FILENAME} -s [OR]
- RewriteCond %{REQUEST_FILENAME} -l [OR]
- RewriteCond %{REQUEST_FILENAME} -d
- RewriteRule ^.*$ - [NC,L]
- RewriteRule ^.*$ index.php [NC,L]
- ]]></programlisting>
- <note>
- <title>Apprenez mod_rewrite</title>
- <para>
- Les règles de réécriture ci-dessus autorisent l'accès à tout fichier existant
- dans l'hôte virtuel. S'il existe des fichiers que vous ne voulez pas exposer,
- utilisez des règles plus restrictives. Le site Web d'Apache <ulink
- url="http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html">vous permettra
- d'en apprendre plus au sujet de mod_rewrite</ulink>.
- </para>
- </note>
- <para>
- Voila, à partir de maintenant nous sommes prêts à tirer partie de la puissance de
- <classname>Zend_Application</classname>.
- </para>
- </sect2>
- <sect2 id="zend.application.quick-start.resources">
- <title>Ajouter et créer des ressources</title>
- <para>
- Si vous avez suivi les instructions jusqu'à maintenant, alors votre classe de
- bootstrap utilisera le contrôleur frontal et lorsque lancée, lancera le dispatch
- du contrôleur frontal. En vérité, il va être rapidement nécessaire de rajouter de
- la configuration, concernant d'autres objets divers (appelés "ressources").
- </para>
- <para>
- Nous allons voir ici comment créer et configurer des ressources. D'abord un layout,
- puis nous personnaliserons un objet de vue.
- </para>
- <para>
- Une ressource assez standard proposée par
- <classname>Zend_Application</classname> est "layout". Cette ressource attend
- une configuration qu'elle fera suivre immédiatement à
- <classname>Zend_Layout</classname>.
- </para>
- <para>
- Pour l'utiliser, vous devrez modifier votre fichier de configuration comme suit:
- </para>
- <programlisting language="dosini"><![CDATA[
- [production]
- phpSettings.display_startup_errors = 0
- phpSettings.display_errors = 0
- bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
- bootstrap.class = "Bootstrap"
- resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"
- ; AJOUTEZ CES LIGNES
- resources.layout.layout = "layout"
- resources.layout.layoutPath = APPLICATION_PATH "/layouts/scripts"
- [staging : production]
- [testing : production]
- phpSettings.display_startup_errors = 1
- phpSettings.display_errors = 1
- [development : production]
- phpSettings.display_startup_errors = 1
- phpSettings.display_errors = 1
- ]]></programlisting>
- <para>
- Si ce n'est pas déja fait, créez le dossier
- <filename>application/layouts/scripts/</filename>, et le fichier
- <filename>layout.phtml</filename> dans ce même dossier. Voici un exemple de script
- de layout tout à fait classique:
- </para>
- <programlisting language="php"><![CDATA[
- <?php echo $this->doctype() ?>
- <html>
- <head>
- <?php echo $this->headTitle() ?>
- <?php echo $this->headLink() ?>
- <?php echo $this->headStyle() ?>
- <?php echo $this->headScript() ?>
- </head>
- <body>
- <?php echo $this->layout()->content ?>
- </body>
- </html>
- ]]></programlisting>
- <para>
- Voila, vous avez un layout fonctionnel.
- </para>
- <para>
- Maintenant passons à la vue. Nous voulons un DocType <acronym>HTML</acronym> et
- une valeur de titre par défaut à utiliser dans la partie "head" du
- <acronym>HTML</acronym>. Nous pouvons ordonner ceci en éditant la classe
- <classname>Bootstrap</classname> et en ajoutant une méthode.
- </para>
- <programlisting language="php"><![CDATA[
- class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
- {
- protected function _initView()
- {
- // Initialisons la vue
- $view = new Zend_View();
- $view->doctype('XHTML1_STRICT');
- $view->headTitle('My First Zend Framework Application');
- // Ajoutons là au ViewRenderer
- $viewRenderer = Zend_Controller_Action_HelperBroker::getStaticHelper(
- 'ViewRenderer'
- );
- $viewRenderer->setView($view);
- // Retourner la vue pour qu'elle puisse être stockée par le bootstrap
- return $view;
- }
- }
- ]]></programlisting>
- <para>
- Cette méthode va être lancée automatiquement lors du bootstrap et configurera une vue.
- </para>
- </sect2>
- <sect2 id="zend.application.quick-start.next-steps">
- <title>Aller plus loin avec Zend_Application</title>
- <para>
- Nous venons de voir comment configurer de manière basique
- <classname>Zend_Application</classname> ainsi que les principes du bootstrap. Pour un
- maximum de réutilisation de code, vous devriez songer à utiliser des plugins de
- ressources. Continuez à lire la suite !
- </para>
- </sect2>
- </sect1>
|