Development

Changeset 7631

You must first sign up to be able to contribute.

Changeset 7631

Show
Ignore:
Timestamp:
02/27/08 17:18:05 (1 year ago)
Author:
fabien
Message:

simplified parameters management in sfFactoryConfigHandler

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • branches/1.1/lib/config/sfFactoryConfigHandler.class.php

    r7626 r7631  
    8181 
    8282      // parse parameters 
     83      $parameters = array(); 
    8384      if (isset($keys['param'])) 
    8485      { 
    85         $parameters = array(); 
     86        if (!is_array($keys['param'])) 
     87        { 
     88          throw new InvalidArgumentException(sprintf('The "param" key for the "%s" factory must be an array (in %s).', $class, $configFiles[0])); 
     89        } 
     90 
    8691        foreach ($keys['param'] as $key => $value) 
    8792        { 
     
    8994        } 
    9095      } 
    91       else 
    92       { 
    93         $parameters = null; 
    94       } 
    9596 
    9697      // append new data 
     
    106107 
    107108        case 'response': 
    108           $instances[] = sprintf("  \$class = sfConfig::get('sf_factory_response', '%s');\n  \$this->factories['response'] = new \$class(\$this->dispatcher, sfConfig::get('sf_factory_response_parameters', %s));", $class, is_array($parameters) ? var_export($parameters, true) : 'array()'); 
     109          $instances[] = sprintf("  \$class = sfConfig::get('sf_factory_response', '%s');\n  \$this->factories['response'] = new \$class(\$this->dispatcher, sfConfig::get('sf_factory_response_parameters', %s));", $class, var_export($parameters, true)); 
    109110          $instances[] = sprintf("  if ('HEAD' == \$this->factories['request']->getMethodName())\n  {  \n    \$this->factories['response']->setHeaderOnly(true);\n  }\n"); 
    110111          break; 
     
    123124 
    124125        case 'user': 
    125           $instances[] = sprintf("  \$class = sfConfig::get('sf_factory_user', '%s');\n  \$this->factories['user'] = new \$class(\$this->dispatcher, \$this->factories['storage'], array_merge(array('auto_shutdown' => false, 'culture' => \$this->factories['request']->getParameter('sf_culture')), sfConfig::get('sf_factory_user_parameters', %s)));", $class, var_export(is_array($parameters) ? $parameters : array(), true)); 
     126          $instances[] = sprintf("  \$class = sfConfig::get('sf_factory_user', '%s');\n  \$this->factories['user'] = new \$class(\$this->dispatcher, \$this->factories['storage'], array_merge(array('auto_shutdown' => false, 'culture' => \$this->factories['request']->getParameter('sf_culture')), sfConfig::get('sf_factory_user_parameters', %s)));", $class, var_export($parameters, true)); 
    126127          break; 
    127128 
     
    170171          } 
    171172 
    172           $instances[] = sprintf("  \$class = sfConfig::get('sf_factory_routing', '%s');\n  %s\n\$this->factories['routing'] = new \$class(\$this->dispatcher, \$cache, array_merge(array('auto_shutdown' => false), sfConfig::get('sf_factory_routing_parameters', %s)));", $class, $cache, var_export(is_array($parameters) ? $parameters : array(), true)); 
     173          $instances[] = sprintf("  \$class = sfConfig::get('sf_factory_routing', '%s');\n  %s\n\$this->factories['routing'] = new \$class(\$this->dispatcher, \$cache, array_merge(array('auto_shutdown' => false), sfConfig::get('sf_factory_routing_parameters', %s)));", $class, $cache, var_export($parameters, true)); 
    173174          if (isset($parameters['load_configuration']) && $parameters['load_configuration']) 
    174175          { 
     
    217218                         "  \$class = sfConfig::get('sf_factory_logger', '%s');\n  \$this->factories['logger'] = new \$class(\$this->dispatcher, array_merge(array('auto_shutdown' => false), sfConfig::get('sf_factory_logger_parameters', %s)));\n". 
    218219                         "  %s" 
    219                          , $class, var_export(is_array($parameters) ? $parameters : array(), true), $loggers); 
     220                         , $class, var_export($parameters, true), $loggers); 
    220221          break; 
    221222      } 

The Sensio Labs Network

Since 1998, Sensio Labs has been promoting the Open-Source software movement by providing quality web application development, training, consulting, and supporting several large Open-Source projects.