[FuelPHP] Commençons.
Après mon dernier post, et à en juger par les retweets que ça génère, il y a apparemment pas mal de monde qui s’intéresse, au moins par curiosité, à ce fameux framework PHP dont je parle sans arrêt en ce moment. Mais si on entrait dans le vif du sujet en découvrant ensemble en quoi FuelPHP défonce des cacahuètes en deux ?
Aujourd’hui, on va parler Scaffolding, également nommé CRUD (Create / Read / Update / Delete), et vous allez voir que ça dépote pas mal.
Cet article reprend quelques extraits de la documentation officielle, francisé, repassé parfois à la moulinette, corrigé (notamment pour l’installation locale). Ne me tapez pas dessus. Vraiment. Pitié.
Installation
L’un des points fort d’un framework comme CodeIgniter, c’est la facilité déconcertante avec laquelle on l’installe, et le peu d’exigence (si on fait abstraction de la version de PHP, la 5 étant devenue obligatoire depuis Reactor) en terme d’environnement serveur.
FuelPHP est quasiment aussi simple à installer, à la différence près qu’il faut impérativement PHP 5.3, ce qui devient tout de même monnaie courante. Assurez vous dans tous les cas, pour un projet client, que l’environnement serveur de celui ci est compatible avec les requirements de FuelPHP.
Ceci fait, pour faire simple, on va installer FuelPHP manuellement, en local, sous Xampp. A noter qu’il est possible de l’installer également en ligne de commande, en version minimale via CURL.
- Commencez par télécharger la dernière version de FuelPHP (à l’heure où j’écris ces lignes, on est en 1.0.0 RC 3, mais ça avance vite).
- Pour des raisons de sécurité, l’installation de FuelPHP ne doit pas être faite dans le dossier public de votre serveur web, seul le contenu du dossier « public » (assets, htaccess et index.php) doivent y apparaitre. Dans notre cas, puisque nous sommes en local, on s’en fout un peu, on va tout installer dans un dossier fuel dans htdocs.
- Pour compenser, on va créer un htaccess supplémentaire à la racine de votre installation
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /fuel/public
RewriteRule ^(/)?$ index.php/$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>
- Avec cette petite règle de réécriture, on accédera directement à notre appli via l’url http://localhost/fuel/
- Logiquement, sans rien avoir bricolé de plus, vous avez déjà la page d’accueil (controller welcome) qui doit s’afficher :
- config.php
- db.php
- routes.php
- Ouvrez db.php, vous voyez que, par défaut, FuelPHP nous a préparé 4 types d’environnement. Sachez que, par défaut, FuelPHP utilise le mode developpement. Il est possible de basculer d’un environnement à un autre en éditant le htaccess, et en passant la ligne suivante (ici, c’est production) :
SetEnv FUEL_ENV production
- Mais ne modifiez rien pour le moment, on va rester sur l’environnement de développement.
- Modifiez donc les infos pour coller à votre base de données dans la section Development
- Dans config.php, ligne 180, dans l’array Packages, décommentez ’orm’ de façon à pouvoir l’utiliser. Vous pouvez également remplacer index.php par rien du tout à la ligne 33, réécriture d’url oblige.
On doit encore faire les niveaux
On y est presque… les illustrations ci-dessous s’adresse ici aux utilisateurs de Windows parce que j’en suis moi même un (et je vis très bien avec). Nos amis geek (linux) et fashion (mac) devront assumer leur choix, et se débrouiller tout seul pour accéder à Oil. Haha !
Pour pouvoir suivre la suite de ce petit guide, les copains (les hommes, les vrais) sous Windows vont devoir, si c’est pas déjà fait, faire en sorte que PHP soit accessible en ligne de commande.
Maintenant que tout le monde est prêt, commençons
Placez vous à la racine de votre installation :

Lancer « php oil », Oil vous répond avec les commandes qu’il a en poche :
Maintenant qu’on sait que Oil est accessible, jouons.
On va mettre de l’huile.
Oil offre plusieurs commandes, qui permettent respectivement de créer un squelette de controller, un model, d’utiliser l’outil Migration et, surtout, de faire du scaffolding.
Vous allez voir, c’est vraiment génial, tout ce que vous avez à faire pour créer votre controlleur, votre modèle, vos vues et votre table, c’est de taper quelque chose comme ça :
php oil generate scaffold news titre:string permalien:varchar[250] contenu:text

En une ligne, on a créé tout le code qu’il nous faut pour pouvoir créer, éditer, voir et supprimer un article.
Il nous faut encore utiliser l’outil refine pour pouvoir réimpacter ces modifications dans la base de données. Ca se fait également en une ligne :
</pre> oil refine migrate <pre>
Oil vous indique la version de la migration (normalement, c’est 1 pour vous.)
Partez !
Sceptique ? Jetez un oeil aux dossiers suivants :
- fuel/app/classes/controller
- fuel/app/classes/model
- fuel/app/news
On a donc plus qu’à compléter le code généré par ce que l’on souhaite, ajouter des ACL (FuelPHP propose Simple Auth), un form validation (FuelPHP propose aussi quelque chose pour ça.).
L’essentiel à retenir, c’est qu’en allant sur http://localhost/fuel/news, vous avez déjà la possibilité de vous amuser :
A vous de découvrir le code, de vous familiariser avec. Vous allez voir, c’est assez surprenant de constater qu’en quelques minutes, on a déjà tout pigé.
D’ici quelques temps, on poursuivra sur cette base en ajoutant un peu de validation de form et un peu d’ACL afin de commencer à bricoler un backoffice.
Bisous.
Quelques mots sur l'auteur
Je m'appelle Grégory BABONAUX, je suis concepteur développeur web indépendant en Normandie (Dans un axe plus ou moins approximatif situé entre Caen, Rouen, Evreux et Paris). Plus d'informations me concernant sur mon site : www.gregorybabonaux.fr ou sur mon portfolio : www.behance.net/gregorybabonaux









Commentaires
Simpledev - 3 novembre 2011
Super initiative!
Ce framework est vraiment sympatique, on dirait un croisement entre codeigniter et ruby on rails, et je trouve qu’il mérite vraiment d’être connu.
Merci pour le tuto et bonne continuation.
A vous de jouer