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 <djvir...@gmail.com> 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, Саша Стаменковић <umpir...@gmail.com>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 <n...@nickpack.com> 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
>>>
>>
>>
>

Reply via email to