vendredi 22 juillet 2011

Installer et créer un projet Symfony 1.4


Préambule :

Cela peut sembler hors sujet, mais pour pouvoir développer un projet Symfony, il faut utiliser un environnement de développement php.

Installer un environnement de développement php :

L'idéal est d'installer un serveur LAMP.

La meilleure page pour le faire est la version anglaise du wiki Archlinux qui est la plus à jour :

https://wiki.archlinux.org/index.php/LAMP

Ensuite, installez phpmyadmin pour gérer confortablement les bases de données.

Note :  pour relancer le serveur apache, tapez en mode superutilisateur :
/etc/rc.d/httpd restart

Ajoutez-vous au comme utilisateur du groupe http :

https://wiki.archlinux.org/index.php/Group

En mode superutilisateur, vérifiez et modifier si nécessaire le groupe du répertoire http (de /srv/http) pour qu'il soit http et pas root (chown). De même donnez les droits d'écriture au groupe http sur ce répertoire (chmod).

Ces opérations étant faites, vous pourrez travailler à loisir dans ce répertoire.

Avec quels outils développer ?

Dans ce domaine, nous avons l'embarras du choix :

gEdit :  installez de langue yaml.lang pour la coloration Syntaxique. Activez le greffon Terminal et affichez le panneau du bas pour l'utiliser.
Emacs : installez les paquets emacs-php-mode ainsi que emacs-yaml-mode (dépôt AUR).
Eclipse : yedit  (AUR), eclipse-phpeclipse et eclipse-wickedshell (Terminal).
Note: yedit utilise les bibliothèques mono. Si vous y êtes allergique, n'utilisez pas Eclipse.

Il existe d'autres solutions (vim devrait bien faire le job également).

Pour ma part, j'utilise gEdit car il s'approche de notepad++ dans son utilisation.

Installation de Symfony 1.4 :

Le paquet Symfony se trouve dans le dépôt AUR. Pour l'installer, le plus simple est d'utiliser yaourt à la place de pacman.

Dans un terminal : yaourt -S symfony

La compilation est assez rapide.

Quelques réglages indispensables :

Symfony se trouve dans le répertoire /usr/share/.

Il faut ajouter /usr/share/symfony dans le fichier /etc/php/php.ini à la ligne open_basedir.

Par ailleurs, vérifiez que dans le fichier /etc/httpd/conf/httpd.conf

< Directory “/serv/http/”>
...
AllowOverride All ((au lieu de None))
...
< /Directory > 

Puis relancer le serveur.

Créer un projet Symfony :

Cela peut varier avec les réglages de votre architecture, par défaut votre projet Symfony devra se trouver dans le répertoire /srv/http/.

Bon nombre d'opération se feront dans un terminal (toutes les opérations en ligne de commande).

Si vous utilisez gEdit avec les panneaux latéral et inférieur activés ainsi que le greffon terminal sélectionné alors tout est à porté de main. Dans le terminal, allez dans le répertoire /srv/http/.

Créez un répertoire qui sera la racine de votre projet (mkdir monprojet (*)).
Ensuite, placez vous dans ce répertoire : toutes les commandes Symfony se feront à ce niveau.

symfony generate:project myproject (*)

(*) : bien entendu, vous mettez ce que vous voulez. Les deux noms peuvent être différents.

Par défaut, Symfony créé un projet avec Doctrine. Doctrine est un orm (object relation mapper) qui permet d'utiliser les bases de données comme si c'étaient des objets.
Pour en savoir plus : http://www.siteduzero.com/tutoriel-3-197048-utilisation-d-un-orm-les-bases-de-doctrine.html

Si vous voulez créer un projet qui utilise l'orm Propel :

symfony generate:project --orm=Propel myproject

Cela créé une première arborescence.

apps/
cache/
config/
data/
lib/
log/
plugins/
test/
web/
symfony

L'arborescence actuelle est peu utile car elle n'est pas liée à une application.

Connexion à la base de données :

Dans phpmyadmin, créez une base de données vide. Dès lors, il suffit de générer un accès à cette base :

php symfony configure:database "mysql:host=localhost; dbname=mon_nom_de_base_de_données" root mon_mot_de_passe_de_connexion_à_mysql

Créer l'application :

php symfony generate:app frontend

Cela créée une application nommée frontend dans le répertoire apps/.

Copier des répertoires :

Allez dans le répertoire lib/ et créer le répertoire vendor/. Allez dans ce répertoire  et créez un lien symbolique vers le répertoire symfony :
ln -s /usr/share/symfony (lors de la mise en production, il faudra faire une copie du répertoire Symfony, durant le développement, un lien symbolique suffit d'autant plus que le paquet risque d'être mis à jour).

Revenez à la racine de l'application et allez dans le répertorie web/, faites un lien symbolique vers le répertorie sf.
ln -s /usr/share/symfony/data/web/sf/ 

Ce répertoire contient tous les éléments nécessaire au développement comme barre de développement de Symfony ainsi que des fonds par défaut pour des pages inexistantes.

Fichiers .htaccess :

Dans la documentation, il est préconisé de modifier httpd.conf pour créer un serveur virtuel sécurisé dédiée à votre application. Si vous en avez la possibilité, faites le. Une autre solution, mette un fichier .htaccess à la racine du site en plus de celui qui se trouve dans le répertoire web/.

A la racine du projet :

RewriteEngine On
RewriteBase /monprojet
RewriteCond %{REQUEST_URI} !^web/.*$
RewriteRule ^(.*)$ web/$1 [QSA,L,R]

Dans le répertoire web/:

RewriteEngine On
RewriteBase /monprojet/web
RewriteCond %{REQUEST_URI} \..+$
RewriteCond %{REQUEST_URI} !\.html$
RewriteRule .* - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php [QSA,L]

Normalement, toutes ces actions devraient vous permettre d'avoir un environnement de travail opérationnel.

Affichage final :


Si ce n'est pas le cas, relancer le serveur.

Maintenant, il ne vous reste plus qu'à créer la base de données, les différents modules de l'application...

Aucun commentaire:

Enregistrer un commentaire