Options de configuration --
Définition des options par défaut d'accès à une base de données
Configuration
DB_DataObject
doit être configuré avant de l'utiliser, d'auto-générer les classes et les définitions.
La façon la plus simple de configurer DB_DataObject
est d'utiliser les fichiers ini (bien que vous pourriez vouloir utiliser la classe
PEAR::Config ou alors votre propre sysème de configuration)
$config = parse_ini_file('example.ini',TRUE);
foreach($config as $class=>$values) {
$options = &PEAR::getStaticProperty($class,'options');
$options = $values;
}
// ou bien sans utiliser de fichier ini ; configuration à l'aide de PHP.
$options = &PEAR::getStaticProperty('DB_DataObject','options');
$options = array(
'database' => 'mysql://user:password@localhost/vending',
'schema_location' => '/home/me/Projects/myapplication/DataObjects',
'class_location' => '/home/me/Projects/myapplication/DataObjects',
'require_prefix' => 'DataObjects/',
'class_prefix' => 'DataObjects_',
);
Options de configuration - Requis
database
DSN
C'est la valeur par défaut de DSN pour se connecter à la base de données
schema_location
dossier
Le dossier où se trouve le fichier contenant le schéma de base de données
DB_DataObject.
DB_DataObject
stocke la description de la base de données (Tables et Colonnes) dans un fichier .ini,
dans ce répertoire. Ces informations sont utilisées pour déterminer si la colonne
est une chaîne de caractères et donc, qu'elle a besoin de guillemets ou si c'est un nombre
( et qu'il est sélectionné) au moment de construire la requête SQL. Habituellement, on stocke le
schéma dans le même dossier que celui contenant les classes DataObject.
require_prefix
dossier
Le chemin absolu ou relatif vers votre chemin d'inclusion par défaut, où vos extensions de classes
peuvent être trouvées.
Il est utilisé par les méthodes
staticGet() et
getLinks() pour charger automatiquement les classes.
class_prefix
string
Toutes les classes générées sont nommées en suivant ce schéma :
{class_prefix}ucfirst($table_name).
Utilisez ce paramètre pour préfixer ce nom, il est utilisé par les méthodes
staticGet() et getLinks().
Options de configuration - Optionnelles
sequence_{table}
string
Pour coder en dur la clé (autoincrément/valeur suivante) pour une table à une clé spécifique,
effaçant tout ce qui est défini pour cette clé dans le fichier. Normalement utilisé sur les bases
de données qui ne peuvent pas être interrogées correctement sur leur structure
Si vous ne voulez pas utiliser nextval() de PEAR, pour compléter automatiquement les séquences,
cela peut être désactivé pour "ALL" ou pour une liste de tables
"person,cart,group"
debug
integer
Le degrès de débogage (défaut 0=off), 1= identification basique SQL, 2=résultat d'identification,
3=tout
debug_ignore_updates
boolean
Si définie, les mises à jour sur la base de données sont désactivées. Par défaut : FALSE
dont_die
boolean
Par défaut : FALSE. Le comportement standard de dataobjects est de fournir
un PEAR_ERROR_DIE (e.g. sortie PHP) lorsqu'une erreur survient, comme une identification
qui échoue à une base de données ou lorsqu'on envoie un objet de type invalide à une
méthode.
Cependant, si vous devez exécuter cela sur un serveur directement,
vous devez probablement vouloir définir ce paramètre à TRUE et définir la gestion
des erreurs PEAR pour récupérer ces erreurs et afficher un joli message
'désolé, nous sommes hors service pour maintenance' sur la page.
quote_identifiers
boolean
Pour forcer l'ajout de quote aux identifiants dans les requêtes SQL, définissez
à 1
quote_identifiers = 1;
SELECT 'somecol' FROM 'sometable' WHERE 'somevalue'=1;
quote_identifiers = 0;
SELECT somecol FROM sometable WHERE somevalue=1;
proxy
string
Ceci active la construction des classe et des classes ini à la volée, plutôt
que ce soit vous qui écriviez le code. (actuellement, la seule valeur supportée est
"full", qui génère le schéma des données et la classe par défaut)
Opitons de configuration - Bases de données multiples (optionnel)
database_*
string
Lorsque vous avez de multiples bases de données, vous pouvez utiliser le database_*
our spécifier le DSN pour chaque base de données
Le dossier où se trouve vos extensions de classes DataObject.
Utilisez par la classe d'auto-construction lors de la mise à jour/écriture de vos définitions de c
classes.
extends
string
Le nom de la classe de base (habituellement DB_DataObject)
Si vous souhaitez ajouter une interface commune pour les méthodes utiles pour toutes les classes,
vous pouvez définir les options extends_location et extends en une classe différente.
Par défaut, c'est 'DB_DataObject'.
extends_location
dossier
Le dossier où votre classe de base (habituellement DB_DataObject)
se trouve.
Si vous souhaitez ajouter une interface commune pour les méthodes utiles pour toutes les classes,
vous pouvez définir les options extends_location et extends en une classe différente.
Par défaut, c'est 'DB/DataObject.php'.
generator_class_rewrite
boolean
Normalement, lorsque vous créaez à; nouveau une classe depuis la base de données, cela n'altère
que les variables et la méthode staticGet.
Avec ce paramètre, cette action peut également
mettre à jour les champs étendus
build_views
boolean
Postgres (et surement d'autres) vous permet de traiter les vues comme
des tables normales (i.e. insert/update/delete etc. fonctionne sur ces tables),
vous pouvez utilisez cette option pour générer
les fichiers pour toutes les vues de la base de données.
Note : Vous devez spécifier les clés manuellement dans les classes générées (i.e.
définission des méthodes keys() et sequenceKey() ), car le générateur
ne peut pas deviner quelles sont les clés préférées.
generator_include_regex
string
Si vous ne voulez générer que les classes et les entrées ini pour des tables spécifiques,
vous pouvez utiliser ce aramètre pour construire un masque, seules les tables avec des noms
correspondant à ce masque seront générées, par exemple /mytables_.*/
generator_exclude_regex
string
Si vous voulez explicitement prévenir la génération des classes et des entrées ini pour des tables
spécifiques, vous pouvez utiliser ce paramètre pour construire un masque, toutes les tables
qui correspondent à ce masque ne seront pas générées, par exemple /private_tables_.*/
generator_strip_schema
boolean
postgresql a un concepte de schémas liés qui se terminent en y préfixant
la liste des tables. Cela crée un désordre dans la génération des classes/schémas.
En définissant ce paramètre à 1, le générateur ignore le schéma contenu dans le nom
de la table.
generator_novars
boolean
Si TRUE, le générateur n'écrira pas de définition privé ou de variable
pour les colonnes, donc, vous pouvez surcharger get/set.
generator_add_validate_stubs
boolean
Si TRUE le générateur insérera un / (ou l'ajoute aux fichiers existants)
pour les méthodes valides.