Tutoriel
Ceci concerne la version 0.13, qui peut différer de la version en cours de développement.
Prenons le cas d'une application web vieillissante que nous souhaitons étendre et refactoriser. Comme par exemple, un intranet en code spaghetti, consistant en un ensemble de scripts mixant HTML, PHP et SQL. Bien sûr, il s'agit d'un exemple purement théorique. Toute coïncidence avec une application existante ne serait que pur incident statistique ;).
Mettons que nous souhaitions commencer par ajouter un formulaire de contact, utilisant les kits dj.forms
pour la validation et simplemail
pour l'envoi de mail.
La première étape est bien sûr l'installation de Webappkit.
Nous allons ensuite créer notre premier paquet.
Création d'un kit
-
La méthode la plus simple est de passer par l'interface d'administration. Sous la liste de kits, un formulaire permet la génération de la structure de base d'un paquet (un dossier et son fichier de configuration).
Mettons que nous faisions preuve d'originalité et de modestie et que nous choisissions my_great_app.
Le nom doit être un identifiant PHP valide (tel que pour les variables et fonction), et tout en minuscules.
-
Après validation, nous obtenons la page sommaire du paquet nouvellement créé. Ce paquet est vide et nous allons y ajouter notre première classe de librairie, MyContactForm.
-
Cette classe étend DjForm et nécessite SimpleMail, chacune étant fournie par un paquet tiers. Nosu ne traiterons pas ici de l'usage de ces librairies, ni même de l'implémentation de MyContactForm.
-
Nous utilisons le formulaire d'ajout de librairie pour importer le fichier de définition de classe. A sa réception, le fichier est analysé et nous pouvons retrouver notre classe et son emplacement dans la liste des classes incluses. Nosu répétons l'opération pour toutes les fichiers du paquet.
En PHP5, Webappkit utilise la fonction __autoload pour ne charger les classes que lorsqu'elles sont utilisées, et non lors de l'appel d'un kit. Il suffit de cocher
Charger systématiquement
pour désactiver ce comportement. Le fichier sera alors listé dans [load_files] au lieu de [load_classes] au sein de la configuration du paquet. -
Il nous faut désormais définir les dépendances de paquet. Ceci se fait actuellement en éditant la section [load_kits] du fichier de configuration du paquet via un formulaire intégré.
[load_kits] ; identifiant du kit = "version" dj.forms = "*" simplemail = "*"Peu nous importe la version pour l'instant, c'est pourquoi nous utilisons le joker *. dj.forms fait ici référence au sous-paquet
forms
du paquetdj
. -
Notre paquet est prêt. Nous pouvons désormais l'utiliser au sein de l'application. Pour cela, deux lignes de code suffisent :
// chargement de webappkit include_once('webappkit.include-me.php); // import du paquet Webappkit::loadKit('my_great_app'); // utilisation $form = new MyContactForm();Et encore, la première ligne n'est nécessaire qu'une seule fois par script puisqu'elle charge le coeur de Webappkit.
La seconde ligne chargera le paquet, et toutes ses dépendances en cascade le cas échéant.