home / about / roadmap
# Development Roadmap

This is the set of features that the Lithium team is focusing on in the near-term. If your must-have feature or favorite new technology doesn't appear here, don't fret: Lithium is very flexible and has a robust plugin API. Extending the core framework is trivial, and it's possible that someone has already developed a [project that meets your needs](http://rad-dev.org/projects).

### Session/Cookie Handling

  - Cookie and PHP-based session adapters need integration tests with the `Session` class. (jperras)
  - A mechanism to optionally encrypt cookie data (strategy?) (jperras)
  - A mechanism to optionally sign cookie data to ensure it has not been tampered with. (jperras)

### Model/Data Layer & Validation

  - SQL querying support is currently very basic. See `lithium\data\model\Query` and `lithium\data\source\Database` / subsidiary drivers.
  - Support for joins / relationships --  **in progress**.


### Test Suite

  - Implement XML and JSON display formats for test data, with the intent on utilizing this for a continuous integration solution.

### Error Handling System

  - Needs additional filtering rules and interface testing.
  - Integration tests
  - Class documentation & example configurations

### Globalization

More information about Globalization in Lithium can be found in [the specification](http://rad-dev.org/lithium/wiki/specs/globalization).

* A g11n <strike>guide</strike> tutorial. -- **done** 
* G11n routing (as part of the <strike>guide</strike> tutorial/extension on lab). -- **done** 
* Move CLDR adapter to plugin. -- **done** 
* Introduce environment settings as described in _Identifying, Setting and Passing Locale Settings_ of the spec. -- **done.** 
* `Inflector` g11n resources?
* Support for number and date formatting
  * Date and Number Helpers using ext/intl?
  * Date and Number Formatting at model level?
* Support for _direction_.
* Support for retrieving plural functions via `Catalog` for `Cldr` and `Gettext` adapters.
* Uniform plural functions (in `Cldr`, `Gettext` and `Memory` adapters).
* Caching in Catalog (replacing caching in Message)?
* Figure out how/if integration with Inflector makes sense

### Queuing 

  - Actual work on the plugin needs to start/resume (jperras)

### Security

  - Authentication: Additional unit tests, integration tests & adapters.

### Static Code Analysis

  - The `lithium\analysis\Parser` class has only very rudimentary support for recognizing code patterns.  Possibility: implement an object-oriented abstract syntax tree.