Rapid Web Development Framework + IDE for PHP 5

Computer Science & Engineering
University of Moratuwa

Sri Lanka

 
 

Home

|
Login
|
Contact Us
|
Downloads
|
|
FAQs
 

Documentation

Table of Contents:: 
      Motivation
      Technologies Used
      MVC Architecture of the PHPlus Framework
        Typical Workflow of the Framework
        Convetions Used with the Framework
        Component View of the Framework
      IDE
      Schedule
      Bi-weekly Reports

      White Paper


Motivation::

   At present, a web development framework (Enhydra) for java developers is available. Due to inherent slow responsiveness of java programs, there is a huge requirement from the industry to have an alternative solution for this, which will run faster plus make the web development easier. PHPlus framework is our solution for this problem. (PHP codes run faster than java codes and a similar framework for PHP still has not been built.)


Technologies Used::

  • Programming languages - C/C++,PHP
  • Development platform - Red Hat Linux 9
  • DOM programming in C++ and PHP
  • Plug-in architecture in IDE design
  • Qt designing
  • Web based development using HTML and PHP
  • PHP engine, Apache web server
  • CVS (Linux)
  • PEAR::SOAP toolkit for PHP web services
  • UML

A high level MVC architechture of the PHP framework::

Presentation manager gets all the page requests. It invokes the requested page with the initial parameters such as session management and cache management set.

PHP class library provides necessary fuctionality to mainipulate the PHP DOM classes, which correspond to HTML files, in a very user friendly manner. Some of the fuctionalities are adding dynamic text (replacing nodes), creating tables (cloning and adding nodes), etc.

XMLCplus parser, written in C++, converts static HTML pages into PHP classes representing the page structure as a DOM. In order to parse the HTML files, they should be well structured. Objects of these classes are used in presentaion classes which display the content on the browser. Presentation classes also use objects of business classes which represent the application logic.

A plug-in is to be developed to plug the XMLCParser and the necessary tools to use this framework into the IDE we are developing.

Typical work flow is shown below::

Conventions Used with the Framework::

Html page = welcome.html
PHP class containing the DOM = WelcomeHTML.php
Presentation class = WelcomePresentation.php


Receiver.php::
All the requests first come to Receiver class. This PHP file can have any name that reflects your site’s purpose.
Receiver.php => go to the default page (You can set the default page in Receiver.php file)
Receiver.php?page=MyPresentation =>go to MyPresentation.php page

* Each PHP file contains only one PHP class and the filename and the class name are equal.
* Receiver.php should reside in the base directory (this is where you host the site).
* All the presentation files (e.g.: WelcomePresentation.php) should reside in a sub-folder “presentations” of the base directory.
* All the PHP DOM classes should be inside the sub-folder called “resources” of the base directory. (It is a good practice to keep all the corresponding HTML files inside this folder (but not necessary) for the convenient future references.)
* All the library classes come with the framework are place in a directory called “phplus-lib”.
Example layout:

mysite /*base directory*/
   presentations /*sub directory of mysite*/
      WelcomePresentation.php
   resources /*sub directory of mysite*/
      WelcomeHTML.php
      welcome.html
   business

Component view of the Framework::

IDE::

   This IDE will help coding web applications in PHP incorperating the web developement framework that we develop. The IDE will provide as much facilities and features as those provided by well known IDEs such as JBuilder for java development. We provide the following major facilities;

  • Facility to manage projects
  • Code editing features
        Syntax/keyword highlighting
        Method and Property discovery
        Quick access to built-in PHP functions
  • Ability to plug-in the PHP web development framework
  • Testing and Debugging facilities

Schedule::

 

 

        SourceForge.net Logo