Jammary PHP Framework
Copyright (C) 2010 - 2011 Abdellah Jammary
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
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
.NET 4 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
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
- JFP (Jammary PHP Framework) is developed using Object Oriented PHP 5,
- 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 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 folloing the GPL license.
Please contact me <email@example.com> if you want to help improve this software.