Changeset 3455 for trunk/lib/Doctrine.php
- Timestamp:
- 01/05/08 07:39:25 (12 months ago)
- Files:
-
- 1 modified
-
trunk/lib/Doctrine.php (modified) (40 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/lib/Doctrine.php
r3449 r3455 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 * LIMIT CONSTANTS 199 */ 200 201 /** 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 * 202 223 * constant for row limiting 203 */ 204 const LIMIT_ROWS = 1; 224 * 225 * @see self::ATTR_QUERY_LIMIT 226 */ 227 const QUERY_LIMIT_ROWS = 1; 205 228 206 229 /** 207 230 * constant for record limiting 208 */ 209 const LIMIT_RECORDS = 2; 231 * @see self::ATTR_QUERY_LIMIT 232 */ 233 const QUERY_LIMIT_RECORDS = 2; 210 234 211 235 /** … … 216 240 * IMMEDIATE FETCHING 217 241 * mode for immediate fetching 218 */ 219 const FETCH_IMMEDIATE = 0; 220 221 /** 222 * BATCH FETCHING 242 * @see self::ATTR_FETCHMODE 243 */ 244 const FETCHMODE_IMMEDIATE = 0; 245 246 /** 247 * FETCHMODE_BATCH 248 * 223 249 * mode for batch fetching 224 */ 225 const FETCH_BATCH = 1; 226 227 /** 228 * LAZY FETCHING 250 * 251 * @see self::ATTR_FETCHMODE 252 */ 253 const FETCHMODE_BATCH = 1; 254 255 /** 256 * FETCHMODE_OFFSET 257 * 229 258 * mode for offset fetching 230 */ 231 const FETCH_OFFSET = 3; 232 233 /** 234 * LAZY OFFSET FETCHING 259 * 260 * @see self::ATTR_FETCHMODE 261 */ 262 const FETCHMODE_OFFSET = 3; 263 264 /** 265 * FETCHMODE_LAZY_OFFSET 266 * 235 267 * mode for lazy offset fetching 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 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 251 286 * 252 287 * Specifies that the fetch method shall return Doctrine_Record … … 254 289 * 255 290 * This is the default fetchmode. 256 */ 257 const FETCH_RECORD = 2; 258 259 /** 260 * FETCH ARRAY 261 */ 262 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; 263 302 264 303 /** … … 267 306 268 307 /** 308 * PORTABILITY_NONE 309 * 269 310 * Portability: turn off all portability features. 311 * 270 312 * @see self::ATTR_PORTABILITY 271 313 */ … … 273 315 274 316 /** 317 * PORTABILITY_FIX_CASE 318 * 275 319 * Portability: convert names of tables and fields to case defined in the 276 320 * "field_case" option when using the query*(), fetch*() methods. 321 * 277 322 * @see self::ATTR_PORTABILITY 278 323 */ … … 280 325 281 326 /** 327 * PORTABILITY_RTRIM 328 * 282 329 * Portability: right trim the data output by query*() and fetch*(). 330 * 283 331 * @see self::ATTR_PORTABILITY 284 332 */ … … 286 334 287 335 /** 336 * PORTABILITY_DELETE_COUNT 337 * 288 338 * Portability: force reporting the number of rows deleted. 339 * 289 340 * @see self::ATTR_PORTABILITY 290 341 */ … … 292 343 293 344 /** 345 * PORTABILITY_EMPTY_TO_NULL 346 * 294 347 * Portability: convert empty values to null strings in data output by 295 348 * query*() and fetch*(). 349 * 296 350 * @see self::ATTR_PORTABILITY 297 351 */ … … 299 353 300 354 /** 355 * PORTABILITY_FIX_ASSOC_FIELD_NAMES 356 * 301 357 * Portability: removes database/table qualifiers from associative indexes 358 * 302 359 * @see self::ATTR_PORTABILITY 303 360 */ … … 305 362 306 363 /** 364 * PORTABILITY_EXPR 365 * 307 366 * Portability: makes Doctrine_Expression throw exception for unportable RDBMS expressions 367 * 308 368 * @see self::ATTR_PORTABILITY 309 369 */ … … 311 371 312 372 /** 373 * PORTABILITY_ALL 374 * 313 375 * Portability: turn on all portability features. 376 * 314 377 * @see self::ATTR_PORTABILITY 315 378 */ … … 317 380 318 381 /** 319 * LOCKMODE CONSTANTS 320 */ 321 322 /** 382 * LOCK CONSTANTS 383 */ 384 385 /** 386 * LOCK_OPTIMISTIC 387 * 323 388 * mode for optimistic locking 389 * @see self::ATTR_LOCK 324 390 */ 325 391 const LOCK_OPTIMISTIC = 0; 326 392 327 393 /** 394 * LOCK_PESSIMISTIC 395 * 328 396 * mode for pessimistic locking 397 * 398 * @see self::ATTR_LOCK 329 399 */ 330 400 const LOCK_PESSIMISTIC = 1; … … 336 406 /** 337 407 * EXPORT_NONE 408 * 409 * @see self::ATTR_EXPORT 338 410 */ 339 411 const EXPORT_NONE = 0; … … 341 413 /** 342 414 * EXPORT_TABLES 415 * 416 * @see self::ATTR_EXPORT 343 417 */ 344 418 const EXPORT_TABLES = 1; … … 346 420 /** 347 421 * EXPORT_CONSTRAINTS 422 * 423 * @see self::ATTR_EXPORT 348 424 */ 349 425 const EXPORT_CONSTRAINTS = 2; … … 351 427 /** 352 428 * EXPORT_PLUGINS 429 * 430 * @see self::ATTR_EXPORT 353 431 */ 354 432 const EXPORT_PLUGINS = 4; … … 356 434 /** 357 435 * EXPORT_ALL 436 * 437 * @see self::ATTR_EXPORT 358 438 */ 359 439 const EXPORT_ALL = 7; 360 440 361 441 /** 362 * HYDRATION CONSTANTS 442 * HYDRATE CONSTANTS 443 */ 444 445 /** 446 * HYDRATE_RECORD 447 * 448 * @see self::ATTR_HYDRATE 363 449 */ 364 450 const HYDRATE_RECORD = 2; … … 366 452 /** 367 453 * HYDRATE_ARRAY 454 * 455 * @see self::ATTR_HYDRATE 368 456 */ 369 457 const HYDRATE_ARRAY = 3; … … 371 459 /** 372 460 * HYDRATE_NONE 461 * 462 * @see self::ATTR_HYDRATE 373 463 */ 374 464 const HYDRATE_NONE = 4; 375 465 376 466 /** 377 * VALIDATION CONSTANTS 467 * VALIDATE CONSTANTS 468 * 469 * @see self::ATTR_VALIDATE 378 470 */ 379 471 const VALIDATE_NONE = 0; … … 381 473 /** 382 474 * VALIDATE_LENGTHS 475 * 476 * @see self::ATTR_VALIDATE 383 477 */ 384 478 const VALIDATE_LENGTHS = 1; … … 386 480 /** 387 481 * VALIDATE_TYPES 482 * 483 * @see self::ATTR_VALIDATE 388 484 */ 389 485 const VALIDATE_TYPES = 2; … … 391 487 /** 392 488 * VALIDATE_CONSTRAINTS 489 * 490 * @see self::ATTR_VALIDATE 393 491 */ 394 492 const VALIDATE_CONSTRAINTS = 4; … … 396 494 /** 397 495 * VALIDATE_ALL 496 * 497 * @see self::ATTR_VALIDATE 398 498 */ 399 499 const VALIDATE_ALL = 7; … … 403 503 * 404 504 * constant for auto_increment identifier 505 * 506 * @see self::ATTR_IDENTIFIER 405 507 */ 406 508 const IDENTIFIER_AUTOINC = 1; … … 410 512 * 411 513 * constant for sequence identifier 514 * 515 * @see self::ATTR_IDENTIFIER 412 516 */ 413 517 const IDENTIFIER_SEQUENCE = 2; … … 417 521 * 418 522 * constant for normal identifier 523 * 524 * @see self::ATTR_IDENTIFIER 419 525 */ 420 526 const IDENTIFIER_NATURAL = 3; … … 424 530 * 425 531 * constant for composite identifier 532 * @see self::ATTR_IDENTIFIER 426 533 */ 427 534 const IDENTIFIER_COMPOSITE = 4; … … 432 539 * Constant for agressive model loading 433 540 * Will require_once() all found model files 541 * 542 * @see self::ATTR_MODEL_LOADING 434 543 */ 435 544 const MODEL_LOADING_AGGRESSIVE = 1; … … 441 550 * Will not require_once() found model files inititally instead it will build an array 442 551 * and reference it in autoload() when a class is needed it will require_once() it 552 * 553 * @see self::ATTR_MODEL_LOADING 443 554 */ 444 555 const MODEL_LOADING_CONSERVATIVE= 2; 556 557 /** 558 * Path 559 * 560 * @var string $path doctrine root directory 561 */ 562 private static $_path; 563 564 /** 565 * _loadedModelFiles 566 * 567 * Array of all the loaded models and the path to each one for autoloading 568 * 569 * @var array 570 */ 571 private static $_loadedModelFiles = array(); 572 573 /** 574 * __construct 575 * 576 * @return void 577 * @throws Doctrine_Exception 578 */ 579 public function __construct() 580 { 581 throw new Doctrine_Exception('Doctrine is static class. No instances can be created.'); 582 } 445 583 446 /**447 * Path448 *449 * @var string $path doctrine root directory450 */451 private static $_path;452 453 /**454 * Debug455 *456 * Bool true/false457 *458 * @var boolean $_debug459 */460 private static $_debug = false;461 462 /**463 * _loadedModelFiles464 *465 * Array of all the loaded models and the path to each one for autoloading466 *467 * @var array468 */469 private static $_loadedModelFiles = array();470 471 /**472 * _validators473 *474 * Array of all the loaded validators475 * @var array476 */477 private static $_validators = array();478 479 /**480 * __construct481 *482 * @return void483 * @throws Doctrine_Exception484 */485 public function __construct()486 {487 throw new Doctrine_Exception('Doctrine is static class. No instances can be created.');488 }489 490 /**491 * debug492 *493 * @param string $bool494 * @return void495 */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 505 584 /** 506 585 * getPath … … 540 619 if (end($e) === 'php' && strpos($file->getFileName(), '.inc') === false) { 541 620 542 if ($manager->getAttribute(Doctrine::ATTR_MODEL_LOADING) == Doctrine::MODEL_LOADING_CONSERVATIVE) {621 if ($manager->getAttribute(Doctrine::ATTR_MODEL_LOADING) === Doctrine::MODEL_LOADING_CONSERVATIVE) { 543 622 self::$_loadedModelFiles[$e[0]] = $file->getPathName(); 544 623 $loadedModels[] = $e[0]; … … 574 653 * If you do not specify $classes it will return all of the currently loaded Doctrine_Records 575 654 * 576 * @param classes Array of classes to filter through, otherwise uses get_declared_classes()577 655 * @return array $loadedModels 578 656 */ 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 } 657 public static function getLoadedModels() 658 { 659 $classes = get_declared_classes(); 660 $classes = array_merge($classes, array_keys(self::$_loadedModelFiles)); 585 661 586 662 return self::filterInvalidModels($classes); … … 692 768 public static function generateYamlFromDb($yamlPath) 693 769 { 694 $directory = '/tmp/tmp_doctrine_models';770 $directory = sys_get_temp_dir() . DIRECTORY_SEPARATOR . 'tmp_doctrine_models'; 695 771 696 772 Doctrine::generateModelsFromDb($directory); … … 862 938 863 939 try { 864 $connection->export->dropDatabase($ name);940 $connection->export->dropDatabase($connection->getDatabaseName()); 865 941 866 942 $results[$name] = true; … …