<commit_before><?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 15823 -->
<!-- Reviewed: no -->
<sect1 id="zend.application.examples">
    <title>Exemples</title>

    <para>
        La classe de bootstrap elle-même sera typiquement minimaliste ; souvent, elle s'agira
        simplement d'une extension vide de la classe de bootstrap de base&#160;:
    </para>

    <programlisting language="php"><![CDATA[
class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{
}
]]></programlisting>

    <para>Avec un fichier de configuration tel que :</para>

    <programlisting language="ini"><![CDATA[
; APPLICATION_PATH/configs/application.ini
[production]
bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
bootstrap.class = "Bootstrap"
resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"

[development : testing]
[development : production]
]]></programlisting>

    <para>
        Cependant, si de l'initialisation personnalisée est nécessaire, alors vous avez 2
        choix. D'abord vous pouvez écrire des méthodes préfixées par <emphasis>_init</emphasis> pour
        ajouter du code au bootstrap. De telles méthodes seront appelées par
        <methodname>bootstrap()</methodname>, et peuvent être appelées comme si elles étaient
        publiques, par&#160;: <emphasis>bootstrap&lt;resource&gt;()</emphasis>. Elles peuvent
        accepter un tableau d'options.
    </para>

    <para>
        Si votre méthode de ressource retourne une valeur, elle sera stockée dans un conteneur du
        bootstrap. Ceci peut être utile quand différentes ressources ont besoin d'interagir (comme
        une ressource s'injectant elle-même dans une autre). La méthode
        <methodname>getResource()</methodname> peut être utilisée pour récupérer ces valeurs.
    </para>

    <para>
        L'exemple ci-dessous montre une méthode de ressource pour l'initialisation d'un objet
        requête. Il utilise le traqueur de dépendances (il dépend de la ressource de contrôleur
        frontal), récupère une ressource à partir du bootstrap, et retourne une valeur à stocker
        dans le bootstrap.
    </para>

    <programlisting language="php"><![CDATA[
class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{
    protected function _initRequest(array $options = array())
    {
        // Vérifie que le contrôleur frontal est bien présent, et le récupère
        $this->bootstrap('FrontController');
        $front = $this->getResource('FrontController');

        // Initialise l'objet requête
        $request = new Zend_Controller_Request_Http();
        $request->setBaseUrl('/foo');

        // On l'ajoute au contrôleur frontal
        $front->setRequest($request);

        // Le bootstrap va stocker cette valeur dans la clé 'request'
        // de son conteneur
        return $request;
    }
}
]]></programlisting>

    <para>
        Notez l'appel à <methodname>bootstrap()</methodname>&#160;; Ceci permet de s'assurer que le
        contrôleur frontal a bien été initialisé avant d'appeler cette méthode.
    </para>

    <para>
        Une autre option consiste à utiliser des ressources de bootstrap. Les plugins de
        ressources sont des objets qui s'occupent d'initialisations spéciales, elles peuvent être
        spécifiées&#160;:
    </para>

    <itemizedlist>
        <listitem>
            <para>
                à l'instanciation d'un objet <classname>Zend_Application</classname>&#160;;
            </para>
        </listitem>
        <listitem>
            <para>pendant l'initialisation de l'objet bootstrap&#160;;</para>
        </listitem>
        <listitem>
            <para>
                en les activant spécifiquement via des appels de méthodes sur l'objet de
                bootstrap.
            </para>
        </listitem>
    </itemizedlist>

    <para>
        Les plugins de ressources implémentent
        <classname>Zend_Application_Bootstrap_Resource</classname>, qui définit simplement qu'elles
        peuvent être injectées dans l'objet les appelant, et qu'elles ont une méthode
        <methodname>init()</methodname>. Voici un exemple d'un bootstrap de vue&#160;:
    </para>

    <programlisting language="php"><![CDATA[
class My_Bootstrap_Resource_View
    extends Zend_Application_ResourceAbstract
{
    public function init()
    {
        $view = new Zend_View($this->getOptions());
        Zend_Dojo::enableView($view);

        $view->doctype('XHTML1_STRICT');
        $view->headTitle()->setSeparator(' - ')->append('My Site');
        $view->headMeta()->appendHttpEquiv('Content-Type',
                                           'text/html; charset=utf-8');<commit_msg>[DOCUMENTATION] French:  - sync manual<commit_after><?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 17294 -->
<!-- Reviewed: no -->
<sect1 id="zend.application.examples">
    <title>Exemples</title>

    <para>
        La classe de bootstrap elle-même sera typiquement minimaliste ; souvent, elle s'agira
        simplement d'une extension vide de la classe de bootstrap de base&#160;:
    </para>

    <programlisting language="php"><![CDATA[
class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{
}
]]></programlisting>

    <para>Avec un fichier de configuration tel que :</para>

    <programlisting language="ini"><![CDATA[
; APPLICATION_PATH/configs/application.ini
[production]
bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
bootstrap.class = "Bootstrap"
resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"

[development : testing]
[development : production]
]]></programlisting>

    <para>
        Cependant, si de l'initialisation personnalisée est nécessaire, alors vous avez 2
        choix. D'abord vous pouvez écrire des méthodes préfixées par <emphasis>_init</emphasis> pour
        ajouter du code au bootstrap. De telles méthodes seront appelées par
        <methodname>bootstrap()</methodname>, et peuvent être appelées comme si elles étaient
        publiques, par&#160;: <emphasis>bootstrap&lt;resource&gt;()</emphasis>. Elles peuvent
        accepter un tableau d'options.
    </para>

    <para>
        Si votre méthode de ressource retourne une valeur, elle sera stockée dans un conteneur du
        bootstrap. Ceci peut être utile quand différentes ressources ont besoin d'interagir (comme
        une ressource s'injectant elle-même dans une autre). La méthode
        <methodname>getResource()</methodname> peut être utilisée pour récupérer ces valeurs.
    </para>

    <para>
        L'exemple ci-dessous montre une méthode de ressource pour l'initialisation d'un objet
        requête. Il utilise le traqueur de dépendances (il dépend de la ressource de contrôleur
        frontal), récupère une ressource à partir du bootstrap, et retourne une valeur à stocker
        dans le bootstrap.
    </para>

    <programlisting language="php"><![CDATA[
class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{
    protected function _initRequest(array $options = array())
    {
        // Vérifie que le contrôleur frontal est bien présent, et le récupère
        $this->bootstrap('FrontController');
        $front = $this->getResource('FrontController');

        // Initialise l'objet requête
        $request = new Zend_Controller_Request_Http();
        $request->setBaseUrl('/foo');

        // On l'ajoute au contrôleur frontal
        $front->setRequest($request);

        // Le bootstrap va stocker cette valeur dans la clé 'request'
        // de son conteneur
        return $request;
    }
}
]]></programlisting>

    <para>
        Notez l'appel à <methodname>bootstrap()</methodname>&#160;; Ceci permet de s'assurer que le
        contrôleur frontal a bien été initialisé avant d'appeler cette méthode.
    </para>

    <para>
        Une autre option consiste à utiliser des ressources de bootstrap. Les plugins de
        ressources sont des objets qui s'occupent d'initialisations spéciales, elles peuvent être
        spécifiées&#160;:
    </para>

    <itemizedlist>
        <listitem>
            <para>
                à l'instanciation d'un objet <classname>Zend_Application</classname>&#160;;
            </para>
        </listitem>
        <listitem>
            <para>pendant l'initialisation de l'objet bootstrap&#160;;</para>
        </listitem>
        <listitem>
            <para>
                en les activant spécifiquement via des appels de méthodes sur l'objet de
                bootstrap.
            </para>
        </listitem>
    </itemizedlist>

    <para>
        Les plugins de ressources implémentent
        <classname>Zend_Application_Resource_ResourceAbstract</classname>, qui définit simplement
        qu'elles peuvent être injectées dans l'objet les appelant, et qu'elles ont une méthode
        <methodname>init()</methodname>. Voici un exemple d'un bootstrap de vue&#160;:
    </para>

    <programlisting language="php"><![CDATA[
class My_Bootstrap_Resource_View
    extends Zend_Application_ResourceAbstract
{
    public function init()
    {
        $view = new Zend_View($this->getOptions());
        Zend_Dojo::enableView($view);

        $view->doctype('XHTML1_STRICT');
        $view->headTitle()->setSeparator(' - ')->append('My Site');
        $view->headMeta()->appendHttpEquiv('Content-Type',
                                           'text/html; charset=utf-8');
{'fraction_non_alphanumeric': 0.10166240409207161, 'fraction_numerical': 0.007033248081841432, 'mean_word_length': 2.9783806697753286, 'pattern_counts': {'":': 0, '<': 129, '<?xml version=': 2, '>': 149, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 2}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 4, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5217446', 'n_tokens_mistral': 2814, 'n_tokens_neox': 2680, 'n_words': 800}