Choosing the Open-Source Framework for Web Application Development

fishhookFladgeInternet και Εφαρμογές Web

13 Δεκ 2013 (πριν από 3 χρόνια και 10 μήνες)

92 εμφανίσεις

Open Source Science Journal Vol. 2, No. 4, 2010

5

Choosing the Open-Source Framework for
Web Application Development

Alexandru SACHE
Brand Academy, Romania
alex.sache@brandacademy.ro

Abstract: This work details the need to use a framework in the development of portal
type of web applications. It defines the requirements and activities entailed by the web
application used for Mondenii. It defines the web framework features. It identifies and
compares specific frameworks. It defines indicators for assessing the quality of web
frameworks. It presents the advantages of each framework. It presents a methodology to
choose a framework in view of developing the application. The application is being developed
by using the chosen framework. The results are checked by implementing the framework. The
performance of the final result is being assessed.

Keywords: opensource, framework, php, soft development, quality, indicators, web
application.


1. The development of web applications by using Open-Source frameworks

The raise of the number of Internet users triggered a raise in the quality standards as
well as a shrinking duration requested for web applications. Starting from a real application,
this article presents the way in which the choice of a certain framework can meet these
requirements.
It is considered to be a web application a software system based on the technologies
and applications used by World Wide Web – W3C consortium which offer specific web
resources, content and services, through an interface called browser web [1]. This means that
web applications entail a certain complexity that rules out static HTML pages as well as the
individually supplied web services, as these can only be integrated in a web application that
should explicitly include both technologies and the interaction with users [2].
Defining of the requirements of the application used as a case study:
− the application has a public part – the public site and a restricted part – administration
interface;
− the content of the public site is added and managed on a weekly basis by an authorized
person through the administration interface;
− the public site has 10 sections and a main page – Homepage, each of them with their
own specific design. The main page includes elements of each section;
− the sections contain distinct pages and a main page with links to the distinct pages and
which also provides a brief presentation of these pages;
− the pages comprise:
• common elements: title, date, brief presentation, detailed text, main picture,
secondary picture, movie, vote and numbers of views for the movie, picture
galleries, user comments, recommendation methods for other users, and
• distinct elements: age, birth date, star sign, the actor’s role, the season and category
of the episode, contest subsystems, opinion polls, newsletter, contact form, rotation
system for the movies on the page;
Open Source Science Journal Vol. 2, No. 4, 2010

6

− throughout development period as well as during the exploitation period there shall
occur changes in the graphic and structure of the application’s elements;
− the site shall function on a server owned by the client who works on open<source
technology typical of Linux, Apache, Mysql, Php, also known as LAMP. Access is
limited to the area where the site will function, with the use of other functions of the
servers being also limited.
The last requirement entails the restriction to the use of PHP language only [3] as well
as other restrictions linked to programme installation, command line use etc., restrictions
similar to those of a shared hosting menu. The other requirements entail the necessity of a
modular and adjustable structure, able to support major changes operated on a complex
structure.

Table 1. Duration of the Mondenii application development – with and without framework

Activity Relative
Importance
Development
with Zend
Framework (days)

Development
without Zend
Framework (days)

1

Article handling 300

4

21

2

Photo gallery handling 220

3

6

3

Video player – integration 200

2

4

4

Photo gallery navigation 190

0,5

2,5

5

Display episode page 180

2

3

6

Homepage integration 180

1

3

7

Display simple section 140

2

4

8

Homepage thumbnail system 130

2,5

3,5

9

Display actors page 130

2

3

10

Comment article 120

2

4

11

Display actor page 110

1

2

12

Display interviews 100

2

3

13

Banner system < integration 100

1

1

14

Forum – integration 100

2,5

2,5

15

Display news 90

2

3

16

Contest system 90

3

4

17

RSS episode and news 80

1

2

18

Pop<up gallery 80

1

2

19

Download 80

3

4

20

Display actors characters 70

0,5

1,5

21

Display social networks 70

1

1

22

Contact 50

1

2,5

23

Email recommendation 30

1

3

24

