Jammary PHP Framework (JPF) contains Classes and Methods that work as a simplified API to PHP and XHTML, and helps developers quickly create database-driven PHP projects according to MVC and W3C standards.
JFP (Jammary PHP Framework) is developed using:
- Object Oriented PHP 5
- MVC (Model View Controller) Architecture
It uses MySQL as the Database Service and Apache HTTP as the Web Server, PostgreSQL Database support is planned for a future release. The Installer is built using NSIS (Nullsoft Scriptable Install System). The "setup.exe" Framework Configurator is developed using Object Oriented C++, and uses functionalities from both the Standard Library and the .NET Framework. I am using Microsoft Visual C++ 2008 Express and .NET 4 to develop and compile the "setup.exe" Framework Configurator. The entire project is automatically built using Continuous Integration utility Jenkins, SVN and NAnt build files. All classes and methods of the PHP Framework have been tested using PHPUnit. All commenting follows the JavaDoc style allowing automatic generation of the Technical Documentation using Doxygen.
The "setup.exe" Framework Configurator is used to create a new PHP Web Project. It creates a new database, and a new file and directory structure using pre-defined templates. It also creates local virtual hosts (for example http://newProject.localhost). The Framework contains Classes and Methods that work as an API (Application Programming Interface) to the PHP and XHTML functionalities.
I started this project after growing tired of writing the same code over and over again, for example switching between PHP and XHTML for creating dynamic XHTML content such as tables, DIV containers, "A HREF" links, INPUT element, SELECT Drop-Down lists and of course several Database actions. So, I decided to start writing methods with simple names such as createDatabaseTable("table_name"), printLink("css_style", "link_text", "link_url"), printImage("css_style", "source_path", "alternative_text") etc. This way I could hide all the complexity of making flexible and dynamic XHTML contents and database communication in dedicated functions, after a while the number of functions grew and I grouped them in categorized Classes, and now I want to share this Framework with everyone, and you can use it as you whish for your own development.
Another important objective of this was also to make sure all XHTML and W3C Standards are followed, and this is easily accomplished by writing the correct XHTML code in one function/method, and the correct XTHTML code will be reflected everywhere the function/method is used in the software.
Also, this software has been developed for Windows systems, and the 3rd party services are portable which means they are not installed as services and they do not register anything in the registry. This is because I moved my development environment around alot, and I got tired of setting up the web and database services from scratch on every new system. This way you can stop the web and database services, move the development folders to another system, start the services again and continue working.
This is not a usual CMS (Content Management System), or as advanced as Symfony Framework, this software is meant for basic PHP and Web Development for developers and not for end-users. It's meant for someone who wants to start a new project quickly without writing all the basic code used in almost every project from scratch.
This software can be endlessly expanded, and the CSS/Styling functionalities can for example be improved. Functionalities for this software is only limited by the lack of creativity or lack of time, and this is why I am sharing this with everyone now, since I don't have the time to add all the features I originally imagined in the time I planned, so it's up to you if you want to continue improving this software, or make your own version based on this one following the GPL license.
This software was built using the following Build Environment:
- DoxyGen 1.7.4 - Documentation Builder
- Jenkins 1.405 - Continuous Integration Tool
- MakeNSIS 2.46 - NSIS Software Installer Builder
- NAnt 0.90.3780.0 - NAnt Software Project Builder
- Trac 0.11.6 - Bug/Feature Tracker
- VisualSVN 2.1.7 - SVN Server
- Windows SDK for Windows 7 and .NET Framework 4
This software was tested in the following Operating Systems:
- Windows XP Professional SP3 x86
- Windows Vista Home Premium x86
- Windows Vista Home Premium SP1 x86
- Windows Vista Home Premium SP2 x86
- Windows Vista Business x86
- Windows Vista Business SP1 x86
- Windows Vista Business SP2 x86
This software was tested in the following Browsers:
- Internet Explorer 7.0.5730.13
- Internet Explorer 8
- Internet Explorer 9
- Mozilla Firefox 3.6.15
- Opera 9.0.597.107
- Google Chrome 11.01
The Framework includes the following 3rd Party Software:
- Apache 1.7.4 - xampp-win32-1.7.4-VC6
- MySQL 5.5.9 - mysql-win32-5.5.9
- PHP 5.3.5 - php-win32-5.3.5-nts-VC6
- PostgreSQL 9.0.3-1 - postgresql-win32-9.0.3-1