I started PHP programming around 2002, when there were not that many frameworks around. Over the years, I developed my own PHP framework, which seems to be entirely different from any standard I come across.
I'll try to describe the framework that I created:
This way I have no specific classes for anything that is in the application or database (e.g. Accounts or Invoices). When my data-model changes I only have to update the templates, and no PHP-code at all.
Every framework I'm trying out (e.g. Phalcon, CakePHP and Laravel) seems to require to define the business-logic, data-model and all interactions in specific PHP-classes (e.g. Account or Invoice). So when a field is added to a database-table, you need to add a property to its corresponding class. But of course also change the view-templates and interaction-controllers. And for every table in the database different model and controller files are needed. I think this is quite complex and time consuming, compared to my solution (some of my applications use 100+ different database tables).
The downside of my approach is that maintaining the standard-classes in the framework takes a lot of work. Especially because in different applications the same classes need to be able to behave a bit different, so every class has lots of properties to control all this. This way the engine has become very powerful, but also quite slow, complex and difficult to maintain. I realize that my solution doesn't really separate the code and design, but since I build mostly database web-applications, this is not really necessary for me. The way things look can be manipulated enough using some custom CSS.
So, where to go from here now? I really love my framework, but would like to comply more with web-standards to be able to hire external developers a bit easier. But since my framework is quite different from anything else, I have no idea which framework to choose.
My questions are :
- What do you think of my 'web-application-engine' that mostly uses templates only? Does anybody else do this?
- Which existing framework could be used to complement my own framework, rather than entirely change the way I work now?