Email alerts episodes, news 30

3

5

25

Film vote 30

1,5

3,5

26

Messenger recommendation 20

0,5

0,5

27

Print text 10

0,5

0,5

Open Source Science Journal Vol. 2, No. 4, 2010

7

Total 46,5

95


The requirements discussed over with the beneficiaries of the work entail the activities
detailed in table 1. They follow an order imposed by the relative importance given by the
client in accordance with the Agile method and each of them must entail elements that the
beneficiary should be able to assess afterwards.
In order to substantiate the use and the choice criteria of the framework for the web
application one should first define the meaning of a framework.
First of all, a software framework is a unitary entity formed of computer codes, scripts,
classes, functions that offer a generic functionality and which is specialized or extended by a
code generated by the user in order to obtain a specific functionality.
Distinct features as compared to libraries or average codes [4]:
− the flux of the application is dictated by the framework and not by the code that uses
it. As far as the Mondenii application is concerned, the files can be found in directories
with specific names and destined for controllers and views with requirements
functioning based on the Front Controller mechanism implemented by the framework;
− there is a basic behavior – default – The router shares the URL after the slash and
searches the Controller and the Action according to the first two particles;
− the code is expandable – a functionality is either expanded or replaced by the user
code – the functionality of the Router is changed for the Episode Controller and the
correspondence is no longer taking place at the second particle as it is replaced by a
special identification pattern. View Figure 1;
− the users may expand the basic code of the framework but they cannot alter it – The
Action_Controller Class is extended in order to have a different behavior in the
administration site while the framework code stays the same so that it may be easily
altered at the occurrence of some new versions of the framework.


Fig. 1. Code structure in framework based application

Web application frameworks are particular software framework cases designed mainly






Programming
Language




Framework
code







Application
code
End
User 1
End
User 2
End
User 3
Code
extended
from
framework

Framework
independent
code
Programmer
User

Flux of the
application
logic
Open Source Science Journal Vol. 2, No. 4, 2010

8

for the development of web applications or web services [5]. They are aimed to solve
common issues such as communication with the database, the management of templates or
sessions. Examples of such frameworks are Struts, Django, Ruby on Rails, Zend Framework.
Most web frameworks implement the architectural fr ame MVC<Model, View,
Controller, which separate the data model from the application’s business processes and the
interface with the user.
The term of framework is used in the area of web a pplications as well as for
components operating only with regard to clients, client<side, in browser. The most known
ones are the frameworks of Javascript – Jquery, Prototype, Dojo, YUI etc. which enable the
creation of functionalities such as classical desktop applications, which result in the so<called
RIA – Rich Internet Application linked to the Web 2.0 concept.
They represent the topic of this article only as far as the frameworks under scrutiny
offer operation facilities with them. The current application, just like most of the current web
applications, was developed on a server<side logic as so were the other examined frameworks.
The advantages of using a framework for the development of web applications:
− it implements an MVC architectural pattern, which represents a good practice for
modularizing the application, for reusing the code and which allows the use of several
interfaces with the user;
− enables the creation of applications with a sole entry point, which leads to an easier
management of complex applications;
− cuts down the duration of the application by supplying some common functions, need
for complex web applications, some of which are being detailed in the following
material:
− offers a compact form of access to the data base, an API, which allows standardized
access to various types of data bases without the user having to rewrite the code;
furthermore, these are frameworks that provide the tools or mapping the items to
tuples, Object Relational Mapping, enabling thus an item oriented encoding;
− centralized mechanism for URL reading which, besides a better management of the
URLs, also enables the use of search engine friendly links;
− application security by providing a standardized code, with a quality assessed by
extensive testing and the implementation of filters and validators in sensitive areas
such as the data provided by forms or through URLs;
− some frameworks also implement functions for user and session authentification;
− template systems for the HTML code management;
− cache system – as a means to reduce the resources used at the server for generating
answers to the client. Parts of this answer are being saved in stock in order to be
delivered to further clients, by reducing data base access, memory usage, processor
cycles etc. [5]
Furthermore, an open<source framework through full access to the source code offers a
better assessment and understanding of the internal mechanisms. Also there is the community
that constantly tests and improves the code, that boosts quality, adds fresh functionalities and
eliminates the flaws that failed the preliminary tests. A major advantage of open<source
frameworks is also the fact that they reduce the project development costs.


