Symfony 1.1 beta, tour du propriétaire - Installation
Par NiKo le lundi 10 mars 2008, 16:10 - Dev
- Lien permanent -
11 commentaires -
Tags :
Il y a quelques jours, Fabien a annoncé la disponibilité de Symfony 1.1 beta 1 dans le dépôt du projet. Symfony 1.1 est un changement majeur au niveau architecture, et la compatibilité ascendante est rompue en de nombreux points. Pour un outil éminemment basé sur les conventions, cela implique une réappropriation de ces dernières quand elles ont changé - mais c'est là le prix à payer pour bénéficier des nouvelles fonctionnalités. Et elles valent le coup !
Ce billet sera donc le premier d'une série destinée à explorer les fonctionnalités phares de cette preversion. On commence par le commencement avec la procédure d'installation.
Remarques préliminaires
Nous ne verrons pas la procédure de mise à jour d'un projet en symfony 1.0 vers la version 1.1[1]. On verra ça plus en détail sur ce blog si les CNTP le permettent. Pour l'heure, on partira donc d'un projet vierge en 1.1.
Installation de Symfony 1.1
Il faut pour l'heure installer Symfony 1.1 à partir des sources subversion ; voici une démarche possible, en admettant que vous disposez d'un environnement Unix/Linux[2] :
$ mkdir vendor && cd vendor $ svn co http://svn.symfony-project.com/branches/1.1/ symfony11 $ sudo ln -s `pwd`/symfony11/data/bin/symfony /usr/bin/symfony11
Je crée ici un lien symbolique symfony11 accessible depuis /usr/bin, ce qui permettra de gérer aussi bien des projets en 1.0 qu'en 1.1[3].
Pour vérifier que tout s'est bien déroulé, vous pouvez lancer cette commande :
$ symfony11 -V symfony version 1.1.0-DEV (/Users/niko/www/vendor/symfony11/lib)
Création d'un nouveau projet
Grâce à notre nouvelle installation isolée de Symfony 1.1, on peut créer un projet et une nouvelle application main via cette série de commandes :
$ cd /path/to/workspace $ mkdir sf11test && cd sf11test $ symfony11 generate:project sf11test $ ./symfony generate:app main
Vous noterez que toutes les commandes ont été renommées par rapport à la version 1.0 et qu'elles utilisent désormais des espaces de noms spécifiques à certains domaines : generate:, propel:, plugins:, log:, etc. Pour lister l'ensemble des tâches en lignes de commande disponibles, vous pouvez lancer la commande symfony11 telle quelle, ou utiliser l'executable symfony disponible à la racine de votre projet :
$ ./symfony
Notez que l'emploi de symfony11 ou ./symfony a la racine de votre projet ont ici strictement le même effet, puisque les deux exécutables référencent la même installation de Symfony.
Il nous reste à créer un VHost Apache[4] minimaliste pour accéder à notre projet au travers de notre navigateur :
<VirtualHost *>
ServerName local.sf11test.org
DocumentRoot %PROJECT_ROOT%/web
<Directory "%PROJECT_ROOT%/web">
AllowOverride All
Allow from All
</Directory>
Alias /sf %VENDOR_ROOT%/symfony11/data/web/sf
ErrorLog %PROJECT_ROOT%/log/error.log
CustomLog %PROJECT_ROOT%/log/access.log common
</VirtualHost>
N'oubliez pas de remplacer les chaînes %PROJECT_ROOT% et %VENDOR_ROOT% par les chemins système correspondant (respectivement la racine du projet et la racine de votre répertoire vendor créé précédemment).
On ajoutera également une entrée dans le fichier /etc/hosts pour avoir la résolution du nom local.sf11test.org localement :
127.0.0.1 local.sf11test.org
Si toutes les étapes ont été correctement suivies et après avoir rechargé la configuration d'Apache, en lançant notre navigateur préféré sur l'adresse local.sf11test.org, nous obtenons :

