| 1 |
lars |
1 |
<com:TContent ID="Main">
|
|
|
2 |
|
|
|
3 |
<h1>Connexion à la base</h1>
|
|
|
4 |
|
|
|
5 |
|
|
|
6 |
<p>
|
|
|
7 |
Pour pouvoir utiliser la base de données que nous venons de créer, nous devons tout d'abord établir une connexion.
|
|
|
8 |
</p>
|
|
|
9 |
|
|
|
10 |
<p>
|
|
|
11 |
Nous allons utiliser <a href="http://www.pradosoft.com/demos/quickstart/?page=Database.DAO">Data Access Objects (DAO)</a> pour établir une couche d'abstraction. Si dans le futur nous décidions d'utiliser un autre SGBD (ie: PostgreSQl, Oracle, ...), il nous suffirait de modifier la chaine de connexion (DSN) et nous pourrions conserver notre code PHP intact.
|
|
|
12 |
</p>
|
|
|
13 |
|
|
|
14 |
<com:NoteBox>
|
|
|
15 |
Pour utiliser DAO, nous devons installer et activer la librairie <a href="http://www.php.net/manual/en/ref.pdo.php">PHP PDO extension</a> <i>ainsi que</i> un driver PDO d'accès aux données (dans notre cas, c'est le driver PDO SQLite). Ceci peut être fait facilement sous Windows en incluant dans le fichier <tt>php.ini</tt> les lignes suivantes:
|
|
|
16 |
<com:TTextHighlighter CssClass="source">
|
|
|
17 |
extension=php_pdo.dll
|
|
|
18 |
extension=php_pdo_sqlite.dll
|
|
|
19 |
</com:TTextHighlighter>
|
|
|
20 |
</com:NoteBox>
|
|
|
21 |
|
|
|
22 |
<p>
|
|
|
23 |
Pour une meilleure abstraction de notre base de données, nous utilisons aussi la fonctionnalité <a href="http://www.pradosoft.com/demos/quickstart/?page=Database.ActiveRecord">Active Record</a> (AR). Chaque enregistrement est ainsi représenté par un objet qui a la possibilité d'exécuter des requêtes, de mettre à jour les données, de les supprimer et ceci sans écrire la moindre commande SQL.
|
|
|
24 |
</p>
|
|
|
25 |
|
|
|
26 |
<p>
|
|
|
27 |
Nous modifions notre fichier de configuration de l'application <tt>protected/application.xml</tt> en insérant les lignes suivantes, qui indiquent à <tt>Active Record</tt> comment se connecter à notre base de données.
|
|
|
28 |
</p>
|
|
|
29 |
|
|
|
30 |
<com:TTextHighlighter CssClass="source" Language="xml">
|
|
|
31 |
<modules>
|
|
|
32 |
<module id="db" class="System.Data.TDataSourceConfig">
|
|
|
33 |
<database ConnectionString="sqlite:protected/data/blog.db" />
|
|
|
34 |
</module>
|
|
|
35 |
<module class="System.Data.ActiveRecord.TActiveRecordConfig" ConnectionID="db" />
|
|
|
36 |
</modules>
|
|
|
37 |
</com:TTextHighlighter>
|
|
|
38 |
|
|
|
39 |
<p>
|
|
|
40 |
Dans la configuration précédente, nous avons ajouté deux <a href="http://www.pradosoft.com/demos/quickstart/?page=Fundamentals.Modules">modules</a> à notre application. Le module <tt>TDataSourceConfig</tt> est configuré avec la chaine de connexion <tt>sqlite:protected/data/blog.db</tt> qui pointe vers notre base de données. Cette connexion est utilisée par le module <tt>TActiveRecordConfig</tt> qui est requis pour l'utilisation d'Active Record.
|
|
|
41 |
</p>
|
|
|
42 |
|
|
|
43 |
<com:InfoBox>
|
|
|
44 |
Il est tout à fait possible de définir plusieurs connexion de base de données dans notre fichier de configuration. Pour plus de détails, veuillez vous référer à la <a href="http://www.pradosoft.com/demos/quickstart/?page=Database.ActiveRecord">documentation Active Record</a>. Il est, de même possible, d'établir une connexion à une base de données en utilisant du code PHP au travers du composant <a href="http://www.pradosoft.com/demos/quickstart/?page=Database.DAO">TDbConnection</a>.
|
|
|
45 |
</com:InfoBox>
|
|
|
46 |
|
|
|
47 |
</com:TContent>
|