New WordPress clone
If you’re wondering why the WP theme development is moving on so slow, it’s because I started working on a MVC-style WP clone application, and this is currently taking most of my time.
Why? The main reason is simply because I love WordPress, and I’m starting to feel its limits. Leaving aside the fact that you’re forced to work with outdated technology, there’s simply no way to implement certain functionality without resorting to all sorts of ugly hacks. These hacks can break compatibility with plugins, slow the site or just …be ugly. The second reason is my desire to learn PHP better.
Right now, less than 20% of the app is complete, which is:
- the database API, which uses the PDO abstraction layer, so multiple database types are supported by default, not just mysql; also all write operations are wrapped within transactions – that means no db inconsistency issues when dealing with heavy traffic. The table structure differs from the one in WP and seems to be much faster from a few quick tests I made so far.
- the option API (the same type of functionality as in WP)
- internationalization API, about 4-5 times faster than WP’s, even when reading messages from PO files; all translations are handled by a single “t()”-named function, including plurals.
- transient API (they get their own db table with an expiration column)
- a basic cache handler,
for the moment it’s identical to WP’s object cache
- action / filter API, almost the same as in WP
- the User abstraction class (provides API for managing users)
The plugin system is replaced by modules, which are basically objects on which the developer can attach events, instead of hooking functions to actions. Also options are very easy to manage from inside them since you get add/update/getOption inherited methods…
There’s no graphic interface so far, so no demo yet
Finished cron (fake, like the one in WP), taxonomy and asset dependency APIs, and added XCache and APC cache extensions. I’ll be opening a repository for the source soon
Finished controller (mapping URL routes to actions), along with some basic theming API. I don’t think I even need to compare this to WP’s rewrite-template system… An early demo and a Github repository should be up next week.