At my company I ended up creating a Doctrine integration class with a couple of special methods: class My_Doctrine { /** * Recursively (and lazily) load all models from a directory or * array of directories. * * @param string|array $directory Models directory or directories */ public static function loadModels($directory);
/** * Returns a table object, used for retrieving sets of records. * * @param string $className Class name * @param Doctrine_Connection $connection (Optional) Database connection (default: null) * @return Doctrine_Table */ public static function getTable($className, $connection = null); } -Matt On Thu, Jul 9, 2009 at 10:15 AM, swilhelm <st...@studio831.com> wrote: > > I would really like to see an example of Doctrine integrated as a module as > well. > > - Steve W. > > > dbroderick wrote: > > > > I am using ZF 1.8.4 and Doctrine 1.1.2 with a module directory setup of > > > > > > +---application > > | +---configs > > | \---modules > > | +---default > > | | +---controllers > > | | \---views > > | | \---scripts > > | | +---error > > | | \---index > > | +---error > > | | +---controllers > > | | \---views > > | | \---scripts > > | | \---error > > | \---user > > | +---controllers > > | +---models > > | | \---generated > > | \---views > > | \---scripts > > | \---index > > +---library > > | \---App > > | \---Application > > | \---Resource > > +---public > > | +---images > > | \---themes > > | \---default > > | \---css > > \---tests > > +---application > > \---library > > > > > > I have a resource file called Doctrine.php in my library folder which > does > > the following: > > > > > > $zla = Zend_Loader_Autoloader::getInstance(); > > $zla->unshiftAutoloader( array( 'Doctrine', 'autoload' ), 'Doctrine' > > )->setFallbackAutoloader( true ); > > > > > > $manager = Doctrine_Manager::connection( $this->_getConnectionString() ); > > $manager = Doctrine_Manager::getInstance(); > > $manager->setAttribute( Doctrine::ATTR_MODEL_LOADING, > > Doctrine::MODEL_LOADING_CONSERVATIVE ); > > $manager->setAttribute( Doctrine::ATTR_PORTABILITY, > > Doctrine::PORTABILITY_NONE ); > > $manager->setAttribute( Doctrine::ATTR_AUTOLOAD_TABLE_CLASSES, true ); > > $manager->setAttribute( Doctrine::ATTR_USE_DQL_CALLBACKS, true ); > > $manager->setAttribute( Doctrine::ATTR_AUTO_ACCESSOR_OVERRIDE, true ); > > > > > > My config xml file has this: > > > > > > --- snip --- > > > > > > <pluginPaths> > > > > > <App_Application_Resource><![CDATA[App/Application/Resource]]></App_Application_Resource> > > </pluginPaths> > > <resources> > > <frontController> > > > <defaultmodule><![CDATA[default]]></defaultmodule> > > <params> > > > <prefixDefaultModule><![CDATA[true]]></prefixDefaultModule> > > > > > <usedefaultcontrolleralways><![CDATA[false]]></usedefaultcontrolleralways> > > </params> > > </frontController> > > <modules> > > <default><![CDATA[default]]></default> > > <error><![CDATA[error]]></error> > > <user><![CDATA[user]]></user> > > </modules> > > <!-- Doctrine application plugin --> > > <doctrine> > > <dbtype><![CDATA[dbtype]]></dbtype> > > <dbhost><![CDATA[localhost]]></dbhost> > > <dbname><![CDATA[dbname]]></dbname> > > <dbuser><![CDATA[dbuser]]></dbuser> > > <dbpass><![CDATA[dbpass]]></dbpass> > > </doctrine> > > <!-- View application plugin --> > > <view><![CDATA[view]]></view> > > </resources> > > > > > > --- snip --- > > > > > > The default Module Autoloader is loaded correctly during bootstrapping, > > making available the default resource types (form, model, dbtable), but I > > use Doctrine so dbtable is not used and I would like to insert, override > > or even replace the default resource type(s) with a folder in models that > > Doctrine uses which is 'generated'. > > > > > > My preference is that when my Resource Plugin which configures Doctrine > as > > my DB layer, also can inject the needed resource type into the default > > module autoloader, in order to make the configuration available in all > > modules. > > > > > > I have tried for the past day to get this to work but all of the examples > > I find are to create a module autoloader in the module bootstrap file > > which means (as I understand it) that I have to do this for each module > > bootstrap. > > > > > > I am still new to Zend and struggling a bit with the changes in v1.8, so > I > > may have just missed the example that shows how this is done. > > > > > > Of course my ultimate problem here is that when I try to load a model > > User.php in the models folder which extends generated\BaseUser.php, the > > BaseUser class is not found. > > > > Thanks, > > David > > > > -- > View this message in context: > http://www.nabble.com/Zend-Framework-%2B-Doctrine-Module-Autoloader-issue-tp24392765p24414344.html > Sent from the Zend Framework mailing list archive at Nabble.com. > >