Pré-requis

Include en PHP
POO en PHP

Voir aussi

Doctrine (en)

6.Le langage PHP

6.15.Utilisation de bases de données avec PHP

6.15.6.Association Objet-Relationnel (ORM) avec Doctrine

6.15.6.6.Création de la table associée à l'objet

6.15.6.6.1.Introduction

Avant d'envisager l'enregistrement d'un objet dans une table il faut créer cette table.
Il est évidemment possible de créer cette table manuellement mais il peut être avantageux de créer cette table en utilisant Doctrine.
Pour créer la table avec Doctrine, on peut envisager 2 solutions:
  • En décrivant "manuellement" la table a créer
  • En s'appuyant sur la classe Utilisateur précédemment créée

6.15.6.6.2.Manuellement

Pour cela, il faut créer un tableau décrivant la table, comme dans le code suivant
<?php
include_once('include_path_inc.php5');
require_once('Doctrine.php');

$base = 'sqlite://doctrine.sqlite';

spl_autoload_register(array('Doctrine', 'autoload'));
$bd = Doctrine_Manager::connection($base);

$tableUtilisateurs = array(
    'id' => array(
            'type' => 'integer',
            'primary' => true,
            'autoincrement' => true),
    'nom' => array(
            'type' => 'string',
            'length' => 255)
    );
try {
    $bd->export->createTable('utilisateurs', $tableUtilisateurs);
} catch (Doctrine_Connection_Exception $e) {
    echo $e->getPortableCode()." ".$e->getPortableMessage()."<br />\n";
}
?>

6.15.6.6.3.A partir de la classe Doctrine_Record

Puisque la table a déjà été déclarée dans la classe UtilisateurDoctrine autant l'utiliser pour créer une table cohérente avec cette définition
<?php
include_once('include_path_inc.php5');
require_once('Doctrine.php');

$base = 'sqlite://doctrine.sqlite';

spl_autoload_register(array('Doctrine', 'autoload'));
$bd = Doctrine_Manager::connection($base);

require_once('Utilisateur_class.php5');
$utilisateur = new Utilisateur();

try {
    $table = $utilisateur->getTable();
    $bd->export->createTable($table->getTableName(), 
                             $table->getColumns());
} catch (Doctrine_Connection_Exception $e) {
    echo $e->getPortableCode()." ".$e->getPortableMessage()."<br />\n";
}
?>
Ici vous pouvez apprendre :
1.Introduction
2.Installation de PHP
3.Exécuter un script PHP
4.Configuration et environnement d'exécution de PHP
5.L'environnement de développement
6.Le langage PHP
6.1.Introduction
6.2.Mon premier script
6.3.La syntaxe
6.4.Les boucles (for, while, foreach, do) en PHP
6.5.Les tableaux (array) en PHP
6.6.Les fonctions
6.7.Include
6.8.Programmation orientée objet
6.9.Les fonctions de manipulation de tableaux
6.10.Les dates
6.11.Fichiers et répertoires
6.12.Les paramètres d'entrée d'un script PHP
6.13.Utilisation de la librairie graphique
6.14.JpGraph pour tracer courbes et diagrammes
6.15.Utilisation de bases de données avec PHP
6.15.1.Introduction
6.15.2.Utilisation de SQLite
6.15.3.PHP et MySQL (avec MySQLi)
6.15.4.Utilisation de MySQL avec PHP
6.15.5.PDO: PHP Data Objects
6.15.6.Association Objet-Relationnel (ORM) avec Doctrine
6.15.6.1.Introduction
6.15.6.2.Installation
6.15.6.3.Inclusion
6.15.6.4.Connexion
6.15.6.5.Déclaration d'un objet simple
6.15.6.6.Création de la table associée à l'objet
6.15.6.6.1.Introduction
6.15.6.6.2.Manuellement
6.15.6.6.3.A partir de la classe Doctrine_Record
6.15.6.7.Enregistrement d'un objet
6.16.LDAP
6.17.Parser un document XML
6.18.Génération de documents PDF en PHP
6.19.Envoyer un mail
6.20.Créer un webmail avec IMAP
6.21.Droits utilisateurs: chmod 777
6.22.Localization (l10n) et Traduction
7.PHP pour le web
8.Internationalisation (i18n) et encodage en PHP
9.Créer un fichier de logs/traces
10.Déboguer une application PHP
11.Programmer en PHP en toute sécurité
12.Bibilothèque PEAR
13.Zend Framework 2 et 3
14.Installation de Zend Framework 2
15.Joomla
16.Composer
17.PHPUnit
18.PHPDocumentor
19.Mesure de temps d'exécution (benchmark) d'une fonction PHP
20.Exemples de scripts PHP
21.Erreurs fréquentes et les solutions
22.Archives
Version imprimable: imprimer