Un plugin Coda pour Symfony2
PLEASE GO TO THE PLUGIN WEB PAGE FOR MORE STRAIGHTFORWARD INFO AND LINKS !
(English below)
J'ai créé un petit plugin Coda pour lancer les commandes Symfony2 les plus courantes.
C'est un travail en cours, pour l'instant très basique. Mais on peut installer Symfony directement depuis Coda, sans toucher à une ligne de code, pourvu que Git soit installé.
Vous pouvez télécharger le plugin sur GitHub.
Les instructions (en anglais) sont à données ci-dessous :
Installation Instructions
Unzip.
Double-click the Symfony2.codaplugin bundle, or drag and drop on Coda's icon.
Use it!
Usage
Check out the readme on Github.
[EDIT : J'ai enlevé le Readme de cet article, il aurait été trop vite obsolète. Pour le consulter, se rendre sur le repo Github.]
On démarre avec Symfony2
J’ai décidé de créer un projet avec Symfony 2. Je vais donc en profiter pour mettre quelques notes à ce sujet sur ce blog, au fur et à mesure des bugs que j’ai rencontré. Cela fait trop longtemps que je corrige des bugs, et que, une fois confronté au même problème 6 mois plus tard, je reprends la méthode « essai/erreur » pour le résoudre… Désormais, tout (ou presque) sera consigné ici, et consultable par tous !
Pour démarrer, je vais expliquer comment j’ai installé Symfony2 sous OS X Lion, et créé un simple accès à la base de données en CRUD (Create, Read, Update, Delete).
Installation
J’ai bien entendu téléchargé Symfony2 (v. 2.0.4) sur le site de Sensio Labs. J’ai ensuite décompressé le fichier dans le répertoire « Sites » de mon mac. J’ai renommé le dossier « Symfony » nouvellement créé en « monapp ».
J’ai lancé le terminal et fait le premier test.
cd ~/Sites/monapp
php app/check.php
Et corrigé les erreurs selon ce que Symfony2 me dit. Une étape incontournable est de changer les permissions de certains répertoires en 777 :
chmod -R 777 /Users/ced/Sites/upsendr/app/cache/
chmod -R 777 /Users/ced/Sites/upsendr/app/logs/
Le -R indique au script que l’intégralité du dossier, avec ses sous-dossiers, doit être passé en 777.
Ensuite, un petit tour vers http://votreserveur/monapp/app_dev.php/config.php pour la configuration de la base de données, etc.
On rentre dans le lard !
Dans le terminal, et toujours au sein du dossier de mon appli, j’ai créé un bundle en suivant les options par défaut :
./app/console generate:bundle
Notez qu’il faut lui donner un espace de nom (namespace), et qu’il doit finir par le terme Bundle : « Delalande/BlogBundle », par exemple. Ensuite, il faut lui donner un nom, idéalement basé sur ce que vous avez indiqué avant, comme « DelalandeBlogBundle ». J’ai ensuite validé les options proposées, mais répondu « yes » à la question suivante :
Do you want to generate the whole directory structure [no]?
Une fois notre Bundle créé, nous avons une coquille vide. Il faut la remplir avec une structure liée à la base de données. On fait donc appel à Doctrine pour créer une entité.
./app/console gen:doctrine:entity
J’ai donc créé le shortcut tel que demandé :
The Entity shortcut name: DelalandeBlogBundle:Post
Puis validé le format de configuration (ici, Annotation)
J’ai ensuite créé mes champs :
New field name (press <return> to stop adding fields): content
Field type [string]:
Field length [255]:
New field name (press <return> to stop adding fields): private
Field type [string]: boolean
New field name (press <return> to stop adding fields): payerdate
Field type [string]: datetime
New field name (press <return> to stop adding fields):
Do you want to generate an empty repository class [no]?
...et confirmé.
Vient ensuite le moment où cette entité va prendre « vie » sur la base de données :
./app/console doctrine:database:create
./app/console doctrine:schema:update --force
Si vous vérifiez votre serveur de base de données, une base portant le nom de celle spécifiée lors de l’installation de Symfony a été créée, et la table correspondante ajoutée.
L’étape suivante est la création des vues et du contrôleur de l’entité générée. Il suffit de taper :
./app/console doctrine:generate:crud
De rappeler le raccourci :
The Entity shortcut name: DelalandeBlogBundle:Post
Puis :
Do you want to generate the "write" actions [no]? yes
et valider le reste ! Allez faire un tour sur http://votreserveur/monapp/app_dev.php/post et faites mumuse avec les champs de votre base de donnée !
Autoriser un champ NULL dans l’interface CRUD
J’ai créé un champ de « private » type Boolean. Ce champ n’a pas la possibilité d’être NULL, ce qui le rend par ailleurs complètement inutile, à moins qu’il ne serre à une validation de CGV, par exemple.
Pour autoriser « private » à être décoché, il faut se rendre dans src/Delalande/BlogBundle/Entity/Post.php et modifier :
/**
* @var boolean $private
*
* @ORM\Column(name="private", type="boolean")
*/
private $private;
en
/**
* @var boolean $private
*
* @ORM\Column(name="private", type="boolean", nullable="true")
*/
private $private;
J’ai également modifié le champ directement dans la base de données, en autorisant une valeur NULL.
Ainsi, mon champ « private » peut être activé, ou non.
Trois licences de Smaller à gagner !
Les amis, je vous propose de gagner une licence de Smaller, le petit utilitaire de minification CSS et Javascript pour Mac OS X, dont j'ai fait le test lors d'un article précédent.
Pour cela, merci de poster un commentaire avec un lien vers vos créations web. Je choisirai les 3 liens les plus intéressants.
Comme ça, vous ferez coup double : un peu de pub pour vos activités, et un logiciel gratos en prime ! Que demande le peuple ?
Il y a trois licences en jeu... alors lachez les com' ! ;-)