doc/book/fr/03-02-create-instance.fr.txt
brancholdstable
changeset 7074 e4580e5f0703
parent 6749 48f468f33704
parent 7073 4ce9e536dd66
child 7078 bad26a22fe29
child 7083 b8e35cde46e9
equal deleted inserted replaced
6749:48f468f33704 7074:e4580e5f0703
     1 .. -*- coding: utf-8 -*-
       
     2 
       
     3 ===================================
       
     4 Creation de votre premiere instance
       
     5 ===================================
       
     6 
       
     7 
       
     8 Qu'est-ce qu'une instance?
       
     9 ==========================
       
    10 
       
    11 Une instance CubicWeb consiste en un dossier situe dans ``~/etc/cubicweb.d``
       
    12 qui permettra de lancer une application web. Une instance est cree a partir
       
    13 d'un ou plusieurs cubes.
       
    14 
       
    15 Nous recommandons de ne pas definir de schema, entites ou vues dans l'instance 
       
    16 meme si cela est possible dans un but de re-utilisabilite des entities et de leurs
       
    17 vues. Nous conseillons plutot de developper des cubes qui pourront par la suite
       
    18 etre utilises dans d'autres instances (approche modulaire).
       
    19 
       
    20 L'instance n'est qu'un conteneur referrant a des cubes et a des parametres
       
    21 des configuration de l'application web.
       
    22 
       
    23 Qu'est-ce qu'un cube?
       
    24 =====================
       
    25 
       
    26 Un cube definit des entities, leur vues, leur schemas et leur workflow 
       
    27 dans un repertoire independant situe dans ``/path/to/forest/cubicweb/cubes/``.
       
    28 
       
    29 Lors de la creation d'une instance, vous avez la possibilite de lister
       
    30 le ou les cubes que votre instance va utiliser. Utiliser un cube signifie
       
    31 avoir a disposition dans votre instance les entites definies dans le schema
       
    32 de votre cube ainsi que les vues et les workflows.
       
    33 
       
    34 
       
    35 .. note::
       
    36    Les commandes utilisees ci-apres sont detaillees dans la section
       
    37    dediee a :ref:`cubicweb-ctl`.
       
    38 
       
    39 
       
    40 Création d'un cube
       
    41 ==================
       
    42 
       
    43 Commençons par créer un squelette qui nous servira de base au développement de
       
    44 notre cube ou application ::
       
    45 
       
    46   cd ~/hg
       
    47 
       
    48   cubicweb-ctl newtemplate moncube
       
    49 
       
    50   # répondre aux questions
       
    51   cd moncube
       
    52   hg init 
       
    53   hg add .
       
    54   hg ci
       
    55 
       
    56 A partir de là si tout va bien, votre cube devrait être affiché par
       
    57 `cubicweb-ctl list` dans la section *Available components*, si ce n'est pas le cas
       
    58 revoir la section :ref:`ConfigurationEnv`.
       
    59 
       
    60 
       
    61 Pour utiliser un cube, il faut le mentionner dans la variable
       
    62 __use__ du fichier __pkginfo__ de l'application. Cette variable
       
    63 contrôle à la fois le packaging de l'application (dépendances gérées
       
    64 par les utilitaires système comme les outils APT) et les composants
       
    65 effectivement utilisables lors de la création de la base
       
    66 (import_erschema('Moncomposant') ne fonctionne pas sinon).
       
    67 
       
    68 FIXME - need example code ::
       
    69 
       
    70   __use__ = ('blog', 'file')
       
    71 
       
    72 Création d'une instance de développement
       
    73 ========================================
       
    74 
       
    75 Maintenant que nous avons notre squelette de modèle, on peut en créer une
       
    76 instance afin de voir ce que tout ça donne dans un simple navigateur web.
       
    77 Nous allons utiliser une configuration `all-in-one` afin de simplifier les
       
    78 choses ::
       
    79 
       
    80   cubicweb-ctl create -c all-in-one moncube moninstance
       
    81 
       
    82 Une série de questions vont être posées, la réponse par défaut est généralement
       
    83 suffisante. Vous pourrez de toute façon modifier la configuration par la suite
       
    84 en éditant les fichiers générés. Lorsqu'un login/mot de passe d'accès au sgbd
       
    85 vous est demandé, il est recommandé d'utiliser l'utilisateur créé lors de la
       
    86 :ref:`ConfigurationPostgres`.
       
    87 
       
    88 Il est important de distinguer ici l'utilisateur utilisé pour accéder au sgbd,
       
    89 et l'utilisateur utilisé pour s'authentifier dans l'application cubicweb. Lorsque
       
    90 l'application cubicweb démarre, elle utilise le login/mot de passe sgdb pour
       
    91 récupérer le schéma et gérer les transactions bas-niveau. En revanche, lorsque
       
    92 `cubicweb-ctl create` vous demande un login/mot de passe `manager` pour cubicweb, il
       
    93 s'agit d'un utilisateur qui sera créé dans l'application `cubicweb` pour pouvoir
       
    94 s'y connecter dans un premier temps et l'administrer. Il sera par la suite possible
       
    95 de créer des utilisateurs différents pour l'application.
       
    96 
       
    97 A l'issue de cette commande, la définition de votre instance se trouve dans
       
    98 *~/etc/cubicweb.d/moninstance/*. Pour la lancer, il suffit de taper ::
       
    99 
       
   100   cubicweb-ctl start -D moninstance
       
   101 
       
   102 L'option `-D` indique le *debug mode* : l'instance ne passe pas en mode serveur
       
   103 et ne se déconnecte pas du terminal, ce qui simplifie le dépannage en cas de non
       
   104 démarrage de l'instance. Vous pouvez ensuite allez voir ce que ça donne en
       
   105 pointant votre navigateur sur l'url `http://localhost:8080` (le n° de port
       
   106 dépend de votre configuration). Pour vous authentifier vous pouvez utiliser le
       
   107 login/mot de passe administrateur que vous avez spécifié lors de la création de
       
   108 l'instance.
       
   109 
       
   110 Pour arrêter l'instance, un Ctrl-C dans la fenêtre où vous l'avez lancé
       
   111 suffit. Si l'option `-D` a été omise, il faut taper ::
       
   112 
       
   113   cubicweb-ctl stop moninstance
       
   114 
       
   115 Voilà, tout est en place pour démarrer le développement du modèle...
       
   116 
       
   117 
       
   118 Utilisation de cubicweb-liveserver
       
   119 ----------------------------------
       
   120 
       
   121 Afin de tester rapidement un nouveau cube, on peut également
       
   122 utiliser le script `cubicweb-liveserver` qui permet de créer une
       
   123 application en mémoire (utilisant une base de données SQLite par
       
   124 défaut) et la rendre accessible via un serveur web::
       
   125 
       
   126   cubicweb-ctl live-server moncomposant
       
   127 
       
   128 ou bien, pour utiliser une base de données existante (SQLite ou postgres)::
       
   129 
       
   130   cubicweb-ctl live-server -s monfichier_sources moncomposant
       
   131