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 base 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 base de donnée 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êts à utiliser ces données dans notre application.