ranslation from English to French:
- propel 1.3
- directory structure

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"symfony developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/symfony-devs?hl=en
-~----------~----~----~----~------~----~------~--~---

Comment utiliser Propel 1.3
===========================

*par Carl Vondrick*
*Traduit by Nicolas Garnault*

Il est maintenant facile, avec symfony 1.1, d'utiliser [Propel 
1.3](http://propel.phpdb.org/trac/wiki/Users/Documentation/1.3) pour votre 
projet, et de tirer partie des nombreuses améliorations concernant la vitesse, 
les ensembles imbriqués (nested set), pooling d'instances d'objets (object 
instance pooling) entre autres. Le plus important est le fait que Propel 1.3 
utilise maintenant PDO à la place de Creole comme couche d'abstraction avec la 
base de données, délivrant ainsi une amélioration significative des 
performances.

Installer Propel 1.3 prend seulement quelques minutes, tout ce que vous avez à 
faire est installer un plugin et modifier deux fichiers de configuration.
Nous allons vous expliquer comment procéder.

  * Installation du plugin Propel 1.3 se trouvant dans le dépôt symfony :

        $ cd /path/to/project/root/
        $ svn co 
http://svn.symfony-project.com/plugins/sfPropelPlugin/branches/1.3/ 
plugins/sfPropelPlugin

  * Propel 1.3 utilise un nouveau format de connexion, vous devez donc mettre 
à jour le fichier `databases.yml`. Modifiez le fichier `config/databases.yml` 
de le faire correspondre au modèle suivant :

        [yml]
        dev:
          propel:
            param: 
              classname: DebugPDO

        all:
          propel:
            class: sfPropelDatabase
            param:
              dsn: mysql:dbname=mydb;host=localhost 
              username: username
              password: password
              encoding: utf8
              persistent: true
              pooling: false
              classname: PropelPDO

    Pour mettre à jour votre DSN, veuillez vous reporter au [manuel 
PDO](http://us.php.net/manual/en/pdo.drivers.php).
    To upgrade your DSN, see the [PDO 
manual](http://fr.php.net/manual/fr/pdo.drivers.php).

  * Vous devez mettre à jour `propel.ini` de la même manière. Recherchez les 
3 lignes au début de `config/propel.ini` et supprimez-les :

        [ini]
        propel.database            = mysql
        propel.database.createUrl  = mysql://[EMAIL PROTECTED]/
        propel.database.url        = mysql://[EMAIL PROTECTED]/myproject

    À leur place, insérez les lignes suivantes :

        [ini]
        propel.database            = mysql
        propel.database.driver     = mysql
        propel.database.createUrl  = mysql://localhost/
        propel.database.url        = mysql:dbname=mydb;host=localhost
        propel.database.user       = username
        propel.database.password   = password
        propel.database.encoding   = utf8

    Assurez-vous que `propel.databse.url` corresponde au DSN de l'étape 2.

  * Effacez le cache interne de symfony :

        $ symfony cache:clear

  * Propel 1.3 utilise un modèle objet optimisé, nous devons donc 
reconstruire le modèle :

        $ symfony propel:build-model

S'il s'agit d'un nouveau projet, félicitations, vous venez de mettre en place 
Propel 1.3 ! La syntaxe de `schema.yml` est exactement la même que celle 
utilisée avec Propel 1.2. La nouvelle API n'est pas complètement différente, 
en fait, pour la plus grande part, c'est exactement la même.

Si vous mettez à jour un projet, un peu de travail vous attend peut-être 
encore, mais la plus grande partie de votre projet devrait fonctionner sans 
problème. Si vous utilisez des transactions ou bien Creole de manière 
directe, vous allez devoir mettre à jour vers PDO les parties de code 
concernées manuellement. Le projet Propel met à disposition un [guide de mise 
à jour](http://propel.phpdb.org/trac/wiki/Users/Documentation/1.3/Upgrading) 
très utile, qui vous accompagnera lors de la phase de mise à jour. Même s'il 
s'agit d'un nouveau projet, vous devriez trouver ce dernier d'une grande aide 
afin de vous tenir informé de toutes les nouvelles fonctionnalités.

symfony 1.1 possède un coeur modulaire, il ne peut donc pas être rendu plus 
simple la possibilité d'utiliser n'importe quel ORM de votre choix. Si Propel 
ne vous convient pas, vous pouvez essayer 
[sfDoctrinePlugin](http://trac.symfony-project.com/wiki/sfDoctrinePlugin), une 
alternative à Propel, offrant les mêmes performances que Propel 1.3. Grâce 
à symfony 1.1, les développeurs peuvent apprécier l'utilisation de Propel 
1.3 pour ses performances accrues, ou bien celle de Propel 1.2 s'ils 
préfèrent privilégier d'une stabilité à toute épreuve.

Comment personnaliser la Structure des Répertoires par défaut
=============================================================

*Traduit par Nicolas Garnault*

Un des grands bénéfices tirés de l'utilisation d'un framework est le modèle 
d'arborescence commun utilisé dans tous vos projets. Tous les projets 
partagent les mêmes conventions de code, et également la même structure 
d'arborescence. Cette structure autorise plusieurs développeurs à travailler 
sur le même projet en même temps, et améliore également la maintenabilité 
des applications développées. Quand quelqu'un vous demande de maintenir un 
projet symfony que vous n'avez pas développé initialement, vous savez où 
sont stockés les fichiers et pouvez donc immédiatement commencer à coder.

Cependant quelquefois, vous avez besoin de pouvoir personnaliser la structure 
d'arborescence fournie par symfony. Prenons deux exemples très différents.

Premièrement, disons que vous vous hébergez votre projet symfony dans un 
environnement d'hébergement mutualisé, où le dossier servant comme racine 
web s'appelle `public_html`. En édiant la classe `ProjectConfiguration`, il 
est très simple de changer le nom de la racine web par défaut de `web` à 
`public_html`, comme montré ci-dessous :

    [php]
    // config/ProjectConfiguration.class.php
    class ProjectConfiguration extends sfProjectConfiguration
    {
      public function setup()
      {
        $this->setWebDir($this->getRootDir().'/../public_html');
      }
    }

Prenons un autre exemple. Votre projet symfony est maintenant hébergé dans 
une très grande compagnie, imposant des règles de sécurité strictes. Ces 
derniers n'autorisent vos applications à écrire sur le disque que dans des 
dossiers spéficiques  (`/tmp` par exemple). symfony n'écrivant que dans deux 
dossiers (`cache` et `log`), il est très simple de mettre à nouveau à jour 
la classe `ProjectConfiguration` et de déplacer ces répertoires vers `/tmp` :

    [php]
    // config/ProjectConfiguration.class.php
    class ProjectConfiguration extends sfProjectConfiguration
    {
      public function setup()
      {
        $this->setCacheDir('/tmp/myproject/cache');
        $this->setLogDir('/tmp/myproject/log');
      }
    }

La méthode `setCacheDir()` ne change pas uniquement la constante 
`sf_cache_dir`, mais également toutes les constantes associées au cache : 
`sf_app_base_cache_dir`, `sf_app_cache_dir`, `sf_template_cache_dir`, 
`sf_i18n_cache_dir`, `sf_config_cache_dir`, `sf_test_cache_dir`, et 
`sf_module_cache_dir`.

Enfin, les classes de configuration étant également utilisées par le CLI 
(interpréteur de ligne de commande) de symfony, toutes les modifications 
effectuées seront également effectives pour toutes les tâches symfony, ainsi 
que pour vos tâches personnalisées.

Grâce aux nouvelles classes de configuration de symfony 1.1, la 
configurabilité du framework n'a jamais été aussi simple.

Reply via email to