34,79 €
When Alex told me he was about to write a Yii cookbook about a year ago, I was wondering how original it would be, considering the fact that there was already an online user-contributed cookbook (aka. Yii wiki). It turned out Alex produced a book that is not only full of wisdom about how to use Yii effectively, but also presented in such a systematic way that it can be taken as an essential companion book to the definitive guide to Yii. In fact, Alex has successfully intrigued the interest of every member in the Yii developer team when he asked for review and comments on his newly finished book chapters.As the founder and the lead developer of the Yii framework, I feel this book is a must-read for every Yii programmer. While this book does not describe directly the rules set by Yii, it shows how to program with Yii from a practical perspective. People who are driven by tight project schedules will find this book very handy as it gives ready-to-use solutions to many problems they may face in their projects; people who are already familiar with Yii will also find this book very informative as most problem solutions given in the book can be considered as officially recommended because they have undergone thorough review of every Yii developer team member. Alex, through this book and his active participation in the Yii project, proved himself to be a great programmer as well as a good writer.
Qiang XueLead developer of the Yii framework
Yii framework is a rapidly growing PHP5 MVC framework often referred to as Rails for PHP. It has become a solid base for many exciting web applications such as Stay.com and Russia Today's meetfriends.rt.com and can be a good base for your developments. Yii is an object-oriented, high-performance, component-based PHP web application framework. Yii is pronounced as Yee and is an acronym for "Yes It Is!".
Familiar with Yii and want to exploit it to its full potential, but do not know how to go about it? Yii 1.1 Application Development Cookbook will show you how to use Yii efficiently. You will learn about implementing shortcuts using core features, creating your own reusable code base, using test-driven development, and many more topics that will escalate your knowledge in no time at all!
Yii 1.1 Application Development Cookbook will help you learn more about Yii framework and application development practices in general with demonstrations of shortcuts and information about dangerous things you should not do.
Grouped in 13 chapters, the recipes will assist you to write your applications exploiting Yii core functionality to its full potential. The chapters are generally independent of each other and you can start reading from the chapter you need most, whether it is "AJAX and jQuery", "Database, Active Record and Model Tricks" or "Extending Yii". The most interesting topics include Yii application deployment, a guide to writing your own extensions, advanced error handling, debugging and logging, application security, and performance tuning.
Yii 1.1 Application Development Cookbook will help you utilize Yii functionalities completely and efficiently.
Das E-Book können Sie in Legimi-Apps oder einer beliebigen App lesen, die das folgende Format unterstützen:
Veröffentlichungsjahr: 2011
Copyright © 2011 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
Production Reference: 1170811
Published by Packt Publishing Ltd.
Livery Place
35 Livery Street
Birmingham B3 2PB, UK.
ISBN 978-1-849515-48-1
www.packtpub.com
Cover Image by Jasmine Doremus (<[email protected]>)
Author
Alexander Makarov
Reviewers
Anatoliy Dimitrov
Antonio Ramirez Cobos
SAKURAI, atsushi
Kyle Ferreira
Acquisition Editor
Usha Iyer
Development Editor
Hyacintha D'Souza
Technical Editors
Azharuddin Sheikh
Conrad Sardinha
Copy Editor
Neha Shetty
Project Coordinator
Michelle Quadros
Proofreader
Steve Maguire
Indexers
Hemangini Bari
Tejal Daruwale
Graphics
Nilesh Mohite
Production Coordinator
Aparna Bhagat
Cover Work
Aparna Bhagat
When Alex told me he was about to write a Yii cookbook about a year ago, I was wondering how original it would be, considering the fact that there was already an online user-contributed cookbook (also known as Yii wiki). It turned out Alex produced a book that is not only full of wisdom about how to use Yii effectively, but also presented in such a systematic way that it can be taken as an essential companion book to the definitive guide to Yii. In fact, Alex has successfully intrigued the interest of every member in the Yii developer team when he asked for reviews and comments on his newly finished book chapters.
As the founder and the lead developer of the Yii framework, I feel this book is a must-read for every Yii programmer. While this book does not describe directly the rules set by Yii, it shows how to program with Yii from a practical perspective. People who are driven by tight project schedules will find this book very handy, as it gives ready-to-use solutions to many problems they may face in their projects. People who are already familiar with Yii will also find this book very informative as most problem solutions given in the book can be considered as officially recommended because they have undergone thorough a review by every Yii developer team member. Alex, through this book and his active participation in the Yii project, proved himself to be a great programmer, as well as a good writer.
Qiang Xue
Lead Developer of the Yii framework
AlexanderMakarov graduated from Voronezh State University in 2007 with a master degree in computer science. During his study, he started working on homegrown PHP frameworks and projects trying various design patterns and techniques.
During the last year of his study, he spent a year working for Siemens mainly doing Java coding and complex SQL reports and also did many small and medium freelance projects in his free time.
In 2007, he joined an outsourcing company, Murano Software, and had a lot of experience with web development in general, J2EE, PHP, and client-side technologies working on projects such as wrike.com and docufide.com. As in previous years he did some notable freelance jobs, including social network for Russia Today built with Yii in 2009 and heavy loaded NNM.ru portal in 2008.
Between 2008 and 2010, he helped the Russian CodeIgniter community to grow and started actively to contribute to open source projects.
In 2009, Alexander joined Yii camp and started growing the Russian Yii community, translated documentation into Russian and, since May 2010, has become a passionate Yii framework core developer.
He has published several articles in Smashing Magazine and a lot more in his Russian blog http://rmcreative.ru/, and has presented numerous talks on Yii and web development in general at various conferences.
Alexander currently resides in Voronezh, Russia, with his beloved wife and daughter. Besides the web, he enjoys movies, rock music, travelling, photography, and languages.
I would like to thank Qiang Xue, Maurizio Domba, Sebastián Thierer, Alexander Kochetov, Antonio Ramirez Cobos, and all people who reviewed the RAW book. Your suggestions and critics helped to improve this book a lot.
I would like to thank Qiang Xue and Wei Zhuo for creating Yii.
I would also like to thank Packt Publishing for inviting me to write this book and helping me to actually get it done. I would like to thank all the past and current Yii core team members for keeping Yii in a good shape and making it better and better. You guys rock!
AnatoliyDimitrov has an O'Reilly certificate in PHP/MySQL programming and he is a great supporter of Yii. Besides that, he is experienced in website security, server hardening, and secure services configuration.
He has held senior technical positions for some of the largest hosting companies, payment processors, and many freelance projects.
I would like to thank Rali, the love of my life, for everything and especially allowing me to stay late in the evenings working.
AntonioRamirezCobos (aka tonydspaniard), self-educated programmer, jumped into the world of coding while studying hardware and client support at TAFE, Melbourne.
He has more than 12 years of experience and has been working in the field using Javascript, C++, Java, ASP.net (with C#), Visual Basic (COM, COM+), Dynamic DLL, until he met PHP and the wonders of open source. Since then, he has not left that language and specializes in building web applications.
A Yii lover, he maintains his blog at www.ramirezcobos.com, which has been lately used to propagate the wonders of such frameworks. He is also a regular user of Yii's forum.
SAKURAI, atsushi is a microprocessor expert, as well as a PHP programmer for over 10 years. As a manager of a design team of microprocessors, he has been working to build the support website for their microprocessors. Recently, his efficiency for developing web application is drastically increasing, thanks to Yii. His main contribution to the Yii community includes the translation of the documentations into Japanese.
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.
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.
Dedicated to my wife, Eugenia, my daughter, Maya, my entire family, and all my friends. Thanks for your love and support.
Yii is a very flexible and high-performance application development framework written in PHP. It helps building web applications from small ones to large-scale enterprise applications. The framework name stands 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? ... The answer is 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 new level!
Chapter 1, Under the Hood provides information about the most interesting Yii features hidden under the hood: events, import, autoloading, exceptions, component, and widget configuration, and 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. 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 own validators and input widgets, uploading files, using, and customizing CAPTCHA.
Chapter 5, Testing Your Application covers both 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 will 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 search, 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 of developing an application that will run smoothly until you have very high loads.
Chapter 12, Using External Code focuses on using the 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.
In order to run the examples in this book, the following software will be required:
Additionally, the following tools are not strictly required but are used for specific recipes:
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.
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 are shown as follows: "We can include view partials through the use of the include directive."
A block of code is set as follows:
When we wish to draw your attention to a particular part of a code block, the relevant lines or items are set in bold:
Any command-line input or output is written as follows:
Warnings or important notes appear in a box like this.
Tips and tricks appear like this.
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 book author feedback about the book, simply fill a form at http://yiicookbook.org/feedback.
If there is a book that you need and would like to see PACKT publish, please send a note in the SUGGEST A TITLE form on www.packtpub.com or e-mail <[email protected]>.
If there is a topic that you have expertise in and you are interested in either writing or contributing to a book, see author guide on www.packtpub.com/authors.
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.
To get the example code files for this book visit http://yiicookbook.org/code.
You can download the example code files for all Packt books you have purchased from your account at http://www.PacktPub.com. If you purchased this book elsewhere, you can visit http://www.PacktPub.com/support and register to have the files e-mailed directly to you.
Although we have taken every care to ensure the accuracy of our content, mistakes do happen. If you find a mistake in the book—maybe a mistake in the text or the code—we would be grateful if you would report this. 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 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.
You can contact the book's author using 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.
In this chapter, we will cover:
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 mentioned very briefly, only experienced Yii developers usually use these. Yet, features described here are relatively simple and using them makes development with Yii much more fun and productive.
