Main Page
From Genitura
Genitura: Minimal PHP Framework
Contents |
Description
What is Genitura?
Genitura is a PHP framework created by Heptacube engineers for optimizing Web applications development. It takes advantage of the Model View Controller (MVC) architectural pattern to shorten development time, boost quality and simplify maintenance of PHP applications.
Why use a framework?
Using a software framework for developing applications, in this case a PHP Web application, has the advantage of building consistency throughout an individual or company's work. Building multiple applications with the same framework usually makes them similar and simple in structure, therefore making it easier for multiple people to work on the same project, or for someone to take over the work started by someone else.
Challenges
Active record
Linking OOP (Object-Oriented Programming) and relational (tables in a database system) paradigms.
- Trying to create a model mother class managing persistence and delegating saves to embedded objects. Difficulties managing cases where multiple objects are linked to multiple objects.
- Moving persistence functionalities and duplicating the models section in each class for managing each data structure's specificities.
Templates system
Producing HTML pages, managing languages and cache.
- Performance issues.
- Complexified by the addition of an internal language and the necessity to precompile templates.
Solution:
- using PHP files with embedded HTML;
- using cache memory functionnalities of PHP/Apache;
- abandoning precompilation.
Generating forms
Linking modeled classes to a form, automatic managing of data validation and data modification cycle.
- Difficulty linking multiple models to a single form. Tried working wiht one-to-one relations only, then decoupled the link to create tables and forms in independent entities.
- Managing multi-language messages, first regrouped in the code then split into individual files.
- Managing HTML generation into multiple formats (without structure, in a list, in a table). Moving HTML into views to better follow the MVC pattern.
URL management
URL/Resources relation, search in the file tree, default methods activation when necessary.
- Managing security and denying access to framework files.
- Taking parameters into account in the URL.
Controllers
Executing user requests, relating models and views.
- Taking into account access rights and safe authentication mechanisms.
Documentation
- Current structure
- How to install
- Tutorial 1 : Creating a User Object
- How to expand : Predefined Objects
Downloads
- 2009-01-27 - version 0.1 initial release
- 2010-01-26 - version 0.1.1
Timeline
- Genitura 0.1.2 Milestone
- Genitura 0.2 Milestone
