2.0

Objective

For the next release of Zoop, The 2.0 release we should have a compelling set of changes. The purpose of this document is to outline some of the largest changes. Some may spill over into a 2.1 release which is fine.

Solution

Portero will largely benefit from a strong Zoop 2.0 release. We don’t believe that another framework can displace Zoop currently, we tried, so let’s bring Zoop into the forefront with the following features.

Timing

 Beta releases in November, release in December (or January).

Features

Zoop already has a full feature set. These changes will improve Zoop’s interoperatibility, especially as it pertains to large scale rapid development.

Model

  • Doctrine as an optional Model component (ORM).
  • Formz integration with Doctrine
    • Validation
    • CRUD

Controller

  • Support for Key Value path parameters (both zone and page params)
    • Use a “:”, ie. app/zone/key:value/page/key:value/key:value/key:arr_value1:arr_value2:arr_value3
  • Support for arrays as path param values, see above example. 
  • API style format support. Different format support in the controller..
    • Pass along a requested format, XML, JSON, PDF, HTML, etc... controller function will return a dataset in that format. 
    • Possible implementation example 
      • URL -> /people/steve.francia/profile.XML || profile?output_format=XML || Request Header = “Text/XML”
      • Controller recognizes this and calls page_method which populates $zone->output_data, which it returns in the requested (XML in this case) format. 
  • Create a CRUD base zone for working with a given table. 
    • Has view, edit (create), delete, etc already present.
    • Define which table (Doctrine Object). 
    • Let base zone and forms do the rest. Really useful for quick prototyping & admin interfaces.
  • Pagination support.
  • Fix catchall issue that hurts SEO
    • pageIndex will answer requests to http://host/zone/
    • pageDefault will answer requests to http://hosts/zone/a_string_that_doesn’t_match_any_pages
      • Default to a 404 header
    • Requests to http://host/zone redirect 302 to http://host/zone/

View

  • JQuery Integration with Forms and Ajax interactions

Misc

  • Documentation, Documentation, Documentation
  • Ability to load Zend Framework Components
    • Particularly 3rd party services
  • Perhaps other frameworks (Code Ignitor?)
  • Split up some files, more abstraction, better for extendability
  • ACL & Role support
  • General Cleanup
  • Support better configuration system (YAML)
  • Integration from Rick’s Experimental Branch
  • Community
  • S3 Support!!! 
  • Cleaner App Structure
  • Better support / documentation for cli setup tools
  • Version bump everything.

 

Timing

I'm confused about the 2.0 Timing you indicate.
"Beta releases in November, release in December (or January)."
But which year ? Is it planned for end 2009 ? Or jut a little in late ?

dgaussin 20 Feb 2009