Web Based Rapid Application Development (RAD) Tools Yii Framework

Total Page:16

File Type:pdf, Size:1020Kb

Web Based Rapid Application Development (RAD) Tools Yii Framework Web based Rapid Application Development (RAD) tools Yii Framework Anda Luiza Turcanu [email protected] Abstract. The purpose of this paper is to give a complete presentation about a RAD tool in the context of Web application development course, studied at the Al.I.Cuza University of Iasi, Faculty of Computer Science. The tool chosen from a list of many Web based RAD tools is the Yii Framework. This framework will be described from the point of view of its specifications, architecture and comparisons with other Web based RAD tools. First, I will give a short explanation of its name and a description to each of its most important characteristics. Then, based on the study of other RAD tools and research about the studies and test made on some other frameworks similar with Yii, I will show some advantages and disadvantages. Keywords: RAD, Yii, Web, framework, development, programming, application, open-source, object-oriented, PHP, AJAX, JQuery, features, MVC, performance 1 Introduction Rapid Application Development (RAD) is a software methodology that uses methods like iterative development and software prototyping techniques to accelerate software development. RAD involves planning of software which is interleaved with writing the software itself. Missing the extensive pre-planning goes to writing the software much faster and allows it to change the requirements easily. In rapid application development, structured techniques and prototyping are especially used to define user’s requirements and to design the final system. In the development process some steps are repeated iteratively. First stage comes with the development of preliminary data models and business process models using structured techniques. In the next level, requirements are verified using prototyping eventually to refine the data and process models. RAD allows faster development and facilitates application maintenance, but may provide some functionality and performance deficiencies instead. 2 Anda Luiza Turcanu 1.1 About Yii Framework Yii is a web application framework for developing complex applications in a short time. It is a free, open source, object-oriented and high-performance PHP5 framework used to develop rapid Web 2.0 applications. The Yii project is a new one, the version 1.0 being formally released on December 3, 2008 following the idea of becoming a fast, secure and professional framework that enables reusability in Web programming and can accelerate the Web application development process. The current version is 1.1.8. Because it is equipped with advanced caching mechanisms, it can be used for high- traffic applications, such as portals, forums, content management systems, e- commerce systems, etc. Yii helps the developers to get products that are efficient, extensible and maintainable and also provides a clear and complete documentation, tools for testing and debugging the applications and many features. The name Yii (an acronym for Yes, It Is) stands for easy, efficient and extensible. To run a Yii-powered web application, all the developers needs to know is the core framework files and a web server supporting PHP 5.1.0 or higher. To develop with Yii, you only need to know PHP and OOP. The developer is not required to learn any new configuration or templating language. Building Yii application mainly involve writing and maintaining your own custom Php classes, some of which will extend from the core Yii framework component classes. Yii incorporates many of the great ideas and work from other well-known web programming framework and application, so it is familiar and easy to navigate. Yii encourages maximum code reuse in web programming and can significantly accelerate the development process. Yii is also designed to help the developers with DRY development. DRY (Don’t Repeat Yourself) is a key concept of agile application development. This framework is not just efficient to use, it is also remarkable fast and performance is optimized. Yii has been developed with performance optimization in mind from the very beginning and the result is that is a very efficient Php framework. Yii has been carefully designed to allow nearly every piece of its code to be extended and customized to meet almost any need or requirement. 1.2 Features Yii is packed with features to help the developers to meet many feature needed by today’s Web 2.0 application development. AJAX-enabled widgets, integration with JQuery, form input and validation, web services integration, enforcement of an MVC architecture, DAO, sophisticated caching, hierarchical role-based access control, skinning and theming, internationalization (I18N) and localization (L10N), authentication and authorization, unit testing and functionality testing are just a few examples of Yii extensions. Starting with version 1.1, the core framework is packed with an official extension library called Zii. Error! Use the Home tab to apply title to the text that you want to appear here. 3 Starting with version 1.1.2, Yii is equipped with a Web-based code generation tool, called Gii. Gii comes with a few default code generation. Each code generator is responsible for generating a specific type of code. For example, the controller generator generates a controller class together with a few action view scripts; the model generator generates an ActiveRecord class for the specified database table. 1.3 Yii Architecture The Yii Framework architecture is based on the MVC (model-view-controller) design pattern. All Yii applications are built using MVC architecture. Yii enforces this development pattern by providing a place to keep each piece of your MVC code. This minimizes duplication and helps promote code reuse and ease of maintainability. Yii also implements a front-controller called Application which encapsulates the execution context for the processing of a request. Application collects some information about a user request and then dispatches it to an appropriate controller for further processing. It also used as the central place for keeping application-level configuration settings. The following diagram shows the static structure of a Yii application: 2 Yii and other RAD tools Comparing with other RAD frameworks, Yii has the advantages of being efficient, well documented (can be easily learned) and having many features, like integration with JQuery (for example, CakePhp uses prototype). Another advantage is the fact that the extension can be done more easily comparing with CakePhp. For example, in the case of validation rules, you can define a whole class to be a validation type, instead defining an action in the model as a validation like CakePhp does. 4 Anda Luiza Turcanu The Yii development team has performed performance comparison tests with many other Php frameworks, and Yii looked to be a good framework. It seems that Yii can be faster than CakePhp, ZendFramework or Symfony, but it has some pros and also cons. [4]&[5] In the picture below you can see some test results made on Yii framework and ZendFramework and other frameworks comparing their performances. Those who construct it (Orite Blog) followed the behavior of each framework regarding response time and memory usage by time doing database operations, like insert, update and display a number of records. The advantage for Yii resulted to be that it is fast, extensive, ease to use and performance, but is barely new. On the other hand, the advantages of Zend could be the fact that is flexible and it has great library and feature sets and best community support, but the cons are the long learning curve and some code generation problems. References 1. http://en.wikipedia.org/wiki/Yii_Framework 2. http://www.yiiframework.com 3. Winesett, Jeffrey: Agile Web Application Development with Yii1.1 and PHP5 (2010) 4. http://www.yiiframework.com/performance 5. http://blog.orite.com.au/tag/zend-framework/ .
Recommended publications
  • The Yii Framework – Larry Ullman
    The Yii Framework – Larry Ullman This is a copy of the Larry Ullman series ‘Learning the Yii Framework’. See http://www.larryullman.com/2009/06/18/introduction-to-the-yii-framework/. 1. Introduction to the Yii Framework In 2009, I had three decent-size Web sites to develop, so I thought I might try using a PHP framework for the first time, instead of coding everything from scratch. I’ve used Ruby on Rails for Web development before, so I’m comfortable with frameworks and the MVC architecture, but I wanted to educate myself on PHP frameworks. After researching a handful of frameworks, and after an unsatisfying attempt to use Zend Framework, I finally settled on, and really came to appreciate the Yii Framework. At the time, the Yii Framework was still quite new, and there are still bugs to be worked out (for the more advanced stuff), but Yii works so well that it’s very easy to use. In this first of several posts on the Yii Framework, I just discuss setting up and testing Yii. (Note: In October 2010, I’ve updated this entire series to reflect changes in Yii since this series was written, and to take into account feedback provided through the comments. Some outdated material will be crossed out, but left in to reflect how things have changed since the series was begun in June 2009.) The first thing you need in order to use the Yii Framework is access to a Web server with PHP installed, of course. But if you’re reading this, I’m going to assume you have access to a PHP-enabled server.
    [Show full text]
  • Implementación De Framework De Desarrollo Web Durante Un Proyecto”
    UNIVERSIDAD POLITÉCNICA DE SINALOA PROGRAMA ACADÉMICO DE INGENIERÍA EN INFORMÁTICA Tesina “Implementación de Framework de desarrollo web durante un proyecto” Para obtener la acreditación de las estadías profesionales y contar con los créditos para el grado de Ingeniero en Informática. Autor: Bernal Corral Daniel Asesor: M. C. Alejandro Pérez Pasten Borja Asesor OR: Ing. Omar Vidaña Peraza Mazatlán, Sinaloa 13 de Diciembre del 2019 Agradecimientos Agradezco a mis padres por brindarme todo su apoyo durante mis estudios, por darme las clases más importantes, por haber hecho posible que llegara a este momento, por enseñarme que no siempre todo sale perfecto y que debo esforzarme para obtener lo que quiero, por darme ánimos para seguir, por preocuparse por mí y esforzarse para que mi vida fuera mejor. A mi asesor por aconsejarme y corregir los errores que cometí durante el desarrollo de la tesina, por tomarse el tiempo para ver cada detalle y hacer recomendaciones, sugerir opciones, etc. A mi hermano por ayudarme a no rendirme, por asumir su rol de hermano mayor y tratar de guiar, por preocuparse por mí y ayudarme siempre que lo he necesitado. A los profesores que he tenido a lo largo de mis estudios y que me aportaron un poco de su conocimiento para enriquecer el mío. A todos mis compañeros que me ayudaron a hacer más amenas las clases. 6 ÍNDICE TEMÁTICO Índice de imágenes. 9 Resumen. ….. .11 Abstract. …. .11 Introducción. 11 Capítulo I. .. ... …12 1. Antecedentes. .. 13 1.1. Localización. .. ….. 13 1.2. Objetivos de la institución. …………….. 13 1.3. Visión. .14 1.4.
    [Show full text]
  • Alexey Rogachev
    Alexey Rogachev Web programmer, 30 years old Location: Almaty, Kazakhstan (Almaty Region) Experience: 9 years About Passionate full stack web developer. Perfectionist trying to find a balance between quality, deadlines and requirements. Languages: • Russian: ILR - 5, CEFR - C2 • English: ILR - 3, CEFR - C1 • Kazakh: ILR - 1, CEFR - A2 Work Aviata (2018 - Present) Location: Almaty, Kazakhstan Period: July 2018 - Present (1 year 11 months) Flight and railway tickets selling service. In 2018 it was united with ex-competitor “Chocotravel” and became the 2nd biggest internet plaform in Kazakhstan according to Forbes (short, details). Worked on railways project. After I joined this company it got bigger priority and dedicated team. Website: https://aviata.kz/railways/ Position: Web programmer Technologies: Python, Django, Django REST Framework, Flask, MySQL, Nginx, Gunicorn, CentOS, JavaScript, jQuery, Vue.js, HTML, Bootstrap, Sass, Webpack, Node.js, Docker Tasks: • Backend development - support and further development of API used by site, mobile apps and partner “Chocotravel”. Integration with other APIs and services. • Frontend development - both desktop and mobile site versions (until January 2019). • Making reports to determine success of adding new features. • Code review and mentoring of other team members. Highlights: • Set up Docker and Docker Compose for development, staging and production environments. • Developed new functionality - subscription to free places, timetable and routes of the trains, nearby dates search, push notifications. • Connected Google Cloud Storage. • Adapted and extended API for usage by partner “Chocotravel”. • Created mock server for supplier’s API with a set of quickly reproducible cases for easier testing and design showcase. • Improved unit tests’ coverage, wrote a suite of functional tests for main flow.
    [Show full text]
  • Performance Analysis Framework Codeigniter and Cakephp in Website Creation
    Performance Analysis Framework Codeigniter and CakePHP in Website Creation {tag} {/tag} International Journal of Computer Applications © 2014 by IJCA Journal Volume 94 - Number 20 Year of Publication: 2014 Authors: Hustinawati Albert Kurnia Himawan Latifah 10.5120/16549-5946 {bibtex}pxc3895946.bib{/bibtex} Abstract IThe era of rapidly evolving technologies currently provide a positive influence on the development of web technology . One such technology is the development of the framework. Framework is a framework that allows developers to build an application . There are two types of frameworks , one of which is a web application framework. In this framework there is one type of framework that is widely used by web developers , which is a PHP framework that until now has been growing more than fifteen types to follow the progress of existing technology . With the development of web technology , in addition to facilitate can also cause problems both for the beginners in the world of PHP programming or PHP programmers to choose a framework which is more convenient and effective to use. Therefore , in this study will be a comparison between the two types , namely PHP framework CakePHP framework CodeIgniter framework that is implemented with the creation of websites to display data from a database , so that the two kinds of PHP frameworks can be known benefits and drawbacks to the analysis based on six factors namely in terms of performance , architecture , features - features that are available , the application of Ajax , ORM implementation , and capacity of each library - each framework. 1 / 2 Performance Analysis Framework Codeigniter and CakePHP in Website Creation Refer ences - (http://www.
    [Show full text]
  • Adopting Web Framework in Web-Application Development
    ADOPTING WEB FRAMEWORK IN WEB-APPLICATION DEVELOPMENT Case: Kehittäjän tieto- ja menetelmäpankki Lahti University of Applied Sciences LAHTI UNIVERSITY OF APPLIED SCIENCES Degree Programme in Business Information Technology Bachelor’s Thesis Spring 2012 Nguyen Minh Thanh Lahti University of Applied Sciences Degree Programme in Business Information Technology NGUYEN, MINH THANH: Adopting web framework in web application development Case: Kehittäjän tieto - ja menetelmäpankki Bachelor’s Thesis of Degree Programme in Business Information Technology, 40 pages, 3 pages of appendices Spring 2012 ABSTRACT Since the web found its true form, it is no longer static web pages without any user’s interaction. During the last few years, web applications have matured to the point that they can compete with full-fledged desktop applications. The support technologies have been growing significantly with the likes of Google web toolkit, web application frameworks, and CMS. This thesis is based on the real application of Tykes, which has been coded by hand in PHP for a few years. The approach is set to improved Tykes’s features and performance. As the result, it shows the benefits of implementing web frameworks in real life works. The action research method is used to answer the research questions in this study, in inductive approach. The researcher’s experience is compared to other relevant published sources. Example source codes are extracted from Tykes. The research results show an expected range. It confirms the positive effects of implementing web framework in web application development. Features which have been tested in Tykes are presented and compared to their originals. Some example source codes are extracted from the application to prove the results.
    [Show full text]
  • The Definitive Guide to Yii
    The Definitive Guide to Yii 1.0 Qiang Xue and Xiang Wei Zhuo Copyright 2008-2009. All Rights Reserved. Contents Contents i License ix 1 Getting Started1 1.1 The Definitive Guide to Yii...........................1 1.2 New Features...................................1 1.2.1 Version 1.0.7...............................1 1.2.2 Version 1.0.6...............................1 1.2.3 Version 1.0.5...............................2 1.3 What is Yii....................................2 1.3.1 Requirements...............................3 1.3.2 What is Yii Best for?..........................3 1.3.3 How is Yii Compared with Other Frameworks?............3 1.4 Installation....................................3 1.4.1 Requirements...............................4 1.5 Creating First Yii Application..........................4 1.5.1 Connecting to Database.........................8 1.5.2 Implementing CRUD Operations....................9 2 Fundamentals 13 2.1 Model-View-Controller (MVC)......................... 13 ii Contents 2.1.1 A Typical Workflow........................... 14 2.2 Entry Script.................................... 15 2.2.1 Debug Mode............................... 15 2.3 Application.................................... 16 2.3.1 Application Configuration........................ 16 2.3.2 Application Base Directory....................... 17 2.3.3 Application Component......................... 17 2.3.4 Core Application Components..................... 18 2.3.5 Application Lifecycles.......................... 19 2.4 Controller....................................
    [Show full text]
  • Quantum Node Portal- Devices and Information Management
    Internship Report Master in Computer Engineering-Mobile Computing Quantum Node Portal- Devices and Information Management Sujane Natasha Lopez Leiria, September 2017 i This page was intentionally left blank ii Internship report Master in Computer Engineering-Mobile Computing Quantum Node Portal- Devices and Information Management Sujane Natasha Lopez Internship Report developed under the supervision of Professor Doctor Joao Pereira, professor at the School of Technology and Management of the Polytechnic Institute of Leiria. Leiria, September 2017 iii This page was intentionally left blank iv Acknowledgments I would like to take this opportunity to express my sincere gratitude to the people who helped me through this internship work. I sincerely thank Professor Joao Pereira for guiding me throughout my Internship Period, Professor Carlos Grilo for giving me an opportunity to do an Internship in Domatica Global Solutions. Undoubtedly the main person CEO and Founder Samuel Silva who believed in me and made this Internship possible. The Director Pedro Pina for being a good team leader and guiding my work. Besides them, a big thanks to my team members, my colleagues in Domatica Global Solutions. I am thankful to my parents for being with me and supporting me unconditionally. v This page was intentionally left blank vi Abstract An Internship in a European Company for developing a Web application-Domatica Global Solutions, Lisbon was undertaken to complete the Master’s Degree of Computer Engineering-Mobile Computing in the Polytechnic Institute of Leiria. The team Domatica deals with providing IoT solutions used for monitoring, controlling and collecting the data from the IoT gateways. The present work aims to develop a Web application for client’s side.
    [Show full text]
  • GRADUATION DATABASE SYSTEM by SRIKANTH GADDAM B.E, OSMANIA UNIVERSITY, 2009 a REPORT Submitted in Partial Fulfillment of The
    GRADUATION DATABASE SYSTEM By SRIKANTH GADDAM B.E, OSMANIA UNIVERSITY, 2009 A REPORT Submitted in partial fulfillment of the requirements for the degree MASTER OF SCIENCE Department of Computing and Information Sciences College of Engineering KANSAS STATE UNIVERSITY Manhattan, Kansas 2011 Approved by: Major Professor Dr. Gurdip Singh ABSTRACT Education plays a very important role in molding a person into a good individual by imparting knowledge in all aspects. Globalization has helped the students to go to different countries, attain knowledge and exposure on the culture of that country. Universities receive several hundreds of applications from all over the world to get admission for higher studies. By following the conventional method the faculty of the university and also the applicant will face lot of difficulties in communicating. In conventional method the acceptance or rejection would be generally intimated through post. The applicant will be in complete ignorance during the processing of application. They will be several scenarios where interaction between them is necessary to further process the application. This project is intended to overcome such problems and make the interaction between the staff and applicant smoother. The main objective of the project is to develop a website for Computing and Information Sciences department which manages the data regarding the prospective students as well as students currently enrolled. It can be accessed by prospective students (who wish to join the university), faculty and administrators. Applicant will be notified constantly through email and they can always check their application status online. The role of the administrators is to accept applications sent by prospective students and upload their details such as their GRE, TOEFL scores and their academic records into the database.
    [Show full text]
  • Netbeans Plugin Portal, Netbeans IDE Plugins Repository
    NetBeans IDE NetBeans Platform Enterprise Plugins Docs & Support Community Search HOME / Plugin Portal Not logged in | Log in | Register Featured plugin - PHP CakePHP Framework Welcome to the NetBeans Plugin Portal Download, comment, and rate plugins [4.62/5], provided by community members and rated by 22 third-party companies, or post your own users contributions! Support for CakePHP Framework. Learn more Most downloaded Top rated Newly added or updated Codename One iReport Darcula LAF for NetBeans 2016-11-11 [1,106,882] [4.83/5] MultiProperties Sublime Theme JS CSS Minify Compress 2016-11-10 [389,912] [4.73/5] FPR NetBeans Theme (Like Sublime Ruby and Rails Codename One Text Monokai Theme for NetBeans) [323,422] [4.7/5] 2016-11-09 NetBeans OpenGL Pack Toggle line wrap FlashPlugin [250,284] [4.67/5] 2016-11-09 NBAndroid PlantUML NetBeans System Properties [245,411] [4.66/5] 2016-11-07 Show more Show more Show more Plugins catalogue Live Filters - select or type to filter the catalogue, filters are applied all together. There is also multi column sorting activated by 'shift' clicking column headers. Name: Category: NetBeans version: Description: Owner: Verified for: Show entries Search: NetBeans Last Avg. On Plugin name Category Description Owner Downloaded versions updated Rating UC Web Applications 4.55 , Version Sublime Text default theme 8.0, 7.3 motammem 2014-09-24 389911 Sublime Theme Control for Netbeans IDE. [4.55/5] Systems, Utilities Plugin to minify JS , CSS and HTML for quicker Web page load times by reducing 4.73 Applications 8.1, 8.0, the size of js/css/html files.
    [Show full text]
  • Laravel 5 & Yii 2
    Laravel 5 & Yii 2 A look into two popular PHP frameworks • Connor Tumbleson • https://github.com/iBotPeaches • Developer (SourceToad) • Built Applications in • CodeIgniter • Laravel 4.2 • Laravel 5 Who am I? • Laravel 5.1 • Yii 2 Plan • Framework Popularity • History • Setup & Configuration • Environments • Controllers & Routes • Active Record • Views & Widgets • Modules & Packages • Code Generation • Community • Versioning Framework Popularity - History Framework Popularity - 7 day Framework Popularity - Multiple Frameworks Laravel - The PHP Framework for Web Artisans • Started in June 2011 • 1.0 Released August 2011 • Laravel 4 included Composer in May 2013 • Started by: Taylor Otwell • Previously: CodeIgniter (used, not team) • Last Release: v5.2.20 (2/19/2016) • as of 2/22/2016 Yii - A high-performance PHP framework best for developing Web 2.0 applications • Started in October 2006 • 1.0 Release December 2008 • Yii2 included Composer in October 2014 • Started by: Qiang Xue • Previously: Prado (dev) • Last Release: v2.0.7 (2/14/2016) Yii is pronounced as Yee, and is an acronym for "Yes It Is!" This is often the accurate, and most concise response to inquires from those new to Yii: Is it fast? ... Is it secure? ... Is it professional? ... Is it right for my next project? ... Yes, it is! Setup Both install via 1-2 lines with composer composer is PHP’s answer to package managers. - matching Ruby’s bundler & Node’s npm composer create-project --prefer-dist laravel/laravel blog composer global require "fxp/composer-asset-plugin:~1.1.1" composer
    [Show full text]
  • Preview Yii Tutorial (PDF Version)
    Yii About the Tutorial The Yii[ji:] framework is an open-source PHP framework for rapidly-developing, modern Web applications. It is built around the Model-View-Controller composite pattern. Yii provides secure and professional features to create robust projects rapidly. Audience The Yii framework has a component-based architecture and a full solid caching support. Therefore, it is suitable for building all kinds of Web applications: forums, portals, content managements systems, RESTful services, e-commerce websites, and so forth. Prerequisites Yii is a pure OOP (Object-Oriented Programming) framework. Hence, it requires a basic knowledge of OOP. The Yii framework also uses the latest features of PHP, like traits and namespaces. The major requirements for Yii2 are PHP 5.4+ and a web server. Copyright & Disclaimer Copyright 2016 by Tutorials Point (I) Pvt. Ltd. All the content and graphics published in this e-book are the property of Tutorials Point (I) Pvt. Ltd. The user of this e-book is prohibited to reuse, retain, copy, distribute or republish any contents or a part of contents of this e-book in any manner without written consent of the publisher. We strive to update the contents of our website and tutorials as timely and as precisely as possible, however, the contents may contain inaccuracies or errors. Tutorials Point (I) Pvt. Ltd. provides no guarantee regarding the accuracy, timeliness or completeness of our website or its contents including this tutorial. If you discover any errors on our website or in this tutorial, please notify us at [email protected] i Yii Table of Contents About the Tutorial ...........................................................................................................................................
    [Show full text]
  • "The Definitive Guide to Yii 2.0"
    The Definitive Guide to Yii 2.0 http://www.yiiframework.com/doc/guide Qiang Xue, Alexander Makarov, Carsten Brandt, Klimov Paul, and many contributors from the Yii community This tutorial is released under the Terms of Yii Documentation. Copyright 2014 Yii Software LLC. All Rights Reserved. Contents 1 Introduction1 1.1 What is Yii............................1 1.2 Upgrading from Version 1.1...................2 2 Getting Started 13 2.1 What do you need to know................... 13 2.2 Installing Yii........................... 14 2.3 Running Applications...................... 23 2.4 Saying Hello............................ 27 2.5 Working with Forms....................... 30 2.6 Working with Databases..................... 36 2.7 Generating Code with Gii.................... 42 2.8 Looking Ahead.......................... 48 3 Application Structure 51 3.1 Overview............................. 51 3.2 Entry Scripts........................... 52 3.3 Applications............................ 54 3.4 Application Components..................... 66 3.5 Controllers............................ 69 3.6 Models............................... 78 3.7 Views............................... 89 3.8 Modules.............................. 103 3.9 Filters............................... 110 3.10 Widgets.............................. 118 3.11 Assets............................... 122 3.12 Extensions............................. 142 4 Handling Requests 155 4.1 Overview............................. 155 4.2 Bootstrapping........................... 156 4.3 Routing and URL
    [Show full text]