ebook img

Yii2 By Example PDF

283 Pages·2015·1.902 MB·English
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Yii2 By Example

Yii2 By Example Table of Contents Yii2 By Example Credits About the Author About the Reviewers www.PacktPub.com Support files, eBooks, discount offers, and more Why subscribe? Free access for Packt account holders Preface What this book covers What you need for this book Who this book is for Conventions Reader feedback Customer support Downloading the example code Errata Piracy Questions 1. Starting with Yii2 Requirements and tools Installing Yii2 with Composer Application structure Application properties Common application components Handling application events The MVC pattern in Yii2 Naming convention Configuring the debug toolbar Using the logger Example – Hello world from scratch with the Yii basic template and bootstrap template Summary 2. Creating a Simple News Reader Creating Controller and Action Creating a view to display a news list How the controller sends data to view Example – create a controller to display the static news items list and details using the bootstrap template Splitting the common view content into reusable views Example – render partial in view Creating static pages Example – add a contact page Sharing data between views and layout Example – change the layout background based on a URL parameter Layout with dynamic block Example – add a dynamic box to display advertising info Using multiple layouts Example – using different layouts to create responsive and nonresponsive content layout for the same view Summary 3. Making Pretty URLs Using pretty URLs Custom URL rules Example – list news items by year or category Default parameters in rules Example – the index page to display the links list The complete URL rule parameters The URL pattern to support the multilanguage view Creating the rule class Summary 4. Creating a Room through Forms Creating a Model Example – a Model to store room data Using ActiveForm Example – creating a new room from the HTML form Format date, time, and numbers Uploading files Example – uploading an image of a room Summary 5. Developing a Reservation System Configuring a DB connection Example – creating rooms, customers, and reservations tables Example – test connection and executing the SQL query Using Gii to create room, customer, and reservation models Using ActiveRecord to manipulate data Example – query rooms list with ActiveRecord Working with relationships Example – using a relationship to connect rooms, reservations, and customers How to save a model from a form Example – creating and updating a room from a form Setting up the GMT time zone Using multiple database connections Example – configuring a second DB connection to export data to a local SQLite DB Summary 6. Using a Grid for Data and Relations Introduction DataProvider for grids Using a grid Custom columns in a grid Example – displaying a reservations list by clicking on a customer grid row Filters in GridView Displaying and filtering ActiveRecord relational data in a grid's column A summarized footer row in a grid Example – extending GridView to customize the footer row in a grid Multiple grids on one page Example: managing the reservations and rooms grids in the same view Summary 7. Working on the User Interface Using Gii to generate CRUD Example – using CRUD to manage rooms, reservations, and customers using Gii Customize JavaScript and CSS Example – using JavaScript and CSS to display advertising columns that disappear if not enough space is available Using AJAX Example – reservation details loaded from the customers' drop-down lists Using the Bootstrap widget Example: using datepicker Multiple models in the same view Example – saving multiple customers at the same time Saving linked models in the same view Example – creating a customer and reservation in the same view Summary 8. Log in to the App Creating a user login Example – a login form to access Configuring user authorization Example – creating an ACF to authorize the users RBAC Example – configuring RBAC to set permissions for users Mixing ACF and RBAC Example – managing users' roles to access rooms, reservations, and customers Summary 9. Frontend to Display Rooms to Everyone Using an advanced template to split frontend and backend Configuring an application using init Example – creating frontend for public access Sharing ActiveRecord models among applications Example – displaying available rooms in the frontend site Customizing a URL in the advanced template Example – using the advanced template in the same domain How to use the advanced template in the shared hosting Summary 10. Localize the App Setting the default language File-based translations Example – using file-based translation for the entire website Placeholders formatting DB-based translations Example – translating room descriptions using DB Summary 11. Creating an API for Use in a Mobile App Configuring a REST app in the advanced template Creating a controller Example – creating a controller to manage rooms Authentication Example – using authentication to get a customers list New controller action Example – getting a rooms list for a reservation Customizing authentication and response Example – status response node in data received Other forms of export – RSS Example – creating an RSS with a list of available rooms Summary 12. Create a Console Application to Automate the Periodic Task Interacting with console applications Creating a console controller Example – setting an alarm flag for expired reservation Formatting the output from the console Implementing and executing cron jobs Example – sending an e-mail with new reservations of the day Summary 13. Final Refactoring Creating widgets Example – creating a widget with a carousel Creating components Example – creating a component that creates a backup of the MySQL database and sends an e-mail to the administrator Creating modules Generating an API documentation Example – using an API documentation to generate a doc of app and services Summary Index Yii2 By Example Yii2 By Example Copyright © 2015 Packt Publishing All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the publisher, except in the case of brief quotations embedded in critical articles or reviews. Every effort has been made in the preparation of this book to ensure the accuracy of the information presented. However, the information contained in this book is sold without warranty, either express or implied. Neither the author, nor Packt Publishing, and its dealers and distributors will be held liable for any damages caused or alleged to be caused directly or indirectly by this book. Packt Publishing has endeavored to provide trademark information about all of the companies and products mentioned in this book by the appropriate use of capitals. However, Packt Publishing cannot guarantee the accuracy of this information. First published: September 2015 Production reference: 1230915 Published by Packt Publishing Ltd. Livery Place 35 Livery Street Birmingham B3 2PB, UK. ISBN 978-1-78528-741-1 www.packtpub.com Credits Author Fabrizio Caldarelli Reviewers Tristan Bendixen Samuel Liew Acquisition Editor Vivek Anantharaman Content Development Editor Anand Singh Technical Editor Vivek Arora Copy Editors Ameesha Smith-Green Laxmi Subramanian Project Coordinator Mary Alex Proofreader Safis Editing Indexer Tejal Soni Production Coordinator Manu Joseph Cover Work Manu Joseph About the Author Fabrizio Caldarelli is an Italian programmer who started his professional career in his youth by programming with desktop-oriented languages, the first being Visual Basic. From the year 2000 onward, he spent 5 years developing software to manage radio broadcasts. During that period, he studied C#.NET to make porting of all software versus this new platform. During the same period, he learned web programming, HTML, and ASP, and in 2003, he began to develop software using PHP as the default programming language for web pages. During those years, he collaborated as a teacher for PHP programming courses with http://www.html.it/, an important online reference for developers in Italy. In 2008, he added new skills to his experience by starting to develop mobile projects for Nokia devices with Symbian C++, and a few years later, he started working on projects for iOS, Android, and naturally Windows phone. After many PHP-based web projects, in late 2012, he moved on to the Yii framework as his primary framework for developing web applications. Since then, he has built many important projects based on Yii 1 and later on Yii 2, day by day discovering the powerful improvement that Yii provides to getting work done. Now he lives in Sacrofano, a small town near Rome, with his wife, Serena. I want to thank Erika Accili for supporting me during the writing and organization of this book. I also want to thank my wife, Serena, for sustaining me during all the work, and for the rest of her life indeed! About the Reviewers Tristan Bendixen is currently pursuing a master's degree as a software engineer, having been passionate about programming for most of his life. He has worked as a developer on diverse projects, ranging from commercial and corporate websites to mobile phone apps and desktop applications. He continues to work as a software developer alongside his studies, on paid projects, as well as some open source ones, which he helps with when time permits. I would like to thank my beloved mother and younger brother for their love and support in my constant endeavors to become a better developer, and my friends at Aalborg University for being awesome sparring partners on projects and classes alike. Samuel Liew is a full-stack web developer who enjoys producing solutions with interesting and challenging requirements. He has experience of developing a diverse range of websites, such as governmental sites, public utilities, real estate, investor relations, contests, touchscreen kiosks, iPad feedback apps, blogs and magazines, and media news. He has also been involved with creating two proprietary content management systems using C#.NET/MongoDB and PHP/Yii/MySQL. His latest accomplishment is the development of a microstock photography website (http://vivistock.com) using the Yii Framework, which involves e-commerce transactions and implements heavy business logic.

See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.