Roadmap

Completed features are marked in Green. Features currently in development are marked in Blue. Features that are being considered for inclusion are marked in Yellow.

Version 0.4.0 Feature List

  • Log Manager

    A centralized way to create log messages and direct them to different outputs

  • Settings

    A generalized interface for unifying and accessing settings that have been stored in varying formats.

    • Ini Files

    • Arrays

    • Session

    • Collection

      Collects multiple settings sources into a single object

  • System V

    • Semaphores

    • Shared Memory

  • Benchmark

    A simplistic approach for comparing the speed of test cases

  • SQLite Database Adapter

Version 0.3.0 Feature List

  • Autoloading

    Provides a simple, convenient interface for basic autoloading. Register a prefix with a directory and the rest is taken care of

  • Error Handling

    Overrides the built in error handling of PHP with a more powerful set of tools.

    • Backtrace

      An object representation of a backtrace

    • Formatters

      A set of formatters for Errors and Backtraces that allow you to output them in various formats. HTML, plain text and JSON

  • Select SQL Builder

    A Fluent interface for creating select statements

  • Soap Server

    Using the XML Builders as a foundation, this will provide a more complete and intuitive interface for handling SOAP interations in PHP.

  • Enum

    A convenient way of defining Enums in PHP

  • Transforms

    An interface for two-way string transformation. These objects can be c hained together to easily manage long processes

    • Encryption

    • Encoding

      Base64, Ascii85, Hex, Quoted Printable, and MIME

    • Compression

    • Data Verification

      Hash Verification, Data Lifetime checks

  • Session

    A standard interface for interacting with different session data sources.

    • PHP Session

    • Cookies

    • Transform Decorator

      Allows you to transparently hook a string transform into a session

  • Streams

    An implementation of input/output streams akin to Java's. Sources include general URIs, StdIn/Out, Raw Strings and Error Logs

  • Input

    Wrappers that provide an OO interface for interacting with GET, POST and FILES input data

  • HTML Header

    Collects the details of an HTML header into a single location so that it can later be rendered automatically

Version 0.2.0 Feature List

  • Curry

    • Instantiate

      Wraps a class, making it easy to play with arguments on instantiation

    • Invoke

      A lot like call, but this invokes a method on an object

  • Iterators

    • Filtering Iterator

      Applies a filter to every value before returning it

    • Validating Iterator

      Determines whether a value should be included in the iteration by whether it passes validation

  • Page Encapsulation

    A base class for easily generating the content of a page

  • Email

    Creates a multi-part e-mail and sends it via PHP's mail function

    • Email Info Object

    • PHP Mail function transport

  • Environment

    Parses out environmental information and provides a read only interface for accessing it.

    • Request

      An object oriented to interact with the request information

    • Response

      An object oriented way to send information back to the client

  • Cache

    Provides a standard interface for caching a chunk of data according to a hash

    • Memcached

  • Random Numbers

    A customizable interface for generating with random numbers

    • Seed

    • Multiply-With-Carry

    • Complementary-Multiply-With-Carry

  • XML Builder

    Using PHP's DOMDocument, a well defined structure for creating XML documents

    • Root Document Builder

      The root class for building an XML document from builders

    • Node Create

      Generates a new node on the fly

    • Node Wrapper

      Wraps another XML builder with a node

    • Appender

      Appends nodes from collection of builders to the result of another builder

    • Soap Envelope

      Wraps another XML Builder in a soap envelope

    • Soap Fault

      Creates a Soap Fault node set

