Changeset 2284

Show
Ignore:
Timestamp:
01/19/08 16:58:06 (10 months ago)
Author:
david
Message:

Deprecated directive "core.use_routing" in favor of a routing config parameter ("enabled"), closes #683

Location:
trunk
Files:
14 modified

Legend:

Unmodified
Added
Removed
  • trunk/docs/docbook/manual.xml

    r2144 r2284  
    12071207        mod_rewrite for Apache or ISAPI_Rewrite for Microsoft IIS but with a 
    12081208        lot more power and features. Routes are defined in the file 
    1209         <filename>%core.app_dir%/config/routing.xml</filename>, and to enable 
    1210         routing you must set the "use_routing" option to true in 
    1211         <filename>settings.xml</filename>.</para> 
     1209        <filename>%core.app_dir%/config/routing.xml</filename></para> 
    12121210 
    12131211        <para>Let's look at an example route:<programlisting>&lt;route name="viewproduct" pattern="^/products/(id:\d+)$" module="Shop" action="ViewProduct" /&gt;</programlisting></para> 
  • trunk/etc/olson/agavi/app/config/factories.xml

    r2185 r2284  
    2020    <response class="AgaviWebResponse" /> 
    2121     
    22     <routing class="AgaviWebserviceRouting" /> 
     22    <routing class="AgaviWebserviceRouting"> 
     23      <parameter name="enabled">false</parameter> 
     24    </routing> 
    2325     
    2426    <security_filter class="AgaviSecurityFilter" /> 
  • trunk/etc/olson/agavi/app/config/settings.xml

    r1964 r2284  
    1010      <setting name="use_database">false</setting> 
    1111      <setting name="use_logging">false</setting> 
    12       <setting name="use_routing">false</setting> 
    1312      <setting name="use_security">false</setting> 
    1413      <setting name="use_translation">true</setting> 
  • trunk/samples/app/config/settings.xml

    r1964 r2284  
    4646      <setting name="use_database">false</setting> 
    4747      <setting name="use_logging">false</setting> 
    48       <setting name="use_routing">true</setting> 
    4948      <setting name="use_security">true</setting> 
    5049      <setting name="use_translation">true</setting> 
  • trunk/src/buildtools/code_templates/config/settings.xml.tmpl

    r1964 r2284  
    4646      <setting name="use_database">false</setting> 
    4747      <setting name="use_logging">false</setting> 
    48       <setting name="use_routing">true</setting> 
    4948      <setting name="use_security">true</setting> 
    5049      <setting name="use_translation">false</setting> 
  • trunk/src/controller/AgaviSoapController.class.php

    r2259 r2284  
    7373   
    7474  /** 
    75    * Initialize this controller. 
    76    * 
    77    * @param      AgaviContext An AgaviContext instance. 
    78    * @param      array        An array of initialization parameters. 
    79    * 
    80    * @author     David Zülke <dz@bitxtender.com> 
    81    * @since      0.9.0 
    82    */ 
    83   public function initialize(AgaviContext $context, array $parameters = array()) 
    84   { 
    85     if(!AgaviConfig::get('core.use_routing')) { 
    86       throw new AgaviInitializationException('Agavi SOAP support requires the Routing to be on, please enable "core.use_routing" in settings.xml.'); 
    87     } 
    88      
    89     parent::initialize($context, $parameters); 
    90   } 
    91    
    92   /** 
    9375   * Do any necessary startup work after initialization. 
    9476   * 
  • trunk/src/routing/AgaviRouting.class.php

    r2259 r2284  
    3737 
    3838  /** 
     39   * @var        bool Whether or not routing is enabled. 
     40   */ 
     41  protected $enabled = true; 
     42 
     43  /** 
    3944   * @var        array An array of route information 
    4045   */ 
     
    7984  public function __construct() 
    8085  { 
     86    // for now, we still use this setting as default. 
     87    // will be removed in 1.1 
     88    $this->enabled = AgaviConfig::get('core.use_routing', $this->enabled); 
     89     
    8190    $this->defaultGenOptions = array_merge($this->defaultGenOptions, array( 
    8291      'relative' => true, 
     
    102111    $this->setParameters($parameters); 
    103112     
    104     if(isset($parameters['default_gen_options'])) { 
    105       $this->defaultGenOptions = array_merge($this->defaultGenOptions, $parameters['default_gen_options']); 
    106     } 
    107      
    108     if(isset($parameters['gen_options_presets']) && is_array($parameters['gen_options_presets'])) { 
    109       $this->genOptionsPresets = $parameters['gen_options_presets']; 
    110     } 
     113    $this->enabled = $this->getParameter('enabled', $this->enabled); 
     114     
     115    $this->defaultGenOptions = array_merge( 
     116      $this->defaultGenOptions, 
     117      $this->getParameter('default_gen_options', array()) 
     118    ); 
     119     
     120    $this->genOptionsPresets = array_merge( 
     121      $this->genOptionsPresets, 
     122      $this->getParameter('gen_options_presets', array()) 
     123    ); 
    111124     
    112125    // and load the config. 
     
    124137    $cfg = AgaviConfig::get("core.config_dir") . "/routing.xml"; 
    125138    // allow missing routing.xml when routing is not enabled 
    126     if(AgaviConfig::get("core.use_routing", false) || is_readable($cfg)) { 
     139    if($this->enabled || is_readable($cfg)) { 
    127140      include(AgaviConfigCache::checkConfig($cfg, $this->context->getName())); 
    128141    } 
     
    156169  public function shutdown() 
    157170  { 
     171  } 
     172 
     173  /** 
     174   * Check if this routing instance is enabled. 
     175   * 
     176   * @return     bool Whether or not routing is enabled. 
     177   * 
     178   * @author     David Zülke <dz@bitxtender.com> 
     179   * @since      1.0.0 
     180   */ 
     181  public function isEnabled() 
     182  { 
     183    return $this->enabled; 
    158184  } 
    159185 
     
    701727    $container = $this->context->getController()->createExecutionContainer(); 
    702728     
    703     if(!AgaviConfig::get('core.use_routing', false) || count($this->routes) == 0) { 
     729    if(!$this->enabled || count($this->routes) == 0) { 
    704730      // routing disabled, determine module and action manually and bail out 
    705731      $container->setModuleName($reqData->getParameter($req->getParameter('module_accessor'))); 
  • trunk/src/routing/AgaviSoapRouting.class.php

    r2259 r2284  
    3131{ 
    3232  /** 
     33   * Initialize the routing instance. 
     34   * 
     35   * @param      AgaviContext A Context instance. 
     36   * @param      array        An array of initialization parameters. 
     37   * 
     38   * @author     David Zülke <dz@bitxtender.com> 
     39   * @since      0.11.0 
     40   */ 
     41  public function initialize(AgaviContext $context, array $parameters = array()) 
     42  { 
     43    // must always be on 
     44    unset($parameters['enabled']); 
     45     
     46    parent::initialize($context, $parameters); 
     47  } 
     48   
     49  /** 
    3350   * Returns the local filesystem path to the WSDL file built from routing.xml. 
    3451   * 
  • trunk/src/routing/AgaviWebRouting.class.php

    r2279 r2284  
    111111    $rewritten = (preg_replace('/&+$/D', '', $qs) !== preg_replace('/&+$/D', '', $ru['query'])); 
    112112 
    113     if(AgaviConfig::get("core.use_routing", false) && $rewritten) { 
     113    if($this->enabled && $rewritten) { 
    114114      // strip the one trailing ampersand, see above 
    115115      $queryWasEmptied = false; 
     
    272272 
    273273      if($route === null) { 
    274         if(AgaviConfig::get('core.use_routing')) { 
     274        if($this->enabled) { 
    275275          $routes = array_reverse($req->getAttribute('matched_routes', 'org.agavi.routing')); 
    276276          $route = join('+', $routes); 
     
    288288 
    289289      if(count($routes)) { 
    290         if(AgaviConfig::get('core.use_routing')) { 
     290        if($this->enabled) { 
    291291          // the route exists and routing is enabled, the parent method handles it 
    292292 
  • trunk/src/routing/AgaviWebserviceRouting.class.php

    r2259 r2284  
    4343    parent::initialize($context, $parameters); 
    4444     
    45     if(!AgaviConfig::get("core.use_routing", false)) { 
     45    if(!$this->enabled) { 
    4646      return; 
    4747    } 
  • trunk/tests2/routing/RoutingTest.php

    r2185 r2284  
    2222    $this->_r = new SampleRouting(); 
    2323    $this->_r->initialize(AgaviContext::getInstance('test')); 
    24     AgaviConfig::set('core.use_routing', true); 
     24    // AgaviConfig::set('core.use_routing', true); 
    2525 
    2626  } 
  • trunk/tests2/routing/WebRoutingTest.php

    r1784 r2284  
    2121    $this->_ENV = $_ENV; 
    2222    $this->_GET = $_GET; 
    23     AgaviConfig::set('core.use_routing', true); 
     23    // AgaviConfig::set('core.use_routing', true); 
    2424  } 
    2525 
  • trunk/tests2/sandbox2/config/factories.xml

    r2197 r2284  
    1111    <request class="AgaviWebRequest" /> 
    1212    <response class="TestResponse" /> 
    13     <routing class="TestRouting" /> 
     13    <routing class="TestRouting"> 
     14      <parameter name="enabled">false</parameter> 
     15    </routing> 
    1416    <security_filter class="AgaviSecurityFilter" /> 
    1517    <storage class="AgaviNullStorage" /> 
  • trunk/tests2/sandbox2/config/settings.xml

    r1964 r2284  
    4646      <setting name="use_database">false</setting> 
    4747      <setting name="use_logging">true</setting> 
    48       <setting name="use_routing">false</setting> 
    4948      <setting name="use_security">false</setting> 
    5049      <setting name="use_translation">true</setting>