| 18 | | Cette configuration est plutôt commune et se retrouve sur la plupart des serveurs web ou machines *nix. |
|---|
| 19 | | Bien sûr, Akelos fonctionne sur plusieurs types de configuration, mais pour ce tutorial, nous nous concentrerons sur celle-ci. |
|---|
| 20 | | |
|---|
| 21 | | Téléchargement et installation |
|---|
| | 18 | Cette configuration est plut�t commune et se retrouve sur la plupart des serveurs web ou machines *NIX. |
|---|
| | 19 | Bien s�r, Akelos fonctionne sur plusieurs types de configuration, mais pour ce tutoriel, nous nous concentrerons sur celle-ci. |
|---|
| | 20 | |
|---|
| | 21 | T�l�chargement et installation |
|---|
| 24 | | Tant qu'Akelos n'est pas sorti dans sa version finale (1.0), nous vous recommendons de toujours utiliser la dernière révision SVN. |
|---|
| 25 | | Pour cela, il vous faudra posséder un client [subversion](http://subversion.tigris.org). |
|---|
| 26 | | |
|---|
| 27 | | Pour récupérer la dernière révision d'Akelos, tappez la commande : |
|---|
| | 24 | Tant qu'Akelos n'est pas sorti dans sa version finale (1.0), nous vous recommandons de toujours utiliser la derni�re r�vision SVN. |
|---|
| | 25 | Pour cela, il vous faudra poss�der un client [subversion](http://subversion.tigris.org). |
|---|
| | 26 | |
|---|
| | 27 | Pour r�cup�rer la derni�re r�vision d'Akelos, tapez la commande : |
|---|
| 46 | | alors vous êtes prêts à utiliser Akelos, vous pouvez donc passer au paragraphe suivant. |
|---|
| 47 | | |
|---|
| 48 | | Cependant, si ce n'est pas le cas, il vous faudra trouver le chemin complet vers votre binaire PHP. En géné, il suffit de tapper : |
|---|
| | 46 | alors vous �tes pr�ts � utiliser Akelos, vous pouvez donc passer au paragraphe suivant. |
|---|
| | 47 | |
|---|
| | 48 | Cependant, si ce n'est pas le cas, il vous faudra trouver le chemin complet vers votre binaire PHP. En g�n�ral, il suffit de taper : |
|---|
| 68 | | A ce point, vous devez avoir Akelos mis en place, et devez être capable de lancer les scripts PHP depuis une console. Bien que ces scripts ne soient pas absolument nécéssaires au fonctionnement d'Akelos, ils le seront pour ce tutorial. |
|---|
| 69 | | |
|---|
| 70 | | Vous avez maintenant deux possibilitées : |
|---|
| 71 | | |
|---|
| 72 | | 1. Créer une application Akelos dans un dossier différent et lier ce dernier aux librairies du Framework. |
|---|
| 73 | | 2. Commencer à travailler directement depuis le dossier téléchargé, avec la sécurité que cela implique : il n'est jamais recommendé de rendre visible les sources de votre application. |
|---|
| 74 | | |
|---|
| 75 | | Vous l'aurez sûrement deviné, nous utiliserons la première méthode qui consiste à créer un lien (symbolique par exemple) vers le dossier `public` de notre application. Il est aussi très simple de configurer les dossiers du framework, puisqu'il suffit de définir l'emplacement de chacun des composants. Cependant, ce n'est pas le sujet de cette explication, et laissons cette partie à un prochain tutorial expliquant la mise en place et en production d'une application. |
|---|
| 76 | | |
|---|
| 77 | | Nous supposerons que vous avez téléchargé Akelos dans le dossier `HOME_DIR/akelos` et que vous vous situez à la racine du dossier `akelos`. |
|---|
| 78 | | D'ici, vous pouvez obtenier les différentes options d'installation du framework en tappant : |
|---|
| | 68 | A ce point, vous devez avoir Akelos mis en place, et devez �tre capable de lancer les scripts PHP depuis une console. Bien que ces scripts ne soient pas absolument n�cessaires au fonctionnement d'Akelos, ils le seront pour ce tutoriel. |
|---|
| | 69 | |
|---|
| | 70 | Vous avez maintenant deux possibilit�s : |
|---|
| | 71 | |
|---|
| | 72 | 1. Cr�er une application Akelos dans un dossier diff�rent et lier ce dernier aux librairies du Framework. |
|---|
| | 73 | 2. Commencer � travailler directement depuis le dossier t�l�charg�, avec la s�curit� que cela implique : il n'est jamais recommand� de rendre visibles les sources de votre application. |
|---|
| | 74 | |
|---|
| | 75 | Vous l'aurez s�rement devin�, nous utiliserons la premi�re m�thode qui consiste � cr�er un lien (symbolique par exemple) vers le dossier `public` de notre application. Il est aussi tr�s simple de configurer les dossiers du framework, puisqu'il suffit de d�finir l'emplacement de chacun des composants. Cependant, ce n'est pas le sujet de cette explication, et laissons cette partie � un prochain tutoriel expliquant la mise en place et en production d'une application. |
|---|
| | 76 | |
|---|
| | 77 | Nous supposerons que vous avez t�l�charg� Akelos dans le dossier `HOME_DIR/akelos` et que vous vous situez � la racine du dossier `akelos`. |
|---|
| | 78 | D'ici, vous pouvez obtenir les diff�rentes options d'installation du framework en tapant : |
|---|
| 120 | | script/ << Outils de génération de code, de lancement de tests, etc. |
|---|
| 121 | | |
|---|
| 122 | | **Pour les utilisateur de Windows :** Les liens symboliques ne fonctionnent pas non plus sous Windows. Il va donc faloir renseigner Apache sur le chemin vers votre application. Editez le fichier `httpd.conf` et rajouter ceci (en modifiant, bien entendu, au préalable selon votre configuration) : |
|---|
| | 120 | script/ << Outils de g�n�ration de code, de lancement de tests, etc. |
|---|
| | 121 | |
|---|
| | 122 | **Pour les utilisateurs de Windows :** Les liens symboliques ne fonctionnent pas non plus sous Windows. Il va donc falloir renseigner Apache sur le chemin vers votre application. �ditez le fichier `httpd.conf` et rajoutez ceci (en modifiant, bien entendu, au pr�alable selon votre configuration) : |
|---|
| 133 | | N'oubliez pas de redémarrer le serveur Apache. |
|---|
| 134 | | |
|---|
| 135 | | ### Création de la base de données (MySQL) ### |
|---|
| 136 | | |
|---|
| 137 | | **/!\ Si vous comptez utiliser SQLite, sautez cette étape /!\\** |
|---|
| 138 | | |
|---|
| 139 | | La prochaine étape consite à créer la base de données relative à votre application. |
|---|
| 140 | | |
|---|
| 141 | | Le but de ce tutorial n'est bien évidemment pas de vous apprendre à créer une base de données. Si vous ne savez pas comment faire, faites des recherches sur Google, vous trouverez sûrement quelquechose :). |
|---|
| 142 | | |
|---|
| 143 | | Cependant, vous pouvez tout simplement essayer de créer 3 bases différentes, pour chacun des 3 environnements (production, dévellopement, tests) |
|---|
| | 133 | N'oubliez pas de red�marrer le serveur Apache. |
|---|
| | 134 | |
|---|
| | 135 | ### Cr�ation de la base de donn�es (MySQL) ### |
|---|
| | 136 | |
|---|
| | 137 | **/!\ Si vous comptez utiliser SQLite, sautez cette �tape /!\\** |
|---|
| | 138 | |
|---|
| | 139 | La prochaine �tape consiste � cr�er la base de donn�es relative � votre application. |
|---|
| | 140 | |
|---|
| | 141 | Le but de ce tutoriel n'est bien �videmment pas de vous apprendre � cr�er une base de donn�es. Si vous ne savez pas comment faire, faites des recherches sur Google, vous trouverez s�rement quelquechose :). |
|---|
| | 142 | |
|---|
| | 143 | Cependant, vous pouvez tout simplement essayer de cr�er 3 bases diff�rentes, pour chacun des 3 environnements (production, d�veloppement, tests) |
|---|
| 154 | | Vous pouvez bien évidemment passer par une interface graphique, telle phpMyAdmin, pour créer ces tables. |
|---|
| 155 | | |
|---|
| 156 | | ### Création des fichiers de configuration ### |
|---|
| 157 | | |
|---|
| 158 | | #### A l'aide de l'installeur #### |
|---|
| 159 | | |
|---|
| 160 | | Vous pouvez ouvrir votre navigateur et vous rendre sur le script d'installation en allant à l'adresse `http://localhost/booklink`. |
|---|
| 161 | | |
|---|
| 162 | | Vous allez donc pouvoir configurer votre base de données, vos différents langages, et les permissions de vos fichiers. Le fichier de configuration sera enfin généré. Pendant que bermi s'occupe de prendre un café en attendant que les anglais et les espagnols configurent leur application **booklink**, je pencherais plutôt pour un p'tit chocolat chaud. |
|---|
| 163 | | |
|---|
| 164 | | #### Configuration manuelle (non, pas le prénom) #### |
|---|
| 165 | | |
|---|
| 166 | | Copiez les fichiers `config/DEFAULT-config.php` et `config/DEFAULT-routes.php` en tant que `config/config.php` et `config/routes.php`, respectivement, et éditez-les à vos soins. |
|---|
| 167 | | |
|---|
| 168 | | Il vous faudra probablement aussi définir le dossier à partir duquel s'effectue la ré-écriture d'URL (afin de pouvoir utiliser des URL propres). Editez donc le fichier `public/.htaccess`, et changez la valeur de RewriteBase : |
|---|
| | 154 | Vous pouvez bien �videmment passer par une interface graphique, telle phpMyAdmin, pour cr�er ces tables. |
|---|
| | 155 | |
|---|
| | 156 | ### Cr�ation des fichiers de configuration ### |
|---|
| | 157 | |
|---|
| | 158 | #### �l'aide de l'installeur #### |
|---|
| | 159 | |
|---|
| | 160 | Vous pouvez ouvrir votre navigateur et vous rendre sur le script d'installation en allant � l'adresse `http://localhost/booklink`. |
|---|
| | 161 | |
|---|
| | 162 | Vous allez donc pouvoir configurer votre base de donn�es, vos diff�rents langages, et les permissions de vos fichiers. Le fichier de configuration sera enfin g�n�r�. Pendant que bermi s'occupe de prendre un caf� en attendant que les Anglais et les Espagnols configurent leur application **booklink**, je pencherais plut�t pour un p'tit chocolat chaud. |
|---|
| | 163 | |
|---|
| | 164 | #### Configuration manuelle (non, pas le pr�nom) #### |
|---|
| | 165 | |
|---|
| | 166 | Copiez les fichiers `config/DEFAULT-config.php` et `config/DEFAULT-routes.php` en tant que `config/config.php` et `config/routes.php`, respectivement, et �ditez-les � vos soins. |
|---|
| | 167 | |
|---|
| | 168 | Il vous faudra probablement aussi d�finir le dossier � partir duquel s'effectue la r�-�criture d'URL (afin de pouvoir utiliser des URL propres). �ditez donc le fichier `public/.htaccess`, et changez la valeur de RewriteBase : |
|---|
| 177 | | Il va maintenant faloir définir les tables que **booklink** va utiliser pour stocker les informations sur les livres et leurs auteurs. |
|---|
| 178 | | |
|---|
| 179 | | La plupart du temps, lorsque l'on travaille avec d'autres développeurs, le schéma de la base de données est susceptible de changer. Il devient alors compliqué de maintenir cette base identique pour chaque personnes du projet. Akelos propose donc une solution à ce problème, appelée *installer*, ou *migration*. |
|---|
| 180 | | |
|---|
| 181 | | Grâce à cet outil de migration, vous allez non seulement pouvoir créer vos base de données, mais aussi générer un installeur, qui pourra être utilisé pour enregistrer tous les différents changements que vous effectuerez sur la base. |
|---|
| 182 | | |
|---|
| 183 | | Pour ce tutorial, créez le fichier `app/installers/booklink_installer.php`, et copiez-y le contenu suivant : |
|---|
| | 177 | Il va maintenant falloir d�finir les tables que **booklink** va utiliser pour stocker les informations sur les livres et leurs auteurs. |
|---|
| | 178 | |
|---|
| | 179 | La plupart du temps, lorsque l'on travaille avec d'autres d�veloppeurs, le sch�ma de la base de donn�es est susceptible de changer. Il devient alors compliqu� de maintenir cette base identique pour chaque personne du projet. Akelos propose donc une solution � ce probl�me, appel�e *installer*, ou *migration*. |
|---|
| | 180 | |
|---|
| | 181 | Gr�ce � cet outil de migration, vous allez non seulement pouvoir cr�er vos bases de donn�es, mais aussi g�n�rer un installeur, qui pourra �tre utilis� pour enregistrer tous les diff�rents changements que vous effectuerez sur la base. |
|---|
| | 182 | |
|---|
| | 183 | Pour ce tutoriel, cr�ez le fichier `app/installers/booklink_installer.php`, et copiez-y le contenu suivant : |
|---|
| 212 | | Ce peu de données suffisent à Akelos pour créer la base de donnés. En ne spécifiant que le nom des colonnes, Akelos choisira lui-même leur type en se basant sur les conventions de nommage des tables SQL. Cependant, vous avez bien évidemment la possibilité de définir vous-même le typages des colonnes grâce a la [syntaxe de php Adodb](http://phplens.com/lens/adodb/docs-datadict.htm) |
|---|
| 213 | | |
|---|
| 214 | | Maintenant que nous avons défini les tables, il ne reste plus qu'à les installer. Tappez la commande : |
|---|
| | 212 | Ce peu de donn�es suffit � Akelos pour cr�er la base de donn�es. En ne sp�cifiant que le nom des colonnes, Akelos choisira lui-m�me leur type en se basant sur les conventions de nommage des tables SQL. Cependant, vous avez bien �videmment la possibilit� de d�finir vous-m�me le typages des colonnes gr�ce � la [syntaxe de PHP Adodb](http://phplens.com/lens/adodb/docs-datadict.htm) |
|---|
| | 213 | |
|---|
| | 214 | Maintenant que nous avons d�fini les tables, il ne reste plus qu'� les installer. Tapez la commande : |
|---|
| 245 | | Pour faire fonctionner vos applications, Akelos utilise le [motif de conception appelé MVC](http://fr.wikipedia.org/wiki/Motif_de_conception). |
|---|
| 246 | | |
|---|
| 247 | | ### Les conventions de nomage dans Akelos ### |
|---|
| 248 | | |
|---|
| 249 | | Le nommage de chaque objet dans Akelos est très important, puisqu'il permet l'automatisation de son fonctionnement. |
|---|
| 250 | | |
|---|
| 251 | | #### Modèles #### |
|---|
| | 245 | Pour faire fonctionner vos applications, Akelos utilise le [motif de conception appel� MVC](http://fr.wikipedia.org/wiki/Motif_de_conception). |
|---|
| | 246 | |
|---|
| | 247 | ### Les conventions de nommage dans Akelos ### |
|---|
| | 248 | |
|---|
| | 249 | Le nommage de chaque objet dans Akelos est tr�s important, puisqu'il permet l'automatisation de son fonctionnement. |
|---|
| | 250 | |
|---|
| | 251 | #### Mod�les #### |
|---|
| 255 | | * **Nom des fichiers :** au singulier, séparé par des underscore *(bank_account.php.php, user.php, etc.)* |
|---|
| 256 | | * **Nom des tables :** au pluriel, séparé par des underscore *(bank_accounts, users)* |
|---|
| 257 | | |
|---|
| 258 | | #### Controlleurs #### |
|---|
| | 255 | * **Nom des fichiers :** au singulier, s�par� par des underscore *(bank_account.php.php, user.php, etc.)* |
|---|
| | 256 | * **Nom des tables :** au pluriel, s�par� par des underscore *(bank_accounts, users)* |
|---|
| | 257 | |
|---|
| | 258 | #### Contr�leurs #### |
|---|
| 283 | | Cela va créer une multitudes de fichiers là où il faut, et le tout va fonctionner directement ! Sceptique ? |
|---|
| 284 | | Allez donc sur [http://localhost/booklink/author](http://localhost/booklink/author) et sur [http://localhost/booklink/books](http://localhost/booklink/books), et vous pourrez d'ores et déjà gérer les livres et les auteurs dans votre base de données. |
|---|
| 285 | | Allez, je vous laisse un peu de temps pour vous amuser, et revenez me voir dès que vous êtes prêts à continuer. |
|---|
| | 283 | Cela va cr�er une multitude de fichiers l� o� il le faut, et le tout va fonctionner directement ! Sceptique ? |
|---|
| | 284 | Allez donc sur [http://localhost/booklink/author](http://localhost/booklink/author) et sur [http://localhost/booklink/books](http://localhost/booklink/books), et vous pourrez d'ores et d�j� g�rer les livres et les auteurs dans votre base de donn�es. |
|---|
| | 285 | Allez, je vous laisse un peu de temps pour vous amuser, et revenez me voir d�s que vous �tes pr�ts � continuer. |
|---|
| 304 | | 5. A la fin de l'action, Akelos chercher le fichier de vue `/app/views/book/show.tpl` et crée le rendu de ce fichier, ce dernier étant aussi disponible dans la variable `$content_for_layout` dans les layouts. |
|---|
| 305 | | |
|---|
| 306 | | 6. Akelos va enfin chercher le fichier layout appelé `/app/views/layouts/book.tpl`. Si ce fichier est trouvé, Akelos crér le rendu du layout, et assigne le contenu de la vue dans `$content_for_layout`. Le tout est enfin envoyé au navigateur. |
|---|
| 307 | | |
|---|
| 308 | | Si vous avez compris ce fonctionnement, je pense que vous pouvez d'ores et déjà commencer à modifier votre application. |
|---|
| | 304 | 5. A la fin de l'action, Akelos chercher le fichier de vue `/app/views/book/show.tpl` et cr�e le rendu de ce fichier, ce dernier �tant aussi disponible dans la variable `$content_for_layout` dans les layouts. |
|---|
| | 305 | |
|---|
| | 306 | 6. Akelos va enfin chercher le fichier layout appel� `/app/views/layouts/book.tpl`. Si ce fichier est trouv�, Akelos cr�e le rendu du layout, et assigne le contenu de la vue dans `$content_for_layout`. Le tout est enfin envoy� au navigateur. |
|---|
| | 307 | |
|---|
| | 308 | Si vous avez compris ce fonctionnement, je pense que vous pouvez d'ores et d�j� commencer � modifier votre application. |
|---|
| 364 | | Si vous n'avez pas encore ajouté d'auteurs dans votre base de données (vilain garnement), c'est le moment de le faire. |
|---|
| 365 | | |
|---|
| 366 | | Vous pouvez donc désormais choisir l'auteur de chaque livre. C'est magnifique ! Mais vous avez sûrement remarqué que vous ne voyez pas l'auteur des livres dans la liste des livres. |
|---|
| 367 | | Ouvrez donc le fichier `app/views/book/show.tpl`, et juste après `<? $content_columns = array_keys($Book->getContentColumns()); ?>`, rajoutez : |
|---|
| | 364 | Si vous n'avez pas encore ajout� d'auteurs dans votre base de donn�es (vilain garnement), c'est le moment de le faire. |
|---|
| | 365 | |
|---|
| | 366 | Vous pouvez donc d�sormais choisir l'auteur de chaque livre. C'est magnifique ! Mais vous avez s�rement remarqu� que vous ne voyez pas l'auteur des livres dans la liste des livres. |
|---|
| | 367 | Ouvrez donc le fichier `app/views/book/show.tpl`, et juste apr�s `<? $content_columns = array_keys($Book->getContentColumns()); ?>`, rajoutez : |
|---|