Yii Application Development Cookbook - Second Edition - Alexander Makarov - E-Book

Yii Application Development Cookbook - Second Edition E-Book

Alexander Makarov

0,0
34,79 €

-100%
Sammeln Sie Punkte in unserem Gutscheinprogramm und kaufen Sie E-Books und Hörbücher mit bis zu 100% Rabatt.

Mehr erfahren.
Beschreibung

The Yii framework is a rapidly growing PHP5 MVC framework often referred to as Rails for PHP. It has already become a solid base for many exciting web applications such as Stay.com and can be a good base for your developments, too. This book will help you to learn Yii quickly and in more depth for use in for your developments."Yii Application Development Cookbook" will show you how to use Yii efficiently. You will learn about taking shortcuts using core features, creating your own reusable code base, using test driven development, and many more topics that will give you a lot of experience in a moderate amount of time.The second edition fixes all errata found in the first edition and also features new recipes on the client side, HTTP caching, and using Composer with Yii.The chapters of the book are generally independent and since this book's goal is to enhance a practical approach to Yii development, you can start reading from the chapter you need most, be it Ajax and jQuery, Database, Active Record, and Model Tricks, or Extending Yii."Yii Application Development Cookbook" will help you to learn more about the Yii framework and application development practices in general, showing shortcuts and dangerous things you shouldn't do.With all the recipes grouped in 13 chapters, you will write your applications more efficiently using shortcuts and using Yii core functionality in a good way. The most interesting topics are; Yii application deployment, a guide to writing your own extensions, advanced error handling, debugging and logging, application security, performance tuning, and much more."Yii Application Development Cookbook" will help you to learn more about the Yii framework and application development practices in general. You will write your applications more efficiently using shortcuts and using Yii core functionality in a good way.

Das E-Book können Sie in Legimi-Apps oder einer beliebigen App lesen, die das folgende Format unterstützen:

EPUB
MOBI

Seitenzahl: 351

Veröffentlichungsjahr: 2013

Bewertungen
0,0
0
0
0
0
0
Mehr Informationen
Mehr Informationen
Legimi prüft nicht, ob Rezensionen von Nutzern stammen, die den betreffenden Titel tatsächlich gekauft oder gelesen/gehört haben. Wir entfernen aber gefälschte Rezensionen.



Table of Contents