Version 0.1.0 Feature List

  • Curry

    • Call

      Wraps functions, allowing for arguments played with when the method is invoked

  • Database

    Object oriented, extensible database wrapper

    • Connection

    • Result

    • MySQLi

    • Extended Query Methods

  • Exceptions

    Multi-purpose exception tree

  • Filters

    Data filters

    • Arrays

      Non-recursively applies another filter to every value in an array

    • Array Offsets

      Applies specific filters to specific keys of an array

    • Boolean

    • Chain

      Strings multiple filters together in to a single filter

    • EMail Address

    • Floats

    • Integers

    • IP

    • Numbers

    • Standardize Empty

      This tests to see if a value is empty, which could be null, a blank string, or a number of other things, and converts it to a standard value if it is.

    • URLs

    • Alpha-Numeric

    • Letters

    • Digits

    • PHP Variable

      Filters everything that isn't acceptable in a PHP variable name

  • Quoter

    Given a set of open and close quotes, this splits a string and then allows you to iterate over or perform operations only on specific parts of the string.

  • Validator

    A generalized validation interface that allows you to get a yes/no response, or a detailed description of the problem.

    • All in Collection

      Collects a list of validators and requires that they all return positively for this validator to return positive.

    • Any of Collection

      Collects a list of validators and returns valid if any of them are valid

    • None of Collection

      Another validator collection that only returns valid if everything inside of it is invalid

    • Email Address

    • URL

    • Not Empty

    • Regular Expressions

    • Comparisons

      Supports comparisons like equals, greater than, less than, etc.

    • List

      Checks to see if a value is contained in a list of options

    • Uploaded File

    • IP v4

    • Maximum Length

    • Minimum Length

    • No Spaces

    • Callback

    • Alpha-Numeric

    • Letters

    • Digits

    • PHP Variable

      Validates whether a string would be valid as a PHP variable

  • Date/time

  • HTML Tag

    A basic object-oriented interface for creating an HTML tag

  • Forms

    Create forms, add fields, validators, filters and quickly display them.

    • Form Class

    • Standard Text Field

    • Password Field

    • Hidden Field

    • Select Field

    • Checkbox Field

    • TextArea Field

    • File Upload Field

    • Radio Button Field

    • XSRF Protection Field

      With the recent press surrounding Cross Site Reference Forgery attacks, this form field validates a submitted form by hashing a user's session ID and checking it upon submission.

  • File System

    Interface for interacting with directories and files

  • File Finder

    Using a chain-of-command pattern, this allows directories to be registered, and then searched for contained files. It also allows mutations to be applied to file names.

    • Directory Searching

    • Include Path Searching

  • Templating

    Using PHP itself as a templating engine, this will provide a basic abstraction layer for separating content from logic

    • PHP Include Templates

    • String Find/Replace Templates

    • Raw Content Template

    • Template Collection

  • URL

    An interface for creating, manipulating and outputing URLs

  • Assorted Functions

    String, Numeric, Debug and other general functions

Future Release Feature List

  • Object/Relational Mapper

    A set of objects for interfacing with a relational database

  • Paginator

    Given a SQL statment, it will automatically create

  • HTML Sanitizer

    By first encoding everything, and then selectively converting whitelisted tags and attributes back to HTML, this will sanitize a chunk of untrusted HTML.

  • Database

    • Multi Query Guard

      Wraps a database connection and ensures that multiple queries aren't being executed within the same query invokation.

    • Caching

      Provides a connection wrapper that transparently caches select queries

  • HTML Standardizer

    A very limited version of HTML tidy, this will apply a basic set of rules to fix common HTML errors.

  • Organizer

    Given an array or an iteratable object, this will attempt to re-organize it in to branches

  • Filters

    • Phone Number

    • Zip Code

    • Social Security Number

    • Switch

      Collects a list of filters and validators. When a value is filtered, it will only apply a registered filter if the given validator returns true

  • Validator

    • Credit Cards

    • Phone Number

    • Zip Code

    • Social Security Number

    • File Mime Type

    • Image Width

    • Image Height

    • Filtered Validator

      This accepts a filter and another validator on instantiation. When a value is validated, it is first run through the filter and the result is validated. The filtered value is discarded and the validation results are returned.

  • Cache

    Provides a standard interface for caching a chunk of data according to a hash

    • Database Cache

    • Session Cache

    • Shared Memory

  • Cookie

    An object representation of a cookie

  • HTTP Requestor

    Provides an object oriented interface for cURL

  • Bilingual

    An interface for creating multi-language sites based on a hash lookup

  • Table Generator

    Useful for creating administrative views quickly, it would provide shortcuts for formatting tabular data

  • Data Types

    Object representations of common data types

    • Credit Card

    • Social Security Number

    • Name

    • Phone Number

    • Address

  • Forms

    • Checkbox List

    • Javascript Decorators

      Automatically hook in javascript to form fields. For example, javascript driven form validators.

  • Permissions

    A quick and easy way to create a permissions tree and perform tests against it

  • Image Manipulators

    Create a standardized, object oriented interface for creating and manipulating images

  • RSS/Atom Feed Generator

    This should be included as part of the XML Builder interface

  • Token Parser

    Takes a list of tokens generated by token_get_all() and parses them in to a set of usable objects

  • Object Graph Builder

    An XML based interface for constructing object graphs. XML Nodes would map to object names with sub-nodes passed as constructor arguments. Primitives would need a way to be represented, as well as variables.

    The purpose of this is to make it easy quickly construct and re-use object graphs when wiring together a page.

  • Javascript and CSS Manager

    An interface for collecting javascript and css files, and then displaying them

  • CLI Argument Parser

    A set of helper objects for quickly reading complex command line argument structures.