Re: [fw-general] Bootstrap Resource usage in model - best practice advice please
Does this means that you should have base class for all models with getCache method, and extend it? Regards, Saša Stamenković On Fri, Jan 15, 2010 at 1:52 AM, Hector Virgen wrote: > Hey Nick. I was asking myself the same question the other night. > > While it doesn't hurt to pass in your dependencies from within the > controller, it can quickly become tedious. I ended up going with a lazy-load > approach so keep my models unit-testable: > > public function getCache() > { > if (null === $this->_cache) { > $this->_cache = > Zend_Controller_Front::getInstance()->getParam('bootstrap')-> > getResource('Cache'); > } > return $this->_cache; > } > > This would allow you to easily create a setter method that your unit tests > can use to stub in a black hole cache. > > -- > Hector > > > > On Mon, Nov 16, 2009 at 11:55 PM, Саша Стаменковић wrote: > >> Hi. >> >> Zend_Controller_Front::getInstance()->getParam('bootstrap')-> >> getResource('Cache'); >> >> But I like >> >> $cache = Zend_Registry::get('Zend_Cache); >> >> it's shorter. >> >> Regards, >> Saša Stamenković >> >> >> >> On Tue, Nov 17, 2009 at 8:34 AM, Nick Pack wrote: >> >>> This is probably a dumb question, but I'm looking for a way to call a >>> bootstrap resource from a model (in this case is a Zend_Cache object). >>> >>> Bootstrap method: >>> >>>protected function _initCache() >>>{ >>>$frontendOptions = array( >>> 'lifetime' => 7200, // cache lifetime of 2 hours >>> 'automatic_serialization' => true >>>); >>> >>>$cachedir = realpath(/path/to/cache'); >>>$backendOptions = array( >>>'cache_dir' => $cachedir >>>); >>> >>>$cache = Zend_Cache::factory('Core', >>> 'File', >>> $frontendOptions, >>> $backendOptions); >>>Zend_Registry::set('Zend_Cache',$cache); >>>return $cache; >>>} >>> >>> Obviously this is set into the registry so I can access it that way, but >>> I was wondering if this is the best way to do it, or whether there was some >>> way of calling it like you do in a controller: >>> >>> $this->_cache = $this->getInvokeArg('bootstrap')->getResource('Cache'); >>> >>> or maybe even passing it directly over to the __construct of the model. >>> >>> Any advice greatly appreciated >>> >> >> >
Re: [fw-general] Bootstrap Resource usage in model - best practice advice please
Hey Nick. I was asking myself the same question the other night. While it doesn't hurt to pass in your dependencies from within the controller, it can quickly become tedious. I ended up going with a lazy-load approach so keep my models unit-testable: public function getCache() { if (null === $this->_cache) { $this->_cache = Zend_Controller_Front::getInstance()->getParam('bootstrap')-> getResource('Cache'); } return $this->_cache; } This would allow you to easily create a setter method that your unit tests can use to stub in a black hole cache. -- Hector On Mon, Nov 16, 2009 at 11:55 PM, Саша Стаменковић wrote: > Hi. > > Zend_Controller_Front::getInstance()->getParam('bootstrap')-> > getResource('Cache'); > > But I like > > $cache = Zend_Registry::get('Zend_Cache); > > it's shorter. > > Regards, > Saša Stamenković > > > > On Tue, Nov 17, 2009 at 8:34 AM, Nick Pack wrote: > >> This is probably a dumb question, but I'm looking for a way to call a >> bootstrap resource from a model (in this case is a Zend_Cache object). >> >> Bootstrap method: >> >>protected function _initCache() >>{ >>$frontendOptions = array( >> 'lifetime' => 7200, // cache lifetime of 2 hours >> 'automatic_serialization' => true >>); >> >>$cachedir = realpath(/path/to/cache'); >>$backendOptions = array( >>'cache_dir' => $cachedir >>); >> >>$cache = Zend_Cache::factory('Core', >> 'File', >> $frontendOptions, >> $backendOptions); >>Zend_Registry::set('Zend_Cache',$cache); >>return $cache; >>} >> >> Obviously this is set into the registry so I can access it that way, but I >> was wondering if this is the best way to do it, or whether there was some >> way of calling it like you do in a controller: >> >> $this->_cache = $this->getInvokeArg('bootstrap')->getResource('Cache'); >> >> or maybe even passing it directly over to the __construct of the model. >> >> Any advice greatly appreciated >> > >
Re: [fw-general] Bootstrap Resource usage in model - best practice advice please
Hi. Zend_Controller_Front::getInstance()->getParam('bootstrap')-> getResource('Cache'); But I like $cache = Zend_Registry::get('Zend_Cache); it's shorter. Regards, Saša Stamenković On Tue, Nov 17, 2009 at 8:34 AM, Nick Pack wrote: > This is probably a dumb question, but I'm looking for a way to call a > bootstrap resource from a model (in this case is a Zend_Cache object). > > Bootstrap method: > >protected function _initCache() >{ >$frontendOptions = array( > 'lifetime' => 7200, // cache lifetime of 2 hours > 'automatic_serialization' => true >); > >$cachedir = realpath(/path/to/cache'); >$backendOptions = array( >'cache_dir' => $cachedir >); > >$cache = Zend_Cache::factory('Core', > 'File', > $frontendOptions, > $backendOptions); >Zend_Registry::set('Zend_Cache',$cache); >return $cache; >} > > Obviously this is set into the registry so I can access it that way, but I > was wondering if this is the best way to do it, or whether there was some > way of calling it like you do in a controller: > > $this->_cache = $this->getInvokeArg('bootstrap')->getResource('Cache'); > > or maybe even passing it directly over to the __construct of the model. > > Any advice greatly appreciated >
[fw-general] Bootstrap Resource usage in model - best practice advice please
This is probably a dumb question, but I'm looking for a way to call a bootstrap resource from a model (in this case is a Zend_Cache object). Bootstrap method: protected function _initCache() { $frontendOptions = array( 'lifetime' => 7200, // cache lifetime of 2 hours 'automatic_serialization' => true ); $cachedir = realpath(/path/to/cache'); $backendOptions = array( 'cache_dir' => $cachedir ); $cache = Zend_Cache::factory('Core', 'File', $frontendOptions, $backendOptions); Zend_Registry::set('Zend_Cache',$cache); return $cache; } Obviously this is set into the registry so I can access it that way, but I was wondering if this is the best way to do it, or whether there was some way of calling it like you do in a controller: $this->_cache = $this->getInvokeArg('bootstrap')->getResource('Cache'); or maybe even passing it directly over to the __construct of the model. Any advice greatly appreciated