Views
2 weeks ago

Doctrine_manual-1-2-en

Chapter 6: Introduction

Chapter 6: Introduction to Models 48 Listing 6-12 // test.php // ... $user = new User(); $user->username = 'jwage'; $user->password = 'changeme'; echo $user->password; // outputs md5 hash and not changeme Now when you execute test.php from your terminal you should see the following: Listing 6-13 $ php test.php 4cb9c8a8048fd02294477fcb1a41191a Here is an example of some custom functions you might add to the UserTable class: Listing 6-14 // models/UserTable.php // ... class UserTable extends Doctrine_Table { public function getCreatedToday() { $today = date('Y-m-d h:i:s', strtotime(date('Y-m-d'))); return $this->createQuery('u') ->where('u.created_at > ?', $today) ->execute(); } } In order for custom Doctrine_Table classes to be loaded you must enable the autoload_table_classes attribute in your bootstrap.php file like done below. Listing 6-15 // boostrap.php // ... $manager->setAttribute(Doctrine_Core::ATTR_AUTOLOAD_TABLE_CLASSES, true); Now you have access to this function when you are working with the UserTable instance: Listing 6-16 // test.php // ... $usersCreatedToday = Doctrine_Core::getTable('User')->getCreatedToday(); Schema Files You can alternatively manage your models with YAML schema files and generate PHP classes from them. First lets generate a YAML schema file from the existing models we already have to make things easier. Change test.php to have the following code inside: Listing 6-17 // test.php // ... Doctrine_Core::generateYamlFromModels('schema.yml', 'models'); ----------------- Brought to you by

