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
-
Object/Relational Mapper
A set of objects for interfacing with a relational database
-
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
-
-
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
-
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.
-
-
Encryption
-
Cache
Provides a standard interface for caching a chunk of data according to a hash
-
Database Cache
-
Session Cache
-
-
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.