The PHP Web Framework - mocovi
Mocovi is a single-source- and cross-media-publishing framework, based on an hierarchical MVC pattern. The model is provided by an XML database, controllers are written in PHP5-classes and the view is based on XSLT, which allows e.g. HTML output. It's the best choice when you prefer to manage and control your content with XML, you like to program your ideas with object-oriented PHP and handle the resulting output with XSLT templates.
Why mocovi Web Framework?
For me understanding was the most complicated part in programming. So I decided to start over an make everything easy, clear and human-readable. No abbreviations. No "$v1, $v2, $v3" and stuff. Read everything like a book.
Starting with reading and observing other products I saw that many Content Management Systems and Frameworks lack in structured models and are being developed by many different programmers over many years - which means patchworked code and furthermore inconsistencies. Plus, nearly every CMS uses MySQL to store every kind of data. In my opinion databases should only be used for huge loads of constantly changing and indexable data. MySQL is hard to understand and to handle relational tables. This is why mocovi is based on W3C standards (XML and XSLT) and programming design patterns (written in PHP).
Why XML as data model
XML is readable by humans and computers likewise. XML won't be a problem if you already dealed with HTML. Its structure is easy to understand and some nice features like xi:includes and xref:references can speed up your work a lot!
Why PHP as controller and Apache as server
PHP became more serious since version 5.3 (and of course 6). Many deficiencies were cleaned up. The object oriented features like Late Static Binding, Namespaces and even Closures were added recently. The support of PHP on the webservers of the providers is common.
Apache is one of the most powerful and secure webserver in the world. With .htaccess you can control nearly every behaviour of the server. URL-Rewriting for instance.
Why XSLT as view
Because you can choose either a formatted output for better reading or a stripped one for more performance on the client side. Well formed and W3C compliant!
More than just one output format: Plain-Text, XML, JSON, PDF and everything else you want.
Summarized
- single-source XML models
- cross-media publishing via XSLT templates
- Object Oriented PHP5 controllers
- No other dependencies
- HTML5-ready
- Multi-Domain support
- Token based translations
Get mocovi
You like HTML5 and CSS3? No problem, take a look at the source code of this page, it actually is HTML5. So, give it a try and let me know if anything's missing!