Chapitre 1. Introduction
Présentation
Hoa est un framework complet, orienté objet, basé sur la technologie PHP 5. Il permet d'écrire des applications Web rapidement, de manière flexible et professionnelle. Hoa utilise les dernières technologies et manœuvres existantes dans le domaine de la programmation orientée objet (comme par exemple l'utilisation des design patterns).
Hoa fonctionne en utilisant une multitude de paquetages — au maximum — simples, qui peuvent être assemblés pour développer n'importe quel type de module. Le système d'application est basé sur le design pattern MVC. Cela assure une meilleure organisation des projets, et permet à chacun de travailler avec le maximum de confort.
Hoa est un rétro-acronyme récursif de : Hoa Open Accessibility. Il se lit /hɔa˦/, soit o-a (et non h-o-a). Hoa fait référence à une fleur, la beauté, l'amour ou signifie être aimé.
Pourquoi Hoa ?
Simplicité
Hoa est tout d'abord penser pour l'utilisateur. On tente donc d'être le plus complet possible tout en étant le plus intuitif possible. Chaque cas, chaque action est vue et revue pour faciliter le travail de l'utilisateur.
Légèreté
Chaque paquetage de Hoa est toujours écrit de façon minutieuse de façon à avoir un système le plus léger, mais le plus performant possible.
Performances
On s'applique à utiliser les solutions les plus pointues pour résoudre la plupart des problèmes. Cela passe par l'utilisation de nombreux design patterns par exemple.
Chaque action est pensée pour économiser des ressources, de la mémoire, du temps de calcul, de la complexité etc., afin d'avoir un système optimal dans toutes les situations.
Hoa tente également d'améliorer les performances de l'application en s'appuyant sur un système de cache performant. Ce qui aura pour effet d'économiser encore des calculs pour les bases de données par exemple.
Standards et pérennité
Hoa met un point d'honneur sur l'utilisation des normes et standards. Ces derniers nous offrent plusieurs choses :
- bon fonctionnement et cohérence des applications ;
- interopérabilité des opérations avec d'autres applications ;
- pérennité des projets et ressources créées.
Hoa est très respectueux des normes, standards et recommandations, tels que ceux du W3C, RFC, ISO etc., et se base sur des fonctionnements similaires qui ont fait leur preuve ou qui sont reconnus comme étant une référence (on pense par exemple à Gettext).
Indépendance des paquetages et réutilisabilité
Un framework a pour vocation de fournir un environnement de développement le plus large possible afin de répondre à toutes les situations. Toutefois, on peut n'avoir besoin que d'une partie du framework. C'est pourquoi le couplage/dépendance entre les paquetages sont le plus faible possible afin de pouvoir réutiliser tout ou partie du framework et de l'intégrer dans n'importe quel projet.
Licence permissive
Hoa est placé sous licence GNU GPL. Cette licence est suffisament permissive pour intégrer Hoa dans la plupart des projets.
Installation
Hoa est construit sur la version 5 de PHP, il est donc nécessaire d'avoir la version 5.1.4 ou plus. Pour plus d'informations sur la configuration minimale requise, on peut consulter l'Annexe A, Configuration requise.
Télécharger Hoa
Une fois le système installé et à jour, on peut télécharger Hoa. Pour cela, plusieurs solutions vous sont proposées.
Subversion
Subversion est une application de gestion de version. Il permet une gestion simplifiée des téléchargements et mises à jour des applications. Hoa a un serveur SVN public sur SourceForge. On peut parcourir les sources à l'aide de ViewVC [1] ou télécharger les sources directement.
Dans la terminologie SVN, on parle d'extraire
(checkout) les sources du dépôt
(repository). Un dépôt est organisé selon 3 catégories.
La catégorie à laquelle on s'intéresse présentement est la version principale
(trunk version) contenant les dernières corrections de
bugs et améliorations. On souhaite que cette version soit placée dans le
dossier Hoa_Framework. On se place à la racine de notre
application, puis on prépare l'extraction.
On aura alors une ligne de commande qui ressemblerait sensiblement à :
$ svn co https://hoa-project.svn.sf.net/svnroot/hoa-project/Trunk Hoa_Framework
On doit accepter le certificat (temporairement ou de façon permanente) pour
pouvoir tout télécharger.
Une fois Hoa Framework téléchargé, vous pouvez l'utiliser normalement.
Si — à l'avenir — on souhaite se mettre à jour, rien de plus simple.
On se place dans le dossier racine (selon l'exemple précédent :
Hoa_Framework), et on entre la ligne de commande
suivante :
$ svn update
Les fichiers vont se mettre à jour seuls, i.e. sans que l'on
doive intervenir, et le terminal renverra le numéro de révision du
projet.
Archive
Si on n'est pas très à l'aise avec SVN, des archives sont mises à notre disposition : zip, tar.bz2, tar.gz, 7z etc.
L'installation se fait en 3 étapes :
- on télécharge une archive sur la page de téléchargement de Hoa ;
- une fois l'archive téléchargée, on décompresse ou on désarchive Hoa avec notre outil préféré ;
-
on rentre dans le dossier
Hoa_Framewor_v-xxx, et on trouve le dossierHoa_Framework. On place ce dossier dans notre application, et l'installation est terminée.
Si — à l'avenir — on souhaite se mettre à jour, il va falloir réitérer l'opération.
Modifier les chemins d'inclusion
Maintenant, il est préférable de reconfigurer un minimum PHP pour faciliter l'utilisation du framework.
On va simplement modifier le paramètre
include-path de façon à créer un chemin évident vers le
framework, puis d'inclure son fichier principal. Cette modification se
fait dans votre fichier d'amorçage, généralement
index.php :
<?php /** * On redéfinit le chemin des inclusions de fichiers. */ set_include_path('./' . PATH_SEPARATOR . './Hoa_Framework' . PATH_SEPARATOR . get_include_path()); /** * On appelle le fichier principal du framework. */ require_once 'Framework.php'; /** * C'est parti ;-). */ echo 'Je suis installé, merci !';
Hoa est maintenant prêt à l'utilisation.
Cette redéfinition simplifie l'appel des fichiers, car quand on appelle un fichier, le système va tenter le premier chemin. Si c'est un échec, il tentera le second, puis le suivant etc., jusqu'à un succès, i.e.trouver le fichier. C'est donc une simplification.
Dans tous les exemples qui vont suivre, on ne répétera pas la
redéfinition du chemin d'inclusion ; on se contentera d'appeler le
fichier principal Framework.php.

