Changeset 3458 for trunk/lib/Doctrine.php
- Timestamp:
- 01/05/08 19:14:35 (12 months ago)
- Files:
-
- 1 modified
-
trunk/lib/Doctrine.php (modified) (44 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/lib/Doctrine.php
r3456 r3458 34 34 final class Doctrine 35 35 { 36 /**37 * DEPRECATED ATTRIBUTE CONSTANT NAMES AND VALUES38 *39 * REMOVE BEFORE 1.040 * These were deprecated either because they are not used anymore or because they didn't follow the naming pattern required41 * by Doctrine attributes42 *43 * Attribute names must be ATTR_{ATTR_NAME} and the values must be {ATTR_NAME}_NAME_OF_VALUE44 */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 55 36 /** 56 37 * VERSION … … 101 82 * PDO derived constants 102 83 */ 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;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; 142 123 143 124 /** … … 171 152 * Doctrine constants 172 153 */ 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; 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 196 179 const ATTR_FETCHMODE = 118; 197 180 const ATTR_NAME_PREFIX = 121; 198 181 const ATTR_CREATE_TABLES = 122; 199 182 const ATTR_COLL_LIMIT = 123; 183 200 184 const ATTR_CACHE = 150; 201 185 const ATTR_RESULT_CACHE = 150; … … 210 194 const ATTR_AUTOLOAD_TABLE_CLASSES = 160; 211 195 const ATTR_MODEL_LOADING = 161; 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 * 196 197 /** 198 * LIMIT CONSTANTS 199 */ 200 201 /** 223 202 * constant for row limiting 224 * 225 * @see self::ATTR_QUERY_LIMIT 226 */ 227 const QUERY_LIMIT_ROWS = 1; 203 */ 204 const LIMIT_ROWS = 1; 228 205 229 206 /** 230 207 * constant for record limiting 231 * @see self::ATTR_QUERY_LIMIT 232 */ 233 const QUERY_LIMIT_RECORDS = 2; 208 */ 209 const LIMIT_RECORDS = 2; 234 210 235 211 /** … … 240 216 * IMMEDIATE FETCHING 241 217 * mode for immediate fetching 242 * @see self::ATTR_FETCHMODE 243 */ 244 const FETCHMODE_IMMEDIATE = 0; 245 246 /** 247 * FETCHMODE_BATCH 248 * 218 */ 219 const FETCH_IMMEDIATE = 0; 220 221 /** 222 * BATCH FETCHING 249 223 * mode for batch fetching 250 * 251 * @see self::ATTR_FETCHMODE 252 */ 253 const FETCHMODE_BATCH = 1; 254 255 /** 256 * FETCHMODE_OFFSET 257 * 224 */ 225 const FETCH_BATCH = 1; 226 227 /** 228 * LAZY FETCHING 258 229 * mode for offset fetching 259 * 260 * @see self::ATTR_FETCHMODE 261 */ 262 const FETCHMODE_OFFSET = 3; 263 264 /** 265 * FETCHMODE_LAZY_OFFSET 266 * 230 */ 231 const FETCH_OFFSET = 3; 232 233 /** 234 * LAZY OFFSET FETCHING 267 235 * mode for lazy offset fetching 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 236 */ 237 const FETCH_LAZY_OFFSET = 4; 238 239 /** 240 * FETCH CONSTANTS 241 */ 242 243 244 /** 245 * FETCH VALUEHOLDER 246 */ 247 const FETCH_VHOLDER = 1; 248 249 /** 250 * FETCH RECORD 286 251 * 287 252 * Specifies that the fetch method shall return Doctrine_Record … … 289 254 * 290 255 * This is the default fetchmode. 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; 256 */ 257 const FETCH_RECORD = 2; 258 259 /** 260 * FETCH ARRAY 261 */ 262 const FETCH_ARRAY = 3; 302 263 303 264 /** … … 306 267 307 268 /** 308 * PORTABILITY_NONE309 *310 269 * Portability: turn off all portability features. 311 *312 270 * @see self::ATTR_PORTABILITY 313 271 */ … … 315 273 316 274 /** 317 * PORTABILITY_FIX_CASE318 *319 275 * Portability: convert names of tables and fields to case defined in the 320 276 * "field_case" option when using the query*(), fetch*() methods. 321 *322 277 * @see self::ATTR_PORTABILITY 323 278 */ … … 325 280 326 281 /** 327 * PORTABILITY_RTRIM328 *329 282 * Portability: right trim the data output by query*() and fetch*(). 330 *331 283 * @see self::ATTR_PORTABILITY 332 284 */ … … 334 286 335 287 /** 336 * PORTABILITY_DELETE_COUNT337 *338 288 * Portability: force reporting the number of rows deleted. 339 *340 289 * @see self::ATTR_PORTABILITY 341 290 */ … … 343 292 344 293 /** 345 * PORTABILITY_EMPTY_TO_NULL346 *347 294 * Portability: convert empty values to null strings in data output by 348 295 * query*() and fetch*(). 349 *350 296 * @see self::ATTR_PORTABILITY 351 297 */ … … 353 299 354 300 /** 355 * PORTABILITY_FIX_ASSOC_FIELD_NAMES356 *357 301 * Portability: removes database/table qualifiers from associative indexes 358 *359 302 * @see self::ATTR_PORTABILITY 360 303 */ … … 362 305 363 306 /** 364 * PORTABILITY_EXPR365 *366 307 * Portability: makes Doctrine_Expression throw exception for unportable RDBMS expressions 367 *368 308 * @see self::ATTR_PORTABILITY 369 309 */ … … 371 311 372 312 /** 373 * PORTABILITY_ALL374 *375 313 * Portability: turn on all portability features. 376 *377 314 * @see self::ATTR_PORTABILITY 378 315 */ … … 380 317 381 318 /** 382 * LOCK CONSTANTS 383 */ 384 385 /** 386 * LOCK_OPTIMISTIC 387 * 319 * LOCKMODE CONSTANTS 320 */ 321 322 /** 388 323 * mode for optimistic locking 389 * @see self::ATTR_LOCK390 324 */ 391 325 const LOCK_OPTIMISTIC = 0; 392 326 393 327 /** 394 * LOCK_PESSIMISTIC395 *396 328 * mode for pessimistic locking 397 *398 * @see self::ATTR_LOCK399 329 */ 400 330 const LOCK_PESSIMISTIC = 1; … … 406 336 /** 407 337 * EXPORT_NONE 408 *409 * @see self::ATTR_EXPORT410 338 */ 411 339 const EXPORT_NONE = 0; … … 413 341 /** 414 342 * EXPORT_TABLES 415 *416 * @see self::ATTR_EXPORT417 343 */ 418 344 const EXPORT_TABLES = 1; … … 420 346 /** 421 347 * EXPORT_CONSTRAINTS 422 *423 * @see self::ATTR_EXPORT424 348 */ 425 349 const EXPORT_CONSTRAINTS = 2; … … 427 351 /** 428 352 * EXPORT_PLUGINS 429 *430 * @see self::ATTR_EXPORT431 353 */ 432 354 const EXPORT_PLUGINS = 4; … … 434 356 /** 435 357 * EXPORT_ALL 436 *437 * @see self::ATTR_EXPORT438 358 */ 439 359 const EXPORT_ALL = 7; 440 360 441 361 /** 442 * HYDRATE CONSTANTS 443 */ 444 445 /** 446 * HYDRATE_RECORD 447 * 448 * @see self::ATTR_HYDRATE 362 * HYDRATION CONSTANTS 449 363 */ 450 364 const HYDRATE_RECORD = 2; … … 452 366 /** 453 367 * HYDRATE_ARRAY 454 *455 * @see self::ATTR_HYDRATE456 368 */ 457 369 const HYDRATE_ARRAY = 3; … … 459 371 /** 460 372 * HYDRATE_NONE 461 *462 * @see self::ATTR_HYDRATE463 373 */ 464 374 const HYDRATE_NONE = 4; 465 375 466 376 /** 467 * VALIDATE CONSTANTS 468 * 469 * @see self::ATTR_VALIDATE 377 * VALIDATION CONSTANTS 470 378 */ 471 379 const VALIDATE_NONE = 0; … … 473 381 /** 474 382 * VALIDATE_LENGTHS 475 *476 * @see self::ATTR_VALIDATE477 383 */ 478 384 const VALIDATE_LENGTHS = 1; … … 480 386 /** 481 387 * VALIDATE_TYPES 482 *483 * @see self::ATTR_VALIDATE484 388 */ 485 389 const VALIDATE_TYPES = 2; … … 487 391 /** 488 392 * VALIDATE_CONSTRAINTS 489 *490 * @see self::ATTR_VALIDATE491 393 */ 492 394 const VALIDATE_CONSTRAINTS = 4; … … 494 396 /** 495 397 * VALIDATE_ALL 496 *497 * @see self::ATTR_VALIDATE498 398 */ 499 399 const VALIDATE_ALL = 7; … … 503 403 * 504 404 * constant for auto_increment identifier 505 *506 * @see self::ATTR_IDENTIFIER507 405 */ 508 406 const IDENTIFIER_AUTOINC = 1; … … 512 410 * 513 411 * constant for sequence identifier 514 *515 * @see self::ATTR_IDENTIFIER516 412 */ 517 413 const IDENTIFIER_SEQUENCE = 2; … … 521 417 * 522 418 * constant for normal identifier 523 *524 * @see self::ATTR_IDENTIFIER525 419 */ 526 420 const IDENTIFIER_NATURAL = 3; … … 530 424 * 531 425 * constant for composite identifier 532 * @see self::ATTR_IDENTIFIER533 426 */ 534 427 const IDENTIFIER_COMPOSITE = 4; … … 539 432 * Constant for agressive model loading 540 433 * Will require_once() all found model files 541 *542 * @see self::ATTR_MODEL_LOADING543 434 */ 544 435 const MODEL_LOADING_AGGRESSIVE = 1; … … 550 441 * Will not require_once() found model files inititally instead it will build an array 551 442 * and reference it in autoload() when a class is needed it will require_once() it 552 *553 * @see self::ATTR_MODEL_LOADING554 443 */ 555 444 const MODEL_LOADING_CONSERVATIVE= 2; 556 445 557 446 /** 558 447 * Path … … 563 452 564 453 /** 454 * Debug 455 * 456 * Bool true/false 457 * 458 * @var boolean $_debug 459 */ 460 private static $_debug = false; 461 462 /** 565 463 * _loadedModelFiles 566 464 * … … 572 470 573 471 /** 472 * _validators 473 * 474 * Array of all the loaded validators 475 * @var array 476 */ 477 private static $_validators = array(); 478 479 /** 574 480 * __construct 575 481 * … … 581 487 throw new Doctrine_Exception('Doctrine is static class. No instances can be created.'); 582 488 } 583 489 490 /** 491 * debug 492 * 493 * @param string $bool 494 * @return void 495 */ 496 public static function debug($bool = null) 497 { 498 if ($bool !== null) { 499 self::$_debug = (bool) $bool; 500 } 501 502 return self::$_debug; 503 } 504 584 505 /** 585 506 * getPath … … 619 540 if (end($e) === 'php' && strpos($file->getFileName(), '.inc') === false) { 620 541 621 if ($manager->getAttribute(Doctrine::ATTR_MODEL_LOADING) == =Doctrine::MODEL_LOADING_CONSERVATIVE) {542 if ($manager->getAttribute(Doctrine::ATTR_MODEL_LOADING) == Doctrine::MODEL_LOADING_CONSERVATIVE) { 622 543 self::$_loadedModelFiles[$e[0]] = $file->getPathName(); 623 544 $loadedModels[] = $e[0]; … … 653 574 * If you do not specify $classes it will return all of the currently loaded Doctrine_Records 654 575 * 576 * @param classes Array of classes to filter through, otherwise uses get_declared_classes() 655 577 * @return array $loadedModels 656 578 */ 657 public static function getLoadedModels() 658 { 659 $classes = get_declared_classes(); 660 $classes = array_merge($classes, array_keys(self::$_loadedModelFiles)); 579 public static function getLoadedModels($classes = null) 580 { 581 if ($classes === null) { 582 $classes = get_declared_classes(); 583 $classes = array_merge($classes, array_keys(self::$_loadedModelFiles)); 584 } 661 585 662 586 return self::filterInvalidModels($classes); … … 768 692 public static function generateYamlFromDb($yamlPath) 769 693 { 770 $directory = sys_get_temp_dir() . DIRECTORY_SEPARATOR . 'tmp_doctrine_models';694 $directory = '/tmp/tmp_doctrine_models'; 771 695 772 696 Doctrine::generateModelsFromDb($directory); … … 938 862 939 863 try { 940 $connection->export->dropDatabase($ connection->getDatabaseName());864 $connection->export->dropDatabase($name); 941 865 942 866 $results[$name] = true; … … 1058 982 1059 983 /** 984 * fileFinder 985 * 986 * @param string $type 987 * @return void 988 */ 989 public static function fileFinder($type) 990 { 991 return Doctrine_FileFinder::type($type); 992 } 993 994 /** 995 * compile 996 * 997 * method for making a single file of most used doctrine runtime components 998 * including the compiled file instead of multiple files (in worst 999 * cases dozens of files) can improve performance by an order of magnitude 1000 * 1001 * @param string $target 1002 * @param array $includedDrivers 1003 * @throws Doctrine_Exception 1004 * @return void 1005 */ 1006 public static function compile($target = null, $includedDrivers = array()) 1007 { 1008 &n