Raccourcis : Contenu - rubriques - sous rubriques
FR

Piste :

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
Prochaine révisionLes deux révisions suivantes
jelix_vs_copix [2006/01/02 10:49] bballizlifejelix_vs_copix [2006/03/21 07:45] laurent
Ligne 1: Ligne 1:
-====== Quel est le rapport entre Jelix et Copix ====== 
  
-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 par rapport à Copix 2.3dev20050901 (cette liste est destinée aux personnes connaissant déjà Copix). 
- 
-===== généralités ===== 
- 
-   * Entièrement optimisé pour PHP 5 : utilise donc au maximum les concepts objets de PHP5, et toutes les fonctionnalités de PHP5 : exceptions, autoload... Il n'existe pas de version pour PHP 4. 
-   * ce qui a été réutilisé de Copix a été optimisé et "dépoussiéré" : le code mort ainsi que des fonctionnalités inutiles ont été supprimé, du code a été refactorisé etc..  
-   * Meilleur performance générales : avec toutes les modifications apportés, Jelix est en théorie plus performant. Ainsi le code du coeur de Jelix (3000 lignes de code) est 40% moins important que celui de Copix (5000 lignes, sans compter les 2000 lignes de smarty) 
-   * Réorganisation au niveau de l'organisation des fichiers : nouvelle arborescence des répertoires, meilleure aptitude à être intégré dans un système de paquet comme celui d'une distribution Linux etc... 
-   * meilleure prise en charge du charset et de la langue 
-   * Il n'y a plus CopixSimpleXml (remplacé par le simplexml de PHP5) 
-   * système de themes de templates 
-   * meilleures prise en charges des services web grâce au nouveau coeur : XMLRPC, JSONRPC.. 
- 
-===== Le coeur ===== 
- 
-   * le coeur a entierement été réécrit : la coordination a quelque peu changée 
-     * il n'y a plus de parametres "desc". Reste donc uniquement les paramètres "module" et "action" 
-     * il n'y a plus de fichier *.desc.php. Ils sont remplacés par un unique fichier action.xml par module. Ainsi, toutes les actions sont déclarées dans un fichier XML (un peu comme dans struts, mais simplifié) 
-     * Il y a un controle sur le type contenu d'une réponse en fonction de la requete. Par exemple, on ne peut pas générer du html si il s'agit d'une requete formatée en XMLRPC. La réponse devra être en XMLRPC. Il y a ainsi des objets de traitements de requetes, dediée à des requetes spécifiques, et n'autorisant que des réponses spécifiques. 
-     * Les erreurs techniques qui pourraient apparaître (par trigger_error ou exceptions), sont générées dans le format approprié à la requête/réponse ! (pas de retour d'erreur formatées en HTML quand on attend du JSONRPC par exemple) 
-     * les plugins de templates sont dédiés à un format de sortie spécifique. On ne peut donc pas utiliser un format 
-   * Les selecteurs : la syntaxe a changée "type:module~ressource" ou "module~ressource". Il y a beaucoup plus de type de selecteurs, et les classes correspondantes à chaque selecteur permettent de récupérer le chemin correspondant (les chemins ne sont plus calculés à divers endroit du framework comme c'est le cas dans Copix) 
-   * grâce à certains selecteurs, il est possible de proposer un fichier alternatif à un original. Cela permet ainsi de pas toucher au code d'un module. Ainsi, on peut redefinir les templates, les daos, les locales. 
-   * Il n'y a plus de "niveau projet" 
-   * Une application peut utiliser des modules se situant dans des répertoires différents. On peut ainsi mutualiser des modules entre plusieurs applications. Idem pour les plugins du coordinateur et les plugins de templates. 
-   * fichiers de configurations au format INI : plus rapide à analyser et plus facile à modifier qu'un fichier php 
-   * Des noms de repertoire, de fichier, et de classes ont été raccourcis pour plus de simplicité (*.actiongroup.php -> *.ag.php, *.dao.definition.xml -> *.dao.xml, CopixDbFactory -> jDb, CopixEventNotifier -> jEvent etc...) 
- 
-===== 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ée CopixDb. Cependant, le format de DAO a un peu changé, étendue, et le moteur totalement refait. Les methodes PHP sont maintenant à intégrer dans le fichier XML, il n'y a donc plus la possiblité 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 methodes 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 design 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 suffisement 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éfinis 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 reutiliser 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écuperer une locale à l'interieur même d'une expression, ou bien de faciliter son affichage : {@module~my.locale@} 
- 
-===== Authentification et Droits ===== 
- 
-La partie authentification a été repris d'une version experimentale 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ée, 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é repris et Jelix proposera dans la version finale un nouveau système plus clair et plus performant. 
- 
-===== système évenmentiels ===== 
- 
-Peu de choses ont été modifié de l'original CopixEvent. Seul CopixEvent et CopixEventNotifier ont été fusionné. 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. 

fr/jelix_vs_copix.txt · Dernière modification : 2008/12/08 22:27 de 127.0.0.1

Fils rss des changements récents dans le wiki Creative Commons License