Table des matières

Quel est le rapport entre Jelix et Copix 2.3

Jelix est un framework réalisé par Laurent Jouanneau, qui fut un des développeurs principaux du framework Copix. Jelix réutilise certains composants et concepts de la version 2.3dev20050901 (septembre 2005) de Copix. Le coeur a cependant été réécrit presque entièrement. Jelix va donc plus loin qu'un simple fork de Copix.

Voici les nouveautés et différences qu'apporte Jelix 1.0 alpha par rapport à Copix 2.3dev20050901 (cette liste est destinée aux personnes connaissant déjà Copix).

Généralités

Le coeur

Actions, Actiongroup, Zones

Les zones embarquent leur propre système de cache. Ainsi il n'est plus fait usage du complexe CopixCache (qui a disparu pour le coup, peut être reviendra t-il). Une zone s'occupe maintenant automatiquement d'instancier et d'afficher le template associé.

DAO et Db

Jelix réutilise le concept de DAO de Copix et le connecteur de bases de données CopixDb. Cependant, le format de DAO a un peu changé, a été étendu et le moteur a été totalement refait. Les méthodes PHP sont maintenant à intégrer dans le fichier XML, il n'y a donc plus la possibilité de faire des classes PHP annexes.

CopixDb (jDb dans Jelix) a subit un gros nettoyage et il ne reste que ce qui est utile (il n'y a plus par exemple les QueryWidget et il ne reste que l'indispensable dans le DbWidget). De plus, des méthodes ont été renommées afin d'apporter une similitude entre les classes jDbConnection, jDbResultset, avec les classes de PDO, la nouvelle couche d'abstraction de base de données de PHP5.

D'ailleurs, si un profil désigne le driver pdo, jDb (ex CopixDbFactory) instancie une classe PDO au lieu de jDbConnection.

À terme, jDbConnection/jDbResultSet devraient devenir obsolète, une fois que PDO sera suffisamment stable, performant et répandu sur les serveurs.

Localisation

Le moteur CopixI18N a été repris, optimisé et est accessible sous le nom jLocale. Son moteur est plus léger, et permet maintenant de définir des fichiers properties pour chaque charset. jLocale prend celui qui correspond au charset défini pour l'action courante.

Moteur de template

Jelix n'utilise pas Smarty. C'est un moteur trop lourd, incluant de nombreuses fonctionnalités qui ne sont pas toutes utilisées dans un framework comme Jelix/Copix ou qui font doublons avec des fonctionnalités du framework.

Jelix embarque donc un moteur de template inédit, bien plus léger. Il utilise une syntaxe de balise similaire à Smarty mais les expressions utilisées dans les balises sont en php. On peut aussi utiliser des plugins comme dans smarty (en fait, on peut réutiliser les plugins smarty sans trop de modifications pour les plus simples d'entre eux).

Il ajoute aussi une notation syntaxique spécifique pour les locales : @module~my.locale@ , permettant de récupérer une locale à l'intérieur même d'une expression, ou bien de faciliter son affichage : {@module~my.locale@}

Authentification et Droits

La partie authentification a été reprise d'une version expérimentale de Copix, et qui n'a pas été intégrée dans une version officielle (à ce jour, 23/12/2005). Elle est plus souple, permet l'utilisation de “driver” pour l'accès aux informations d'authentification (driver base de données, ldap etc..), une meilleure personnalisation des données utilisateurs et s'occupe uniquement de l'authentification.

La gestion de droits de Copix n'a pas été reprise et Jelix proposera dans la version finale un nouveau système plus clair et plus performant.

Système évènementiel

Peu de choses ont été modifiées de l'original CopixEvent. Seul CopixEvent et CopixEventNotifier ont été fusionnés. Il y a eu quelques modifications mineures.

Scripts développeurs

Jelix fournis des scripts php à utiliser en ligne de commande, facilitant la création des divers fichiers et arborescences dans une application, permettant donc un développement rapide.

Urls

Jelix contient un système de mapping d'url sur les actions. Deux moteurs de génération / parsing d'urls sont disponibles : un moteur simple, et un moteur permettant l'usage des urls significatives (plus puissant que celui proposé dans Copix 2.3).