2. Open-Source frameworks for web application development

Considering the above mentioned premises, the choice of a framework is a major step
in the application development considering that the entire construction is based on the
framework fundament. In many ways it is similar to the choice of the programming language
Open Source Science Journal Vol. 2, No. 4, 2010

9

which is marked by subjective elements or where the choice is made automatically, is a
restriction.
In this case, the choice is made staring from an unquantifiable experience by one of
the frameworks under scrutiny and shall be carried out by identifying a preliminary lot and
filtering three favorite options that will be assessed so that a sole choice be made in the end.
There are open<source programs falling under clear categories such as Content
Management System – CMS: Joomla, WordPress etc. and there are also programs with
framework like functionalities but which are too specialized in order to fall under the same
category, such as phpNuke, Xaraya, Drupal, TYPO3, which are also included in the CMS
category.
Also, there are class collections called Repository, which, despite reducing the effort to
develop applications, they do not form a framework, as such a collection is a PEAR.
Market prospecting is being carried out by using Google search engine which is also
an indicator in the filtering stage. As shown in Figure 2, there is a lits of 5 frameworks on a
very general search (16.4 million results), and after searching for each of them one can find
between 0.8 and 4 million results, which strengthens the idea of a popularity top.
They are:
• Zend Framework [6] – it is the PHP framework backed by the Zend company, the
same that coordinates the language development. It is endowed with a strong
communication, a quick development cycle with its components to also be used
separately if necessary. It has a wide range of components with a high quality standard
also backed by the above mentioned team. License issues as well as problems related
to the genuineness of the code are being avoided by signing agreements with each of
the contributors. It was chosen for the Mondenii application following the analysis
detailed underneath
• Cake PHP [7] – it is provided with a quick way to install and create simple
applications based on a preestablished design. It enjoys a wide community and has
been on the market for a long time. It is beginner friendly and has code generation
tools.
• Code Igniter [8] – it has a short code, a good speed for activating the code, is flexible
as far as imposed programming standards are concerned, and is quick with regard to
simple application development. It has a good and concise documentation with easy to
understand examples for any language knowledge level.
• Prado [9] – has been on the market for 6 years. It has a small group of programmers.
Some of its ideas have been borrowed from Borland Delphi and ASP.NET. It has won
a programming contest organized by the Zend company. Part of the team, the founder
included, migrated towards developing a fresh framework Yii. Considering its
vacillating development pattern it was not included in the research for the current
application.
• Symfony [10] – has been on the market for a long time, it has a system for generating
administration interfaces, plugins, a large number of contributors to the code. It has a
complex installation and configuration system based on the work on command line.
This feature is what ruled out its use in this project due to the initial hosting related
restrictions.
There are also other frameworks, such as Akelos, QPHP, ZooP, Php on Trax etc.
Considering the adjustment to a framework’s particularities require a substantial investment
of time and is carried out for a long period, we decided to also rule these out.

Open Source Science Journal Vol. 2, No. 4, 2010

10


Fig. 2. The use of Google search engine for market prospecting

Once used for a project, the investment in learning the framework and the components
developed based on it shall be capitalized on in the following projects as well. For a
maximum exploitation, the analysis must focus more on the development tendency than just
for a sequence.


3. The compared analysis of open-source frameworks

When choosing a framework one should take into account the following criteria:
< Installation requirements < the necessary environment for the proper functioning of
the framework (installation procedure, restriction to the use of certain standards and patterns).
There are Compulsory requirements Cr as well as Optional Requirements Or, it is given 1 and
0 if they are met or not, as shown in the market research [11]. The Optional Requirements Or
are replaced by custom code or provides a higher standard that is not compulsory. The
indicator Ireq was created as such in order to eliminate the frameworks that fail to meet the
compulsory requirements. Any framework with a 0 indicator is eliminated from the following
research. The requirements indicator is given by the formula:

