Re: [fw-general] Bootstrap Resource usage in model - best practice advice please

2010-01-14 Thread Саша Стаменковић
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

2010-01-14 Thread Hector Virgen
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

2009-11-16 Thread Саша Стаменковић
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

2009-11-16 Thread Nick Pack
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