Configuration Options --
Setting the defaults for database access
Configuration
DB_DataObject
needs to be configured before using it and auto generating classes and definitions.
The easiest way to configure DB_DataObject
is to use ini files (although you may also like to consider
the PEAR::Config class, or your own configuration system)
$config = parse_ini_file('example.ini',TRUE);
foreach($config as $class=>$values) {
$options = &PEAR::getStaticProperty($class,'options');
$options = $values;
}
// or you can do without an ini file, and configure it in PHP..
$options = &PEAR::getStaticProperty('DB_DataObject','options');
$options = array(
'database' => 'mysql://user:password@oxyscrip.ipowermysql.com/vending',
'schema_location' => '/home/me/Projects/myapplication/DataObjects',
'class_location' => '/home/me/Projects/myapplication/DataObjects',
'require_prefix' => 'DataObjects/',
'class_prefix' => 'DataObjects_',
);
Configuration Options - Required
database
DSN
This is the default DSN to connect to your database
schema_location
directory
The directory where the DB_DataObject database schema file is store.
DB_DataObject
stores the description of the database (Tables and Columns) in an .ini file,
in this directory. This information is used to determine if the column is a string
and needs quotes, or should be a number (and is checked)
at SQL building time. It is quite common to store the schema in the same directory as your DataObject
Classes.
require_prefix
directory
The Path absolute, or relative to your default include path(s), where your
extended classes can be found.
This is used by the staticGet() method and the
getLinks() method to auto load classes,
class_prefix
string
All the generated Classes are named
{class_prefix}ucfirst($table_name). Use this to
alter the prefixed name, this is used by the staticGet() and getLinks() methods
Configuration Options - Optional
sequence_{table}
string
To Hard code the key (autoincrement/nextval() for a table to a specific key ,overriding anything in the keys
definition of the file. Normally used on databases that are not able to be queried correctly for their structure
If you do not want to use pear's nextval(), for automatically filling in sequences, this can disable it for
"ALL", or a list of tables "person,cart,group"
default FALSE, if set, then updates on the database are disabled.
dont_die
boolean
default FALSE, The standard behaviour of dataobjects is to issue a PEAR_ERROR_DIE
(eg. exiting PHP), when a fatal error occurs, like database connection failure
or sending an invalid object type to a method. However if you need to run it on
a live server you will probably want to set this to TRUE and define a PEAR error
handler to catch these errors and show a nice friendly 'sorry we are down for
maintenence' message page.
The Directory where your DataObject extended Classes are.
Used by the Class Auto Builder when updating/writing to your class definitions.
extends
string
The Name of your Base Class (usually
DB_DataObject) is located.
If you wish to add a common layer of useful methods for all classes, you can set the extends_location and
extends settings to a different class. the default is
'DB_DataObject'
extends_location
directory
The Directory where your Base Class (usually
DB_DataObject) is located.
If you wish to add a common layer of useful methods for all classes, you can set the extends_location and
extends settings to a different class. the default is
'DB/DataObject.php'
generator_class_rewrite
directory
Normally when you recreate a class from the database, it will only alter the variables, and
staticGet, - with this set, it will also update the extends field
build_views
boolean
Postgres (and maybe some others), allow you to treat views just like normal tables
(eg. insert/update/delete etc. work on them), you can use this option to generate files
for all the views in the database.
Note: You will have to specify keys manually in the generated classes (eg. define the methods
keys() and sequenceKey(), as the generator can not guess which ones are likely to be the key.