Added by Stanislav Malyshev, last edited by Gavin on Sep 08, 2006  (view change)

Labels

 
(None)
Under Construction

This proposal is under construction and is not ready for review.

Zend Framework: Zend_Controller_RewriteRouter Component Proposal

Proposed Component Name Zend_Controller_RewriteRouter
Developer Notes http://framework.zend.com/wiki/display/ZFDEV/Zend_Controller_RewriteRouter
Proposers Michael Minicki aka Martel Valgoerad
Revision 1.1 - 1 August 2006: Updated from community comments. (wiki revision: 4)

Table of Contents

1. Overview

Zend_Controller_RewriteRouter allows for native PHP URL rewriting. It allows a usage of self created and controlled url schemes.

2. References

The route interface was inspired by very early sketch of skeleton framework created on sitepoint forums (yet the code was written from scratch for my own project sometime ago): http://ap3.sourceforge.net/ (skeleton classes)

I don't recognize a single line of code though

3. Component Requirements, Constraints, and Acceptance Criteria

No requirements at this point.

4. Dependencies on Other Framework Components

  • Zend_Controller_Router
  • Zend_Controller_Dispatcher
  • Zend_Controller_Dispatcher_Token

5. Theory of Operation

Thanks to this component user can use self created URL schemes.

  • Routes are matched in reversed order.
  • Allows for setting named parameters
  • Allows for setting defaults
  • Allows for setting requirement masks
  • Uses default if the url param value is not in a proper mask

6. Milestones / Tasks

zone: Missing {zone-data:milestones}

7. Class Index

  • Zend_Controller_RewriteRouter
  • Zend_Controller_Router_Route

8. Use Cases

9. Class Skeletons

No milestones defined yet

Reviewed by Zend team on Wednesday, 19 Apr 2006.
Decision: Accepted

Since the time that this proposal was made with code by
Martel Valgoerad, Jared Williams has submitted an alternate
solution. Both use very similar routing rules but the
implementation details are different.

We have conditionally accepted this proposal, with the
understanding that Zend will work together with Martel
and Jared to develop a solution with the best features
from each. Zend will first merge this code, taking the
best features from each, and will the commit this to
the incubator after giving it a real-life test. We would
then like Jared and Martel to work with us to further
advance it.

This router will completely replace the existing router
solution. Common issues that have been raised on the
mailing list, particularly better support for subdirectories
(shared hosters), must be addressed by this new solution.