Adventure,PHP,framework,page controller,front controller,pattern,object orientated design,software,development,reusability,uml,tutorial,benchmark,brilliant performance,

Search:    
Downloads  |  SVN!  |  Roadmap  |  Forum!  |  Bugtracking  |  Guestbook  |  Backlinks!  |  References!  |  Sitemap  |  Impress  
 
Deutsch | English Adventure PHP Framework  Bookmark @ Technorati Bookmark @ del.icio.us Bookmark @ Mr. Wong Bookmark @ Simpy Bookmark @ Google Bookmark @ Digg.com Adventure PHP Framework Print page 009-Introduction

Introduction

Rank article:
This article has not yet been ranked. Vote this article first of all!

1. The genesis of the frameworks

At the beginning of my "web career" I was engaged with creating static HTML web pages. Sites like drweb.de and selfhtml.org helped to learn about the basic rules of HTML and CSS. After getting familiar with the basics I started to build bigger sites with up to 50 pages and the limitation of static pages appeared to be a problem.

During my school days I tried some programmming with PHP to ease the maintenance of the web pages by including global parts such as menus, header or footer with PHP functions. After that goal was reached, the need to add dynamic content arose. Particularly, I got bored of writing scripts every time I created a new website from the scratch. So I introduced a global function library, that had all of the common functions used in it (global_functions.php), and began refactoring the so far written software.

After a while, this concept was at it's conceptual end, too. At this point of time i began to think about reusable software modules, that can be used in any kind of web project. Thus, I designed a module description (some kind of "interface") and tools, to aid this concept, to give the ability to write modules in a common style and to have a particular mechanism to include these modules in existing web projects. One disadvantage of this plan was the fact, that the source code still has to be changed to fit a project's design requirements. As a salvation to this problem, I provided a simple form of separation of functionality and design by introducing a template class. With this version of the concept I developed a lot of modules, that are still included in web applications running on different web sites. But the expirience of this periode of tim taught me, that the module design was not as generic as I wanted it to be. The possibility to use modules in other modules wasn't comprehended in my design.

During my study - or more precisely - roughly at the end of it, I designed my own DOM model, that gave the ability to include modules in any place of the GUI. The implementations were now based on approved object orientated design pattern and I tried to create true reusable software components. Version 1 of the page controller componente included the features of creating a object tree while parsing defined XML tags in template files. Each tree node was represented by a PHP class implementation, that contained the functionality of the tag. Moreover, implementing MVC styled applications was established by the ability to add a document controller to each node. After another periode of time, the static tag set was at it's end, too, because there was the need to configure the XML tags by a generic number of XML/HTML attributes.

The page controller implementation integrated in the framework today is based on a generic XML parser, that generates the adventure php framework DOM by parsing templates by means of known tag libs. The set of tag libs can be expanded freely by implementing a new tag lib class that respects the interface defined ba the framework. This provides a good platform for the development of generic web applications with complex GUIs. The current version also features reimplementations of the configuration, benachmarking, errorhandling and logging tools developed during the last years. Furthermore, all classes were refactored, documented and tested during 2006/2007 to fit the global concept of the framework.

Now, the adventure php framework forms the basis of a large number of web sites and applications with database backends.


2. Intension of this documentation page

The development extending over several years can now be concidered a solid platform to efficient software development for web applications. As I have collected know-how in designing and implementing web applications and a development framework, I want to spread this knowledge. The pages on this site contains the documentation of the adventure php framework and many tutorials on object oriented design and implementation of software. So the page understands itself as a reference guide as well as a ressource for tutorials.


Comments

Do you want to add a comment to the article above, or do you want to post additional hints? So please click here. Comments already posted can be found below.


There are no comments belonging to this article.


Powered by WebRing.