Roadmap

This roadmap is a collection of feature goals for the v1.0 release of Alloy Framework. Some of them are actively being worked on, and some of them have only begun to be considered or thought about.

Packages

Many of the best extensions and addons will come in the form of Modules with Plugins and other libraries and assets bundled in. A good example is User Authentication. It will have to be a module for most actions (login, logout, store user records, etc), but will also require a Plugin for hooking into and responding to events. It also might require public assets for “facebook connect” and “login with Twitter” buttons, custom javascript, etc.

As a result, Alloy needs a good way of packaging up all these items into a distributable package file. A single “extensions” folder above the web root may solve the “placement” issue, but additional changes will be required to the way Plugins are loaded (paths and names) and view helpers like the Asset helper to allow linking within a module package folder instead of the primary “assets” folder in www.

Tasks

New “Tasks” system will be a completely new feature set for Alloy. Essentially, Tasks will be the primary way to run CLI scripts and background processes. Users will still be able to run controller actions from the CLI via routes, so this is not a replacement for that ability, but instead will super-cede it in precedence.

  • New “Tasks” type, similar to how Module controllers are structured, but dedicated to running CLI tasks and never web-accessible
  • New top-level directory named “script” for run scripts
  • CLI runner script named alloy for running tasks and performing other CLI operations
    • Possible syntax: “php script/alloy task
    • Extensible setup that would allow other custom-named actions
      • Example: “php script/alloy migrate -r 153”
      • Example: “php script/alloy plugin install ”
      • Template: “php script/alloy ”
  • Web-based javascript CLI plugin for users who do not have CLI access (windows, shared hosting, etc)
    • Could be offered as a plugin so it is not in core for those who do not need it

Related Links