Feature

Overview
DooPHP comes with features essential to today’s Web 2.0 application development. It focuses on 7 main cores: MVC, REST, URI routing, ORM, Template engine, ease of use and performance. It even has a very loosely coupled design where developers can modify and add new functionailies to the framework at ease.

DooPHP has very detailed documentation. From the definitive guide to class reference, Doo has every information you need to quickly learn and master it.

MVC structure
MVC abbreviation for Model – View – Controller, Doo adopts this proven technique of success in Web & desktop programming. It is common to split an application into separate layers: the presentation/user interface (view), business logic (controller), and data access (model).

In short, consider the MVC design pattern for your development projects. Using its three components, you can open up new levels of robustness, code reuse, and organization.


URI Routing
Doo has a sophisticated routes system for mapping URLs to controllers/actions and generating URLs. It can even be used externally for code which doesn’t use MVC pattern.

With URI routes, you get clean URL for your website which is good for SEO purpose.

Doo’s URI router supports auto routing as well for quick & lazy development purpose.


Authorization
DooPHP has built-in authentication support. It supports authorization via Access Control List (ACL) which is easy to use. ACL rules are defined in a single file for better maintainance and readability.


Database Replication
Most simple frameworks/application have no separation of Reads and Writes of the DB. Once the projects outgrow a single server RDBMS the next step is often to do a Master/Slave setup in MySQL.

Database replication can be complex but is required in high traffic projects. In DooPHP, we simplifies thing to merely just define the Slave server configurations.


Data Cache
DooPHP provides its own data caching mechanism which supports disk cache, APC, MemCache, XCache and EAccelerator. The storage medium of caching can be changed easily without touching the application code.


Frontend Cache
DooPHP has a sophisticated Frontend Caching mechanism. It supports both Full page and partial page cache. The frontend cache can be used with the tempalte engine too.

With the frontend cache, you can specify which page(URL) to be cached. You can even cache pages in a certain base URL recursively. Frontend cache is a great helper to speed up your site!


Code Generation
DooPHP provides the tools that can automatically generate the code that you need, such as Routes, Controller and Model files

These helper tools are GUI which are a lot easier to use than a command-line interface. Beginners can get started easily with these convenient tools!


I18n Internationalization
DooPHP has a very flexible template engine and controller. You can easily extend the controller and add new features to the view to provide multi-language support for your application. There’s even a demo included to show you how to do simple internationalization & localization.

Ease of use
DooPHP is easy to learn & use. There are no complicated configurations or overwhelming concepts to cope with. All you need to use DooPHP is some basic knowledge of PHP language.


Performance wise
DooPHP is fast. It’s the fastest MVC based PHP framework you can get for free. It uses the lazy loading technique extensively and avoid slow PHP functions & methods. It has a small memory footprint as well. With DooPHP, you’re good to go with your 10-million-hits-per-month web apps.


Centralized Configuration
There are only 3 essential settings to configure to run DooPHP. Configurations are defined as associative array which is highly readable and familiar to all PHP developers. There are only 3 configurations files in a Doo project: Common project settings, routes configurations, and database related configs.

Database relationship mapping is defined in a single file instead of seperate model classes like most ActiveRecord solution is doing. The same principle applies to URI routes setup as well. This means that you only have to look at a single file for the settings, thus, saving your previous time.


RESTful API
Most Web 2.0 sites provide web services in REST form to developers for mashup purpose. Try DooPHP if you are building your own RESTful API or mash up that makes requests to 3rd party web services like Twitter & Facebook. It supports REST natively.


Database ORM Tool
DooPHP have database abstraction layer and ORM tools ready for your RDMBS. It eliminates the need of manual SQL in most cases, however you can do so if you want to. It also performs quoting and escaping of malicious input automatically. DooPHP also supports multiple database connection if you need it. Working with CRUD and relational DB operations has never been so easy!


Flexible Templating
There are times you might want to allow users to upload custom themes to your web app. As you do so, you probably don’t want any malicious function calls in the templates which might destroy your system. Template files should stay as HTML as possible. DooPHP let you control what to be allowed in a template easily.


HTTP Authentication
DooPHP supports HTTP digest auth out of the box. You can throw in simple authentication for a file, page, controller or action by defining it in the Routes or through a simple method call.


Logging & Profiling
Debugging is made easy with Doo’s logging, code profiling and DB profiling tool. Remember to benchmark and optimize your code before going live!


Works Anywhere
DooPHP works without problem in various PHP mode: mod_php, CGI & FastCGI. DooPHP also works on modern web server such as Apache, Lighttpd and Cherokee. Your apps can be deployed on a domain root directory, sub folder, sub domain, sub folder on sub domain, etc. It doesn’t require anything extra other than the PHP’s SPL which existed in every PHP installation.


Shared Hosting Support
DooPHP should be working fine on most shared hosting environment, unless PHP isn’t installed. You do not need SSH to deploy DooPHP projects. FTP alone will do fine.


E_STRICT Compliant
DooPHP is 100% E_STRICT Compliant. This means that Doo does not produce any notices, warnings or errors. DooPHP also ensures forward compatibility with future versions of PHP.


Ajax Friendly
DooPHP is AJAX friendly and should be working fine with JavaScript frameworks such as jQuery and MooTools.