Hoa

Hoa est un ensemble de bibliothèques PHP puissantes, rapides, hautement modulaires, sûres, sécurisées, innovantes et respectueuses des standards, sous New BSD License.

Hoa est également un pont entre le monde de la recherche et le monde de l'entreprise.

Bibliothèque

Hoa est découpé en bibliothèques regroupées autour d'un noyau. Hoa propose un mécanisme (Hoathis) pour créer vos propres bibliothèques autour de ce même noyau et ainsi assurer la même qualité que les bibliothèques natives.

from('Hoathis') -> import('MyStream.Write');
event('hoa://Event/Log/Test/Praspel')->attach(
    new Hoathis\MyStream\Write()
);

Modularité

Le noyau de Hoa s'assure de la modularité en gérant toutes les dépendances, importations, paramétrages, chemins abstraits etc.

from('Hoa') -> import('File.Read');
$file = new Hoa\File\Read(
    'hoa://Data/Temporary/Foo.txt'
);

Rapidité et puissance

Hoa requiert PHP 5.3 minimum, la plus puissante des versions de PHP. De plus, Hoa est optimisé selon les complexités algorithmiques et l'espace mémoire. Enfin, des bibliothèques proposent plusieurs systèmes de caches à plusieurs niveaux : PHP, base de données, gateway etc.

Innovation

Hoa s'efforce de constamment innover. L'objectif est d'offrir le maximum de puissance à l'utilisateur de la manière la plus intuitive possible. De plus, Hoa est utilisé pour des recherches au LIFC et à l'INRIA. Cela se répercute sur les solutions que proposent Hoa.

  • XYL : langage d'interface graphique ;
  • Praspel : langage de spécification ;
  • zFormat : langage de paramétrage.

Sécurité

Des travaux de recherche concernant les tests sont développés dans Hoa. On trouve entre autre un générateur automatique de tests unitaires. Un rapport de recherche et des articles ont été publiés.

/**
 * @requires  i: even(boundinteger(0, 53)) and
 *            j: array([to boolean()], 7);
 * @ensures   \result: boolean();
 * @throwable FooException;
 */

Standards

Hoa participe entre autre au W3C dans les groupes de travail HTML, CSS et WebApp. Hoa est très respectueux de ces normes, ainsi que celles du RFC, ISO, POSIX etc ; ce qui assure une homogénéité, interopérabilité et pérennité de vos projets.

Qui l'utilise ?

  • Mozilla
  • LIFC
  • INRIA