Yii Application Development Cookbook Second Edition
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. Under the Hood
Introduction
Using getters and setters
How to do it...
How it works...
There's more...
See also
Using Yii events
How to do it...
There's more...
Further reading
See also
Using import and autoloading
How to do it...
How it works...
There's more...
Using exceptions
How to do it…
How it works…
There's more...
Configuring components
How to do it…
How it works…
There's more...
Configuring widget defaults
How to do it…
See also
Using Yii core collections
How to do it…
Working with requests
How to do it…
There's more...
2. Router, Controller, and Views
Introduction
Configuring URL rules
Getting ready
How to do it...
How it works...
There's more...
Further reading
See also
Generating URLs by path
Getting ready
How to do it...
How it works...
There's more...
See also
Using regular expressions in URL rules
Getting ready
How to do it...
How it works...
There's more...
See also
Creating URL rules for static pages
Getting ready
How to do it...
How it works...
See also
Providing your own URL rules at runtime
Getting ready
How to do it...
How it works...
There's more...
See also
Using a base controller
Getting ready
How to do it...
How it works...
Using external actions
Getting ready
How to do it...
How it works...
There's more…
Displaying static pages with CViewAction
Getting ready
How to do it...
How it works...
There's more...
Further reading
See also
Using flash messages
Getting ready
How to do it...
How it works...
There's more…
Using the controller context in a view
Getting ready
How to do it...
How it works...
There's more…
Reusing views with partials
Getting ready
How to do it...
How it works...
There's more…
See also
Using clips
Getting ready
How to do it...
How it works...
See also
Using decorators
Getting ready
How to do it...
How it works...
There's more…
See also
Defining multiple layouts
Getting ready
How to do it...
How it works...
See also
Paginating and sorting data
Getting ready
How to do it...
How it works...
There's more…
3. AJAX and jQuery
Introduction
Loading a block through AJAX
Getting ready
How to do it...
How it works...
There's more...
Prevent including a bundled jQuery
Further reading
See also
Managing assets
Getting ready
How to do it...
How it works...
There's more...
What is inside the assets directory
Publishing an entire directory
Further reading
See also
Including resources in the page
How to do it...
How it works...
There's more...
Using custom script packages
Registering linked resources
Registering meta tags
Further reading
See also
Working with JSON
Getting ready
How to do it...
How it works...
There's more...
See also
Passing configuration from PHP to JavaScript
Getting ready
How to do it...
How it works...
See also
Handling variable number of inputs
Getting ready
How to do it...
How it works...
There's more…
See also
Rendering content at the client side
Getting ready
How to do it...
How it works...
There's more…
See also
4. Working with Forms
Introduction
Writing your own validators
Getting ready
How to do it...
How it works...
There's more...
Further reading
Uploading files
Getting ready
How to do it...
How it works...
There's more...
File validation
Further reading
See also
Adding CAPTCHA
Getting ready
How to do it...
How it works...
There's more...
Further reading:
See also
Customizing CAPTCHA
Getting ready
How to do it...
How it works...
There's more...
See also
Creating a custom input widget with CInputWidget
Getting ready
How to do it...
How it works...
There's more...
See also
5. Testing Your Application
Introduction
Setting up the testing environment
Getting ready
How to do it...
There's more...
See also
Writing and running unit tests
Getting ready
How to do it...
How it works...
There's more...
See also
Using fixtures
Getting ready
How to do it...
How it works...
There's more...
See also
Testing the application with functional tests
Getting ready
How to do it...
How it works...
There's more...
See also
Generating code coverage reports
Getting ready
How to do it...
How it works...
There's more...
See also
6. Database, Active Record, and Model Tricks
Introduction
Getting data from a database
Getting ready
How to do it...
How it works...
There's more...
See also
Defining and using multiple DB connections
Getting ready
How to do it...
How it works...
There's more...
Cross-database relations
Further reading
See also
Using scopes to get models for different languages
Getting ready
How to do it...
How it works...
There's more...
See also
Processing model fields with AR event-like methods
Getting ready
How to do it...
How it works...
There's more...
Further reading
See also
Applying markdown and HTML
Getting ready
How to do it...
How it works...
There's more...
Markdown syntax
Yii markdown wrapper and usage
See also
Highlighting code with Yii
Getting ready
How to do it...
How it works...
There's more...
Yii code highlighter
More code highlighters
See also
Automating timestamps
Getting ready
How to do it...
How it works...
There's more...
See also
Setting up an author automatically
Getting ready
How to do it...
How it works...
See also
Implementing single table inheritance
Getting ready
How to do it...
How it works...
There's more...
See also
Using CDbCriteria
How to do it...
How it works...
There's more...
See also
7. Using Zii Components
Introduction
Using data providers
Getting ready
How to do it...
How it works...
There's more...
Further reading
See also
Using grids
Getting ready
How to do it...
How it works...
There's more...
Using data from related Active Record models
Further reading
See also
Using lists
Getting ready
How to do it...
How it works...
There's more...
Adding sorting
Customizing templates
Customizing markup and data displayed
Further reading
See also
Creating custom grid columns
Getting ready
How to do it...
How it works...
There's more...
See also
8. Extending Yii
Introduction
Creating model behaviors
Getting ready
How to do it...
How it works...
There's more...
CActiveRecordBehavior and CModelBehavior
More behavior types
Further reading
See also
Creating components
Getting ready
How to do it...
How it works...
There's more...
Overriding existing application components
Further reading
See also
Creating reusable controller actions
Getting ready
How to do it...
How it works...
There's more...
Further reading
See also
Creating reusable controllers
Getting ready
How to do it...
How it works...
There's more...
See also
Creating a widget
Getting ready
How to do it...
How it works...
There's more...
See also
Creating CLI commands
Getting ready
How to do it...
How it works...
There's more...
Further reading
See also
Creating filters
Getting ready
How to do it...
How it works...
There's more...
See also
Creating modules
Getting ready
How to do it...
How it works...
There's more...
See also
Creating a custom view renderer
Getting ready
How to do it...
How it works...
There's more...
Further reading
See also
Making extensions distribution-ready
Getting ready
How to do it...
How it works...
There's more...
9. Error Handling, Debugging, and Logging
Introduction
Using different log routes
Getting ready
How to do it...
How it works...
There's more...
Yii::trace versus Yii::log
Yii::beginProfile and Yii::endProfile
Log messages immediately
Further reading
See also
Analyzing the Yii error stack trace
Getting ready
How to do it...
How it works...
There's more...
See also
Logging and using the context information
Getting ready
How to do it...
How it works...
There's more...
See also
Implementing your own smart 404 handler
Getting ready
How to do it...
How it works...
There's more...
Further reading
See also
10. Security
Introduction
Using controller filters
Getting ready
How to do it...
How it works...
There's more...
See also
Using CHtml and CHtmlPurifier to prevent XSS
Getting ready
How to do it...
How it works...
There's more...
XSS types
Configuring the HTML Purifier
HTML Purifier performance
Further reading
See also
Preventing SQL injections
Getting ready
How to do it...
How it works...
There's more...
See also
Preventing CSRF
Getting ready
How to do it...
How it works...
There's more...
Extra measures
Using GET and POST properly
Further reading
See also
Using RBAC
Getting ready
How to do it...
How it works...
There's more...
Naming RBAC nodes
A way to keep the hierarchy simple and efficient
Avoiding RBAC
Further reading
See also
11. Performance Tuning
Introduction
Following best practices
Getting ready
How to do it...
How it works...
There's more...
Server-side performance is just a part of the big picture
Things to be done without using Yii
Active Record versus query builder and SQL
Always check for slow queries first
Cache or save results of heavy processes
Handling too much processing
Further reading
See also
Speeding up session handling
Getting ready
How to do it...
How it works...
There's more...
See also
Using cache dependencies and chains
Getting ready
How to do it...
How it works...
There's more...
See also
Profiling an application with Yii
Getting ready
How to do it...
How it works...
There's more...
See also
Leveraging HTTP caching
Getting ready
How to do it...
How it works...
There's more...
Optimizing filters
Further reading
See also
12. Using External Code
Introduction
Using Zend Framework from Yii
Getting ready
How to do it...
How it works...
There's more...
See also
Customizing the Yii autoloader
Getting ready
How to do it...
How it works...
There's more...
Further reading
See also
Using Kohana inside Yii
Getting ready
How to do it...
How it works...
There's more...
Further reading
See also
Using PEAR inside Yii
Getting ready
How to do it...
How it works...
There's more...
See also
Using Composer with Yii
Getting ready
How to do it...
How it works...
There's more...
See also
13. Deployment
Introduction
Changing the Yii directory layout
Getting ready
How to do it...
How it works...
There's more...
See also
Moving an application out of webroot
Getting ready
How to do it...
How it works...
There's more...
See also
Sharing the framework directory
Getting ready
How to do it...
How it works...
There's more...
See also
Moving configuration parts into separate files
Getting ready
How to do it...
How it works...
There's more...
See also
Using multiple configurations to simplify the deployment
Getting ready
How to do it...
How it works...
There's more...
See also
Implementing and executing cron jobs
Getting ready
How to do it...
How it works...
There's more...
Further reading
See also
Maintenance mode
Getting ready
How to do it...
How it works...
There's more...
See also
Index

