At first I was going to do that, but like I said I want to keep my DB initialization code in one spot. To me, adding a default cache to Zend_Db_Table is part of the DB initialization, similar to how setting Zend_Db_Table's default adapter is part of the DB resource. Plus being able to add it to the config is a must for me so I can disable it for development.
[development : production] resources.db.defaultMetadataCache = false My current solution of extending the resource is working fine for me, and I think others might be doing something similar if they are using Zend_Db_Table. -- Hector On Fri, Jan 29, 2010 at 6:00 AM, Konr Ness <[email protected]> wrote: > Why not do this: > > public function _initDbCache() > { > // bootstrap DB > $this->bootstrap('db'); > $dbAdapter = $this->getResource('db'); > > // bootstrap cache > $this->bootstrap('cache'); > > > $cache = $this->getResource('cache'); > > // set db metadata cache > Zend_Db_Table_Abstract::setDefaultMetadataCache($cache); > > } > > Konr > > > On Thu, Jan 28, 2010 at 10:19 PM, Hector Virgen <[email protected]>wrote: > >> I initially was going to create a new _init method in my bootstrap to tie >> the two together, but it seemed awkward to have two different pieces of code >> that "bootstrapped" the database. My current solution is to extend the Db >> resource to provide this functionality, but it seems like something I'd use >> in most (if not all) of my ZF applications. >> >> I'll create the enhancement request for this and work on the patch / unit >> tests now. >> >> -- >> Hector >> >> >> >> On Thu, Jan 28, 2010 at 8:12 PM, Konr Ness <[email protected]> wrote: >> >>> That's a good idea. >>> >>> I think the only option is to set the default metadata cache in your >>> Bootstrap. >>> >>> Konr >>> >>> >>> On Thu, Jan 28, 2010 at 2:24 PM, Hector Virgen <[email protected]>wrote: >>> >>>> Hello, >>>> >>>> I'm really enjoying the improvements made in version 1.10.0. Now that we >>>> have a cache manager resource (which is really nice, btw!), is there a >>>> standardized way of setting the default metadata cache for Zend_Db_Table? >>>> >>>> I was looking through the source for the built-in "Db" resource plugin, >>>> and from what I can tell the answer is "no". The only thing I could find >>>> that had anything to do with Zend_Db_Table was the setting of the default >>>> adapter. It would be nice if we could also specify a cache manager key to >>>> use for setting the default metadata cache, something like this: >>>> >>>> ; Cache Manager >>>> resources.cachemanager.database.frontend.name = "Core" >>>> resources.cachemanager.database.frontend.options.lifetime = 7200 >>>> resources.cachemanager.database.frontend.options.automatic_serialization >>>> = true >>>> resources.cachemanager.database.backend.name = "Sqlite" >>>> resources.cachemanager.database.backend.options.cache_db_complete_path >>>> = APPLICATION_PATH "/../data/cache/database.sqlite" >>>> >>>> ; Database >>>> resources.db.adapter = "pdo_mysql" >>>> resources.db.params.host = "localhost" >>>> resources.db.params.username = "my_username" >>>> resources.db.params.password = "my_password" >>>> resources.db.params.dbname = "my_db" >>>> resources.db.isDefaultTableAdapter = true >>>> *resources.db.defaultMetadataCache = "database"* >>>> >>>> That last line is what would tell the db resource plugin which cache to >>>> use and it would pull it from the cache manager. >>>> >>>> I've extended the Db resource plugin to support this, but I think others >>>> may find it useful too. If there's a better way of handling this, let me >>>> know, otherwise I'll open an "improvement" bug and upload a patch. >>>> >>>> -- >>>> Hector >>>> >>> >>> >> >
