A new model for the selection of web development frameworks: application to PHP frameworks

ABSTRACT


INTRODUCTION
In recent years, the PHP programming language has evolved as the scripting language of choice by most developers; there has been an explosion of upcoming PHP frameworks. These framewoorks for PHP development have multiple benefits, and are one of the most important developments in the design and IT development practices of the last 20 years. There are several reasons why a developer would like to choose PHP frameworks, especially because they offer developers the ability to create more complex, secure and complete web applications faster than ever before. Thanks to their convenient file structure, they make it possible to organize the files and the code of the developer and to increase its productivity. PHP frameworks are available in all kinds of shapes and sizes and have targeted developers with different levels of experience, application needs, hosting capabilities and development time.
The authors [1] declare that the PHP framework facilitates Web programming and makes it better organized in several ways. First, PHP frameworks increase the productivity of programming because writing a piece of code that usually takes hours and takes hundreds of lines of code can be done in minutes using built-in functions of the framework. On the other hand, a PHP framework usually comes with a support team, documentation or important support forums where users can quickly get answers.The authors [2] emphasize the importance of using PHP frameworks; they propose a modular workspace, consisting of a set of libraries, tools and conventions that allow focusing on the business logic of the 'application. It also provides a framework for the application, usually based on the use of the Model View Controller (MVC) paradigm. This ensures a separation between: the data model that is in charge of access and requests to the database, the "view", which is a description of the presentation of the data (eg: generation of HTML, XML, JSON, etc.), and the controller, which implements the business logic by retrieving the model data to make them available to view [3].The authors [4], [5] argue that PHP frameworks have a major security advantage since its users become long-term testers. If a user finds a security issue, they can notify the infrastructure developer website so that the development team can fix it [6]. Thus the authors [7] declare that PHP frameworks have features that satisfy most web programmers depending on the development style they want. Actually, there are PHP frameworks with all kinds of features such as security, robustness, ease of use.
However, choosing a PHP framework introduces many requirements and complexity, as some development habits will have to be set aside when it is adopted. Thus, although it is supposed to improve the productivity of the user's developments, there is always a phase during which the cost is greater than the gain: this choice must be carefully considered.
To this end, our contribution in this article is to propose a new complete model, which gathers a set of comparison criteria dedicated to PHP frameworks, in order to facilitate the developer's choice of his suitable framework, since there are no methods comparison and comprehensive assessments. The reminder of this paper is as follow: section 2 presents a literature review about the subject, then we present trough section 3 our proposed model dedicated to the evaluation of web development frameworks. Section 4 presents a discussion of the obtained results, to sum up with a conclusion in section 5.

LITERATURE REVIEW
Choosing a framework for a given project can be quite complicated when we do not know all the modern PHP frameworks that are most used, and more particularly their differences. Beyond the technical considerations when choosing a framework, it is essential to assess the risks presented by each of the selected solutions. Since the framework must eventually form the basis of the majority of developments made for the company, it is important that its durability be ensured: its development must be sufficiently dynamic, in order to limit the risks of abandonment or closure of the code. The QSOS method (Qualification and Selection of Open Source Software) has been proposed to evaluate these risks.
The QSOS method (Qualification and Selection of Opensource Software) was initiated by Raphaël Semeteys and developed by Atos Origin [8]. Was designed to evaluate Free Software and OpenSource objectively, the objective was to design and make available: an evaluation methodology, tools related to it and especially a repository of assessments carried out. Who says referential, says obligation to define a set of common criteria for each functional area and to evaluate each free software with regard to these. The proposed approach also includes a notion of weighting to adapt the evaluation grid and the rating. Obtained by the software to its particular context [9] [10]. QSOS is an iterative process divided into four stages. Here are these different steps: a. Define: the repository data (types of licenses, types of communities, functional coverage grids by domain). b. Evaluate : software according to three main axes : functional coverage, risks from the point of view of the user company, risks from the point of view of the service provider (expertise, training, support). Each axis consists of a number criteria. For example, the risk axis undertaken includes: intrinsic sustainability, integration, technical adaptability, level of industrialization and project strategy. These criteria are themselves composed of sub-criteria. c. Qualify: the specific context of a company (or a user) by weighting the previous criteria. d. Select: and compare software that meets the needs.
To better understand this process, Figure 1 illustrates QSOS methodology [9]. There is another method of evaluation that only concerns PHP frameworks. This method was created by the company SMILE [11], [12]. This company has created a book about frameworks, then it used comparison criteria to evaluate them: PHP Version, Architecture Model, ORM, Templates, Cache, Friendly URLs, Validation Forms, Ajax, Extensions, Code Generation, Internationalization I18n, Recommendation. What is important is the ease of use of each framework, as well as the tools it offers. The more tools a framework offers for development, the faster the implementation phase of an application is. If we take for example the criterion "Automated unit tests", the framework offering this tool avoids the application developer having to spend time testing his entire application. When a report is generated automatically, it will be faster to know where the application's errors are. We also need a criterion concerning the learning of the framework.

697
The QSOS method is characterized by the evaluation of any open source software, is not dedicated specifically to the PHP framework. On the other hand, the method of criterion of the frameworks of the company SMILE concerns only the evaluation of PHP frameworks, but it does not use sufficient and global criteria of comparisons. For that aim, we propose a pragmatic and complete model to compare and evaluate the main PHP frameworks. We have focused on the main criteria for the selectionof a framework that can differentiate a good from a less good framework, and we provide a quick summary of the reasons that push to use or not a framework in general, depends on the needs of the user.

