Dev Wish List

Infrastructure

These improvements will further the abstraction, elasticity, and corporate acceptance of Catalyst.

  • Split Catalyst.pm into ::Context and ::Application. ::Context would contain only those things that are needed in the context objects, such as params, plugin methods, the log object, and the rest of the public methods. ::Application would contain the setup() and the rest of the private methods. This would allow for the ability to have multiple copies of the same application running in a single interpreter.
  • Convert the scripts in scripts/* in to classes. This will allow upgrades to Catalyst to automatically upgrade the scripts (rather than having to have catalyst post-munge the existing scripts).

DBIx::Class

Putting DBIx::Class here until a better place is found.

  • Create a DBIx::Class::FilterColumn to replace inflate/deflate. This component would provide a new syntax for filtering column update and retrieval through a simple syntax. The syntax would be __PACKAGE__->add_columns(phone => { set=>sub{ ... }, get=>sub{ ... } });. We should still support the old inflate/deflate syntax, but this new way should be recommended.