PEAR is discontinued

This is a static archive preserving historical releases and metadata. No new packages or updates will be published. For updates to existing packages, or to publish new packages, please use Composer and Packagist.

Home » Database » DB_DataObject » Bug #1595

options generator_include_regex & generator_exclude_regex

Details

Submitted2004-06-09 18:57 UTC
Fromstephane dot gully at libertysurf dot fr
Assignedalan_k
StatusClosed
PackageDB_DataObject
PHP Version4.3.4
OSLinux
Roadmaps(Not assigned)

Comments

[2004-06-09 18:57 UTC] stephane dot gully at libertysurf dot fr

Description:
------------
There is an interesant feature into the new DB_DataObject release :

> * new options to filter generation of classes
> generator_include_regex = /foo_.*/i
> generator_exclude_regex = /tmp_.*/i

I've a prb with these new options ..., I set :

generator_include_regex = /mi_.*/i
generator_exclude_regex = /gacl_.*/i

because I want to include only mi_* table names (I think it's not necessary to specify generator_exclude_regex for me but the prb is not here.)

Then I generate the dataobjects, and I get these warnings :

Notice: Undefined index: gacl_acl in /home/kerphi/lib/eclipse/workspace/src/lib/pear/DB/DataObject/Generator.php* on line 248
Warning: Invalid argument supplied for foreach() in /home/kerphi/lib/eclipse/workspace/src/lib/pear/DB/DataObject/Generator.php* on line 270

Unfortunately gacl_* dataobjects classes are also generated :(

So maybe it's a bug ?

Stephane

[2004-06-09 20:36 UTC] stephane dot gully at libertysurf dot fr

Hello again,

I've written a little patch to fix this bug.

Stephane

Index: Generator.php
===================================================================
RCS file: /repository/pear/DB_DataObject/DataObject/Generator.php,v
retrieving revision 1.64
diff -u -r1.64 Generator.php
--- Generator.php 2 Jun 2004 15:10:39 -0000 1.64
+++ Generator.php 9 Jun 2004 20:43:40 -0000
@@ -158,6 +158,9 @@

$this->tables = $__DB->getListOf('tables');

+ // declare a temporary table to be filled with matching tables names
+ $tmp_table = array();
+
foreach($this->tables as $table) {
if (isset($options['generator_include_regex']) &&
!preg_match($options['generator_include_regex'],$table)) {
@@ -166,6 +169,10 @@
preg_match($options['generator_exclude_regex'],$table)) {
continue;
}
+
+ // we find a matching table, juste store it into a temporary array
+ $tmp_table[] = $table;
+
$defs = $__DB->tableInfo($table);
if (is_a($defs,'PEAR_Error')) {
echo $defs->toString();
@@ -178,6 +185,10 @@
}
}
}
+
+ // the temporary table array is now the right one (tables names matching with regex expressions have been removed)
+ $this->tables = $tmp_table;
+
//print_r($this->_definitions);
}