Yii Application Development Cookbook Second Edition

Yii Application Development Cookbook Second Edition

Copyright © 2013 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: August 2011

Second edition: April 2013

Production Reference: 1150413

Published by Packt Publishing Ltd.

Livery Place

35 Livery Street

Birmingham B3 2PB, UK.

ISBN 978-1-78216-310-7

www.packtpub.com

Cover Image by Alexander Makarov (<[email protected]>)

Credits

Author

Alexander Makarov

Reviewers

Maurizio Domba

Thomas Jantz

Acquisition Editor

Usha Iyer

Lead Technical Editor

Joel Noronha

Technical Editors

Hardik B. Soni

Ankita Meshram

Project Coordinator

Kranti Berde

Proofreaders

Maria Gould

Paul Hindle

Lawrence A. Herman

Indexer

Hemangini Bari

Graphics

Ronak Dhruv

Production Coordinator

Nilesh R. Mohite

Cover Work

Nilesh R. Mohite

About the Author

Alexander Makarav is an experienced engineer from Russia and has been a Yii framework core team member since 2010. Before joining the Yii core team, he participated in the CodeIgniter community growth in Russia. In 2009, he finished the Russian translation of the framework documentation and created the Russian community website. In 2012, he released the Russian version of the book along with Russian community members. In the same year, he was the technical reviewer for three more books:

The Yii Book: Developing Web Applications Using the Yii PHP Framework, Larry UllmanWeb Application Development with Yii and PHP, Jeff WinesettYii Rapid Application Development Hotshot, Lauren O'Meara and James Hamilton

