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 1 (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épot 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épot.

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épot 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épot Subversion. Il faut donc installer sur votre machine un client subversion. Puis ensuite le configurer pour accéder au dépot.

Addresse du dépot, 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 fichier Makefile à la racine des sources, et deux scripts utiles dans le répertoire build : mkdist.php et preprocess.php.

Le premier permet de créer une arborescence entière en suivant les instructions situées dans des fichiers "manifest", et le deuxième permet d'exécuter le préprocesseur sur un fichier précis pour en générer sa version exécutable.

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 :

   /home/laurent/projets/jelix/svn/ pour le répertoire du dépot, et contenant donc trunk/lib etc..
   /home/laurent/projets/jelix/tests/ pour le répertoire cible, contenant la version interprêtable par php

Afin d'initialiser le répertoire cible tapez en ligne de commande :

make DEV=/home/laurent/projets/jelix/tests/ dev-all

Cela va vous générer dans ce répertoire tests :

lib/ temp/ testapp/ myapp/ ..

Il faut ensuite configurer votre serveur web local pour qu'il pointe sur tests/ ou directement sur tests/testapp/www et/ou tests/myapp/www/

Ensuite, à chaque modification que vous faites dans jelix, et avant de pouvoir tester, il faut refaire un make, ou alors exécuter directement le préprocesseur. Par exemple, imaginons que vous avez modifié le fichier lib/jelix/core/jCoordinator.class.php, vous devrez alors exécuter cela (en supposant que vous êtes dans jelix/svn/trunk )

  php build/preprocess.php lib/jelix/core/jCoordinator.class.php ../../tests/lib/jelix/core/jCoordinator.class.php

Vous pouvez automatiser cette action en configurant votre éditeur (si c'est possible), afin qu'il exécute cette commande à chaque sauvegarde d'un fichier.

Pour en savoir plus sur le préprocesseur et ses directives : preprocesseur.

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/svn/trunk/... pour le répertoire du dépot /home/laurent/projets/jelix/dist/ pour le répertoire cible

Faites alors :

make DIST=/home/laurent/projets/jelix/dist/ dist-all

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

Notez bien que ce n'est plus dev-all, mais dist-all. Et que ce n'est plus DEV mais DIST.

Autres paramètres pour make

Le Makefile accepte différentes cibles, on a vu dist-all et dev-all. En fait ces cibles regroupent d'autres cibles qu'il est possible d'appeler directement :

dist-jelix génère une archive des bibliothèques jelix
dist-testapp génère une archive de l'appli testapp
dist-myapp génère une archive de l'appli myapp
dev-jelix génère un répertoire pour les test de la bibliothèque jelix
dev-testapp génère un répertoire pour les test de l'appli testapp
dev-myapp génère un répertoire pour les test de l'appli myapp
jtpl pour avoir une version standalone de jtpl

Le Makefile gère aussi le numéro de version. Il récupère le numéro de version contenu du fichier lib/jelix/VERSION pour l'utiliser dans le nom des archives. Si ce "numéro" est SVN (comme c'est le cas par défaut), alors il va récupérer le numéro de version du source subversion pour l'ajouter à ce numéro et générer un nouveau fichier VERSION dans le répertoire dist. Par ex : SVN-88. (version 88 dans le dépot).

Vous pouvez imposer un autre numero de version, en l'indiquant au makefile :

make LIB_VERSION=1.5.0 DIST=/home/laurent/projets/jelix/dist/ dist-all

Plus d'aide

Tapez Make tout court, pour afficher une petite aide et les valeurs courantes pour chaque paramètre.


Retour au sommaire