wiki:fr/sources
developer.jelix.org is not used any more and exists only for history. Post new tickets on the Github account.
developer.jelix.org n'est plus utilisée, et existe uniquement pour son historique. Postez les nouveaux tickets sur le compte github.

Version 4 (modified by laurentj, 14 years ago) (diff)

--

Travailler avec les sources

Travailler avec les sources de Jelix est assez différent des projets PHP traditionnels, en ce sens que le contenu du dépôt des sources n'est pas directement utilisable. En clair, le contenu qui est proposé dans les archives en téléchargement, est légèrement différent de ce qui est dans le dépôt.

En effet, certains fichiers de Jelix contiennent des directives pour générer un fichier source différent en fonction de paramètre. Cela permettra de fournir des versions différentes de Jelix

  • en fonction d'une version de PHP
  • optimisée selon le context : optimisée pour un environnement en production, ou contenant des outils et fonctions supplémentaires pour aider au développement.
  • de l'arborescence finale souhaitée : configuré pour fonctionner sans documentRoot, ou avec documentRoot.
  • etc.

Les fichiers sources de Jelix du dépôt doivent donc passer par un pré-processeur avant de pouvoir être utilisé par PHP. Ce qui veut dire aussi que les contributeurs à Jelix doivent effectuer leurs modifications, non pas dans les fichiers sources disponibles en téléchargement, mais dans le code source obtenus via le dépot subversion.

Récupérer les sources

Il faut les récupérer à partir du dépôt Subversion. Il faut donc installer sur votre machine un client subversion. Puis ensuite le configurer pour accéder au dépôt.

Adresse du dépôt, pour les contributeurs "anonymes" :

   svn://svn.berlios.de/jelix/trunk

Addresse du dépot, pour les contributeurs "officiels" qui ont un accès en écriture sur le dépot :

   svn+ssh://''votre_login_berlios''@svn.berlios.de/svnroot/repos/jelix/trunk

jelix/trunk est pour récupérer uniquement la version en cours de développement de la branche principale. Si vous voulez récupérer d'autres branches ou versions officielles, indiquez juste jelix

   svn+ssh://''votre_login_berlios''@svn.berlios.de/svnroot/repos/jelix/

Cela donne donc, avec un client subversion en ligne de commande :

svn checkout svn+ssh://''votre_login_berlios''@svn.berlios.de/svnroot/repos/jelix/trunk

Arborescence

Voici les differents répertoires que vous récupérez :

  build/     les outils de génération de sources
  lib/       les bibliothèques de jelix
  myapp/     application simple
  temp/      repertoire temporaire pour les applications jelix
  testapp/   application qui permet de tester le framework

Les outils de constructions

Les sources obtenues ne peuvent pas être utilisable directement.

Une fois que vous avez effectué des modifications dans le code source, il faut générer une version utilisable par PHP pour pouvoir tester ces modifications.

Pour ce faire il y a un script build/buildjelix.php. C'est une sorte de makefile. Il prend en argument un nom de fichier ini qui déclare des paramètres. Le repertoire build/config/ contient des fichiers ini que vous pouvez utiliser.

Il existe aussi un fichier Makefile à la racine du dépot, qui ne fait qu'appeler buildjelix.php.

Générer une version de travail

Avant de faire des modifications, il faut préparer votre environnement. Vous devez avoir le répertoire contenant les sources du dépot, et le répertoire qui contiendra une version utilisable du framework. Par exemple :

Pour le répertoire du dépot, et contenant donc trunk/lib etc. :

   /home/laurent/projets/jelix/svn/ 

Pour le répertoire cible, contenant la version interprétable/utilisable par php

   /home/laurent/projets/jelix/tests/ 

Créez un fichier monbuild.ini, sur le modèle de ceux que vous trouvez dans build/config (jelix-test.ini par ex). Il contiendra alors :

MAIN_TARGET_PATH = /home/laurent/projets/jelix/tests/
PHP_VERSION_TARGET =
ENABLE_PHP_FILTER =
ENABLE_PHP_JSON =
ENABLE_PHP_XMLRPC =
ENABLE_DEVELOPER = 1
PACKAGE_TAR_GZ =
PACKAGE_ZIP =
STRIP_COMMENT =
ENABLE_OPTIMIZE =

Ensuite, vous lancez la commande

  php build/buildjelix.php monbuild.ini

Même principe pour les applications de test myapp et testapp. Il faut alors utiliser le script build/buildapp.php avec le fichier de config adéquate dans build/config (myapp-test.ini ou testapp-test.ini)

  php build/buildapp.php montestapp.ini

Note: il faut lancer le build à chaque modification dans les sources de jelix, avant de le tester.

Générer un package

Le principe est exactement le même que pour générer une version de travail. Vous avez par exemple : /home/laurent/projets/jelix/dist/ pour le répertoire qui contiendra les futurs zip/tar.gz

Créez un nouveau fichier ini mondist.ini sur le modèle de monbuild.ini, en indiquant ce repertoire et en activant les options PACKAGE_TAR_GZ et/ou PACKAGE_ZIP

MAIN_TARGET_PATH = /home/laurent/projets/jelix/dist/
PHP_VERSION_TARGET =
ENABLE_PHP_FILTER =
ENABLE_PHP_JSON =
ENABLE_PHP_XMLRPC =
ENABLE_DEVELOPER = 1
PACKAGE_TAR_GZ = 1
PACKAGE_ZIP = 1
STRIP_COMMENT =
ENABLE_OPTIMIZE =

et ensuite :

  php build/buildjelix.php mondist.ini

Vous aurez alors dans /home/laurent/projets/jelix/dist/ des archives prêtes à être distribuées.

Utilisation du Makefile

Il existe un fichier makefile, utilisable par la commande Make, qui appel les scripts de build pour jelix et autres applications stockées dans le dépot. Le Makefile accepte différentes cibles, qui permettent de générer des repertoires de travail ou des paquets à distribuer avec les paramètres standards. Tapez simplement make pour en avoir la liste.

Toutefois, il n'est en principe pas à utiliser et est surtout utile pour le serveur de jelix.org.


Retour au sommaire