On Wed, Oct 7, 2009 at 2:01 AM, Саша Стаменковић <[email protected]> wrote:

> Yes, you're right, but the only bad thing is writing:
>
> Zend_Controller_Front::getInstance()->getParam('bootstrap')->getResource('cache');
> v.s.
> Zend_Registry::get('cache');
>
> and maybe using Zend_Registry is faster?
>
> Regards,
> Saša Stamenković
>
>
>
> On Tue, Oct 6, 2009 at 5:21 PM, Hector Virgen <[email protected]> wrote:
>
>> 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, Саша Стаменковић <[email protected]>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 <[email protected]>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 <[email protected]> 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.
>>>>>
>>>>>

Once upon a time I asked M. O'Phinney this very question and his answer was
testability. It's easier to test things with the bootstrap approach, I
believe he said. The thread is somewhere in the archives, presumably.



-- 
David Mintz
http://davidmintz.org/

The subtle source is clear and bright
The tributary streams flow through the darkness

Reply via email to