In his free time, Alexander writes technical blog at http://rmcreative.ru/, speaks at conferences, and enjoys movies, music, traveling, photography, and languages. He currently resides in Voronezh, Russia with his beloved wife and daughter.

About the Reviewers

Maurizio Domba is a frontend and backend web developer with over 20 years of professional experience in computer programming and 10 years in web development. He is part of the Yii core development team since August 2010 and is an active member of the Yii community.

At the moment he is developing intranet web applications for an export-import enterprise and working on other international projects, always trying to help others to improve their code and project usability.

When not programming the Web, he is programming his wife and kids, always with a smile on his face, open-hearted and open-minded. He loves climbing, martial arts, meditation, and salsa.

Thomas Jantz brings his background in language and art to his career as a web application development consultant at Plum Flower Software. His projects include an emphasis on rapid application development and user experience.

www.PacktPub.com

Support files, eBooks, discount offers and more

You might want to visit www.PacktPub.com for support files and downloads related to your book.

Did you know that Packt offers eBook versions of every book published, with PDF and ePub files available? You can upgrade to the eBook version at www.PacktPub.com and as a print book customer, you are entitled to a discount on the eBook copy. Get in touch with us at <[email protected]> for more details.

At www.PacktPub.com, you can also read a collection of free technical articles, sign up for a range of free newsletters and receive exclusive discounts and offers on Packt books and eBooks.

http://PacktLib.PacktPub.com

Do you need instant solutions to your IT questions? PacktLib is Packt's online digital book library. Here, you can access, read and search across Packt's entire library of books. 

Why Subscribe?

Fully searchable across every book published by PacktCopy and paste, print and bookmark contentOn demand and accessible via web browser

Free Access for Packt account holders

If you have an account with Packt at www.PacktPub.com, you can use this to access PacktLib today and view nine entirely free books. Simply use your login credentials for immediate access.

Preface

Yii is a very flexible and high-performance application development framework written in PHP. It helps building web applications, from small to large-scale enterprise applications. The framework name stands for Yes It Is (Yii). This is often the accurate and most concise response to inquiries from those new to Yii such as: Is it fast? Is it secure? Is it professional? Is it right for my next project? But the answer is an unequivocal, yes it is!

This cookbook contains 13 independent chapters full of recipes that will show you how to use Yii efficiently. You will learn about the hidden framework gems, using core features, creating your own reusable code base, using test-driven development, and many more topics that will bring your knowledge to a whole new level!

What this book covers

Chapter 1, Under the Hood, provides information about the most interesting Yii features hidden under the hood: events, import, autoloading, exceptions, component, widget configuration, and many more.

Chapter 2, Router, Controller, and Views, is about handy things concerning the Yii URL router, controllers, and views: URL rules, external actions and controllers, view clips, decorators, and more.

Chapter 3, AJAX and jQuery, focuses on the Yii's client side that is built with jQuery—the most widely used JavaScript library out there. It is very powerful and easy to learn and use. This chapter focuses on Yii-specific tricks rather than jQuery itself.

Chapter 4, Working with Forms, shows how Yii makes working with forms a breeze and documentation on it is almost complete. Still, there are some areas that need clarification and examples. Some of the topics covered in this chapter are creating validators and input widgets, uploading files, and using and customizing CAPTCHA.

Chapter 5, Testing Your Application, covers unit testing, functional testing, and generating code coverage reports. Recipes follow a test-driven development approach. You will write tests for several small applications and then implement functionality.

Chapter 6, Database, Active Record, and Model Tricks, is about working with databases efficiently, when to use models and when not to, how to work with multiple databases, how to automatically pre-process Active Record fields, and how to use powerful database criteria.

Chapter 7, Using Zii Components, covers data providers, grids, and lists: How to configure sorting and searching, how to use grids with multiple related models, how to create your own column types, and more.

Chapter 8, Extending Yii, shows not only how to implement your own Yii extension but also how to make your extension reusable and useful for the community. In addition, we will focus on many things you should do to make your extension as efficient as possible.

Chapter 9, Error Handling, Debugging, and Logging, reviews logging, analyzing the exception stack trace, and own error handler implementation.

Chapter 10, Security, provides information about keeping your application secure according to the general web application security principle "filter input, escape output." We will cover topics such as creating your own controller filters, preventing XSS, CSRF, and SQL injections, escaping output, and using role-based access control.

Chapter 11, Performance Tuning, shows how to configure Yii to gain extra performance. You will learn a few best practices for developing an application that will run smoothly until you have very high loads.

