Modern Web Application Frameworks

Total Page:16

File Type:pdf, Size:1020Kb

Modern Web Application Frameworks MASARYKOVA UNIVERZITA FAKULTA INFORMATIKY Û¡¢£¤¥¦§¨ª«¬­Æ°±²³´µ·¸¹º»¼½¾¿Ý Modern Web Application Frameworks MASTER’S THESIS Bc. Jan Pater Brno, autumn 2015 Declaration Hereby I declare, that this paper is my original authorial work, which I have worked out by my own. All sources, references and literature used or ex- cerpted during elaboration of this work are properly cited and listed in complete reference to the due source. Bc. Jan Pater Advisor: doc. RNDr. Petr Sojka, Ph.D. i Abstract The aim of this paper was the analysis of major web application frameworks and the design and implementation of applications for website content ma- nagement of Laboratory of Multimedia Electronic Applications and Film festival organized by Faculty of Informatics. The paper introduces readers into web application development problematic and focuses on characte- ristics and specifics of ten selected modern web application frameworks, which were described and compared on the basis of relevant criteria. Practi- cal part of the paper includes the selection of a suitable framework for im- plementation of both applications and describes their design, development process and deployment within the laboratory. ii Keywords Web application, Framework, PHP,Java, Ruby, Python, Laravel, Nette, Phal- con, Rails, Padrino, Django, Flask, Grails, Vaadin, Play, LEMMA, Film fes- tival iii Acknowledgement I would like to show my gratitude to my supervisor doc. RNDr. Petr So- jka, Ph.D. for his advice and comments on this thesis as well as to RNDr. Lukáš Hejtmánek, Ph.D. for his assistance with application deployment and server setup. Many thanks also go to OndˇrejTom for his valuable help and advice during application development. iv Contents Introduction . 1 1 Problematic and Basic Terms ..................... 2 1.1 Web Applications . 2 1.2 Web Frameworks and Design Patterns . 3 1.3 Modern Web Application Technologies . 4 1.3.1 Code Simplification Technologies . 4 1.3.2 Bootstrap . 6 1.4 Design Patterns . 6 1.4.1 Model View Controller . 7 1.4.2 Component Based Architecture . 8 1.5 Programming Languages . 8 1.5.1 PHP . 9 1.5.2 Ruby . 9 1.5.3 Python . 10 1.5.4 Java . 10 1.6 Selection of Comparison Form . 11 1.6.1 Comparison Criteria . 11 1.7 Chapter Conclusion . 12 2 Framework Analysis .......................... 14 2.1 Laravel . 14 2.1.1 Framework Usage and Properties . 15 2.1.2 Comparison Criteria . 16 2.1.3 Summary . 17 2.2 Nette . 18 2.2.1 Framework Usage and Properties . 18 2.2.2 Comparison Criteria . 20 2.2.3 Summary . 21 2.3 Phalcon . 21 2.3.1 Framework Usage and Properties . 22 2.3.2 Comparison Criteria . 23 2.3.3 Summary . 24 2.4 Ruby on Rails . 25 2.4.1 Framework Usage and Properties . 25 2.4.2 Comparison Criteria . 26 2.4.3 Summary . 27 2.5 Padrino . 28 2.5.1 Framework Usage and Properties . 28 v 2.5.2 Comparison Criteria . 29 2.5.3 Summary . 30 2.6 Django . 31 2.6.1 Framework Usage and Properties . 31 2.6.2 Comparison Criteria . 32 2.6.3 Summary . 33 2.7 Flask . 33 2.7.1 Framework Usage and Properties . 34 2.7.2 Comparison Criteria . 35 2.7.3 Summary . 36 2.8 Grails . 37 2.8.1 Framework Usage and Properties . 37 2.8.2 Comparison Criteria . 38 2.8.3 Summary . 39 2.9 Vaadin . 40 2.9.1 Framework Usage and Properties . 40 2.9.2 Comparison Criteria . 42 2.9.3 Summary . 43 2.10 Play . 43 2.10.1 Framework Usage and Properties . 44 2.10.2 Comparison Criteria . 45 2.10.3 Summary . 46 2.11 Framework Overview . 46 2.12 Summary and Comparison Tables . 50 2.13 Chapter Conclusion . 54 3 Web Application Development .................... 55 3.1 Application Requirements . 55 3.1.1 Application for LEMMA . 56 3.1.2 Application for Film Festival . 56 3.2 Framework Selection . 57 3.3 Application Design . 58 3.3.1 User Roles . 59 3.3.2 Administration . 60 3.3.3 Content Management . 61 3.3.4 Graphic Design . 62 3.4 Application Implementation . 67 3.4.1 Development Tools . 67 3.4.2 Creating the Project . 67 3.4.3 Project Structure . 68 3.4.4 General Development Process . 71 vi 3.4.5 Content Management Implementation . 73 3.4.6 User Authentication . 75 3.5 Deployment . 76 4 Conclusion ................................ 78 Attachments . 79 A. Design Diagrams for LEMMA Applications . 79 B. Contents of Attached CD . 82 Glossary . 83 Bibliography . 86 vii Introduction Since the introduction of Web 2.0, website content management has rede- fined the way modern websites are used. There are numerous ways to man- age the content of a certain website to make it secure and user friendly. Most importantly, the whole management system has to be effective. In order to accomplish this, programmers often face a large amount of time consuming development that would later include rewriting parts of code and reusing it in other projects. With countless hours spent on programming from scratch, it is necessary to look for new ways to build high end web applications fast and easily. Web frameworks have become crucial for creating effective web ap- plications, not only for managing its contents. Today we are able to uti- lize over a hundred different frameworks written in various different lan- guages, with often a very distinct way of approaching a certain develop- ment problematic. Web developers were given a powerful tool for creating complex web applications easily and fast, which relieved from the burden of developing each system core separately from the beginning. The aim of this paper is to analyze functionality of modern web frame- works, describe distinctions between them and present different ways of development approach. Since there are over a hundred of these frameworks, this paper includes analysis of a representative sample of them and de- scribes their advantages when using them for certain application type based on requirements of a given application. In the first chapter the paper introduces important terminology used to describe procedures and technologies that are crucial for developing web applications. The chapter also covers the specifications of chosen criteria for the quality assessment of the chosen frameworks. In chapter 2, every framework is verbally described on the base of research and its output is structured in a research summary and transparent comparison tables. The practical part consists of designing the web application for the Laboratory of Multimedia Electronic Applications (LEMMA) and the website of the film festival organized by Faculty of Informatics in the best suited frame- work according to its usability, extensibility and deployment requirements, based on the research conducted in chapter 2. 1 1 Problematic and Basic Terms This chapter covers the introduction to the web application problematic and briefly describes basic terms and common development approaches used in the thesis. It also briefly covers modern code simplification technologies that allow developers to save time by simply generating large parts of the code or writing such parts using special macros. The last part of the chapter focuses on describing the terminology used in the final selection of tested web frameworks. 1.1 Web Applications Since early 90’s the internet has become the world’s most popular center of information sharing, advertisement and marketing, and it is responsi- ble for the revolution of information technologies. There is no reason to doubt that it is a headstone for applications that are accessible from any lo- cation using just the internet browser, without any need of installation, yet still maintaining the functionality of a desktop application. Since the inter- net was not originally built for such purposes, numerous new technologies were created to provide developers with the tools needed for building such applications. Thus emerged the term “Web Application”, which refers to any software running in a web browser and created in a browser-supported programming language relying on the browser to render the contents of the application. Web applications have become very popular due to the ubiq- uity of the web browser in a role of a client (known as thin client, because it itself does not contain the application logic). Even though web applications were written to perform and look like desktop applications, there are differences that make them rather unique. Accessing the application from anywhere is its biggest advantage. Users can log in to the system from different destinations simply via browser and manipulate data on the server, giving them access to their own personal settings of the application, bringing the value of portability. Another ad- vantage of web applications is that they can be be operated by more users at once. They can also be used to mediate communication between them, creating a network of operations that is usually required for community- based projects. On the other hand, web browsers were created to browse the web pages, and “Back” and “Forward” functions that are used to navi- gate in website history can be confusing for the application. Also, web ap- plications are unable to access the file system of a client computer, which 2 1. PROBLEMATIC AND BASIC TERMS can be both advantageous and detrimental. Users cannot manipulate with files on their drives but there is also no danger to their security. Access to the web application is mediated by the internet browser, which is closely connected to the client/server architecture. Such architecture rep- resents a server that provides various contents or services to its users. Also, it is possible to connect to it from different locations using a simple ac- cess point – the browser.
Recommended publications
  • PHP Tech Stack Other Experience Everyday Tools Languages
    Igor Tverdokhleb Work permit: RU+DE the Senior PHP developer who is practicing Location: Hamburg SOLID and designing & implementing scalable systems, that are mostly using ElasticSearch, + 49 (152) 244-15-088 Redis, MySQL & Running on AWS. [email protected] I have a strong point about the application performance. github.com/arku31 arku-cv.com SKILLS PHP Tech stack Daily using - Laravel / Lumen Docker (Expert) Mac -- Eloquent ORM/Migrations Linux (Advanced) PHPStorm -- Events/Listeners apache / nginx / php-fpm CI/CD (usually gitlab) -- Middlewares/Nova mysql / pgsql NewRelic / Datadog - Swoole redis / memcached Blackfire - Phalcon ElasticSearch - Symfony Queues (SQS, Laravel) Languages - Laminas (Zend) - Various libraries Other experience - xDebug Java (Spring) / GoLang (minor) Russian English German - PHPUnit JS + jQuery + Vue.js (minor) native B2+ B1 - PSR / PHPCS WordPress + ACF (advanced) EXPERIENCE EDUCATION Feb 2018 - NOW PHP Developer in AboutYou Gmbh. Hamburg, 2010 - 2014 Orenburg State University Germany. specialty: computers, systems and Phalcon / Laravel / Laminas projects networks development. Mostly working on a cache diploma: A tool to manage layer with usage of Elasticsearch and Redis. customer sales department was written on pure PHP+MySQL and Maj 2016 - Feb 2018 PHP/JS Developer in LOFTSCHOOL LTD, Loftschool group. Saint-Petersburg, Russia. php-gd + dompdf Development and maintaining education 2006 - 2010 Orenburg Information Technologies College platform using Laravel. Implemented e.g. backoffice, flexible discounts, analyzing specialty: Automated systems center and social/payment network diploma: The self-made Linux integrations. distributive booted via PXE network to use on nonHDD Nov 2015 - Maj 2016 PHP Developer in ITLOFT LTD, Loftschool group. workstations with control panel Saint-Petersburg, Russia. using bash scripts + PHP as Have developed over 50 websites, mostly background.
    [Show full text]
  • 3.4 Nette Framework Pro PHP
    VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA INFORMAČNÍCH TECHNOLOGIÍ ÚSTAV POČÍTAČOVÉ GRAFIKY A MULTIMÉDIÍ FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF COMPUTER GRAPHICS AND MULTIMEDIA SYSTÉM PRO SPRÁVU VOLNOČASOVÝCH A VZDĚLÁVACÍCH PROGRAMŮ DIPLOMOVÁ PRÁCE MASTER‘S THESIS AUTOR PRÁCE BC. MIROSLAV TŘÍSKA AUTHOR BRNO 2011 VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA INFORMAČNÍCH TECHNOLOGIÍ ÚSTAV POČÍTAČOVÉ GRAFIKY A MULTIMÉDIÍ FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF COMPUTER GRAPHICS AND MULTIMEDIA SYSTÉM PRO SPRÁVU VOLNOČASOVÝCH A VZDĚLÁVACÍCH PROGRAMŮ OUTDOOR ACTIVITY MANAGER DIPLOMOVÁ PRÁCE MASTER‘S THESIS AUTOR PRÁCE BC. MIROSLAV TŘÍSKA AUTHOR VEDOUCÍ PRÁCE ING. VÍTĚZSLAV BERAN, Ph.D. SUPERVISOR BRNO 2011 Abstrakt Cílem této diplomové práce je navrhnout dynamické uţivatelské rozhraní pro nástroj zabývající se správou volnočasových a vzdělávacích aktivit jako webovou aplikaci s důrazem na frekventované úkony tvorby denních programů. Bude umoţněno sofistikované vyhledávání aktivit, ze kterých lze vytvořit denní program nebo na základě zadaných parametrů provést automatický návrh programu. Vyuţity k tomu budou dostupné moderní webové technologie. Záměrem tohoto projektu je tyto technologie nastudovat a realizovat jimi efektivní uţivatelské rozhraní reflektující potřeby cílové skupiny uţivatelů. Abstract The aim of this master‘s thesis is to propose a dynamic user interface for a tool engaged in administration of leisure time and educational activities as a web application with an emphasis on frequented operations of daily programmes creation. This will be provided with a sophisticated searching of activities from which you can make a daily programme or on which basis of designated parameters can be achieved an automatical proposition of the programme. I intend to use accessible web technologies to make this real.
    [Show full text]
  • Creating Dynamic Web-Based Reporting Dana Rafiee, Destiny Corporation, Wethersfield, CT
    Creating Dynamic Web-based Reporting Dana Rafiee, Destiny Corporation, Wethersfield, CT ABSTRACT OVERVIEW OF SAS/INTRNET SOFTWARE In this hands on workshop, we'll demonstrate and discuss how to take a standard or adhoc report and turn it into a web based First, it is important to understand SAS/INTRNET software and its report that is available on demand in your organization. In the use. workshop, attendees will modify an existing report and display the results in various web based formats, including HTML, PDF Three components are required for the SAS/INTRNET software and RTF. to work. INTRODUCTION 1) Web Server Software – such as Microsoft’s Personal To do this, we’ll use Dreamweaver software as a GUI tool to Web Server/Internet Information Services, or the create HTML web pages. We’ll use SAS/Intrnet software as a Apache Web Server. back end tool to execute SAS programs with parameters selected on the HTML screen presented to the user. 2) Web Browser – Such as Microsoft’s Internet Explorer or Netscape’s Navigator. Our goal is to create the following screen for user input. 3) SAS/INTRNET Software – Called the Application Dispatcher. It is composed of 2 pieces. o SAS Application Server – A SAS program on a Server licensed with the SAS/INTRNET Module. o Application Broker – A Common Gateway Interface (CGI) program that resides on the web server and communicates between the Browser and the Application Server. These components can all reside on the same system, or on different systems. Types of Services 1) Socket Service: is constantly running, waiting for incoming Transactions.
    [Show full text]
  • Security Issues and Framework of Electronic Medical Record: a Review
    Bulletin of Electrical Engineering and Informatics Vol. 9, No. 2, April 2020, pp. 565~572 ISSN: 2302-9285, DOI: 10.11591/eei.v9i2.2064 565 Security issues and framework of electronic medical record: A review Jibril Adamu, Raseeda Hamzah, Marshima Mohd Rosli Faculty of Computer and Mathematical Sciences, Universiti Teknologi MARA, Malaysia Article Info ABSTRACT Article history: The electronic medical record has been more widely accepted due to its unarguable benefits when compared to a paper-based system. As electronic Received Oct 30, 2019 medical record becomes more popular, this raises many security threats Revised Dec 28, 2019 against the systems. Common security vulnerabilities, such as weak Accepted Feb 11, 2020 authentication, cross-site scripting, SQL injection, and cross-site request forgery had been identified in the electronic medical record systems. To achieve the goals of using EMR, attaining security and privacy Keywords: is extremely important. This study aims to propose a web framework with inbuilt security features that will prevent the common security vulnerabilities CodeIgniter security in the electronic medical record. The security features of the three most CSRF popular and powerful PHP frameworks Laravel, CodeIgniter, and Symfony EMR security issues were reviewed and compared. Based on the results, Laravel is equipped with Laravel security the security features that electronic medical record currently required. SQL injection This paper provides descriptions of the proposed conceptual framework that Symfony security can be adapted to implement secure EMR systems. Top vulnerabilities This is an open access article under the CC BY-SA license. XSS Corresponding Author: Jibril Adamu, Faculty of Computer and Mathematical Sciences, Universiti Teknologi MARA, 40450 Shah Alam, Selangor, Malaysia.
    [Show full text]
  • Full Stack Development
    PRESENTED BY: Mazhar K What is a Full Stack ? ● Able to work on front-end and back-end portions of an application. ● Front-end: Portion of an application the user will see or interact with ● Back-end: Part of an application that handles the logic, database interactions, user authentication, server configuration, etc. ● Database: Structured set of data held in a computer, more organized and complex sometimes. Full Stack Developer I define the basic stack as follows: ● HTML ● CSS ● JavaScript ● One general-purpose programming language (Ruby, Python, PHP, etc) ● One relational database system (Postgres, MySQL, Oracle, etc) ● One web server (nginx, Apache, etc) ● One deployment operating system (Ubuntu, CentOS, FreeBSD, etc) ● One version-control system (git. don't bother with the etc) Keys for Full Stack HTML/ CSS ● HTML: HyperText Markup Language ● CSS: Cascading Style Sheets ● Basically called as “building blocks of the web” ● HTML - Allows you to add content to the website ● CSS - Allows you to style your content ● Bootstrap: a framework for helping design and layout content on a page JavaScript ● JavaScript: Most popular language in Full-Stack, Front-end, and Back-end Development. ● Only language that runs natively in the browser, and can double up as a server-side language as well. ● It’s a high-level programing language ● It’s a language that is also characterized as dynamic, weakly typed, prototype-based and multi-paradigm. ● Frameworks: Angular & React ● JSON: JavaScript Object Notation Back-end Language ● Will handle stuff like database operations, user authentication, and application logic. ● Node.js: framework that will aid you in developing web application is Express.
    [Show full text]
  • Bakalářská Práce
    TECHNICKÁ UNIVERZITA V LIBERCI Fakulta mechatroniky, informatiky a mezioborových studií BAKALÁŘSKÁ PRÁCE Liberec 2013 Jaroslav Jakoubě Příloha A TECHNICKÁ UNIVERZITA V LIBERCI Fakulta mechatroniky, informatiky a mezioborových studií Studijní program: B2646 – Informační technologie Studijní obor: 1802R007 – Informační technologie Srovnání databázových knihoven v PHP Benchmark of database libraries for PHP Bakalářská práce Autor: Jaroslav Jakoubě Vedoucí práce: Mgr. Jiří Vraný, Ph.D. V Liberci 15. 5. 2013 Prohlášení Byl(a) jsem seznámen(a) s tím, že na mou bakalářskou práci se plně vztahuje zákon č. 121/2000 Sb., o právu autorském, zejména § 60 – školní dílo. Beru na vědomí, že Technická univerzita v Liberci (TUL) nezasahuje do mých autorských práv užitím mé bakalářské práce pro vnitřní potřebu TUL. Užiji-li bakalářskou práci nebo poskytnu-li licenci k jejímu využití, jsem si vědom povinnosti informovat o této skutečnosti TUL; v tomto případě má TUL právo ode mne požadovat úhradu nákladů, které vynaložila na vytvoření díla, až do jejich skutečné výše. Bakalářskou práci jsem vypracoval(a) samostatně s použitím uvedené literatury a na základě konzultací s vedoucím bakalářské práce a konzultantem. Datum Podpis 3 Abstrakt Česká verze: Tato bakalářská práce se zabývá srovnávacím testem webových aplikací psaných v programovacím skriptovacím jazyce PHP, které využívají různé knihovny pro komunikaci s databází. Hlavní důraz při hodnocení výsledků byl kladen na rychlost odezvy při zasílání jednotlivých požadavků. V rámci řešení byly zjišťovány dostupné metodiky určené na porovnávání těchto projektů. Byl také proveden průzkum zjišťující, které frameworky jsou nejvíce používané. Klíčová slova: Testování, PHP, webové aplikace, framework, knihovny English version: This bachelor’s thesis is focused on benchmarking of the PHP frameworks and their database libraries used for creating web applications.
    [Show full text]
  • Michigan Strategic Fund
    MICHIGAN STRATEGIC FUND MEMORANDUM DATE: March 12, 2021 TO: The Honorable Gretchen Whitmer, Governor of Michigan Members of the Michigan Legislature FROM: Mark Burton, President, Michigan Strategic Fund SUBJECT: FY 2020 MSF/MEDC Annual Report The Michigan Strategic Fund (MSF) is required to submit an annual report to the Governor and the Michigan Legislature summarizing activities and program spending for the previous fiscal year. This requirement is contained within the Michigan Strategic Fund Act (Public Act 270 of 1984) and budget boilerplate. Attached you will find the annual report for the MSF and the Michigan Economic Development Corporation (MEDC) as required in by Section 1004 of Public Act 166 of 2020 as well as the consolidated MSF Act reporting requirements found in Section 125.2009 of the MSF Act. Additionally, you will find an executive summary at the forefront of the report that provides a year-in-review snapshot of activities, including COVID-19 relief programs to support Michigan businesses and communities. To further consolidate legislative reporting, the attachment includes the following budget boilerplate reports: • Michigan Business Development Program and Michigan Community Revitalization Program amendments (Section 1006) • Corporate budget, revenue, expenditures/activities and state vs. corporate FTEs (Section 1007) • Jobs for Michigan Investment Fund (Section 1010) • Michigan Film incentives status (Section 1032) • Michigan Film & Digital Media Office activities ( Section 1033) • Business incubators and accelerators annual report (Section 1034) The following programs are not included in the FY 2020 report: • The Community College Skilled Trades Equipment Program was created in 2015 to provide funding to community colleges to purchase equipment required for educational programs in high-wage, high-skill, and high-demand occupations.
    [Show full text]
  • TEC-57 – Full Stack Ruby-On-Rails Web Developer Certificate Program with Externship
    Continuing Education 1717 S. Chestnut Ave. Fresno, CA 93702-4709 (800) 372-5505 https://ce.fresno.edu TEC-57 – Full Stack Ruby-on-Rails Web Developer Certificate Program with Externship Professional Education Course Syllabus Program includes National Certification & an Externship Opportunity Course Contact Hours: 42 The Full Stack Web Developer Profession Full stack developers are software or website programmers who combine the roles of front-end and back-end developers. Stack developer job is relatively new (just four years old). This role blends both front-end and back-end development since there is no clear borderline between the two: front- end developers often lack extra back-end skills, and the other way around. Full stack duties, in their turn, unite the both. These specialists work professionally both on the user side and server side of the web development cycle. To this end, the role requires in-depth knowledge of every level of web creation process, which includes Linus server’s set-up and configuration, creating server-side APIs, making JavaScript-codes that power apps, and so on. A Ruby on Rails developer is responsible for writing server-side web application logic in Ruby, around the framework Rails. Ruby on Rails developers usually develop back-end components, connect the application with the other (often third-party) web services, and support the front-end developers by integrating their work with the application. Ruby on Rails, as a framework, has gained popularity tremendously over a very short period of time. The goal of the framework is to reduce the time and effort required to build a web application.
    [Show full text]
  • Attacking AJAX Web Applications Vulns 2.0 for Web 2.0
    Attacking AJAX Web Applications Vulns 2.0 for Web 2.0 Alex Stamos Zane Lackey [email protected] [email protected] Blackhat Japan October 5, 2006 Information Security Partners, LLC iSECPartners.com Information Security Partners, LLC www.isecpartners.com Agenda • Introduction – Who are we? – Why care about AJAX? • How does AJAX change Web Attacks? • AJAX Background and Technologies • Attacks Against AJAX – Discovery and Method Manipulation – XSS – Cross-Site Request Forgery • Security of Popular Frameworks – Microsoft ATLAS – Google GWT –Java DWR • Q&A 2 Information Security Partners, LLC www.isecpartners.com Introduction • Who are we? – Consultants for iSEC Partners – Application security consultants and researchers – Based in San Francisco • Why listen to this talk? – New technologies are making web app security much more complicated • This is obvious to anybody who reads the paper – MySpace – Yahoo – Worming of XSS – Our Goals for what you should walk away with: • Basic understanding of AJAX and different AJAX technologies • Knowledge of how AJAX changes web attacks • In-depth knowledge on XSS and XSRF in AJAX • An opinion on whether you can trust your AJAX framework to “take care of security” 3 Information Security Partners, LLC www.isecpartners.com Shameless Plug Slide • Special Thanks to: – Scott Stender, Jesse Burns, and Brad Hill of iSEC Partners – Amit Klein and Jeremiah Grossman for doing great work in this area – Rich Cannings at Google • Books by iSECer Himanshu Dwivedi – Securing Storage – Hackers’ Challenge 3 • We are
    [Show full text]
  • Design Patterns in PHP and Laravel — Kelt Dockins Design Patterns in PHP and Laravel
    Design Patterns in PHP and Laravel — Kelt Dockins Design Patterns in PHP and Laravel Kelt Dockins [email protected] Design Patterns in PHP and Laravel Kelt Dockins Dolph, Arkansas USA ISBN-13 (pbk): 978-1-4842-2450-2 ISBN-13 (electronic): 978-1-4842-2451-9 DOI 10.1007/978-1-4842-2451-9 Library of Congress Control Number: 2016961807 Copyright © 2017 by Kelt Dockins This work is subject to copyright. All rights are reserved by the Publisher, whether the whole or part of the material is concerned, specifically the rights of translation, reprinting, reuse of illustrations, recitation, broadcasting, reproduction on microfilms or in any other physical way, and transmission or information storage and retrieval, electronic adaptation, computer software, or by similar or dissimilar methodology now known or hereafter developed. Trademarked names, logos, and images may appear in this book. Rather than use a trademark symbol with every occurrence of a trademarked name, logo, or image we use the names, logos, and images only in an editorial fashion and to the benefit of the trademark owner, with no intention of infringement of the trademark. The use in this publication of trade names, trademarks, service marks, and similar terms, even if they are not identified as such, is not to be taken as an expression of opinion as to whether or not they are subject to proprietary rights. While the advice and information in this book are believed to be true and accurate at the date of publication, neither the authors nor the editors nor the publisher can accept any legal responsibility for any errors or omissions that may be made.
    [Show full text]
  • 1 Introducing Symfony, Cakephp, and Zend Framework
    1 Introducing Symfony, CakePHP, and Zend Framework An invasion of armies can be resisted, but not an idea whose time has come. — Victor Hugo WHAT’S IN THIS CHAPTER? ‰ General discussion on frameworks. ‰ Introducing popular PHP frameworks. ‰ Design patterns. Everyone knows that all web applications have some things in common. They have users who can register, log in, and interact. Interaction is carried out mostly through validated and secured forms, and results are stored in various databases. The databases are then searched, data is processed, and data is presented back to the user, often according to his locale. If only you could extract these patterns as some kind of abstractions and transport them into further applications, the developmentCOPYRIGHTED process would be much MATERIAL faster. This task obviously can be done. Moreover, it can be done in many different ways and in almost any programming language. That’s why there are so many brilliant solutions that make web development faster and easier. In this book, we present three of them: Symfony, CakePHP, and Zend Framework. They do not only push the development process to the extremes in terms of rapidity but also provide massive amounts of advanced features that have become a must in the world of Web 2.0 applications. cc01.indd01.indd 1 11/24/2011/24/2011 55:45:10:45:10 PPMM 2 x CHAPTER 1 INTRODUCING SYMFONY, CAKEPHP, AND ZEND FRAMEWORK WHAT ARE WEB APPLICATION FRAMEWORKS AND HOW ARE THEY USED? A web application framework is a bunch of source code organized into a certain architecture that can be used for rapid development of web applications.
    [Show full text]
  • Managing Data Constraints in Database-Backed Web Applications
    Managing data constraints in database-backed web applications Junwen Yang Utsav Sethi Cong Yan University of Chicago, USA University of Chicago, USA University of Washington, USA [email protected] [email protected] [email protected] Alvin Cheung Shan Lu University of California, Berkeley University of Chicago, USA USA [email protected] [email protected] ABSTRACT Database-backed web applications manipulate large amounts of … <input value=‘title’ pattern=‘.+’ title=‘invalid title’/> persistent data, and such applications often contain constraints … that restrict data length, data value, and other data properties. Such constraints are critical in ensuring the reliability and usability of Field Type Null Default … these applications. In this paper, we present a comprehensive study on where data constraints are expressed, what they are about, how title varchar(30) NO NULL … often they evolve, and how their violations are handled. The re- sults show that developers struggle with maintaining consistent … data constraints and checking them across different components validates_length_of : title, maximum: 60, message: ‘title is too long’ Mysql::Error and versions of their web applications, leading to various prob- … lems. Guided by our study, we developed checking tools and API enhancements that can automatically detect such problems and Figure 1: Crossstack data constraints improve the quality of such applications. 1 INTRODUCTION 60 characters)” error; finally, she tried a title a little shorter than60 1.1 Motivation characters, but the web page then crashed with all the filled content Constraints are often associated with data used in software. These lost with some unreadable database error displayed. range from describing the expected length, value, uniqueness, and It turned out that different constraints were specified for the other properties of the stored data.
    [Show full text]