Ça vous rappelle quelque chose ? 
La suite au prochain épisode, avec les formulaires dont la gestion a été entièrement revue en Symfony 1.1.
Edit : J'ai modifié l'url du dépôt pour faire pointer vers la branche 1.1, qui évolue constamment, comme suggéré par Fabien en commentaire 
Pour ceux qui veulent mettre à jour du tag vers la branche, il faut lancer cette commande à la racine de votre répertoire vendor :
$ svn switch http://svn.symfony-project.com/branches/1.1/ symfony11
Un petit ./symfony cc s'imposera dans vos projets utilisant le dépôt.
Notes
[1] La procédure est pour le moment documenté dans ce fichier sur le dépôt.
[2] Enfin je veux dire, je ne m'occuperai pas de Windows 
[3] En admettant bien sûr que vous disposiez déjà d'une installation fonctionnelle de la 1.0 
[4] Comme toujours, mod_rewrite doit être activé.
11 commentaires (Ajouter un commentaire)
Désolé de poster encore. Juste pour dire que je viens de recommencer, en utilisant /branches/1.1 et ça marche parfaitement.
Tu peux effacer les messages si tu veux Niko, vu que ça fonctionne.
Merci pour les tutos, c'est vraiment cool pour les débutants le coté "communautaire" de Symfony.
Dav'
Bonjour!
Ca fait quelques temps que je lis le blog, ça m'a remotivé pour me remettre à Ubuntu et à tester Symfony. Donc : merci Niko!
J'ai une question, je ne sais pas si quelqu'un saura me répondre. Je viens d'installer la version 1.1 et lors de la création du module cela m'envoie un message d'erreur (je n'avais aucun problème sur l'ancienne version pour ça). Je veux créer le module "demo" de l'appli "main", du projet "sf11test".
Lorsque je souhaite créer le module, http://sf11test/ affiche bien le message "symfony project created", cela m'envoie le message suivant :
"Warning: sfBaseTask::require_once(/home/sf11test/lib/mainConfiguration.class.php): failed to open stream: No such file or directory in /var/www/vendor/symfony11/lib/task/sfBaseTask.class.php on line 38
Fatal error: sfBaseTask::require_once(): Failed opening required '/home/sf11test/lib/mainConfiguration.class.php' (include_path='.:/usr/share/php:/usr/share/pear:/var/www/vendor/symfony11/lib/plugins/sfPropelPlugin/lib/task/..
/vendor:/var/www/vendor/symfony11/lib/plugins/sfPropelPlugin/lib/task/../vendor') in /var/www/vendor/symfony11/lib/task/sfBaseTask.class.php on line 38"
Je trouve ça très bizarre!?
Désolé de déranger avec ces problèmes de débutant mais vu que je viens quotidiennement sur le blog, je me suis dit qu'il y aurait peut etre quelqu'un au fait de cette erreur.
(C'est sans doute que j'ai mal installé si je reçois ce type d'erreur)
Merci et bonne journée/semaine.
Dav'
Fabien> Je suis moi-même (comme un oiseau) sur la branche, mais je n'ai aucune idée de sa stabilité au jour le jour, donc j'avais pris le parti de la jouer secure avec le tag. J'ai mis à jour le billet néanmoins
Pour commencer à utiliser symfony 1.1, il vaut mieux partir de /branches/1.1 pour bénéficier directement de la nouvelle gestion de la configuration... ou attendre la béta 2 à la fin de la semaine
Concernant la ligne de commande, les anciens noms sont toujours disponibles.
Vivement la suite !!!
Super tuto, merci et c'est avec grande hâte que j'attends la suite
Merci encore !
C'est dommage pour la compatibilité ascendante...
Merci beaucoup pour ce topo
j'attends avec impatience les autres, n'ayant pour l'instant pas mis les mains dans le cambouis de la 1.1.
"Ça vous rappelle quelque chose ? ;-)"
C'est un hommage, sans doute...
Aaaah, exactement ce que j'attendais de lire avant la sortie de la 1.1 finale, et je dois pas être le seul.
Merci pour cet article et ceux qui vont suivre !
Grand merci ...
Eh ben dis donc !! j avais flirté un peu avec symfony mais la ca sent la mini révolution chez sensio...
Renommage des options de commande; gestion des formulaires ...
Que demande le peuple !!
La discussion continue ailleurs
Symfony 1.1 beta, tour du propriétaire - Les formulaires
Nous venons de voir la procédure d'installation de la beta1 de Symfony 1.1. Nous allons maintenant rentrer un peu plus dans les détails des nouvelles fonctionnalités en commençant par les formulaires....