Note:This (LGPL-ed) version of phpWebApp is not supported
anymore. See the GPL-ed version
for the latest copy of the framework.
What is phpWebApp
phpWebApp is an application framework which makes easy and simple
the task of building PHP web applications based on relational
databases. It separates the task of designing and changing the
layout of the application from the task of implementing the logic
of the application, by using XML templates that are an extension
of XHTML. It also simplifies the task of implementing the logic of
the application by offering an event based programming model.
In addition, phpWebApp tries to offer modularity and code reusability
to the community of webApp developers.
Some of the features of the 'phpWebApp' framework, and the advantages and
benefits of using it for building web applications, are these:
- The framework separates the layout from the logic of the
application, so a graphical designer can easily improve the
layout of the application without getting messed with the logic
and without having to understand it. It makes easier the work
of both the graphical designer and the programer.
This also facilitates an iterative and incremental development
approach for web application projects.
- The framework gives the possibility to divide a page into several
parts which can be used in other pages as well. This makes the
user interface of the application (the layout, the graphical part)
more structured and easier to understand and maintain and makes
easier the work of the graphical designer.
- The framework looks at web applications from a new point of
view. From this point of view, a web application is a state machine,
which can be represented and described by one or more statechart
diagrams. Each page of the application that is displayed, represents
the application in a certain state. Clicking to a link causes a
transition to another state of the application. This simplifies
the design and the implementation of web applications. Later, if this
point of view is formalised and elaborated enough, it may provide
the theoretical bases for automatic code generation of web applications
from state chart diagrams (e.g. from UML state chart diagrams), and
for reverse engineering.
- The framework supports an event based programing model. When a
transition from one state of the application to another happens,
it may trigger an event as well, which is handled by a function
(event handler). This makes the logic of the application easy to build,
understand and maintain, and makes easy the work of the web programer.
- The framework gives to the web programers the possibility to create
independent web components (called WebBox-es) which have their own
user interface (graphical design), client side behaviour, server
side behaviour, states, events, event handlers, etc. These components
can be very easily reused in other web applications and thus provide
code reusability to web programers. This means that if you have
constructed something once, you don't have to re-construct it again
when you need it another time, but use it ready.
- The framework brings closer the client-side and the server-side
logic of a web application. E.g. the session variables (which are
usually used to keep the state of various parts of the application),
are available and can be accessed both on client side and on server side.
- The framework makes the interaction with the database almost
database independent. This means that in case that you decide
to change the database on which your application is based (e.g.
switching from MySQL to Oracle), then the application itself
doesn't need to be changed at all, it will work all the same.
Installation
phpWebApp is written in PHP, so, before installing it, make sure
that PHP is installed and works correctly with your web server.
phpWebApp works on any platform that PHP works, i.e Windows9x/NT/2000,
Linux/UNIX, Apache, IIS, etc.
To install the phpWebApp framework you don't need to make or build
anything, just get it and copy it to your DocumentRoot folder (the
folder where your web server looks for web documents). You should
copy to DocumentRoot the folders 'web_app', 'documentation', and any
or all the sample applications.
You can get the phpWebApp directly from
CVS@sourceforge.
Login as an anonymous user and checkout the modules lgpl-web_app,
lgpl-documentation, lgpl-app1 and lgpl-app2. Alternatively, you can
download them from here:
web_app.tar.gz (168 KB) ,
documentation.tar.gz (212 KB) ,
app1.tar.gz (5 KB) ,
app2.tar.gz (7 KB)
Compatibility Issues
Since the LGPL version is not supported anymore, it may be incompatible with
the new versions of PHP. Some of the known problems with PHP 4.2.2
(in RedHat Linux 8.0) are these:
- in '/etc/php.ini', short_open_tag should be 'On'
- in '/etc/php.ini', register_globals should be 'On'
- in '/etc/php.ini', allow_call_time_pass_reference should be 'On'
You can see some information
about the PHP version and its configuration in the server running
this application.
Related Links
License
The phpWebApp framework is distributed under the terms of the
LGPL (GNU Lesser General Public License).
Copyright (C) 2001 Dashamir Hoxha,
dashohoxha@users.sourceforge.net
LGPL is a free software license. Like GPL, it allows anybody to use,
redistribute and/or modify this software, but at his own risk, and without
restricting its freedom. Different from GPL, it allows the software to
mix with non-free software as well, but yet to retain its freedom.
I believe that open source software development is the best way
to develop strong, robust, reliable software. But maybe
closed source software is useful sometimes as well.
By choosing LGPL over GPL I believe that I have chosen collaboration over
confrontation. I think that collaboration is better than confrontation.
My philosophy is: "Live and let live, and let the God decide which one is
in the right way."
|