Open Source Science Journal Vol. 2, No. 4, 2010

11

∏∑
==
=
k
j
n
i
CrOrIreq
11
*

where:
n – is the number of optional requirements for the application
k – is the number of compulsory requirements for the application

Table 2. Meeting the application requirements by frameworks
Compulsory requirements Cr
Zend Framework CakePHP Code Igniter
LAMP medium 1 1 1
Shared<hosting restrinctions 1 1 1
Non<comercial restricted Open<
source license
1 1 1
Product Cr 1 1 1
Optional requirements Or
Authorisation and session
system
1 1 0
Database abstraction layer 1 1 1
ORM facilities 1 1 0
Caching 1 1 1
Validation 1 1 1
Ajax 1 1 0
Module 1 1 0
MVC patern 1 1 1
Total Or 8 8 4

Ireq (ZF) = 8 * 1 = 8
Ireq (Cake) = 8 * 1 = 8
Ireq (CI) = 4 * 1 = 4

The requirements indicator has been calculated for Zend Framework, CakePHP and
Code Igniter. The values obtained for these frameworks show that the Zend Framework and
CakePHP fulfill the requirements better than Code Igniter. The higher the value of the I
req

indicator, the better the requirements are met.

< Durability < length of time on the market, development prospects < individuals,
major corporations actively backing the code, the frequency of issuing improved versions, a
history of security issues, bugs etc. The Upgrade Rate Ru and Contributor Indicators Ci are
being used.
The Upgrade Rate of the application Ru takes into account:
Nv < the number of versions released from the first official launch. The major as well
as minor releases are taken into account from the moment when the framework got out
of beta into an official release
Open Source Science Journal Vol. 2, No. 4, 2010

12

Lt < the years passed from the official launch.
The upgrade rate indicator is given by the formula:

Lt
Nv
Ru =

where:
Nv < the number of versions released from the first official launch;
Lt < the years passed from the official launch.

For the frameworks Zend Framework, CakePHP and Code Igniter the update rate is
calculated below:

Ru(ZF) = 42/4 = 10,5
Ru(Cake) = 25/5 = 5
Ru(CI) = 18/4 = 4,5

A high update rate shows that bugs are fixed quickly and more features are added with
each version. Zend Framework has the highest update rate meaning that bugs are fixed more
quickly than for CakePHP and Code Igniter and also new features have a shorter path from
idea to public.
The Ci is the number of main developer contributors.

Ci(ZF) = 41
Ci(Cake)= 30
Ci(CI) = 13

The contributor top is strengthened by the fact that Zend Framework mentions 500
secondary contributors, with the main contributors including the main developers of PHP
language. Furthermore, Code Igniter, the last in the top, is being developed only by the
members of a sole company. The higher the number of main developers is, the stronger the
support the framework has.
The Ru gets a lower portion as it also comprises the result of the final flaws or of those
undiscovered during tests. The flaw rate is also linked to the dimension of the application.
A subunitary coefficient Coefs is established by comparing the physical dimension of
each framework to the biggest one from the series examined and by getting an average result.
The Coefs coefficient is given by the formula:


