
The Definitive Guide to Yii 1.1 Qiang Xue and Xiang Wei Zhuo Copyright 2008-2013. All Rights Reserved. Contents Contents i License xiii 1 Getting Started1 1.1 The Definitive Guide to Yii...........................1 1.2 New Features...................................1 1.2.1 Version 1.1.15...............................1 1.2.2 Version 1.1.14...............................1 1.2.3 Version 1.1.11...............................1 1.2.4 Version 1.1.8...............................2 1.2.5 Version 1.1.7...............................2 1.2.6 Version 1.1.6...............................2 1.2.7 Version 1.1.5...............................2 1.2.8 Version 1.1.4...............................2 1.2.9 Version 1.1.3...............................3 1.2.10 Version 1.1.2...............................3 1.2.11 Version 1.1.1...............................3 1.2.12 Version 1.1.0...............................3 1.3 Upgrading from Version 1.0 to 1.1.......................4 1.3.1 Changes Related with Model Scenarios.................4 ii Contents 1.3.2 Changes Related with Eager Loading for Relational Active Record.4 1.3.3 Changes Related with Table Alias in Relational Active Record...4 1.3.4 Changes Related with Tabular Input..................5 1.3.5 Other Changes..............................5 1.4 What is Yii....................................5 1.4.1 Requirements...............................5 1.4.2 What is Yii Best for?..........................5 1.4.3 How does Yii Compare with Other Frameworks?...........5 1.5 Installation....................................6 1.5.1 Requirements...............................6 1.6 Apache and Nginx configurations........................6 1.6.1 Apache..................................6 1.6.2 Nginx...................................7 1.6.3 NGINX Unit...............................8 1.7 Creating Your First Yii Application......................9 1.7.1 Connecting to Database......................... 14 1.7.2 Implementing CRUD Operations.................... 15 2 Fundamentals 21 2.1 Model-View-Controller (MVC)......................... 21 2.1.1 A Typical Workflow........................... 22 2.2 Entry Script.................................... 23 2.2.1 Debug Mode............................... 23 2.3 Application.................................... 24 2.3.1 Application Configuration........................ 24 Contents iii 2.3.2 Application Base Directory....................... 25 2.3.3 Application Components......................... 25 2.3.4 Core Application Components..................... 26 2.3.5 Application Life Cycle.......................... 27 2.4 Controller..................................... 28 2.4.1 Route................................... 29 2.4.2 Controller Instantiation......................... 29 2.4.3 Action................................... 30 2.4.4 Filter................................... 33 2.5 Model....................................... 35 2.6 View........................................ 35 2.6.1 Layout................................... 36 2.6.2 Widget.................................. 36 2.6.3 System View............................... 38 2.7 Component.................................... 38 2.7.1 Defining and using a Component Property............... 38 2.7.2 Component Event............................ 40 2.7.3 Component Behavior........................... 41 2.8 Module...................................... 42 2.8.1 Creating Module............................. 43 2.8.2 Using Module............................... 43 2.8.3 Nested Module.............................. 44 2.9 Path Alias and Namespace........................... 45 2.9.1 Root Alias................................ 45 iv Contents 2.9.2 Importing Classes............................ 45 2.9.3 Importing Directories.......................... 46 2.9.4 Namespace................................ 46 2.9.5 Namespaced Classes........................... 47 2.9.6 Namespaced Controllers......................... 47 2.9.7 Namespaced Modules.......................... 49 2.10 Conventions.................................... 50 2.10.1 URL.................................... 50 2.10.2 Code.................................... 51 2.10.3 Configuration............................... 51 2.10.4 File.................................... 51 2.10.5 Directory................................. 52 2.10.6 Database................................. 53 2.11 Development Workflow.............................. 53 2.12 Best MVC Practices............................... 54 2.12.1 Model................................... 55 2.12.2 View.................................... 56 2.12.3 Controller................................. 57 3 Working with Forms 59 3.1 Working with Form................................ 59 3.2 Creating Model.................................. 59 3.2.1 Defining Model Class........................... 60 3.2.2 Declaring Validation Rules....................... 60 3.2.3 Securing Attribute Assignments..................... 63 Contents v 3.2.4 Triggering Validation........................... 65 3.2.5 Retrieving Validation Errors...................... 66 3.2.6 Attribute Labels............................. 66 3.3 Creating Action.................................. 67 3.4 Creating Form.................................. 68 3.5 Collecting Tabular Input............................. 70 3.6 Using Form Builder............................... 72 3.6.1 Basic Concepts.............................. 72 3.6.2 Creating a Simple Form......................... 72 3.6.3 Specifying Form Elements........................ 74 3.6.4 Accessing Form Elements........................ 78 3.6.5 Creating a Nested Form......................... 79 3.6.6 Customizing Form Display....................... 81 4 Working with Databases 83 4.1 Working with Database............................. 83 4.2 Data Access Objects (DAO)........................... 83 4.2.1 Establishing Database Connection................... 84 4.2.2 Using ODBC Connection........................ 85 4.2.3 Executing SQL Statements....................... 86 4.2.4 Fetching Query Results......................... 86 4.2.5 Using Transactions............................ 87 4.2.6 Binding Parameters........................... 88 4.2.7 Binding Columns............................. 88 4.2.8 Using Table Prefix............................ 89 vi Contents 4.3 Query Builder................................... 89 4.3.1 Preparing Query Builder......................... 90 4.3.2 Building Data Retrieval Queries.................... 90 4.3.3 Building Data Manipulation Queries.................. 99 4.3.4 Building Schema Manipulation Queries................ 101 4.4 Active Record................................... 107 4.4.1 Establishing DB Connection....................... 108 4.4.2 Defining AR Class............................ 109 4.4.3 Creating Record............................. 111 4.4.4 Reading Record.............................. 112 4.4.5 Updating Record............................. 114 4.4.6 Deleting Record............................. 115 4.4.7 Data Validation.............................. 116 4.4.8 Comparing Records........................... 116 4.4.9 Customization.............................. 117 4.4.10 Using Transaction with AR....................... 117 4.4.11 Named Scopes.............................. 118 4.5 Relational Active Record............................ 120 4.5.1 Declaring Relationship.......................... 121 4.5.2 Performing Relational Query...................... 123 4.5.3 Performing Relational query without getting related models..... 125 4.5.4 Relational Query Options........................ 125 4.5.5 Disambiguating Column Names..................... 127 4.5.6 Dynamic Relational Query Options................... 128 Contents vii 4.5.7 Relational Query Performance..................... 129 4.5.8 Statistical Query............................. 130 4.5.9 Relational Query with Named Scopes................. 132 4.5.10 Relational Query with through..................... 134 4.5.11 Post-JOIN operations.......................... 137 4.6 Database Migration............................... 140 4.6.1 Creating Migrations........................... 141 4.6.2 Transactional Migrations........................ 143 4.6.3 Applying Migrations........................... 144 4.6.4 Reverting Migrations........................... 145 4.6.5 Redoing Migrations........................... 145 4.6.6 Showing Migration Information..................... 146 4.6.7 Modifying Migration History...................... 146 4.6.8 Customizing Migration Command................... 146 5 Caching 149 5.1 Caching...................................... 149 5.2 Data Caching................................... 151 5.2.1 Cache Dependency............................ 152 5.2.2 Query Caching.............................. 153 5.3 Fragment Caching................................ 155 5.3.1 Caching Options............................. 156 5.3.2 Nested Caching.............................. 158 5.4 Page Caching................................... 159 5.4.1 Output Caching............................. 159 viii Contents 5.4.2 HTTP Caching.............................. 159 5.5 Dynamic Content................................. 161 6 Extending Yii 163 6.1 Extending Yii................................... 163 6.2 Using Extensions................................. 164 6.2.1 Zii Extensions............................... 164 6.2.2 Application Component......................... 164 6.2.3 Behavior.................................. 165 6.2.4 Widget.................................. 166 6.2.5 Action................................... 167 6.2.6
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages279 Page
-
File Size-