It probably wouldn't hurt to check in both places. I think you're right and
checking for a bootstrap resource might be better (or clearer to another
developer) than checking Zend_Registry.
The question that comes to mind when running into this code later is "Where
does the cache get initialized?". Zend_Registry gives us no clues as to
where or when that cache was registered, but the bootstrap resource clues us
in to the bootstrap.

--
Hector


On Mon, Oct 5, 2009 at 10:59 PM, Саша Стаменковић <umpir...@gmail.com>wrote:

> Thx Hector.
> Nice answer and useful code example.
> Is there a reason to use registry over bootstrap init and get resource?
>
> Is it better to do
>
>   if (Zend_Registry::has('cache')) {
>     $this->setCache(Zend_Registry::get('cache'));
>  }
>
> or
>
>  if ($cache = $this->setCache(Zend_Registry::get('cache'))) {
>     //
>  }
>
> Regards,
> Saša Stamenković
>
>
>
> On Mon, Oct 5, 2009 at 8:06 PM, Hector Virgen <djvir...@gmail.com> wrote:
>
>> If it's system-wide, I usually place it in the registry for easy access.
>> But then I also use a lazy-loading technique in the model layer that pulls
>> the cache from the registry if it wasn't set:
>> public function setCache(Zend_Cache_Core $cache)
>> {
>>     $this->_cache = $cache;
>>     return $this;
>> }
>>
>> public function getCache()
>> {
>>     if (null === $this->_cache) {
>>         if (Zend_Registry::has('cache')) {
>>             $this->setCache(Zend_Registry::get('cache'));
>>         }
>>     }
>>     return $this->_cache;
>> }
>>
>> --
>> Hector
>>
>>
>>
>> On Mon, Oct 5, 2009 at 1:03 AM, umpirsky <umpir...@gmail.com> wrote:
>>
>>>
>>> Hi.
>>>
>>> I need several Zend_Cache objects for my app (file, memcached...), and I
>>> don't want to instantiate and initialize it all over my app. So, there
>>> are 2
>>> options:
>>>
>>> - Init Zend_Cache in bootstrap and then get it all over app (in models
>>> for
>>> ex) with:
>>> $this->getFrontController()->getParam('bootstrap')->getResource('cache');
>>> -
>>> if I can do this in models at all? How do I access bootstrap resources
>>> from
>>> outside controllers?
>>> - Init Zend_Cache in bootstrap but store it in Zend_Registry then get it
>>> with Zend_Registry::get('cache');
>>>
>>> What is better/faster approach and why?
>>> --
>>> View this message in context:
>>> http://www.nabble.com/Application-Resources-Access-tp25746631p25746631.html
>>> Sent from the Zend Framework mailing list archive at Nabble.com.
>>>
>>>
>>
>

Reply via email to