=
=
n
i
iDimMax
iDim
n
Coefs
1
))((
)(1


where:
n – the number of frameworks in study, 3 in this case
Dim(i) – the physical dimension in MegaBytes of the framework

Coefs = (1,10 MB / 22 MB + 6MB / 22MB + 22MB / 22MB ) / 3 = 0,44

A value close to 1 of the Coefs indicator shows that the size of the frameworks is
almost the same for all analyzed frameworks. The obtained value of 0.44 shows that there are
significant differences between the sizes of the compared frameworks.
Open Source Science Journal Vol. 2, No. 4, 2010

13


An aggregated indicator, Durability Dur, is being defined by using the Coefs
subunitary coefficient. The durability indicator is given by the formula:

Dur = Ru * Coefs + Ci

where:
Ru – update rate;
Coefs – subunitary coefficient defined above;
Ci – number of main contributors.

The following results of Durability indicator were calculated for the analyzed
frameworks:

Dur(ZF) = 45,62
Dur(Cake) = 32,2
Dur(CI) = 14,98

Greater Durability means better perspectives for the future. In this case Zend
Framework scores best.

< Licensing < linking to the private environment, commercial restrictions, the
possibility to limit or impose terms on certain components;
A classification is being carried out in line with licences pattern as far as the
application is concerned. The issues of interest are the freedom to use in other products, no
restrictions imposed on the final product from being used as an open source, guaranteeing the
genuineness of the code
1. Zend Framework < New BSD
2. Code Igniter – Apache/BSD Style
3. CakePHP – MIT License

< Community – the size of the community backing the framework and its quality is
important for both the testing process and the support given for the efficient exploitation of
functionalities. The Community Activity Ac indicator is defined, which is calculated by
selecting the highest rated community by Google and if there are official or officially backed
communities an average activity of the members is being calculated.
The Ac indicator is given by the formula:


=
=
n
i
iCM
iCP
n
Ac
1
)(
)(1


where:
n < the number of communities sites selected for the framework;
CP – the number of posts on the community site
CM – the number of members of the community site

The values of the Ac indicator were calculated for the analyzed frameworks:

Ac (ZF) = 12662/11709 = 1,08
Ac (Cake) = (7450/2383 + 102113/15218) /2 = 3,12
Open Source Science Journal Vol. 2, No. 4, 2010

14

Ac (CI) = 108640/167033 = 0,65

The community activity is correlated to the above mentioned Contributor indicator in
the sense that the feedback from the community empowers the contributors to make relevant
changes to the framework. Greater is better. This indicator places CakePHP first and Code
Igniter last.

< Efficiency – assessment related to the speed, resource consumption, security
potential. The Gross speed Sg indicator is being used, calculated based on the execution time
for an simple application, on a standard configuration[12], with the results being detailed in
table 3. The Sg indicator is defined by the formula:


=
=
n
i
k
ETi
n
Sg
1
1


where:
k – the k framework from the ones analyzed;
n – the number tests;
ETi – time needed for framework k to finish test i.

The values of the Sg indicator were calculated for the analyzed frameworks using four
tests:

Sg(ZF) = 34,6
Sg(CI) = 82,9
Sg(Cake) = 15,06

Code Igniter scores here the best. The magnitude is also relevant, CakePHP scores half
of Zend framework and more than five times poorer than Code Igniter. To surpass this
handicap it must compensate havily in other criteria, witch it doesn’t.

Table 3. Compared analysis of application speed in requests/second [12]


Test 1

Test 2

Test 3

Test 4

Mean

plane HTML

3431,2

3311,8

3427,7

3395

3391,4

plane PHP

1912,1

1932,3

1983,3

1911,3

1934,7

CakePHP

15,06

15,06

15,06

15,06

15,06

CodeIgniter

83,5

83

82

83,2

82,9

Zend Framework

34,7

34,6

34,6

34,6

34,6


< Caracteristics, abilities, features – implemented functionalities such as connection to
the database, to web services, the management of sessions, filters, pdf issue etc.
The general features, besides those of main interest, are considered for the future
applications and for the application’s evolution after launching. These are summed as the
optional requirements resulting the Capab indicator. As presented above more is better.

Table 4. Framework abilities
Features Zend Framework CakePHP Code Igniter
Multiple database support 1 1 1
Open Source Science Journal Vol. 2, No. 4, 2010

15

Event Driven Programming 0 0 0
Forms Automation 1 1 1
Unit testing 1 1 1
Internationalisation 1 1 1
PDF generate 1 0 0
Search system 1 0 0
Web services included 1 0 0
Total 7 4 4

Capab(ZF) = 7
Capab(CakePHP) = 4
Capab(CI) = 4

The higher the value of the Capab indicator, the more features the framework has and
the easier is for a developer to develop complex applications using it.

< Modularity < the ability to independently use framework parts, enabling the reuse of
components created with the framework etc. As far as meeting the modularity requirements,
the classification is the following:
1. Zend Framework – independent components, standardized and strongly focused on
objects, the components are successfully used for products organized following different
patterns and even in mature frameworks such as Symfony.
2. CodeIgniter – few and standardized components, few conventions imposed by the
framework
3. CakePHP – a monolithic and rigid structure, with components difficult to take out of
the framework’s context

< Documentation – the official documentation, textbook, examples and the curve of
framework learning. Since learning is a process to take place after making a choice, it is the
experience of other programmers and the physical dimension of the application that shall be
used, and are classified such as:

1. Code Igniter – the easiest to learn with the smallest size of the framework code, the
friendliest documentation
2. CakePHP – easy installation and configuration, complete examples, easy to create
applications on a standard pattern, but difficult to alter
3. Zend Framework – more difficult to learn as it uses the highest standards, it has the
widest range of abilities and is able to provide a high abstract quality to its components.

The combining of the results obtained for each framework is made by summing the
ranks obtained for each criterium table 5.

Table 5. Ranked criteria obtained for the studied frameworks
Features Zend Framework CakePHP Code Igniter
Installation requirements 1 1 2
Durability 1 2 3
Open Source Science Journal Vol. 2, No. 4, 2010

16

Licensing 1 3 2
Community 2 1 3
Efficiency 2 3 1
Caracteristics 1 2 2
Modularity 1 3 2
Documentation 3 2 1
Total 12 17 16

A decision is taken in favor of the framework that have the smallest summed rank
based on the examined criteria. The classification includes Zend framework 12, Code Igniter
16, CakePHP 17. Although is a tight race, the analysis renders Zend framework trustworthy
enough as the final choice.


4. Using the framework in the Mondenii application

Mondenii is a citizen oriented software application < a portal type of AIOC [12].
There is a main page called Homepage (see Figure 3) which comprises elements from all the
other sections of the application and which also has links to them. Access is unlimited and
visitors contribute to the application’s content by posting comments and giving votes to the
materials published there.

Fig. 3. Mondenii application – Homepage
Open Source Science Journal Vol. 2, No. 4, 2010

17


It was developed as a means to make public on the internet the materials issued by a
popular TV show, as well as to publish the specific content of the application.
The application was designed so that the entire content be updated by a person
designated by the beneficiary through a friendly administration interface (Figure 4).
The interface is accessed based on user name and password and provides WYSWYG
type of editing tools and AJAX components to render the administration process more
efficient.


Fig. 4. Photo caption of the administration interface

The development was carried out by a team formed of the designer and the
programmers by using the Zend Framework in order to optimize the execution time and the
application costs. Table 1 details the effort per working days required for development as
compared to the effort without a framework estimated based on the previous experience [13].
The development was carried out without having the entire team together, which was
allowed by the MVC architecture [15] of the framework (Figure 5). It was also the
architecture that helped enforce the adjustments to the site required by the beneficiary during
the development period.
It was also exploited the ability of the Zend Framework to separate the application into
modules. They work as subapplications as part of the general application and bring together in
separate directories controllers with their actions and views. There is a basic module called
default and an administration one and each has its own controller linked to a section. They
share the same helpers and models.

Open Source Science Journal Vol. 2, No. 4, 2010

18


Fig. 5. Internal functioning mechanism for the Mondenii application


Underneath is presented the way in which the code is integrated by using a controller
from the administration site, with an appropriate view and the model it has access to.
The controller from the MVC architecture of the Zend Framework works like an
aggregator of pages. As part of the application, it is linked to a section. The pages represent
special functions of the Controller_Action type of class and are linked to particles of the URL
separated by slash. The hierarchy is Module/Controller/Action/parameter1/parameter2… .
The module is optional according to the created configuration, with the parameter being
transmitted by the classical means as well “?parameter=1&parameter=2”.

class Backend_StireController extends Mondenii_Articol_Controller_Action
{
public function indexAction()
{

Request
Answer
Router
Request
object
preDispatcher
Dispatcher
postDispatcher
.htaccess

Module
select

bootstrap
Admin
Action

Controller

Views
Front
Action
Controller
Views
Authorise
Models
Custom
Library
Data
Base
Cache
Zend Framework
(accesesd in all components)
// Initialising the model
$stire = new Stire();
//Query is database independent
$db = $stire->getAdapter();
$select = $db->select()->from('articol')->join('stire', 'articol.id =
stire.id')->order('articol.adaugare DESC');

$this->view->articole = $db->fetchAll($select);
Abstract methods are used from the
database object and are returning
an array of objects then passed to
the view

Open Source Science Journal Vol. 2, No. 4, 2010

19


//Linking with the javascript Prototype based components
//witch adds features in browser(ordering in this case)
$this->view->headScript()->appendFile($this->view->baseUrl() .
'/js/scriptaculous/lib/prototype.js');
$this->view->headScript()->appendFile($this->view->baseUrl() .
'/js/fastinit.js');
$this->view->headScript()->appendFile($this->view->baseUrl() .
'/js/tablesort.js');
$this->view->headLink()->appendStylesheet($this->view->baseUrl() .
'/js/style.css');
}



}

The model unlike other frameworks is optional, as there has been no regulation issued
regarding the manner in which it should be operated. Underneath it takes the most common
shape of an abstract object, such as a database table abstract [16]. The application was set to
use an ORM facility by which registrations are returned as objects.

class Stire extends Zend_Db_Table_Abstract
{
//se precizeaza numai numele tabelei
protected $_name = 'stire';

}

The view is related to the Action of the Controller, is being processed and integrated
into a template through the Layout function.

<h2>Stiri existente</h2>
<p>
<a href="<?=$this->baseUrl()?>/backend/stire/create">Adauga o stire</a>
</p>
<? if(count($this->articole)):?>
<table class="sortable">
<tr>
<th>Titlu</th>
<th>URL</th>
<th>Stare</th>
<th>Afisare</th>
<th>Timp publicare</th>
<th class="nosort">Sterge</th>
</tr>
protected function getNewModel()
{
return new Stire();
}

public function getForm()
{
return new Mondenii_Form_Stire(null, $this->getRequest()-
>getParam('id'));
}
The two methods are setting the
internal parameters for the extended
Controller Mondenii_Articol
Open Source Science Journal Vol. 2, No. 4, 2010

20

</table>
<? else: ?>
<p>
Nu exista nici o stire!
</p>
<? endif ?>
<p>
<a href="<?=$this->baseUrl()?>/backend/stire/create">Adauga o stire</a>
</p>

The other controllers observe the same modus operandi by which a controller is the
part where most of the processing is being carried out. A major part of the application’s logic
is concentrated in the library of custom components which expand the framework’s
components. It was mostly made for the admin part, in front components the modularization
having been carried out at the level of view and associated helpers.


5. Conclusions

The need for ever more sophisticated web applicati ons as well as the fierce
competition on the Internet makes it impossible for small and medium<sized projects and
companies to access the industrial type of the classical software development. The projecting
– development – testing process must be contained in order to resist on a market with
unlimited virtual access and big players compete against small ones.
At the same time, the global access to applications raises the security level
standards[17] required for web applications regardless of field and budget.
As far as the Mondenii application is concerned, t he use of the Zend Framework
reduced the development time to more than a half and enabled the raise of the prior quality
standards. Forming of a new team took less time than it used to in the past and the work was
more easy to be done from a distance by adopting the standards imposed by the framework
and its structure which allowed the independent work on the application’s components.
Also, there have been created components easier to reuse in other applications both on
the standard structure of the framework and independently from the framework. One of the
main advantages of the Zend Framework is the fact that it may easily be used as a class
library, with the components being designed so as to be easily separated and successfully used
by other frameworks such as Symfony, or by applications such as Magento virtual store.
The Zend Framework was chosen following an analysi s based on its features and
potential, with a simple analysis based on a speed test having been avoided, so that the
importance of the framework lies precisely in its complexity. As shown by table 3, the switch
from a simple HTML code to PHP and afterwards, to working with a framework affects the
speed triggered by the additional processing effort. This effort is being covered by the
superior organization that enabled the implementation of optimization techniques such as that
of cache<ing.
<? foreach($this->articole as $art) : ?>
<tr>
<td><a href="<?=$this-
>baseUrl()?>/backend/stire/update?id=<?=$art->id?>"><?=$art->titlu?></a></td>
<td><?=$art->url_text?></td>
<td><?=$art->stare?></td>
<td><?=$art->afisare?></td>
<td><?=$art->adaugare?></td>
<td><a href="<?=$this-
>baseUrl()?>/backend/stire/delete?id=<?=$art->id?>">Sterge</a></td>
</tr>
<? endforeach ?>
It iterates through the array passed
earlier from the controller and creates a
list of the news

Open Source Science Journal Vol. 2, No. 4, 2010

21


Adopting the Zend Framework was carried out by linking it to the application’s
requirements. The conclusions of the analysis are representative to the similar applications,
while as far as some very different requirements are concerned, the algorithm is being
reviewed by using the conclusions of the exploitation in the current application.
Switching to another framework implies reprojecting the application and rewriting
most of the code because the most important functions are based on expanding the
framework’s functions. Once chosen the technical solution, the framework can no longer be
changed, as such a change is no longer justifiable through the above mentioned advantages.
The prior choice is also important due to the time invested in learning the framework
and in developing of components based on its structure.


References

[1] T. Berners<Lee, “WWW: Past, Present, and Future,” IEEE Computer, 1996.

[2] V. Stanescu Vasile, Proiectarea Web < Dezvoltarea Sistematica a Aplicatiilor Web,
Available at: http://facultate.regielive.ro/cursuri/limbaje_de_programare/
proiectarea_web_dezvoltarea_sistematica_a_aplicatiilor_web<146194.html

[3] R. Lerdorf, K. Tatroe and P. MacIntyre, Programming PHP, 2nd Edition, O’Reilly Media,
2006.

[4] http://en.wikipedia.org/wiki/Software_framework 23/10/2010

[5] http://en.wikipedia.org/wiki/Web_application_framework 23/10/2010

[6] http://framework.zend.com/ 23/10/2010

[7] http://cakephp.org/ 23/10/2010

[8] http://codeigniter.com/ 23/10/2010

[9] http://www.pradosoft.com/ 23/10/2010

[10] http://www.symfony<project.org/ 23/10/2010

[11] http://www.phpframeworks.com/ 23/10/2010

[12] http://avnetlabs.com/php/php<framework<comparison<benchmarks 23/10/2010

[13] I. Ivan and B. Vintila, “Managementul aplicaŃiilor informatice orientate spre cetăŃean,”
Economie teoretică 9i aplicată, Vol. XVII, No. 4(545), 2010, pp. 45<69.

[14] A. Sache, I. Ivan (coordinator), Metrici ale calitaŃii aplicaŃiilor web utilizate în
managementul proiectelor  Proiectul PrimaTV, disertation MIP, ASE, Bucharest, 2007.

[15] K. McArthur, “Pro PHP: Patterns, Frameworks, Testing and More,” Apress, 2008.

Open Source Science Journal Vol. 2, No. 4, 2010

22

[16] H. E. Williams and D. Lane, Web Database Applications with PHP & MySQL, 2nd
Edition, O’Reilly Media, 2004.

[17] B. Vintila, ”Citizen Oriented Open Source Security,” Open Source Science Journal, Vol.
2, No. 3, 2010.


Author

Alexandru SACHE is a Web Developer for more than six years. He has
graduated the Faculty of Economic Cybernetics, Statistics and Informatics
from the Bucharest Academy of Economic Studies in 2005 and the
Informatics Project Management Master in 2007. He also has more than 3
years experience as Project Manager and Entrepreneur in the field of web
applications. He currently works as Web Developer and Business Advisor at
Brand Academy. Fields of interest include open source technologies, software
metrics, PHP and Python programming, web interfaces design and programming.