Changeset 3461 for trunk/lib/Doctrine.php
- Timestamp:
- 01/06/08 09:47:00 (12 months ago)
- Files:
-
- 1 modified
-
trunk/lib/Doctrine.php (modified) (43 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/lib/Doctrine.php
r3460 r3461 34 34 final class Doctrine 35 35 { 36 /** 37 * DEPRECATED ATTRIBUTE CONSTANT NAMES AND VALUES 38 * 39 * REMOVE BEFORE 1.0 40 * These were deprecated either because they are not used anymore or because they didn't follow the naming pattern required 41 * by Doctrine attributes 42 * 43 * Attribute names must be ATTR_{ATTR_NAME} and the values must be {ATTR_NAME}_NAME_OF_VALUE 44 */ 45 const LIMIT_ROWS = 1; 46 const LIMIT_RECORDS = 2; 47 const FETCH_IMMEDIATE = 0; 48 const FETCH_BATCH = 1; 49 const FETCH_OFFSET = 3; 50 const FETCH_LAZY_OFFSET = 4; 51 const FETCH_VHOLDER = 1; 52 const FETCH_RECORD = 2; 53 const FETCH_ARRAY = 3; 54 36 55 /** 37 56 * VERSION … … 82 101 * PDO derived constants 83 102 */ 84 const CASE_ LOWER = 2;85 const CASE_ NATURAL = 0;86 const CASE_ UPPER = 1;87 const CURSOR_FWDONLY = 0;88 const CURSOR_SCROLL = 1;89 const ERRMODE_EXCEPTION = 2;90 const ERRMODE_SILENT = 0;91 const ERRMODE_WARNING = 1;92 const FETCH_ASSOC = 2;93 const FETCH_BOTH = 4;94 const FETCH_BOUND = 6;95 const FETCH_CLASS = 8;96 const FETCH_CLASSTYPE = 262144;97 const FETCH_COLUMN = 7;98 const FETCH_FUNC = 10;99 const FETCH_GROUP = 65536;100 const FETCH_INTO = 9;101 const FETCH_LAZY = 1;102 const FETCH_NAMED = 11;103 const FETCH_NUM = 3;104 const FETCH_OBJ = 5;105 const FETCH_ORI_ABS = 4;106 const FETCH_ORI_FIRST = 2;107 const FETCH_ORI_LAST = 3;108 const FETCH_ORI_NEXT = 0;109 const FETCH_ORI_PRIOR = 1;110 const FETCH_ORI_REL = 5;111 const FETCH_SERIALIZE = 524288;112 const FETCH_UNIQUE = 196608;113 const NULL_EMPTY_STRING = 1;114 const NULL_NATURAL = 0;115 const NULL_TO_STRING = NULL;116 const PARAM_BOOL = 5;117 const PARAM_INPUT_OUTPUT = -2147483648;118 const PARAM_INT = 1;119 const PARAM_LOB = 3;120 const PARAM_NULL = 0;121 const PARAM_STMT = 4;122 const PARAM_STR = 2;103 const CASE_NATURAL = 0; 104 const CASE_UPPER = 1; 105 const CASE_LOWER = 2; 106 const CURSOR_FWDONLY = 0; 107 const CURSOR_SCROLL = 1; 108 const ERRMODE_EXCEPTION = 2; 109 const ERRMODE_SILENT = 0; 110 const ERRMODE_WARNING = 1; 111 const FETCH_ASSOC = 2; 112 const FETCH_BOTH = 4; 113 const FETCH_BOUND = 6; 114 const FETCH_CLASS = 8; 115 const FETCH_CLASSTYPE = 262144; 116 const FETCH_COLUMN = 7; 117 const FETCH_FUNC = 10; 118 const FETCH_GROUP = 65536; 119 const FETCH_INTO = 9; 120 const FETCH_LAZY = 1; 121 const FETCH_NAMED = 11; 122 const FETCH_NUM = 3; 123 const FETCH_OBJ = 5; 124 const FETCH_ORI_ABS = 4; 125 const FETCH_ORI_FIRST = 2; 126 const FETCH_ORI_LAST = 3; 127 const FETCH_ORI_NEXT = 0; 128 const FETCH_ORI_PRIOR = 1; 129 const FETCH_ORI_REL = 5; 130 const FETCH_SERIALIZE = 524288; 131 const FETCH_UNIQUE = 196608; 132 const NULL_EMPTY_STRING = 1; 133 const NULL_NATURAL = 0; 134 const NULL_TO_STRING = NULL; 135 const PARAM_BOOL = 5; 136 const PARAM_INPUT_OUTPUT = -2147483648; 137 const PARAM_INT = 1; 138 const PARAM_LOB = 3; 139 const PARAM_NULL = 0; 140 const PARAM_STMT = 4; 141 const PARAM_STR = 2; 123 142 124 143 /** … … 152 171 * Doctrine constants 153 172 */ 154 const ATTR_LISTENER = 100; 155 const ATTR_QUOTE_IDENTIFIER = 101; 156 const ATTR_FIELD_CASE = 102; 157 const ATTR_IDXNAME_FORMAT = 103; 158 const ATTR_SEQNAME_FORMAT = 104; 159 const ATTR_SEQCOL_NAME = 105; 160 const ATTR_CMPNAME_FORMAT = 118; 161 const ATTR_DBNAME_FORMAT = 117; 162 const ATTR_TBLCLASS_FORMAT = 119; 163 const ATTR_TBLNAME_FORMAT = 120; 164 const ATTR_EXPORT = 140; 165 const ATTR_DECIMAL_PLACES = 141; 166 167 const ATTR_PORTABILITY = 106; 168 const ATTR_VALIDATE = 107; 169 const ATTR_COLL_KEY = 108; 170 const ATTR_QUERY_LIMIT = 109; 171 const ATTR_DEFAULT_TABLE_TYPE = 112; 172 const ATTR_DEF_TEXT_LENGTH = 113; 173 const ATTR_DEF_VARCHAR_LENGTH = 114; 174 const ATTR_DEF_TABLESPACE = 115; 175 const ATTR_EMULATE_DATABASE = 116; 176 const ATTR_USE_NATIVE_ENUM = 117; 177 const ATTR_DEFAULT_SEQUENCE = 133; 178 173 const ATTR_LISTENER = 100; 174 const ATTR_QUOTE_IDENTIFIER = 101; 175 const ATTR_FIELD_CASE = 102; 176 const ATTR_IDXNAME_FORMAT = 103; 177 const ATTR_SEQNAME_FORMAT = 104; 178 const ATTR_SEQCOL_NAME = 105; 179 const ATTR_CMPNAME_FORMAT = 118; 180 const ATTR_DBNAME_FORMAT = 117; 181 const ATTR_TBLCLASS_FORMAT = 119; 182 const ATTR_TBLNAME_FORMAT = 120; 183 const ATTR_EXPORT = 140; 184 const ATTR_DECIMAL_PLACES = 141; 185 const ATTR_PORTABILITY = 106; 186 const ATTR_VALIDATE = 107; 187 const ATTR_COLL_KEY = 108; 188 const ATTR_QUERY_LIMIT = 109; 189 const ATTR_DEFAULT_TABLE_TYPE = 112; 190 const ATTR_DEF_TEXT_LENGTH = 113; 191 const ATTR_DEF_VARCHAR_LENGTH = 114; 192 const ATTR_DEF_TABLESPACE = 115; 193 const ATTR_EMULATE_DATABASE = 116; 194 const ATTR_USE_NATIVE_ENUM = 117; 195 const ATTR_DEFAULT_SEQUENCE = 133; 179 196 const ATTR_FETCHMODE = 118; 180 197 const ATTR_NAME_PREFIX = 121; 181 198 const ATTR_CREATE_TABLES = 122; 182 199 const ATTR_COLL_LIMIT = 123; 183 184 200 const ATTR_CACHE = 150; 185 201 const ATTR_RESULT_CACHE = 150; … … 194 210 const ATTR_AUTOLOAD_TABLE_CLASSES = 160; 195 211 const ATTR_MODEL_LOADING = 161; 196 197 198 /** 199 * INHERITANCE TYPE CONSTANTS. 200 */ 201 202 /** 203 * Constant for Single Table Inheritance. 204 * 205 * @see http://martinfowler.com/eaaCatalog/singleTableInheritance.html 206 */ 207 const INHERITANCETYPE_SINGLE_TABLE = 1; 208 209 /** 210 * Constant for Class Table Inheritance. 211 * 212 * @see http://martinfowler.com/eaaCatalog/classTableInheritance.html 213 */ 214 const INHERITANCETYPE_JOINED = 2; 215 216 /** 217 * Constant for Concrete Table Inheritance. 218 * 219 * @see http://martinfowler.com/eaaCatalog/concreteTableInheritance.html 220 */ 221 const INHERITANCETYPE_TABLE_PER_CLASS = 3; 222 223 224 /** 225 * LIMIT CONSTANTS 226 */ 227 228 /** 212 const ATTR_LOCK = 162; 213 const ATTR_HYDRATE = 163; 214 const ATTR_IDENTIFIER = 164; 215 216 /** 217 * QUERY_LIMIT CONSTANTS 218 */ 219 220 /** 221 * QUERY_LIMIT_ROWS 222 * 229 223 * constant for row limiting 230 */ 231 const LIMIT_ROWS = 1; 224 * 225 * @see self::ATTR_QUERY_LIMIT 226 */ 227 const QUERY_LIMIT_ROWS = 1; 232 228 233 229 /** 234 230 * constant for record limiting 235 */ 236 const LIMIT_RECORDS = 2; 231 * @see self::ATTR_QUERY_LIMIT 232 */ 233 const QUERY_LIMIT_RECORDS = 2; 237 234 238 235 /** … … 243 240 * IMMEDIATE FETCHING 244 241 * mode for immediate fetching 245 */ 246 const FETCH_IMMEDIATE = 0; 247 248 /** 249 * BATCH FETCHING 242 * @see self::ATTR_FETCHMODE 243 */ 244 const FETCHMODE_IMMEDIATE = 0; 245 246 /** 247 * FETCHMODE_BATCH 248 * 250 249 * mode for batch fetching 251 */ 252 const FETCH_BATCH = 1; 253 254 /** 255 * LAZY FETCHING 250 * 251 * @see self::ATTR_FETCHMODE 252 */ 253 const FETCHMODE_BATCH = 1; 254 255 /** 256 * FETCHMODE_OFFSET 257 * 256 258 * mode for offset fetching 257 */ 258 const FETCH_OFFSET = 3; 259 260 /** 261 * LAZY OFFSET FETCHING 259 * 260 * @see self::ATTR_FETCHMODE 261 */ 262 const FETCHMODE_OFFSET = 3; 263 264 /** 265 * FETCHMODE_LAZY_OFFSET 266 * 262 267 * mode for lazy offset fetching 263 */ 264 const FETCH_LAZY_OFFSET = 4; 265 266 /** 267 * FETCH CONSTANTS 268 */ 269 270 271 /** 272 * FETCH VALUEHOLDER 273 */ 274 const FETCH_VHOLDER = 1; 275 276 /** 277 * FETCH RECORD 268 * 269 * @see self::ATTR_FETCHMODE 270 */ 271 const FETCHMODE_LAZY_OFFSET = 4; 272 273 /** 274 * FETCHMODE CONSTANTS 275 */ 276 277 /** 278 * FETCHMODE_VHOLDER 279 * 280 * @see self::ATTR_FETCHMODE 281 */ 282 const FETCHMODE_VHOLDER = 1; 283 284 /** 285 * FETCHMODE_RECORD 278 286 * 279 287 * Specifies that the fetch method shall return Doctrine_Record … … 281 289 * 282 290 * This is the default fetchmode. 283 */ 284 const FETCH_RECORD = 2; 285 286 /** 287 * FETCH ARRAY 288 */ 289 const FETCH_ARRAY = 3; 291 * 292 * @see self::ATTR_FETCHMODE 293 */ 294 const FETCHMODE_RECORD = 2; 295 296 /** 297 * FETCHMODE_ARRAY 298 * 299 * @see self::ATTR_FETCHMODE 300 */ 301 const FETCHMODE_ARRAY = 3; 290 302 291 303 /** … … 294 306 295 307 /** 308 * PORTABILITY_NONE 309 * 296 310 * Portability: turn off all portability features. 311 * 297 312 * @see self::ATTR_PORTABILITY 298 313 */ … … 300 315 301 316 /** 317 * PORTABILITY_FIX_CASE 318 * 302 319 * Portability: convert names of tables and fields to case defined in the 303 320 * "field_case" option when using the query*(), fetch*() methods. 321 * 304 322 * @see self::ATTR_PORTABILITY 305 323 */ … … 307 325 308 326 /** 327 * PORTABILITY_RTRIM 328 * 309 329 * Portability: right trim the data output by query*() and fetch*(). 330 * 310 331 * @see self::ATTR_PORTABILITY 311 332 */ … … 313 334 314 335 /** 336 * PORTABILITY_DELETE_COUNT 337 * 315 338 * Portability: force reporting the number of rows deleted. 339 * 316 340 * @see self::ATTR_PORTABILITY 317 341 */ … … 319 343 320 344 /** 345 * PORTABILITY_EMPTY_TO_NULL 346 * 321 347 * Portability: convert empty values to null strings in data output by 322 348 * query*() and fetch*(). 349 * 323 350 * @see self::ATTR_PORTABILITY 324 351 */ … … 326 353 327 354 /** 355 * PORTABILITY_FIX_ASSOC_FIELD_NAMES 356 * 328 357 * Portability: removes database/table qualifiers from associative indexes 358 * 329 359 * @see self::ATTR_PORTABILITY 330 360 */ … … 332 362 333 363 /** 364 * PORTABILITY_EXPR 365 * 334 366 * Portability: makes Doctrine_Expression throw exception for unportable RDBMS expressions 367 * 335 368 * @see self::ATTR_PORTABILITY 336 369 */ … … 338 371 339 372 /** 373 * PORTABILITY_ALL 374 * 340 375 * Portability: turn on all portability features. 376 * 341 377 * @see self::ATTR_PORTABILITY 342 378 */ … … 344 380 345 381 /** 346 * LOCKMODE CONSTANTS 347 */ 348 349 /** 382 * LOCK CONSTANTS 383 */ 384 385 /** 386 * LOCK_OPTIMISTIC 387 * 350 388 * mode for optimistic locking 389 * @see self::ATTR_LOCK 351 390 */ 352 391 const LOCK_OPTIMISTIC = 0; 353 392 354 393 /** 394 * LOCK_PESSIMISTIC 395 * 355 396 * mode for pessimistic locking 397 * 398 * @see self::ATTR_LOCK 356 399 */ 357 400 const LOCK_PESSIMISTIC = 1; … … 363 406 /** 364 407 * EXPORT_NONE 408 * 409 * @see self::ATTR_EXPORT 365 410 */ 366 411 const EXPORT_NONE = 0; … … 368 413 /** 369 414 * EXPORT_TABLES 415 * 416 * @see self::ATTR_EXPORT 370 417 */ 371 418 const EXPORT_TABLES = 1; … … 373 420 /** 374 421 * EXPORT_CONSTRAINTS 422 * 423 * @see self::ATTR_EXPORT 375 424 */ 376 425 const EXPORT_CONSTRAINTS = 2; … … 378 427 /** 379 428 * EXPORT_PLUGINS 429 * 430 * @see self::ATTR_EXPORT 380 431 */ 381 432 const EXPORT_PLUGINS = 4; … … 383 434 /** 384 435 * EXPORT_ALL 436 * 437 * @see self::ATTR_EXPORT 385 438 */ 386 439 const EXPORT_ALL = 7; 387 440 388 441 /** 389 * HYDRATION CONSTANTS 442 * HYDRATE CONSTANTS 443 */ 444 445 /** 446 * HYDRATE_RECORD 447 * 448 * @see self::ATTR_HYDRATE 390 449 */ 391 450 const HYDRATE_RECORD = 2; … … 393 452 /** 394 453 * HYDRATE_ARRAY 454 * 455 * @see self::ATTR_HYDRATE 395 456 */ 396 457 const HYDRATE_ARRAY = 3; … … 398 459 /** 399 460 * HYDRATE_NONE 461 * 462 * @see self::ATTR_HYDRATE 400 463 */ 401 464 const HYDRATE_NONE = 4; 402 465 403 466 /** 404 * VALIDATION CONSTANTS 467 * VALIDATE CONSTANTS 468 * 469 * @see self::ATTR_VALIDATE 405 470 */ 406 471 const VALIDATE_NONE = 0; … … 408 473 /** 409 474 * VALIDATE_LENGTHS 475 * 476 * @see self::ATTR_VALIDATE 410 477 */ 411 478 const VALIDATE_LENGTHS = 1; … … 413 480 /** 414 481 * VALIDATE_TYPES 482 * 483 * @see self::ATTR_VALIDATE 415 484 */ 416 485 const VALIDATE_TYPES = 2; … … 418 487 /** 419 488 * VALIDATE_CONSTRAINTS 489 * 490 * @see self::ATTR_VALIDATE 420 491 */ 421 492 const VALIDATE_CONSTRAINTS = 4; … … 423 494 /** 424 495 * VALIDATE_ALL 496 * 497 * @see self::ATTR_VALIDATE 425 498 */ 426 499 const VALIDATE_ALL = 7; … … 430 503 * 431 504 * constant for auto_increment identifier 505 * 506 * @see self::ATTR_IDENTIFIER 432 507 */ 433 508 const IDENTIFIER_AUTOINC = 1; … … 437 512 * 438 513 * constant for sequence identifier 514 * 515 * @see self::ATTR_IDENTIFIER 439 516 */ 440 517 const IDENTIFIER_SEQUENCE = 2; … … 444 521 * 445 522 * constant for normal identifier 523 * 524 * @see self::ATTR_IDENTIFIER 446 525 */ 447 526 const IDENTIFIER_NATURAL = 3; … … 451 530 * 452 531 * constant for composite identifier 532 * @see self::ATTR_IDENTIFIER 453 533 */ 454 534 const IDENTIFIER_COMPOSITE = 4; … … 459 539 * Constant for agressive model loading 460 540 * Will require_once() all found model files 541 * 542 * @see self::ATTR_MODEL_LOADING 461 543 */ 462 544 const MODEL_LOADING_AGGRESSIVE = 1; … … 468 550 * Will not require_once() found model files inititally instead it will build an array 469 551 * and reference it in autoload() when a class is needed it will require_once() it 552 * 553 * @see self::ATTR_MODEL_LOADING 470 554 */ 471 555 const MODEL_LOADING_CONSERVATIVE= 2; 472 556 473 557 /** 558 * INHERITANCE TYPE CONSTANTS. 559 */ 560 561 /** 562 * Constant for Single Table Inheritance. 563 * 564 * @see http://martinfowler.com/eaaCatalog/singleTableInheritance.html 565 */ 566 const INHERITANCETYPE_SINGLE_TABLE = 1; 567 568 /** 569 * Constant for Class Table Inheritance. 570 * 571 * @see http://martinfowler.com/eaaCatalog/classTableInheritance.html 572 */ 573 const INHERITANCETYPE_JOINED = 2; 574 575 /** 576 * Constant for Concrete Table Inheritance. 577 * 578 * @see http://martinfowler.com/eaaCatalog/concreteTableInheritance.html 579 */ 580 const INHERITANCETYPE_TABLE_PER_CLASS = 3; 581 582 583 /** 474 584 * Path 475 585 * … … 479 589 480 590 /** 481 * Debug482 *483 * Bool true/false484 *485 * @var boolean $_debug486 */487 private static $_debug = false;488 489 /**490 591 * _loadedModelFiles 491 592 * … … 497 598 498 599 /** 499 * _validators500 *501 * Array of all the loaded validators502 * @var array503 */504 private static $_validators = array();505 506 /**507 600 * __construct 508 601 * … … 514 607 throw new Doctrine_Exception('Doctrine is static class. No instances can be created.'); 515 608 } 516 517 /** 518 * debug 519 * 520 * @param string $bool 521 * @return void 522 */ 523 public static function debug($bool = null) 524 { 525 if ($bool !== null) { 526 self::$_debug = (bool) $bool; 527 } 528 529 return self::$_debug; 530 } 531 609 532 610 /** 533 611 * getPath … … 567 645 if (end($e) === 'php' && strpos($file->getFileName(), '.inc') === false) { 568 646 569 if ($manager->getAttribute(Doctrine::ATTR_MODEL_LOADING) == Doctrine::MODEL_LOADING_CONSERVATIVE) {647 if ($manager->getAttribute(Doctrine::ATTR_MODEL_LOADING) === Doctrine::MODEL_LOADING_CONSERVATIVE) { 570 648 self::$_loadedModelFiles[$e[0]] = $file->getPathName(); 571 649 $loadedModels[] = $e[0]; … … 601 679 * If you do not specify $classes it will return all of the currently loaded Doctrine_Records 602 680 * 603 * @param classes Array of classes to filter through, otherwise uses get_declared_classes()604 681 * @return array $loadedModels 605 682 */ 606 public static function getLoadedModels($classes = null) 607 { 608 if ($classes === null) { 609 $classes = get_declared_classes(); 610 $classes = array_merge($classes, array_keys(self::$_loadedModelFiles)); 611 } 683 public static function getLoadedModels() 684 { 685 $classes = get_declared_classes(); 686 $classes = array_merge($classes, array_keys(self::$_loadedModelFiles)); 612 687