The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

Changes for version 2.11

  • Deprecated: Directly accessing the attributes of the request object, or the parameters in $r->params, or anything else, is DEPRECATED and likely to break in future releases. Be good, and use proper method calls.
    • Maypole no longer uses Class::DBI::AsForm, instead Maypole::Model::CDBI::AsForm has replaced it.
  • Incompatible API changes: Maypole
    • is_applicable() deprecated for is_model_applicable(). is_applicable is an alias for is_model_applicable now.
    • Maypole::Constants
      • ERROR constant now 500, previously -1 (bug #18901)
    • Maypole::Model
      • delete and search actions are now deprecated - use do_search and do_delete instead
    • Maypole::View
      • table name rather than moniker is used to find templates
  • API additions and enhancements: Maypole::Application:
    • -Init flag (wishlist 14123)
    • recognises Maypole::HTTPD and installs Maypole::HTTPD::Frontend as its frontend
    • Maypole::Headers: add() alias to push() (wishlist 14142) Maypole:
      • get_session() method (no-op)
      • get_user() method (no-op)
      • get_session() is called during handler_guts() before authenticate()
      • new preprocess_path() method added and called by parse_path(), parse_path() will leave any properties set by preprocess_path() in place
      • start_request_hook() added
      • status() attribute added (though only used by start_request_hook() so far)
      • setup() split into setup(), setup_model(), and load_model_subclass()
      • added new path processing methods for ssl and default table/action
      • added make_path()
      • added make_uri()
      • improved exception handling
      • now uses File::MMagic::XS to guess mime type of output unless already set
      • new component method provides Maypole::Component functionality
      • new object method gets/sets first/only object in objects
      • Maypole::Model
        • do_delete, do_search in place of delete/search actions
      • Maypole::View::TT:
        • new report_error method
        • new embedded error report page in __DATA__
      • Templates:
        • Improved pager macro/include
        • Improved factory templates
        • added the status() attribute, although it's not used in many places yet
        • Changed factory edit/view to use object instead of objects
      • Maypole::Model::CDBI
        • improved error messages in do_edit action
  • Bug fixes: Fix to cgi_maypole.t (bug 11346) Fix to TT error reporting (bug 13991) Template xhtml validation (bug 13975) Apache2 fixes in Apache::MVC (bug 13888) Fixed inheritance issues in Mp::Application - Mp::App now manipulates the caller's @ISA directly, and doesn't inject itself into the chain (bugs 12923 & 14120) Improved Template error reporting (14133) Maypole::Session::generate_unique_id() now returns the id (bug 14124) Moved ar accessor to Apache::MVC (bug 14014) Refactored core to support further development in 2.11 and onwards Fixed related_class() method (bug 14566) Added a cgi() attribute in Maypole::CGI Factory templates now less vulnerable to XSS (bug 16659) Reduced risk of XSS in factory templates (bug 16659) model search/delete methods in model and subclassing the cdbi mode (bug 16661) fixed problems with stringify_self and untaint missing ignore columns (bug 15678) fixed Maypole::Model::CDBI::Plain to JustWork(TM) with plain CDBI Classes (bug 16977) some silent death scenarios resolved Now initializes template_args, stash, parmas, objects and others to correct data type. (bug 15147)
  • Documentation: Fix to documentation for CGI::Maypole (bug 7263) Simplified Net::Amazon example (bug 14073) Numerous major and minor updates to docs. Renamed Maypole::Manual::Request to Maypole::Manual::Cookbook Added Maypole::Manual::Install, with material removed from Maypole::Manual::About Added Maypole::Manual::Inheritance Added Maypole::Manual::Terminology
    • updated Maypole::Manual::View
    • updated Maypole::View:TT
    • Examples of fancy forms and templates using new features
  • Requirements: HTTP::Body now required CGI::Untaint >= 1.26 now required rather than >= 0

Documentation

The Maypole Manual
Introduction to Maypole
The Beer Database, Twice
The Maypole iBuySpy Portal
Maypole Cookbook
Flox: A Free Social Networking Site
structure of a Maypole application
installing Maypole
Maypole Model Classes
the Maypole Plugin API
Maypole's Standard Templates and Actions
Maypole View Classes
Maypole's Request Workflow

Modules

Apache front-end to Maypole
CGI-based front-end to Maypole
Use instead of CGI::Untaint. Based on CGI::Untaint
MVC web application framework
Universal Maypole Frontend
Command line interface to Maypole for testing and debugging
Maypole Configuration Class
Maypole predefined constants
Convenience wrapper around HTTP::Headers
Base class for model classes
Model class based on Class::DBI
Produce HTML form elements for database columns
Validate form input and populate Model objects
Class::DBI model without ::Loader
Session related functionality for maypole
Base class for view classes
A Template Toolkit view class for Maypole

Provides

in ex/BeerDB.pm
in ex/fancy_example/BeerDB.pm
in ex/BeerDB/Base.pm
in ex/fancy_example/BeerDB/Base.pm
in ex/BeerDB/Beer.pm
in ex/fancy_example/BeerDB/Beer.pm
in ex/fancy_example/BeerDB/Brewery.pm
in ex/fancy_example/BeerDB/Drinker.pm