IV. Configuration de la base de données▲
Avant de continuer plus loin avec du code, il nous faut configurer Jelix pour pouvoir accéder à une base de données et alimenter cette base un minimum. Nous allons en effet stocker nos news dans une table.
Jelix prend en charge MySQL, PostgreSQL, SQLite et PDO. Par son système de driver, il est possible d'ajouter d'autres types de bases de données (pour le cas où on ne veuille pas utiliser PDO).
IV-A. Fichier de configuration d'accès▲
L'accès à une base de données est configuré dans le fichier actu.org/var/config/dbprofils.ini.php. Dans ce fichier, on peut spécifier un ou plusieurs profils de connexion, donc une ou plusieurs connexions.
Chaque profil a un nom et est spécifié comme suit :
[NomProfil]
driver
=
"mysql" ; nom du driver à utiliser
database
=
"foo" ; nom de la base à utiliser
host
=
"localhost" ; nom de la machine du serveur de bases de données
user
=
"john" ; utilisateur de connexion
password
=
"doo" ; mot de passe
persistent
=
on ; indique si la connexion est persistante
; à activer si vous avez des problèmes de caractères bizarres avec vos données :
; force_encoding = on
Mis à part le paramètre driver qui est obligatoire, le reste des paramètres dépend du driver utilisé. En général, vous aurez toutefois les paramètres database, host, user et password. Changez le contenu de ce fichier en fonction de votre configuration. Nous prendrons comme nom de profil “actu.org” par exemple, et nous allons définir ce profil par défaut en l'indiquant avec le paramètre “default”.
default = actu.org
[actu.org]
driver
=
"mysql"
database
=
"actu"
host
=
"localhost"
user
=
"actu"
password
=
"actu"
persistent
=
on
; à activer si vous avez des problèmes de caractères bizarres avec vos données :
; force_encoding = on
Note : si dans votre application, vous voulez créer plusieurs points d'entrée qui utilisent des fichiers de profils de bases de données différents, vous pouvez, dans les fichiers de configuration des points d'entrée, indiquer les fichiers de profils au niveau de l'option dbProfils. Par exemple dans actu.org/var/config/index/config.ini.php, vous pouvez indiquer :
dbProfils = dbprofils.ini.php
Mais si vous n'avez qu'un fichier de profils, pas besoin de renseigner cette option.
IV-B. Création de la table▲
Dans la base “actu”, nous allons maintenant créer une table news. Exécutez ce script SQL (adaptez-le si vous utilisez une autre base que MySQL) dans phpmyadmin par exemple :
CREATE
TABLE
`news`
(
`id_news`
INT
NOT
NULL
AUTO_INCREMENT
,
`sujet`
VARCHAR
(
255
)
NOT
NULL
,
`texte`
TEXT
NOT
NULL
,
`news_date`
DATE
NOT
NULL
,
PRIMARY
KEY
(
`id_news`
)
)
;
Et alimentons cette table avec deux news (nous ferons un formulaire plus tard).
INSERT
INTO
`news`
VALUES
(
1
, 'première news'
,
'Ceci est une première news. In commodo, neque sit amet laoreet accumsan,
neque velit rutrum augue, a fringilla nibh lorem nec est. Cras eleifend eros.
Sed vehicula. Donec vel enim at nunc tincidunt pellentesque. Donec malesuada.
Praesent volutpat orci ut leo. Donec dictum tortor quis odio. Aliquam pulvinar
justo eu eros.'
,
'2006-01-15'
)
;
INSERT
INTO
`news`
VALUES
(
2
, 'Lorem Ipsum'
,
'Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Suspendisse enim
elit, luctus in, rhoncus quis, facilisis in, nulla. Nam eu dolor vel erat semper
porta. Phasellus pellentesque nulla a urna. Phasellus nonummy diam id risus.
Donec faucibus mi sed nisi. Sed et lectus at ligula scelerisque tempus. Proin
justo nibh, consectetuer porta, accumsan ac, consectetuer id, dui. Morbi at
mi auctor urna elementum convallis. Etiam et massa porta risus imperdiet
ullamcorper. Aenean a metus at tortor ultrices accumsan. Mauris luctus.'
,
'0000-00-00'
)
;
Nous sommes maintenant prêt à utiliser ces données dans notre application.