-- AmirBehzad Eslami <[EMAIL PROTECTED]> wrote
(on Thursday, 10 July 2008, 04:54 PM +0330):
> >> why don't you just store the config object in the registry, and
> >> then pull values from there...?
> 
> Actually I was using the approach you mentioned above,
> until I realized that it requires more memory, since an entire
> instance of Zend_Config is stored into Zend_Registry.
> So I decided to store only config's _DATA_ into
> Zend_Registry to save the mem.

A Zend_Config should not take up enough memory that you need to be
worried about it -- certainly it would be only slightly more than
storing the data directly in the registry. This is smelling a bit of
premature optimization.

> By the way, I found a way to store config's key-value pairs at once
> into Zend_Registry (thanks to the Zend_Registy for extending
> ArrayObject).
> 
> Zend_Registry::setInstance(
>     new Zend_Registry($config->toArray()));
> unset($config);

The problem with the above approach is if you've set any registry items
previously -- though my guess is this would be unlikely.

> > This is a much better solution [storing the config object in the registry],
> > as then you don't need to worry about checking to see if various
> > registry keys are set.
> I don't see how. Even I have a config object, I can't be 100%-certain about
> existence of its key/value pairs. Perhaps the config file lacks a key.
> Would you please explain a little more. Maybe I'm missing something.

If the key does not exist in the config object, then it simply returns a
null. With the registry, if the key does not exist, get() will throw an
exception -- which is why you typically need to check with
isRegistered() prior to pulling values from the Registry.


> On Thu, Jul 10, 2008 at 4:20 PM, Matthew Weier O'Phinney <[EMAIL PROTECTED]>
> wrote:
> 
>     -- AmirBehzad Eslami <[EMAIL PROTECTED]> wrote
>     (on Thursday, 10 July 2008, 02:03 PM +0330):
>     > Hi list,
>     > I'm trying to store values from a Zend_Config object into Zend_Registry.
>     >
>     > $config = new Zend_Config_Xml(APP_DIR . '/config.xml', $curr_env);
>     > foreach ($config as $key => $value) {
>     >     Zend_Registry::set($key, $value);
>     > }
>     >
>     > As you see, I'm iterating over $config object to store the values into
>     the
>     > registry.
>     > Is there any plan to implement a special method (perhaps setFromArray())
>     to
>     > facilitate this action? Is there any other way to store multiple values
>     into
>     > the
>     > registry at once, with a single line of code?
> 
>     Umm... why don't you just store the config object in the registry, and
>     then pull values from there...?
> 
>        // setting...
>        Zend_Registry::set('config', $config);
> 
>        // retrieving...
>        $env = Zend_Registry::get('config')->env;
> 
>     This is a much better solution, as then you don't need to worry about
>     checking to see if various registry keys are set.
> 
>     --
>     Matthew Weier O'Phinney
>     Software Architect       | [EMAIL PROTECTED]
>     Zend Framework           | http://framework.zend.com/
> 
> 
> 
> 
> --
> Kind regards,
> -behzad

-- 
Matthew Weier O'Phinney
Software Architect       | [EMAIL PROTECTED]
Zend Framework           | http://framework.zend.com/

Reply via email to