NINA
NINA (Nina: InterNet Architecture) is an advanced, fully MVC compliant PHP framework
It started life as APLC (Advanced PHP Library Collection) for which I was part of the development team in a previous job. Back then it definitely had potential but much of it was over-engineered bloatware - geared towards multi-application environments, forcing unnecessarily rigid code layout and with a rather unusual take on how an MVC oriented site should work.
However, the ORM was top notch and extremely light-weight, it had a fantastic class autoloader, a good registry engine, some nice ideas on controller-view interaction, sleek request and response wrappers and a good set of built-in wiki extensions. These made it worth my time to take the code and re-engineer it into something new.
The bulk of my work has been on the ORM, taking great inspiration from Rails' Active Record I have added has-many-through support, automatic handling of created_at and updated_at timestamps, dependent-destroy support for joins along with many other features. I have also been build a command line migration utility and a script that will generate models files given a populated database.
I've recently moved NINA over to Google Code and am working on the documentation. There won't be a complete set of documentation up there for a while but I've prioritised the important stuff such as config options and setting up models. In addition NINA is fully commented and if anyone fancies a look then I can provide some fairly self-explanatory example code and answer any questions you may have.
I have also created some wiki libraries with classes to parse custom tags into markup and 'out of the box' methods to manage blocks of text. This repository can be downloaded at https://tddo.myversioncontrol.com/subversion/public/classes (username/password: readonly/readonly)
And if you want to know if it works then you only have to look at TheDaddy.org, FutureFootprint, Kirsty Says... and NinaWeb - all proudly NINA-driven sites!
It started life as APLC (Advanced PHP Library Collection) for which I was part of the development team in a previous job. Back then it definitely had potential but much of it was over-engineered bloatware - geared towards multi-application environments, forcing unnecessarily rigid code layout and with a rather unusual take on how an MVC oriented site should work.
However, the ORM was top notch and extremely light-weight, it had a fantastic class autoloader, a good registry engine, some nice ideas on controller-view interaction, sleek request and response wrappers and a good set of built-in wiki extensions. These made it worth my time to take the code and re-engineer it into something new.
The bulk of my work has been on the ORM, taking great inspiration from Rails' Active Record I have added has-many-through support, automatic handling of created_at and updated_at timestamps, dependent-destroy support for joins along with many other features. I have also been build a command line migration utility and a script that will generate models files given a populated database.
I've recently moved NINA over to Google Code and am working on the documentation. There won't be a complete set of documentation up there for a while but I've prioritised the important stuff such as config options and setting up models. In addition NINA is fully commented and if anyone fancies a look then I can provide some fairly self-explanatory example code and answer any questions you may have.
I have also created some wiki libraries with classes to parse custom tags into markup and 'out of the box' methods to manage blocks of text. This repository can be downloaded at https://tddo.myversioncontrol.com/subversion/public/classes (username/password: readonly/readonly)
And if you want to know if it works then you only have to look at TheDaddy.org, FutureFootprint, Kirsty Says... and NinaWeb - all proudly NINA-driven sites!