Chapter 6: Introduction to Models 49 Execute the test.php script: $ php test.php Listing 6-18 Now you should see a file named schema.yml created in the root of the doctrine_test directory. It should look like the following: --- User: tableName: user columns: id: type: integer(8) primary: true autoincrement: true is_active: type: integer(1) default: '1' is_super_admin: type: integer(1) default: '0' created_at: type: timestamp(25) notnull: true updated_at: type: timestamp(25) notnull: true first_name: string(255) last_name: string(255) username: string(255) password: string(255) type: string(255) Listing 6-19 So now that we have a valid YAML schema file, we can now maintain our schema from here and generate the PHP classes from here. Lets create a new php script called generate.php. This script will re-generate everything and make sure the database is reinstantiated each time the script is called: // generate.php Listing 6-20 require_once('bootstrap.php'); Doctrine_Core::dropDatabases(); Doctrine_Core::createDatabases(); Doctrine_Core::generateModelsFromYaml('schema.yml', 'models'); Doctrine_Core::createTablesFromModels('models'); Now you can alter your schema.yml and re-generate your models by running the following command from your terminal: $ php generate.php Listing 6-21 Now that we have our YAML schema file setup and we can re-generate our models from the schema files lets cleanup the file a little and take advantage of some of the power of Doctrine: --- User: Listing 6-22 ----------------- Brought to you by

  • Page 1 and 2: Doctrine ORM for PHP Guide to Doctr
  • Page 3 and 4: Table of Contents iii Examples ....
  • Page 5 and 6: Table of Contents v Sample Queries
  • Page 7 and 8: Table of Contents vii Component Que
  • Page 9 and 10: Table of Contents ix Inserting a No
  • Page 11 and 12: Table of Contents xi Generating Mig
  • Page 13 and 14: Chapter 1: Introduction 13 Chapter
  • Page 15 and 16: Chapter 1: Introduction 15 layer de
  • Page 17 and 18: Chapter 1: Introduction 17 Further
  • Page 19 and 20: Chapter 2: Getting Started 19 Insta
  • Page 21 and 22: Chapter 2: Getting Started 21 Downl
  • Page 23 and 24: Chapter 2: Getting Started 23 In th
  • Page 25 and 26: Chapter 3: Introduction to Connecti
  • Page 27 and 28: Chapter 3: Introduction to Connecti
  • Page 29 and 30: Chapter 3: Introduction to Connecti
  • Page 31 and 32: Chapter 4: Configuration 31 $table-
  • Page 33 and 34: Chapter 4: Configuration 33 backtic
  • Page 35 and 36: Chapter 4: Configuration 35 class M
  • Page 37 and 38: Chapter 4: Configuration 37 // boot
  • Page 39 and 40: Chapter 5: Connections 39 Chapter 5
  • Page 41 and 42: Chapter 5: Connections 41 $conn = D
  • Page 43 and 44: Chapter 5: Connections 43 This is p
  • Page 45 and 46: Chapter 6: Introduction to Models 4
  • Page 47: Chapter 6: Introduction to Models 4
  • Page 51 and 52: Chapter 6: Introduction to Models 5
  • Page 53 and 54: Chapter 7: Defining Models 53 Chapt
  • Page 55 and 56: Chapter 7: Defining Models 55 } } /
  • Page 57 and 58: Chapter 7: Defining Models 57 class
  • Page 59 and 60: Chapter 7: Defining Models 59 Strin
  • Page 61 and 62: Chapter 7: Defining Models 61 class
  • Page 63 and 64: Chapter 7: Defining Models 63 class
  • Page 65 and 66: Chapter 7: Defining Models 65 $this
  • Page 67 and 68: Chapter 7: Defining Models 67 onUpd
  • Page 69 and 70: Chapter 7: Defining Models 69 // te
  • Page 71 and 72: Chapter 7: Defining Models 71 First
  • Page 73 and 74: Chapter 7: Defining Models 73 } } $
  • Page 75 and 76: Chapter 7: Defining Models 75 In ma
  • Page 77 and 78: Chapter 7: Defining Models 77 Here
  • Page 79 and 80: Chapter 7: Defining Models 79 class
  • Page 81 and 82: Chapter 7: Defining Models 81 Here
  • Page 83 and 84: Chapter 7: Defining Models 83 } } )
  • Page 85 and 86: Chapter 7: Defining Models 85 --- #
  • Page 87 and 88: Chapter 7: Defining Models 87 } { }
  • Page 89 and 90: Chapter 7: Defining Models 89 } } )
  • Page 91 and 92: Chapter 7: Defining Models 91 Some
  • Page 93 and 94: Chapter 7: Defining Models 93 Now w
  • Page 95 and 96: Chapter 7: Defining Models 95 # ...
  • Page 97 and 98: Chapter 7: Defining Models 97 Concl
  • Page 99 and 100:

    Chapter 8: Working with Models 99 $

  • Page 101 and 102:

    Chapter 8: Working with Models 101

  • Page 103 and 104:

    Chapter 8: Working with Models 103

  • Page 105 and 106:

    Chapter 8: Working with Models 105

  • Page 107 and 108:

    Chapter 8: Working with Models 107

  • Page 109 and 110:

    Chapter 8: Working with Models 109

  • Page 111 and 112:

    Chapter 8: Working with Models 111

  • Page 113 and 114:

    Chapter 8: Working with Models 113

  • Page 115 and 116:

    Chapter 8: Working with Models 115

  • Page 117 and 118:

    Chapter 8: Working with Models 117

  • Page 119 and 120:

    Chapter 8: Working with Models 119

  • Page 121 and 122:

    Chapter 9: DQL (Doctrine Query Lang

  • Page 123 and 124:

    Chapter 9: DQL (Doctrine Query Lang

  • Page 125 and 126:

    Chapter 9: DQL (Doctrine Query Lang

  • Page 127 and 128:

    Chapter 9: DQL (Doctrine Query Lang

  • Page 129 and 130:

    Chapter 9: DQL (Doctrine Query Lang

  • Page 131 and 132:

    Chapter 9: DQL (Doctrine Query Lang

  • Page 133 and 134:

    Chapter 9: DQL (Doctrine Query Lang

  • Page 135 and 136:

    Chapter 9: DQL (Doctrine Query Lang

  • Page 137 and 138:

    Chapter 9: DQL (Doctrine Query Lang

  • Page 139 and 140:

    Chapter 9: DQL (Doctrine Query Lang

  • Page 141 and 142:

    Chapter 9: DQL (Doctrine Query Lang

  • Page 143 and 144:

    Chapter 9: DQL (Doctrine Query Lang

  • Page 145 and 146:

    Chapter 9: DQL (Doctrine Query Lang

  • Page 147 and 148:

    Chapter 9: DQL (Doctrine Query Lang

  • Page 149 and 150:

    Chapter 9: DQL (Doctrine Query Lang

  • Page 151 and 152:

    Chapter 9: DQL (Doctrine Query Lang

  • Page 153 and 154:

    Chapter 9: DQL (Doctrine Query Lang

  • Page 155 and 156:

    Chapter 9: DQL (Doctrine Query Lang

  • Page 157 and 158:

    Chapter 9: DQL (Doctrine Query Lang

  • Page 159 and 160:

    Chapter 9: DQL (Doctrine Query Lang

  • Page 161 and 162:

    Chapter 9: DQL (Doctrine Query Lang

  • Page 163 and 164:

    Chapter 10: Component Overview 163

  • Page 165 and 166:

    Chapter 10: Component Overview 165

  • Page 167 and 168:

    Chapter 10: Component Overview 167

  • Page 169 and 170:

    Chapter 10: Component Overview 169

  • Page 171 and 172:

    Chapter 10: Component Overview 171

  • Page 173 and 174:

    Chapter 10: Component Overview 173

  • Page 175 and 176:

    Chapter 10: Component Overview 175

  • Page 177 and 178:

    Chapter 10: Component Overview 177

  • Page 179 and 180:

    Chapter 10: Component Overview 179

  • Page 181 and 182:

    Chapter 10: Component Overview 181

  • Page 183 and 184:

    Chapter 10: Component Overview 183

  • Page 185 and 186:

    Chapter 10: Component Overview 185

  • Page 187 and 188:

    Chapter 10: Component Overview 187

  • Page 189 and 190:

    Chapter 10: Component Overview 189

  • Page 191 and 192:

    Chapter 10: Component Overview 191

  • Page 193 and 194:

    Chapter 11: Native SQL 193 $users =

  • Page 195 and 196:

    Chapter 12: YAML Schema Files 195 C

  • Page 197 and 198:

    Chapter 12: YAML Schema Files 197 D

  • Page 199 and 200:

    Chapter 12: YAML Schema Files 199 p

  • Page 201 and 202:

    Chapter 12: YAML Schema Files 201 -

  • Page 203 and 204:

    Chapter 12: YAML Schema Files 203 O

  • Page 205 and 206:

    Chapter 12: YAML Schema Files 205 C

  • Page 207 and 208:

    Chapter 12: YAML Schema Files 207 o

  • Page 209 and 210:

    Chapter 13: Data Validation 209 Cha

  • Page 211 and 212:

    Chapter 13: Data Validation 211 # .

  • Page 213 and 214:

    Chapter 13: Data Validation 213 The

  • Page 215 and 216:

    Chapter 13: Data Validation 215 if

  • Page 217 and 218:

    Chapter 13: Data Validation 217 Her

  • Page 219 and 220:

    Chapter 13: Data Validation 219 # .

  • Page 221 and 222:

    Chapter 13: Data Validation 221 } e

  • Page 223 and 224:

    Chapter 13: Data Validation 223 } }

  • Page 225 and 226:

    Chapter 13: Data Validation 225 //

  • Page 227 and 228:

    Chapter 14: Data Hydrators 227 Chap

  • Page 229 and 230:

    Chapter 14: Data Hydrators 229 echo

  • Page 231 and 232:

    Chapter 15: Inheritance 231 Chapter

  • Page 233 and 234:

    Chapter 15: Inheritance 233 columns

  • Page 235 and 236:

    Chapter 15: Inheritance 235 name: s

  • Page 237 and 238:

    Chapter 15: Inheritance 237 // test

  • Page 239 and 240:

    Chapter 16: Behaviors 239 Chapter 1

  • Page 241 and 242:

    Chapter 16: Behaviors 241 Here is t

  • Page 243 and 244:

    Chapter 16: Behaviors 243 } $this->

  • Page 245 and 246:

    Chapter 16: Behaviors 245 The imple

  • Page 247 and 248:

    Chapter 16: Behaviors 247 } } ); )

  • Page 249 and 250:

    Chapter 16: Behaviors 249 $blogPost

  • Page 251 and 252:

    Chapter 16: Behaviors 251 Look how

  • Page 253 and 254:

    Chapter 16: Behaviors 253 length 25

  • Page 255 and 256:

    Chapter 16: Behaviors 255 $ php tes

  • Page 257 and 258:

    Chapter 16: Behaviors 257 Searchabl

  • Page 259 and 260:

    Chapter 16: Behaviors 259 // test.p

  • Page 261 and 262:

    Chapter 16: Behaviors 261 } } elsei

  • Page 263 and 264:

    Chapter 16: Behaviors 263 ) [name]

  • Page 265 and 266:

    Chapter 16: Behaviors 265 } public

  • Page 267 and 268:

    Chapter 17: Searching 267 Chapter 1

  • Page 269 and 270:

    Chapter 17: Searching 269 body LONG

  • Page 271 and 272:

    Chapter 17: Searching 271 • Strip

  • Page 273 and 274:

    Chapter 17: Searching 273 $ php tes

  • Page 275 and 276:

    Chapter 17: Searching 275 // test.p

  • Page 277 and 278:

    Chapter 18: Hierarchical Data 277 N

  • Page 279 and 280:

    Chapter 18: Hierarchical Data 279 i

  • Page 281 and 282:

    Chapter 18: Hierarchical Data 281 E

  • Page 283 and 284:

    Chapter 18: Hierarchical Data 283 F

  • Page 285 and 286:

    Chapter 19: Data Fixtures 285 Chapt

  • Page 287 and 288:

    Chapter 19: Data Fixtures 287 class

  • Page 289 and 290:

    Chapter 19: Data Fixtures 289 Resou

  • Page 291 and 292:

    Chapter 19: Data Fixtures 291 --- #

  • Page 293 and 294:

    Chapter 20: Database Abstraction La

  • Page 295 and 296:

    Chapter 20: Database Abstraction La

  • Page 297 and 298:

    Chapter 20: Database Abstraction La

  • Page 299 and 300:

    Chapter 20: Database Abstraction La

  • Page 301 and 302:

    Chapter 20: Database Abstraction La

  • Page 303 and 304:

    Chapter 20: Database Abstraction La

  • Page 305 and 306:

    Chapter 21: Transactions 305 log 43

  • Page 307 and 308:

    Chapter 21: Transactions 307 try {

  • Page 309 and 310:

    Chapter 22: Event Listeners 309 Cha

  • Page 311 and 312:

    Chapter 22: Event Listeners 311 pub

  • Page 313 and 314:

    Chapter 22: Event Listeners 313 pos

  • Page 315 and 316:

    Chapter 22: Event Listeners 315 } {

  • Page 317 and 318:

    Chapter 22: Event Listeners 317 */

  • Page 319 and 320:

    Chapter 22: Event Listeners 319 FRO

  • Page 321 and 322:

    Chapter 22: Event Listeners 321 Ski

  • Page 323 and 324:

    Chapter 23: Caching 323 $cacheDrive

  • Page 325 and 326:

    Chapter 23: Caching 325 // bootstra

  • Page 327 and 328:

    Chapter 24: Migrations 327 Chapter

  • Page 329 and 330:

    Chapter 24: Migrations 329 array('t

  • Page 331 and 332:

    Chapter 24: Migrations 331 { } // .

  • Page 333 and 334:

    Chapter 24: Migrations 333 $options

  • Page 335 and 336:

    Chapter 24: Migrations 335 Up/Down

  • Page 337 and 338:

    Chapter 24: Migrations 337 Now you

  • Page 339 and 340:

    Chapter 25: Extensions 339 $ cd /pa

  • Page 341 and 342:

    Chapter 26: Utilities 341 $pager->g

  • Page 343 and 344:

    Chapter 26: Utilities 343 Currently

  • Page 345 and 346:

    Chapter 26: Utilities 345 Template

  • Page 347 and 348:

    Chapter 26: Utilities 347 Doctrine_

  • Page 349 and 350:

    Chapter 26: Utilities 349 // Possib

  • Page 351 and 352:

    Chapter 26: Utilities 351 // Genera

  • Page 353 and 354:

    Chapter 26: Utilities 353 You can r

  • Page 355 and 356:

    Chapter 26: Utilities 355 The above

  • Page 357 and 358:

    Chapter 27: Unit Testing 357 $ cd /

  • Page 359 and 360:

    Chapter 27: Unit Testing 359 } // .

  • Page 361 and 362:

    Chapter 27: Unit Testing 361 Common

  • Page 363 and 364:

    Chapter 28: Improving Performance 3

  • Page 365 and 366:

    Chapter 28: Improving Performance 3

  • Page 367 and 368:

    Chapter 28: Improving Performance 3

  • Page 369 and 370:

    Chapter 29: Technology 369 Doctrine

  • Page 371 and 372:

    Chapter 29: Technology 371 • Neve

  • Page 373 and 374:

    Chapter 30: Exceptions and Warnings

  • Page 375 and 376:

    Chapter 31: Real World Examples 375

  • Page 377 and 378:

    Chapter 31: Real World Examples 377

  • Page 379 and 380:

    Chapter 31: Real World Examples 379

  • Page 381 and 382:

    Chapter 32: Coding Standards 381 Ch

  • Page 383 and 384:

    Chapter 32: Coding Standards 383 Fu

  • Page 385 and 386:

    Chapter 32: Coding Standards 385 $s

  • Page 387 and 388:

    Chapter 32: Coding Standards 387 Fu

SQL Server Team-based Development - Red Gate Software
Tools for sequence data mining: HMMER (part 2)
C2090-610 Real Exam BrainDumps Updated 2016
Presentation Download Available - Click Here - CA ERwin
Performance Tuning with SQL Server Dynamic Management Views
Up-to-Date C_HANAIMP142 Exam BrainDumps
PM - 8 - Alan McMorran_Model Driven Transformation ... - CIMug
The Omedian Technical Architecture - Red Gate Software