Author: ts
Date: Tue Feb 19 09:50:58 2008
New Revision: 7404
Log:
- Fixed issue #12562: PersistentObjectDatabaseSchemaTiein tutorial is
outdated.
# Based on a patch by James Pic. Thanks for helping!
Modified:
trunk/PersistentObjectDatabaseSchemaTiein/ChangeLog
trunk/PersistentObjectDatabaseSchemaTiein/docs/tutorial.txt
Modified: trunk/PersistentObjectDatabaseSchemaTiein/ChangeLog
==============================================================================
--- trunk/PersistentObjectDatabaseSchemaTiein/ChangeLog [iso-8859-1] (original)
+++ trunk/PersistentObjectDatabaseSchemaTiein/ChangeLog [iso-8859-1] Tue Feb 19
09:50:58 2008
@@ -3,6 +3,8 @@
- Fixed issue #12022: PersistentObjectDatabaseSchemaTiein not passing it's
tests.
+- Fixed issue #12562: PersistentObjectDatabaseSchemaTiein tutorial is
+ outdated.
1.2 - Monday 02 July 2007
Modified: trunk/PersistentObjectDatabaseSchemaTiein/docs/tutorial.txt
==============================================================================
--- trunk/PersistentObjectDatabaseSchemaTiein/docs/tutorial.txt [iso-8859-1]
(original)
+++ trunk/PersistentObjectDatabaseSchemaTiein/docs/tutorial.txt [iso-8859-1]
Tue Feb 19 09:50:58 2008
@@ -7,9 +7,9 @@
============
The PersistentObjectDatabaseSchemaTiein component allows you to generate
-template PersistentObject definition files from a database structure or a
-DatabaseSchema schema file. You will most likely have to adjust the
-PersistentObject definitions afterwards.
+template PersistentObject definition files and php classes from a database
+structure or a DatabaseSchema schema file. You will most likely have to
+adjust the PersistentObject definitions afterwards.
For more information regarding PersistentObject definition files, please refer
to the API documentation for ezcPersistentObjectDefinition. Details on
@@ -20,10 +20,13 @@
::
- $ php rungenerator.php -s <string> -f <string> [-h] [--] <target_directory>
+ $ PersistentObjectDatabaseSchemaTiein/src/rungenerator.php -s <string> \
+ -f <string> [-o] [-p <string>] [-h] [--] <string:def dir> \
+ [<string:class dir>]
The component contains an executable script, which can be called using the PHP
-command line interpreter (CLI). You have to provide two options:
+command line interpreter (CLI). You have to provide at least the following two
+options and the "def dir" argument.
-s / --source <string>
This option determines the source DatabaseSchema file from which to generate
@@ -33,15 +36,25 @@
Examples are 'xml' and 'array'. For a full list of valid formats, please
refer to the `DatabaseSchema API`_ documentation.
+The "def dir" argument defines where the generated PersistentObject
+definitions are stored. The optional "class dir" argument can be used to
+define another directory, where class stubs for the generated defintions are
+created in. Additional options that might be useful are:
+
+-o / --overwrite
+ If this option is set, files will be overwriten if they alreday exist. The
+ default behaviour is not to overwrite any files.
+-p / --prefix <string>
+ Using this option you can define a unique prefix that will be prepended to
+ all class names, and class file names, if appliable.
+
.. _`DatabaseSchema API`: classtrees_DatabaseSchema.html
-There is also a help option available that can be accessed with -h or
---help.
+The -h / --help option gives you some information on these options and
+arguments, too.
-The 'target_directory' argument specifies the directory where the
-PersistentObject definitions are stored. Make sure that script can write to
-this target directory.
-
+Make sure that the script can write to its target directories in respect to
+permissions and accessability.
Usage
=====
@@ -61,10 +74,10 @@
Once you have a valid DatabaseSchema file, you should create a directory
where your PersistentObject definitions will be stored. Then you can use the
rungenerator.php script to create the template definition files. Use the
following
-command::
+command ::
$ php PersistentObjectDatabaseSchemaTiein/rungenerator.php \
- -s path/to/schema.file -f array
path/to/persistentobject/definition/dir/
+ -s path/to/schema.file -f array path/to/persistentobject/definition/dir/
You have to replace the paths according to the example. The -s parameter
defines where the DatabaseSchema definition file can be found. The -f option
@@ -73,30 +86,40 @@
call specifies the target directory to store the generated PersistentObject
definitions.
-Customizing definitions
-=======================
+It is also possible to generate class stubs for the defined persistent objects
+at the same time by specifying the "class dir" argument. To do so, create a
+directory where your classes will be stored and add it to the command ::
+
+ $ php PersistentObjectDatabaseSchemaTiein/rungenerator.php \
+ -s path/to/schema.file -f array path/to/definition/dir/ \
+ path/to/classes/dir/
+
+Customizing definitions and classes
+===================================
The generator script assumes that the names of your PersistentObject classes
-and their properties map exactly to the same table and column names of your
database
-structure. For example, a table called ez_persistent_objects with the column
-persistent_object_id results in a class ez_persistent_objects and the property
-persistent_object_id.
+and their properties map exactly to the same table and column names of your
+database structure. For example, a table called ez_persistent_objects with the
+column persistent_object_id results in a class ez_persistent_objects and the
+property persistent_object_id.
-If you want a different mapping, you can edit the generated
-PersistentObject files manually. The class to table name mapping is done
-through the properties of the main ezcPersistentObjectDefinition object. The
-"table" property should be correct as it is taken from the database definition.
-Adjust the "class" property according to your needs.
+If you want a different mapping, you can edit the generated PersistentObject
+files manually. The class to table name mapping is done through the properties
+of the main ezcPersistentObjectDefinition object. The "table" property should
+be correct as it is taken from the database definition. Adjust the "class"
+property according to your needs.
-*Note*: If you change the class name of a PersistentObject definition, you have
-to rename the file name accordingly. The file name for a PersistentObject
+*Note*: If you change the class name of a PersistentObject definition, you
+have to rename the file name accordingly. The file name for a PersistentObject
definition must be the same as the class name, completely in lowercase.
-The same procedure applies to the property definition of your
-persistent objects. The column name for object property mapping is defined by
the
+The same procedure applies to the property definition of your persistent
+objects. The column name to object property mapping is defined by the
ezcPersistentObjectProperty class. The "columnName" property of the definition
-objects should be correct as it is taken from your database schema
-file. You can adjust the "propertyName" properties according to your needs.
+objects should be correct as it is taken from your database schema file. You
+can adjust the "propertyName" properties according to your needs. *Note*: You
+propably need to adjust the property names in generated class stubs and the
+setState() and getState() methods accordingly.
The generator script guesses the PHP types of your PersistentObject properties.
It uses the following mapping:
@@ -111,16 +134,15 @@
:blob: ezcPersistentObjectProperty::PHP_TYPE_STRING
:clob: ezcPersistentObjectProperty::PHP_TYPE_STRING
-If the mappings are incorrect, you can adjust the "propertyType" properties of
-your ezcPersistentObjectProperty definitions.
-
+If the mappings are incorrect for your special case, you can adjust the
+"propertyType" properties of your ezcPersistentObjectProperty definitions.
More information
================
For more information, see the API documentation of
-ezcPersistentObjectDefinition_, ezcPersistentObjectProperty_,
-ezcDbSchema_ and ezcDbschemaPersistentWriter_.
+ezcPersistentObjectDefinition_, ezcPersistentObjectProperty_, ezcDbSchema_ and
+ezcDbschemaPersistentWriter_.
.. _ezcPersistentObjectDefinition:
PersistentObject/ezcPersistentObjectDefinition.html
.. _ezcPersistentObjectProperty:
PersistentObject/ezcPersistentObjectProperty.html
--
svn-components mailing list
[email protected]
http://lists.ez.no/mailman/listinfo/svn-components