Copix

Copix
Copix
Toukix.svg
Développeur CopixTeam
Dernière version 3.0.4 (25 octobre 2008) [+/−]
Environnement Multiplate-forme
Type Framework (cadre d'applications)
Licence GNU LGPL
Site web www.copix.org

Copix est un framework pour le langage PHP. Il est construit en cinq couches, repose entièrement sur la programmation orientée objet et vise à prendre en charge le développement de tous types d'applications, des plus simples aux plus complexes. Il est distribué sous la licence GNU LGPL. Le système de gestion de contenu CopixCMS a été écrit avec Copix.

Sommaire

Les cinq couches de Copix

  1. coordination : analyse des requêtes, lancement des processus généraux et exécution des actions (via les services) ;
  2. services : appel aux objets spécialisés domaines, récupération et formatage des données  ;
  3. domaines : ce sont les objets et fabriques métiers qui accèdent aux données en utilisant la couche persistance ;
  4. persistance : cette couche dialogue directement avec le système pour accéder aux bases de données, fichiers, annuaires LDAP, réseaux, ... ;
  5. présentation : traitements de présentation (templates, génération du code HTML).

Installation

Les prérequis :

  • Depuis la version 3.0 alpha 1 : PHP 5
  • Versions antérieures à la 3.0 alpha 1 PHP 4 : il est conseillé d'utiliser une version supérieure à PHP 4.3 pour profiter de toutes les fonctionnalités de Copix, PHP doit avoir été compilé avec l'option libxml activée ;
  • une base de donnée : Copix peut fonctionner sans, mais l'installation par défaut en demande une ; les bases de données reconnues sont (depuis Copix 2.2) : MySQL, Oracle, ODBC, PostgreSQL, SQLite, Microsoft SQL Server ;
  • un serveur web : Apache ou Microsoft IIS.
  • PHPUnit pour effectuer les test unitaires ainsi que Xdebug pour faire du code coverage.

Configuration de PHP

Les options suivantes du fichier php.ini sont conseillées, mais Copix marchera quelles que soient leurs valeurs. L'option la plus importante étant magic_quotes_gpc qui doit être de préférence off : si ce n'est pas possible (par exemple, accès impossible au fichier php.ini), le plugin Copix MagicQuotes annulera l'échappement des chaînes d'entrée.

magic_quote_gpc = off
# ces 3 paramètres sont utiles si vous utilisez la session
Session.use_cookies = 1
Session_autostart = 0
Session.save_handler = files
# pour des raisons de sécurité
register_globals = Off
# pour plus de sécurité
display_errors = Off
file_uploads = Off # si vous ne faites pas d'upload de fichier
allow_url_fopen = Off
session.save_path = répertoire accessible uniquement par PHP (écriture et lecture)

Configuration de Copix

Page d'installation de Copix 2.3.5
  • Dupliquer les répertoires de l'archive de Copix dans le répertoire web : project/, temp/, utils/, var/ et www/ pour Copix 2.3.5 ;
  • donner les droits de lecture au serveur web pour tous ces répertoires et leur contenu ;
  • donner les droits d'écriture pour le répertoire temp/.

Si tout a été configuré correctement, une page de Copix s'affiche, proposant la configuration d'une base de donnée.

Configuration du serveur web

Le serveur web doit pointer sur le répertoire Copix www/, qui contient index.php.

Fonctionnement d'une application

Un object Copix peut se trouver à deux niveaux distincts :

  • au niveau du projet, dans le répertoire project/ ;
  • dans un module, répertoire project/modules/NomDuModule/ : un module est en général autonome et peut être copié directement dans un autre projet pour être utilisé immédiatement.

Un objet Copix, qu'il soit au niveau du projet ou dans un module, nécessite trois éléments pour fonctionner :

  • des objets CopixActionGroup qui implémentent les actions sous forme de méthodes d'une classe héritant de CopixActionGroup, chaque action correspond généralement à une URL ;
  • des fichiers de description d'actions ou fichiers desc qui listent les actions possibles ou autorisées, sous forme de déclarations de variables instanciant chacune un objet CopixAction : le nom de la variable correspond au nom de l'action ; Depuis la version 3, ces fichiers ne sont plus nécessaire.
  • des templates pour afficher les pages.

Exemple

Cet exemple minimal utilise le template par défaut project/templates/main.tpl spécifié par le code retour COPIX_AR_DISPLAY.

Création d'un module

Un module minimal nécessite la création de deux fichiers :

  • une classe qui hérite de l'objet ActionGroup :
<?php
class ActionGroupTutorial extends CopixActionGroup
{
    function getSimpleHelloYou ()
    {
        $tpl = new CopixTpl();
        $tpl->assign('MAIN', 'Hello You !');

        return new CopixActionReturn(COPIX_AR_DISPLAY, $tpl);
    }
}
?>

ce fichier, appelé tutorial.actiongroup.php est à mettre dans le répertoire actiongroup/ d'un module : project/modules/tutorial/actiongroup/.

  • un fichier de description :
<?php
$hello = & new CopixAction ('Tutorial', 'getSimpleHelloYou');
?>

ce fichier, appelé default.desc.php est à mettre dans le répertoire desc/ du module : project/modules/tutorial/desc/.

L'appel de la page qui affichera le message Hello You ! sera alors :

index.php?action=hello&module=tutorial

Création au niveau du projet

Le même objet peut être installé au niveau du projet :

  • le fichier tutorial.actiongroup.php sera dans le répertoire project/actiongroup ;
  • le contenu du fichier default.desc.php ajouté à celui qui existe : project/desc/default.desc.php ;
  • l'URL de la page sera simplement :
index.php?action=hello

Les principaux objets Copix

CopixCoordination

CopixAction

CopixZone

Une Zone Copix représente une portion du contenu qui sera affichée dans un écran. Les zones sont appelées par les Actions Copix qui leur délèguent une partie du travail. L'utilisation de zones n'est pas obligatoire mais simplifie le développement en séparant clairement les parties d'affichage dynamique. De plus, les zones Copix gèrent nativement un cache de contenu.

CopixDB

CopixDAO

CopixDAO est une couche d'abstraction des bases de données utilisant comme définition un fichier XML. Ce fichier contient les données de connexion, la description des tables et de leurs champs, et optionnellement :

  • des méthodes d'accès supplémentaires (en plus des méthodes standard qui sont : get, insert, update, delete, findAll et findBy) ;
  • des méthodes écrites en PHP qui feront partie de l'objet concret CopixDAO correspondant.

La version 3 de Copix, vous permet également d'utiliser des DAO Automatiques. Ces DAO automatiques sont automatiquement générés depuis les champs de la table demandé à la DAO.

Le nom « DAO » vient du motif de conception utilisé : Data Access Object, un motif courant pour les accès aux bases de données. CopixDAO prend en charge la construction des requêtes SQL (sauf les plus complexes) ainsi que les problèmes de sécurité (e.g. les injections SQL).

CopixI18N

ce module permet l'internalisation des mnémonics du framework selon le langage du site à utiliser

Histoire

Copix est né des applications réalisées par la SSII Aston absorbée en 2005 par la société SQLI. Le nom « Copix » ne signifie rien en particulier.

Aujourd'hui Copix est un framework dynamique, car il intègre une équipe de plusieurs développeurs d'univers professionnels différents avec des attentes différentes.

Voir aussi


Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article Copix de Wikipédia en français (auteurs)

Игры ⚽ Поможем сделать НИР

Regardez d'autres dictionnaires:

  • çöpix’ — (Şəki) yorğan döşəyin içərisində işlənib xarab olmuş yun. – İki döşşeyə tezə yün lazımdı, içindəki çöpix’di, ha didif düzəldiyəm bi şey çıxmiyi …   Azərbaycan dilinin dialektoloji lüğəti

  • List of web application frameworks — This is a list of notable web application frameworks, used for creating web applications. Client side ActionScript * Cairngorm * PureMVCJavaScript* Backbase * CJAX * Clean AJAX * Dojo Toolkit * Echo * Ext * [http://www.gapjumper.com/ Gapjumper] * …   Wikipedia

  • Jelix — Développeur Liste des contributeurs Dernière version 1.2.0 ( …   Wikipédia en Français

  • ADULLACT — Association des développeurs et utilisateurs de logiciels libres pour les administrations et les collectivités territoriales Logo de Association des développeurs et utilisateurs de logiciels libres pour les administrations et les collectivités… …   Wikipédia en Français

  • Apache Struts — est un framework libre servant au développement d applications web J2EE. Il utilise et étend l API Servlet Java afin d encourager les développeurs à adopter l architecture Modèle Vue Contrôleur. Apache Struts a été créé par Craig McClanahan et… …   Wikipédia en Français

  • Association des Développeurs et Utilisateurs de Logiciels Libres pour les Administrations et les Collectivités Territoriales — Logo de Association des développeurs et utilisateurs de logiciels libres pour les administrations et les collectivités territoriales Dates clés 28 septembre 2002, création …   Wikipédia en Français

  • Association des developpeurs et utilisateurs de logiciels libres pour les administrations et les collectivites territoriales — Association des développeurs et utilisateurs de logiciels libres pour les administrations et les collectivités territoriales Logo de Association des développeurs et utilisateurs de logiciels libres pour les administrations et les collectivités… …   Wikipédia en Français

  • Association des développeurs et utilisateurs de logiciels libres pour les administrations et les collectivités territoriales — Logo de Association des développeurs et utilisateurs de logiciels libres pour les administrations et les collectivités territoriales Dates clés 28 septembre 2002, création …   Wikipédia en Français

  • Liste De Frameworks PHP — Ci dessous, une liste plus ou moins exhaustive des frameworks en PHP disponibles. Agavi un framework open source écrit en PHP5 (site du projet) Akroweb developper un framework complet pour créer son site web rapidement, open source, écrit en PHP… …   Wikipédia en Français

  • Liste de frameworks PHP — Ci dessous, une liste plus ou moins exhaustive des frameworks en PHP disponibles. Agavi un framework open source écrit en PHP5 Atomik Framework un micro framework open source écrit en PHP5 Adaptive Website Framework (AWF). CakePHP un framework… …   Wikipédia en Français

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”