Raccourcis : Contenu - rubriques - sous rubriques
FR

Piste:

Wiki: Plan du site - Derniers changements - Back link

Différences

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

Lien vers cette vue comparative

fr:tutoriels:jelixnews-1.7:creation-application [2012/04/14 22:20]
127.0.0.1 modification externe
fr:tutoriels:jelixnews-1.7:creation-application [2019/05/22 22:13] (Version actuelle)
laurent
Ligne 1: Ligne 1:
  
-Nous allons créer une application à partir de rien. Toute application Jelix a un nom : celui de son répertoire. Nous allons appeler la notre "​actu.org"​.+Nous allons créer une application à partir de rien. Toute application Jelix a un 
 +nom : celui de son répertoire. Nous allons appeler la notre "​actu.org"​.
  
-On considère que vous avez installé ​Jelix ([[fr:​telechargement:​stable#​edition-developer|Édition Developer]]) comme indiqué sur la page de [[http://docs.jelix.org/fr/manuel-1.3/​mise-en-route|mise en route]] et que vous utilisez la configuration par défaut sans avoir modifié son arborescence. Il faut avoir aussi installé PHP et PHP-cli comme il est précisé dans cette même page, pour utiliser le script //​jelix.php//​.+On considère que vous avez installé ​PHP, PHP-cli et [[https://getcomposer.org/doc/00-intro.md|Composer]]
  
 +===== Téléchargement ​ =====
  
 +Créez un répertoire pour votre projet, initialisez un fichier composer.json,​ et installer le paquet jelix/​jelix-standard
  
 +<code bash>
 +mkdir projects
 +cd projects
 +composer init
 +composer require "​jelix/​jelix-standard dev-jelix-1.7.x"​
 +</​code>​
  
 +Jelix 1.7 n'est pas encore tout à fait stable à l'​heure où ces lignes sont écrites (1.7.0-rc.2),​
 +il faut donc indiquer @@dev@ pour l'​option @@minimum-stability@@,​ lors du @@composer init@@.
  
-===== Découverte ​de Jelix-Scripts =====+Vous obtenez un répertoire @@F@vendor@@ dans lequel vous avez plusieurs 
 +répertoires contenant les fichiers ​de Jelix et toutes les bibliothèques 
 +utilisées par jelix.
  
-Jelix (édition //​developer//​) est fourni avec deux scripts, createapp.php et cmd.php, qui facilitent la création et la modification des différents fichiers d'une application basée sur Jelix : il est possible de créer les répertoires et les fichiers de base à la main mais createapp.php et cmd.php le font pour vous ! 
  
-Le premier, createapp.php sert simplement à créer une application Jelix. Il faut l'​invoquer avec la version ligne de commande de PHP et indiquer simplement le chemin complet de l'​application à créer. Pour ce faire, ouvrez une console et allez dans le répertoire //​lib/​jelix-scripts/// où est situé createapp.php :+===== Découverte des scripts ​Jelix =====
  
-<code bash> +Jelix est fourni avec trois scripts à appeler en ligne de commande, qui facilitent 
-  php createapp.php /chemin/vers/le/​nouveau/​répertoire/​de/myapp +la création et la modification des différents fichiers d'une application basée sur 
-</​code>​+Jelix, mais aussi de modifier la configuration ou les données de l'​application. 
 + 
 +Le premier, @@vendor/bin/create-jelix-app@@ sert simplement à créer une application Jelix. 
 +Il faut simplement lui indiquer ​le chemin complet ​de l'​application à créer.
  
-Le second, cmd.php, sera par contre utilisé au sein de chaque application,​ il n'est donc plus nécessaire de spécifier celle-ci à chaque fois, ni de rechercher la commande hors de l'​application elle-même. Il faut l' invoquer avec la version ligne de commande de PHP et indiquer en paramètre un nom de commande Jelix, ainsi que d'​éventuels paramètres et options. Pour ce faire, ouvrez une console et allez dans le répertoire ///​chemin/​vers/​le/​nouveau/​répertoire/​de///​ où est situé cmd.php ​:+Exemple ​:
  
 <code bash> <code bash>
-  ​php cmd.php nom_commande [options] [paramètres]+  ​vendor/​bin/​create-jelix-app /​chemin/​vers/​le/​nouveau/​répertoire/​de/​myapp
 </​code>​ </​code>​
  
 +Les deux autres, @@dev.php@@ et @@console.php@@ sont installés dans chaque application.
 +@@dev.php@@ sert au développeur pour construire l'​application,​ tandis que @@console.php@@
 +sert à gérer l'​application.
  
 ===== Création d'une application ===== ===== Création d'une application =====
  
-Avant de commencerassurez vous que l'​utilisateur qui exécute la commande a les droits d'​écriture sur le dossier var/​config ​et les fichiers var/​config/​installer.ini.php var/​config/​index/​config.ini.php+A présent commençons par créer notre application. Aller dans le répertoire 
 +@@projects@@ que vous avez créé plus haut, et tapez :
  
-A présent commençons ​par créer notre applicationTapez :+<code bash> 
 +vendor/​bin/​create-jelix-app --no-default-module actu.org 
 +</​code>​ 
 + 
 +Un certain nombre de questions vous sont posés pour vous aider à configurer un 
 +minimum le projet. Pour cet exemple, vous pouver garder les propositions ​par 
 +défaut, sauf pour la question "How to install jelix-www files?",​ choisissez "​copy"​.
  
 <code bash> <code bash>
-php createapp.php -nodefaultmodule ​/chemin/vers/le/nouveau/répertoire/de/actu.org+The web site of your company > 
 +The licence of your application and modules (default is 'All rights reserved'​) > 
 +The url to the licence if any > 
 +Copyright on your application and modules (default is '2019 actu.org') > 
 +The suffix of your modules id (default is '​@actu.org'​) > 
 +The creator name (your name for example) (default is '​actu.org'​) > 
 +The email of the creator > 
 +How to install jelix-www files? 
 +   copy: will be copied into the wwwdirectory 
 +   ​filelink:​ a symbolic link into the wwwdirectory will point to the lib/jelix-www directory 
 +   ​vhost:​ you will configure your web server to set an alias to the lib/jelix-www directory 
 + ​(default is ''​) 
 +  [0] copy 
 +  [1] vhost 
 +  [2] filelink 
 + > 0 
 +Web path to the content of lib/jelix-www? (default is 'jelix/') > 
 +Do you want to store sessions into a database? ( '​y'​ or '​n',​ default is n) > 
 +Do you want to store sessions as files into a specific directory? ( '​y'​ or '​n',​ default is n) >
 </​code>​ </​code>​
  
-Vous obtenez alors un répertoire @@F@actu.org/​@@. Son contenu est le suivant : 
  
 +Le contenu de ce nouveau répertoire @@F@actu.org/​@@ est le suivant :
 +
 +<​code>​
   actu.org/   actu.org/
-     ​application.init.php +     app/ 
-     cmd.php +         ​system/ ​  les fichiers de configuration principaux de Jelix et de votre application 
-     ​modules/ ​     les modules ​propres à votre application +         ​responses/ ​   réponses personnalisées pour l'​application (views) 
-     ​plugins/ ​     les plugins ​propres à votre application +         ​themes/ ​  les différents thèmes possibles dans votre application 
-     project.xml +         ​overloads/ ​ contiendra les différents fichiers que vous aurez redéfinis, issus de modules tiers. 
-     ​responses/​ +     application.init.php ​  le fichier inclus pour initialiser jelix et l'​application 
-     ​scripts/​ +     console.php   un script pour lancer des commandes de maintenance sur l'​application 
-     tests/+     ​dev.php ​      le script pour lancer des commandes pour le développement 
 +     ​modules/ ​     les modules ​de votre application 
 +     ​plugins/ ​     les plugins ​de votre application 
 +     temp        Il contiendra tout les fichiers temporaires générés par Jelix ou l'​application.
      var/      var/
-        ​config/ ​   les fichiers de configuration de votre application +         config/ ​  ​les fichiers de configuration de votre application ​propres au serveur où elle est installée 
-        log/       ​les éventuels fichiers journaux +         ​log/      les éventuels fichiers journaux
-        mails/ +
-        overloads/ contiendra les différents fichiers que vous aurez redéfinis, issus de modules tiers. +
-        sessions/ ​  +
-        themes/ ​   les différents thèmes possibles dans votre application +
-        uploads/+
      ​www/ ​         la racine du site      ​www/ ​         la racine du site
- +</code>
- +
-Vérifiez que le répertoire @@F@/chemin/​vers/​le/​nouveau/​répertoire/​de/​temp/​actu.org/​@@ nouvellement créé a les permissions en écriture pour le serveur web. +
- +
  
 ===== Création d'un module ===== ===== Création d'un module =====
  
-Notez que nous avons utilisé l'​option @@-nodefaultmodule@@ pour le script @@c@createapp@@. Sans cette option, ce script créé aussi un module par défaut du même nom que l'​appli (donc @@F@actu.org/​modules/​actu.org@@). Mais dans le cadre de ce tutoriel, nous voulons créer nous-même le module, histoire de vous montrer plus de possibilités.+Notez que nous avons utilisé l'​option @@--no-default-module@@ pour le script 
 +@@c@create-jelix-app@@. Sans cette option, ce script créé aussi un module par 
 +défaut du même nom que l'​appli (donc @@F@actu.org/​modules/​actu.org@@). 
 +Mais dans le cadre de ce tutoriel, nous voulons créer nous-même le module, 
 +histoire de vous montrer plus de possibilités.
  
-Donc maintenant que nous avons un squelette d'​application,​ il va falloir créer un module, car pour le moment, votre application ne peut rien faire puisqu'​il n'y a aucune action définie. En effet, il va falloir déclarer et implémenter des actions. Une action peut être l'​affichage d'une page, la sauvegarde d'un formulaire, un appel de service web, etc.+Donc maintenant que nous avons un squelette d'​application,​ il va falloir 
 +créer un module, car pour le moment, votre application ne peut rien faire 
 +puisqu'​il n'y a aucune action définie. En effet, il va falloir déclarer et 
 +implémenter des actions. Une action peut-être l'​affichage d'une page, la 
 +sauvegarde d'un formulaire, un appel de service web, etc.
  
-Les actions sont regroupées dans des modules distincts selon le domaine fonctionnel auquel elles sont rattachées. Nous allons créer par exemple un module qui va regrouper les actions pour afficher et gérer des news. Pour ce faire, il existe la commande @@c@createmodule@@, qui prend en paramètre le nom du module à créer. ​N'​oubliez pas que le script à lancer ​sera désormais ​///​chemin/​vers/​le/​nouveau/​répertoire/​de/​myapp/​cmd.php//+Les actions sont regroupées dans des modules distincts selon le domaine 
 +fonctionnel auquel elles sont rattachées. Nous allons créer par exemple 
 +un module qui va regrouper les actions pour afficher et gérer des news. 
 +Pour ce faire, il existe la commande @@c@module:​create@@, qui prend en 
 +paramètre le nom du module à créer. ​Le script à lancer 
 +est désormais ​@@dev.php@@ situé dans votre nouvelle application
  
 <code bash> <code bash>
-php cmd.php createmodule ​news+php dev.php module:​create ​news --default-module
 </​code>​ </​code>​
  
-En tapant cette commande, Jelix vous a créé un module nommé //news// avec toute son arborescence et quelques fichiers indispensables. Dans @@F@actu.org/​modules/​news/​@@,​ vous trouverez donc :+En tapant cette commande, Jelix vous a créé un module nommé //news// avec toute 
 +son arborescence et quelques fichiers indispensables. Dans @@F@actu.org/​modules/​news/​@@,​ vous trouverez donc :
  
-   ​classes           vos classes métiers et services +<​code>​ 
-   ​controllers/        ​les classes de traitement des actions +modules/news/ 
-      default.classic.php ​     un contrôleur +├── classes ​                 ​vos classes métiers et services 
-   ​daos/               les fichiers de mapping relationnel-objet +├── ​controllers ​             les classes de traitement des actions 
-   ​forms/              ​fichiers de description des formulaires +│   └── ​default.classic.php ​ un contrôleur 
-   ​locales/            ​fichiers de langues (fichiers "​properties"​) +├── ​daos                     ​les fichiers de mapping relationnel-objet 
-      ​en_EN/​ +├── ​forms                    fichiers de description des formulaires 
-      fr_FR/ +├── install 
-   ​module.xml ​         fichier décrivant l'​identité du module +│   ├── configure.php ​       script de configuration du module 
-   ​templates/          ​templates du module +│   └── install.php ​         script d'​installation du module 
-   ​zones/              ​objets traitant des zones spécifiques dans une page+├── ​locales ​                 fichiers de langues (fichiers "​properties"​) 
 +│   ├── en_US 
 +│   └── ​fr_FR 
 +├── ​module.xml ​              ​fichier décrivant l'​identité du module 
 +├── ​templates ​               templates du module 
 +├── urls.xml ​                ​mapping des urls 
 +└── ​zones                    objets traitant des zones spécifiques dans une page 
 +</​code>​
  
 Nous sommes maintenant prêts à définir des actions. Nous sommes maintenant prêts à définir des actions.
  
fr/tutoriels/jelixnews-1.7/creation-application.txt · Dernière modification: 2019/05/22 22:13 par laurent
Fils rss des changements récents dans le wiki Creative Commons License