Show
Ignore:
Timestamp:
08/27/2008 05:15:39 PM (3 months ago)
Author:
Shadowhand
Message:

API CHANGE! Major changes to error reporting, routing, and class naming!

Complete change of autoloading: classes are now loaded by changing underscores to slashes to create a path, eg: Controller_Admin_User would be found at classes/admin/user.php (See routing changes below for more information)

  • All classes (libraries, helpers, controllers, and models) are now stored under the classes/ directory
  • Controllers and models are now prefixed instead of suffixed (eg: Controller_Welcome instead of Welcome_Controller)
  • All classes can now become transparently extensible by adding a "Core" suffix (eg: User_Model_Core extends Model)
  • Archive module has had it's drivers updated with new paths, but other modules will need to be updated, and will be non-functional temporarily

Complete routing change: routes are now defined similar to Horde Routes (see http://dev.horde.org/routes/manual/nitty-gritty-route-setup.html ), see http://paste.isanonymo.us/Dmq6n6FYfHnFFhbFs0weS8KqfDgBiGkS for an example of new routes configuration. Official documentation to follow.

  • Default route in system/config/routes.php changed
  • URI class removed because all arguments are now named (eg: Router::$argumentsid? to fetch the :id arg)
  • Added Router::compile to compile the regex for given route (protected)
  • Added Router::keys to find the :keys from a URI string
  • Added Router::uri to generate a URI from a route name and values (not complete)

Other misc changes:

  • Errors and exceptions are now inline, rather than replacing the entire page. Having core.display_errors disabled has no effect (not complete)
  • Added application/i18n/en_US directory for application language files (eg: Validation errors)
  • UTF-8 environment check moved to bootstrap.php
Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/system/config/routes.php

    r3326 r3366  
    11<?php 
     2 
    23/** 
    34 * @package  Core 
    45 * 
    5  * Sets the default route to "welcome" 
     6 * Sets default routing, allowing up to 3 segments to be used: 
     7 *  - controller, defaults to "welcome" 
     8 *  - method, defaults to "index" 
     9 *  - id, no default 
     10 * 
     11 * The converted regex for this route is: 
     12 * 
     13 *     (?:([^/]+)(?:/([^/]+)(?:/([^/]+))?)?)? 
     14 * 
    615 */ 
    7 $config['_default'] = 'welcome'; 
     16$config['default'] = array 
     17( 
     18        // Default routing 
     19        ':controller/:method/:id.xml', 
     20 
     21        // Defaults for route keys 
     22        'controller' => 'welcome', 
     23        'method' => 'index', 
     24);