Chapter 12, Using External Code, focuses on using third-party code with Yii. We will use Zend Framework, Kohana, and PEAR but you will be able to use any code after learning how it works.

Chapter 13, Deployment, covers various tips that are especially useful on application deployment, when developing an application in a team, or when you just want to make your development environment more comfortable.

What you need for this book

In order to run the examples in this book, the following software will be required:

Web server: The 2.x version of Apache web server is preferred. Other versions and web servers will work too, but configuration details are not provided.Database server: The database server that can be used is MySQL 4+ with InnoDB support (MySQL 5 or higher is recommended).PHP: The PHP 5.2 or PHP 5.3 version can be used (PHP 5.3 recommended).Yii: The latest Yii version can be used (1.1.x is recommended).

Additionally, the following tools are not strictly required but are used for specific recipes:

PHPUnitXdebugSelenium RCPEARSmartymemcached

Who this book is for

If you are a developer with a good knowledge of PHP5, are familiar with the basics of Yii, have checked its definitive guide, and have tried to develop applications using Yii, then this book is for you. Knowledge of the object-oriented approach and MVC pattern will be a great advantage as Yii uses these extensively.

Conventions

In this book, you will find a number of styles of text that distinguish between different kinds of information. Here are some examples of these styles, and an explanation of their meaning.

Code words in text, database table names, folder names, filenames, file extensions, pathnames, dummy URLs, user input, and Twitter handles are shown as follows: "To declare an event in your CComponent child class, you should add a method with a name starting with on."

A block of code is set as follows:

defined('YII_DEBUG') or define('YII_DEBUG', false); defined('YII_TRACE_LEVEL') or define('YII_TRACE_LEVEL', 0); $yii=dirname(__FILE__).'/../framework/yii.php'; $config=dirname(__FILE__).'/../app/config/production.php'; require($yii); Yii::createWebApplication($config)->run();

Any command-line input or output is written as follows:

cd path/to/protected/testsphpunit unit/BBCodeTest.php

New terms and important words are shown in bold. Words that you see on the screen, in menus or dialog boxes for example, appear in the text like this: "Now, go to the Gii controller generator and enter SecureController into the Base Class field."

Note

Warnings or important notes appear in a box like this.

Tip

Tips and tricks appear like this.

Reader feedback

Feedback from our readers is always welcome. Let us know what you think about this book—what you liked or may have disliked. Reader feedback is important for us to develop titles that you really get the most out of.

To send the author feedback about the book, simply fill in the form at http://yiicookbook.org/feedback.

If there is a topic that you have expertise in and you are interested in either writing or contributing to a book, see our author guide at www.packtpub.com/authors.

Customer support

Now that you are the proud owner of a Packt book, we have a number of things to help you to get the most from your purchase.

Downloading the example code

To get the example code files for this book visit http://yiicookbook.org/code.

Errata

Although we have taken every care to ensure the accuracy of our content, mistakes do happen. If you find a mistake in one of our books—maybe a mistake in the text or the code—we would be grateful if you would report this to us. By doing so, you can save other readers from frustration and help us improve subsequent versions of this book. If you find any errata, please report them by visiting http://yiicookbook.org/feedback, and entering the details of your errata. Once your errata are verified, your submission will be accepted and the errata will be uploaded on the book website at http://yiicookbook.org/errata.

Piracy

Piracy of copyright material on the Internet is an ongoing problem across all media. At Packt, we take the protection of our copyright and licenses very seriously. If you come across any illegal copies of our works, in any form, on the Internet, please provide us with the location address or website name immediately so that we can pursue a remedy.

Please contact us at <[email protected]> with a link to the suspected pirated material.

We appreciate your help in protecting our authors, and our ability to bring you valuable content.

Questions

You can contact the book's author at http://yiicookbook.org/feedback. if you are having a problem with any aspect of the book, and he will do his best to address it.

Chapter 1. Under the Hood

In this chapter, we will cover:

Using getters and settersUsing Yii eventsUsing import and autoloadingUsing exceptionsConfiguring componentsConfiguring widget defaultsUsing Yii core collectionsWorking with requests

Introduction

In this chapter, we will cover the most interesting Yii features that are hidden "under the hood". These are mostly described in the framework API, but since they are not mentioned in the official guide (http://www.yiiframework.com/doc/guide/) or only mentioned very briefly, only experienced Yii developers usually use these. However, the features described here are relatively simple and using them makes development with Yii much more fun and productive.