Re: Question: what are frameworks?
| From: | Tony Marston | Date: | Sun, 09 Aug 2009 13:25:28 +0000 |
| Subject: | Re: Question: what are frameworks? | ||
| References: | 1 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-296511@lists.php.net to get a copy of this message | ||
""Parham Doustdar"" <parham90@gmail.com> wrote in message
news:5C.B0.05105.F18BE7A4@pb1.pair.com...
> Hi there,
I> I've heard of frameworks, but I don't quite know what they are used for.
> I've done a little search on the internet, but even though I've been able
> to find different PHP frameworks, I'm not quite sure what they offer, or
> in what they differ, or why I shouldn't just use PHP as it is.
> Can someone give a little bit of explaination?
> Thanks!
A framework is more than just a simple collection of libraries, it is a
support structure in which another software project (application) can be
organised and developed. The simplest framework is nothing more than a menu
system which informs the user what application components are available, and
provides the means for the user to choose an option from that list and cause
it to executed or activated. This means that each application component can
be developed without the need for any code to handle the menu functionality.
The component is simply plugged into the framework and it is instantly
available.
This simple framework can be extended to provide other features, such as
security. Instead of allowing just anybody to access the application it may
need to be restricted to registered users only, and this can be accomplished
by inserting a login mechanism into the framework. It may then be decided
that not every user is allowed to access every component, so additional
access control mechanisms can be built in. It should be possible to extend
the framework without having to touch every single component that runs
within it.
The framework may provide other facilities, such as providing the ability to
navigate between components, to pass messages between components, audit
logging, workflow, et cetera. This allows the application programmers to
concentrate on the needs of the application without being bogged down with
other details.
Some people seem to think that each application needs its own separate
framework in order to satisfy the unique needs of that application, but they
have simply not learned to abstract out that functionality which is common
to every application. It is therefore possible to build a framework that can
be used by any number of different applications. RADICORE is such a
framework.
An advantage of a reusable framework is that once a programmer has become
familiar with it he can carry that knowledge forward into the next
application without having to learn a different framework.
A framework is a support structure in which another software project
(application) can be organised and developed. The simplest framework is
nothing more than a menu system which informs the user what application
components are available, and provides the means for the user to choose an
option from that list and cause it to executed or activated. This means that
each application component can be developed without the need for any code to
handle the menu functionality. The component is simply plugged into the
framework and it is instantly available.
This simple framework can be extended to provide other features, such as
security. Instead of allowing just anybody to access the application it may
need to be restricted to registered users only, and this can be accomplished
by inserting a login mechanism into the framework. It may then be decided
that not every user is allowed to access every component, so additional
access control mechanisms can be built in. It should be possible to extend
the framework without having to touch every single component that runs
within it.
The framework may provide other facilities, such as providing the ability to
navigate between components, to pass messages between components, audit
logging, workflow, et cetera. This allows the application programmers to
concentrate on the needs of the application without being bogged down with
other details.
Some people seem to think that each application needs its own separate
framework in order to satisfy the unique needs of that application, but they
have simply not learned to abstract out that functionality which is common
to every application. It is therefore possible to build a framework that can
be used by any number of different applications. RADICORE is such a
framework.
An advantage of a reusable framework is that once a programmer has become
familiar with it he can carry that knowledge forward into the next
application without having to learn a different framework.
There are lots of different PHP frameworks available for the simple reason
that there are lots of different PHP programmers who each have their own
methodologies and techniques. Some frameworks are written to aid the
development of particular kinds of software, such as building web sites or
CMS systems, whereas others (like Radicore) are for building web
applications.
--
Tony Marston
http://www.tonymarston.net
http://www.radicore.org