Radix - Simple MVC-Style Framework for PHP

Radix is a simple PHP Framework designed for rapid application developement.

Radix is intended for use in prototypes, do-one-thing and "quick-and-dirty" web-applications. It can also be used in non-intrusive way to supplement legacy applications that are using custom frameworks - or none at all!

Three Top-Level Goals: Small & Fast, Minimal Dependencies, Shallow Learning Curve.

  • Radix uses existing PHP constructs for Sessions, Logging - it's familiar and less to type.
  • Attempts to implement very common functionality in light-weight components with minimal dependencies.
  • Allow for easy integration to custom application-frameworks that may need to standardize.
  • Crazy simple Routing, simple, direct code paths for straight-forward debugging.
  • Boot-Strapper & Application Directory Layout
  • Unified Module, Controller, Action, View, Block and Theme handler
  • Non-Intrusive Session Toolkit, Caching in files or memcache
  • Simple Request Router
  • Support for MySQL, PostgreSQL, SQLite, CouchDB, MongoDB and Redis
  • Simple Input Filter
  • Simple CURL/HTTP Request Interface
  • Simple Google Interface
  • Simple APIs to Facebook, Twitter
  • Compatible with APC, Xdebug, XHProf and PHProf

Radix Environment

Radix was developed primarily with Linux hosts in mind and has been successfully used on Windows.

Radix has support for standard MVC expectations and follows the following directory structure conventions.

Contains Binaries, Application Executables
Various Output Blocks
App Libaries, Extensions, Vendor Libraries
Deployment, Management, System Executables
Unit Test and Test Tools
Theme Files (html.php, mobile.php, &c)
App State Dir, R/W by App user
View Scripts!
Public Webroot

There are generally a few minimal files defined for Radix style applications.

./boot.php          # Bootstrap File
./compser.json      # Composer is awesome
./theme/html.php    # Default Theme
./view/index.php    # View for the home page
./webroot/index.php # Front Controller

The architecture of Radix allows it to be embedded into other applications and extended from there. In this fashion Radix can be tightly integrated and inter-version or cross-app version issues do not become an issue.

Debugging and Performance

Scriptable Testing Tools

  • Karma Runner - a javascript test runner that runs any browser
  • PhantomJS - Headless, Scriptable WebKit (Chrome, Safari)
  • CasperJS is a browser navigation scripting & testing utility written in Javascript on top of PhantomJS
  • SlimerJS - Headless, Scriptable Gecko (Firefox)
  • PhatomCSS - CSS regression testing with PhantomJS
  • SeleniumHQ automates browser

Other PHP Frameworks

The folks over at phpframeworks.com maintain a comprehensive list.