From GeeklogWiki
Jump to: navigation, search

Geeklog 2 Framework

Framework Overview

What another PHP framework? Well, yes, sort of. While I am aware of a number of PHP frameworks in the wild, the components that have made the cut for the Geeklog 2 Framework have been put through a high degree of due diligence and are in use in a number of production systems in both the private and public sectors. Frameworks are only as good as the developers who use them and a good framework simply speeds the development cycle of large projects. Yes, I said large projects! The time needed to learn the Geeklog 2 Framework isn't insignificant and therefore careful thought should be given to deciding if you need a framework at all. What things should you consider?

First consider the complexity of the project and the relative risks involved. If the project is very complex or even trivial but will be under scrutiny of your peers or upper management then a framework will help organize any confusing and put the polish on the project. Size is a factor too. If you only have a dozen or so screens to develop that do your most basic CRUD tasks, you probably don't need a framework. However, if you have a project with a half-dozen or more developers, dozens of tables and some complex business processes that are being implemented odds are you need a framework. Can you use framework on smaller projects? Sure, in fact if you aren't familiar with a framework, building a small application using the framework makes a lot of sense. If you are familiar with a framework, you may find the efficiecies of the framework still justify its use. In the end, only you can decide. If you feel you have a need for a framework, come along and let us show you what makes up the Geeklog 2 Framework and how it can help you commoditize the software development process!

The Geeklog 2 Framework Components

  1. Model-View-Controller - Geeklog 2 implements the model-view-controller design pattern using MVCnPHP
  2. Object Persistence - Quickly persist objects to your database using Propel
  3. Data Access - Not sure about using Propel? Geeklog 2 provides a DAO layer that abstracts the use of Propel so you can choose to replace it.
  4. Security - You do remember you have to program securely, right? Applications need to filter user input for nasty things like SQL injection, Cross Site Scripting and you need to ensure only the users you authorize have access to the parts of your application you grant them. The Geeklog 2 Framework can make all of this easier.
  5. Testing - Automate test by using both PHPUnit2 and CruiseControl. Yes, the same Java-based CruiseControl in use by many Java shops can even be used to automate testing in PHP applications!