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.
http://example.net/index.php?section=news&year=2009&month=08&day=31
becomes
http://example.net/news/2009/08/31
Doo's URI router supports auto routing as well for quick & lazy development purpose.
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.
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!
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.
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.
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.
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.
Ajax Friendly
DooPHP is AJAX friendly and should be working fine with JavaScript frameworks such as jQuery and MooTools.
Have a good function or a PHP class to share? Add your own recipe at the Extensions page.