PROPOSED MODEL
In order to provide a holistic approach for the comparison of web development frameworks to be used by IT project developers, we provide a new model that combines six dimensions: Intrinsic durability, the industrialized solutions proposed by each framework, technical adaptability, the strategy, the technical architecture and finally, the speed, efficiency and economy of resources.
We present below our proposed model, for more understanding, we have selected 4 PHP frameworks, that are most used in web development these last years (Laravel, Symfony, Zend and Codeigniter). For each criterion, the scoring rule is: a. 0 if the feature is not covered. b. 1 if the feature is partially covered. c. 2 if the feature is fully covered.

Intrinsic durability
Beyond the technical considerations that come when choosing a framework, it is essential to evaluate the risks presented by each of the solutions chosen. Thus, it is important that its durability be ensured: its development must be sufficiently dynamic, in order to limit the risks of abandonment or closure of the code. Table 1 presents the intrinsic durability comparison of the selected PHP frameworks.

Industrialized solution
Several constants must be taken into account before starting an industrialization developments based on web development frameworks: the mode of operation of the development, infrastructure and maintenance teams, the current and future functional requirements, the constraints of the hosting platform. We present trough Table 2, a comparison of the selected frameworks based on industrialized solution criterions.

Technical Adaptability
The selected frameworks should be compared according to the technical adaptability characteristics. Table 3 depicts the results of the comparison.

Strategy
The strategic dimension is very important in the selection of information systems development frameworks. Thus, we present trough Table 4, the comparison between the selected PHP frameworks based on the strategic features.

Technical Architecture
We present trough Table 5 the technical architecture criteria for the assessment of the frameworks.

Speed Comparison
The selection of web development framework is largely geared towards the execution speed of the framework. As such, the alternatives should be compared according to their speed to estimate the speed of development of the project to the use of a framwork. High speed allows developers to save time developing applications.

RESULTS AND DISCUSSIONS
Selecting a Web development framework is not an easy task, since this choice involves quite a variety of issues: internal design of the framework, ease of use, technical qualities, future evolution, etc. But, beyond the simple qualities of the frameworks compared in this paper, several constants must be taken into account before starting to develop by one of these frameworks: the mode of operation, development teams, infrastructure and maintenance, the current and future functional requirements, and the constraints of the hosting platform. In any case, the choice of a development framework can only improve the quality of an existing which, without procedures, conventions or standards, is rarely well designed. It remains to determine what the framework that best suits your needs and your context is.
This section aims to analyze the different frameworks cited in this paper. It should be noted that the information gathered through the analysis is mainly statistical. We present trough Table 6 the representation in tabular form, expressed as a percentage of the maximum achievable score, the distribution of the notes of these four frameworks according to the main categories analyzed. Then we provide a representation in the form of a histogram graph trough Figure 2:  The purpose of Table 7 is to be able to define a selection of the most interesting frameworks with which we will make an example application to really see the differences in practice. Here is the comparison chart: We present the Bar graph representation according to code generator, AJAX, MVC architecture model, rights management, automated unit testing criteria as shown in Figure 3.  These graphs allow to have an analysis of the selected frameworks. We notice that most frameworks have quite similar results. The next step consists of evaluating the frameworks according to speed criteria, efficiency and optimization of resources. For that aim, tests were done with these four frameworks on the same computer and taking the same actions. Apache Benchmark has been defined as a test tool. The computer on which the tests were performed has the following specifications: Intel Core i5, 8 GB DDR3, SATA3 SSD, Ubuntu 14.04 LTS, Apache 2.4, PHP 5.5. Figure 5 presents the number of queries that these compared frameworks could handle per second [12], [18]: Results show that CodeIgniter framework is slow and does not comply with current requirements. Thus, this tool is not worth learning at this stage.
Laravel, Zend and Symfony are currently in compliance with modern standards and requirements. They are in demand and have huge features. For beginners, it will be easier to start with Laravel, rather than Symfony or Zend.
Laravel can be used for the rapid development of large-scale applications, even with less experienced resources, but if it is a complex level application development, it would be preferably for developers to choose Symfony, but they need to be more experienced to develop with this framework.
Zend's development team includes PHP kernel developers and makes sure the framework is robust, complete and stable. On the other hand, Zend is one of the most difficult settings to learn and has a very steep learning curve. Further, the configuration options are huge and simply increase the complexity.
It has for a very long time evolved very little: the community could hardly contribute to the framework, therefore version 2 had to correct that. Furthermore, it is very restrictive and also requires a long learning time.
Finally, CodeIgniter framework is « light »: it leaves a lot of flexibility to the developer. This can be a weak point as a strong point. His grip is extremely fast (a few hours). And the community is becoming more available. In addition, we can find on Github dozens of libraries to handle all the classic needs of a developer. It is ideal for simple projects and short.

CONCLUSION
In this paper, we have proposed a new model for the full assessment of IT project development frameworks to be selected by developers. For this, we have proposed a set of criteria to be used in the selection phase, based on six dimensions: the intrinsic durability, industrialized solution, technical adaptability, strategy, technical architecture, and Speed criteria.
For more understanding of our proposed model, we have applied our model, to set of 4 PHP frameworks that are the most used in these last years, and we provided a detailed analysis of this comparison. In perspective, the proposed model can be used as an AHP (Analytical Hierarchy Process) [19] hierachy to calculate the weight of each criteria depending on the decision makers.