Show
Ignore:
Timestamp:
01/05/08 07:39:25 (12 months ago)
Author:
jwage
Message:

Preparation for new organization of code in to sub packages. Changed autoload() to work with new structure.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/lib/Doctrine.php

    r3449 r3455  
    3434final class Doctrine 
    3535{ 
     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 
    3655    /** 
    3756     * VERSION 
     
    82101     * PDO derived constants 
    83102     */ 
    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; 
    123142 
    124143    /** 
     
    152171     * Doctrine constants 
    153172     */ 
    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; 
    179196    const ATTR_FETCHMODE                = 118; 
    180197    const ATTR_NAME_PREFIX              = 121; 
    181198    const ATTR_CREATE_TABLES            = 122; 
    182199    const ATTR_COLL_LIMIT               = 123; 
    183  
    184200    const ATTR_CACHE                    = 150; 
    185201    const ATTR_RESULT_CACHE             = 150; 
     
    194210    const ATTR_AUTOLOAD_TABLE_CLASSES   = 160; 
    195211    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     * 
    202223     * constant for row limiting 
    203      */ 
    204     const LIMIT_ROWS       = 1; 
     224     * 
     225     * @see self::ATTR_QUERY_LIMIT 
     226     */ 
     227    const QUERY_LIMIT_ROWS      = 1; 
    205228 
    206229    /** 
    207230     * constant for record limiting 
    208      */ 
    209     const LIMIT_RECORDS    = 2; 
     231     * @see self::ATTR_QUERY_LIMIT 
     232     */ 
     233    const QUERY_LIMIT_RECORDS         = 2; 
    210234 
    211235    /** 
     
    216240     * IMMEDIATE FETCHING 
    217241     * 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     * 
    223249     * 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     * 
    229258     * 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     * 
    235267     * 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 
    251286     * 
    252287     * Specifies that the fetch method shall return Doctrine_Record 
     
    254289     * 
    255290     * 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; 
    263302 
    264303    /** 
     
    267306 
    268307    /** 
     308     * PORTABILITY_NONE 
     309     * 
    269310     * Portability: turn off all portability features. 
     311     * 
    270312     * @see self::ATTR_PORTABILITY 
    271313     */ 
     
    273315 
    274316    /** 
     317     * PORTABILITY_FIX_CASE 
     318     * 
    275319     * Portability: convert names of tables and fields to case defined in the 
    276320     * "field_case" option when using the query*(), fetch*() methods. 
     321     * 
    277322     * @see self::ATTR_PORTABILITY 
    278323     */ 
     
    280325 
    281326    /** 
     327     * PORTABILITY_RTRIM 
     328     * 
    282329     * Portability: right trim the data output by query*() and fetch*(). 
     330     * 
    283331     * @see self::ATTR_PORTABILITY 
    284332     */ 
     
    286334 
    287335    /** 
     336     * PORTABILITY_DELETE_COUNT 
     337     * 
    288338     * Portability: force reporting the number of rows deleted. 
     339     * 
    289340     * @see self::ATTR_PORTABILITY 
    290341     */ 
     
    292343 
    293344    /** 
     345     * PORTABILITY_EMPTY_TO_NULL 
     346     * 
    294347     * Portability: convert empty values to null strings in data output by 
    295348     * query*() and fetch*(). 
     349     * 
    296350     * @see self::ATTR_PORTABILITY 
    297351     */ 
     
    299353 
    300354    /** 
     355     * PORTABILITY_FIX_ASSOC_FIELD_NAMES 
     356     * 
    301357     * Portability: removes database/table qualifiers from associative indexes 
     358     * 
    302359     * @see self::ATTR_PORTABILITY 
    303360     */ 
     
    305362 
    306363    /** 
     364     * PORTABILITY_EXPR 
     365     * 
    307366     * Portability: makes Doctrine_Expression throw exception for unportable RDBMS expressions 
     367     * 
    308368     * @see self::ATTR_PORTABILITY 
    309369     */ 
     
    311371 
    312372    /** 
     373     * PORTABILITY_ALL 
     374     * 
    313375     * Portability: turn on all portability features. 
     376     * 
    314377     * @see self::ATTR_PORTABILITY 
    315378     */ 
     
    317380 
    318381    /** 
    319      * LOCKMODE CONSTANTS 
    320      */ 
    321  
    322     /** 
     382     * LOCK CONSTANTS 
     383     */ 
     384 
     385    /** 
     386     * LOCK_OPTIMISTIC 
     387     * 
    323388     * mode for optimistic locking 
     389     * @see self::ATTR_LOCK 
    324390     */ 
    325391    const LOCK_OPTIMISTIC       = 0; 
    326392 
    327393    /** 
     394     * LOCK_PESSIMISTIC 
     395     * 
    328396     * mode for pessimistic locking 
     397     * 
     398     * @see self::ATTR_LOCK 
    329399     */ 
    330400    const LOCK_PESSIMISTIC      = 1; 
     
    336406    /** 
    337407     * EXPORT_NONE 
     408     * 
     409     * @see self::ATTR_EXPORT 
    338410     */ 
    339411    const EXPORT_NONE               = 0; 
     
    341413    /** 
    342414     * EXPORT_TABLES 
     415     * 
     416     * @see self::ATTR_EXPORT 
    343417     */ 
    344418    const EXPORT_TABLES             = 1; 
     
    346420    /** 
    347421     * EXPORT_CONSTRAINTS 
     422     * 
     423     * @see self::ATTR_EXPORT 
    348424     */ 
    349425    const EXPORT_CONSTRAINTS        = 2; 
     
    351427    /** 
    352428     * EXPORT_PLUGINS 
     429     * 
     430     * @see self::ATTR_EXPORT 
    353431     */ 
    354432    const EXPORT_PLUGINS            = 4; 
     
    356434    /** 
    357435     * EXPORT_ALL 
     436     * 
     437     * @see self::ATTR_EXPORT 
    358438     */ 
    359439    const EXPORT_ALL                = 7; 
    360440 
    361441    /** 
    362      * HYDRATION CONSTANTS 
     442     * HYDRATE CONSTANTS 
     443     */ 
     444 
     445    /** 
     446     * HYDRATE_RECORD 
     447     * 
     448     * @see self::ATTR_HYDRATE 
    363449     */ 
    364450    const HYDRATE_RECORD            = 2; 
     
    366452    /** 
    367453     * HYDRATE_ARRAY 
     454     * 
     455     * @see self::ATTR_HYDRATE 
    368456     */ 
    369457    const HYDRATE_ARRAY             = 3; 
     
    371459    /** 
    372460     * HYDRATE_NONE 
     461     * 
     462     * @see self::ATTR_HYDRATE 
    373463     */ 
    374464    const HYDRATE_NONE              = 4; 
    375465 
    376466    /** 
    377      * VALIDATION CONSTANTS 
     467     * VALIDATE CONSTANTS 
     468     * 
     469     * @see self::ATTR_VALIDATE 
    378470     */ 
    379471    const VALIDATE_NONE             = 0; 
     
    381473    /** 
    382474     * VALIDATE_LENGTHS 
     475     * 
     476     * @see self::ATTR_VALIDATE 
    383477     */ 
    384478    const VALIDATE_LENGTHS          = 1; 
     
    386480    /** 
    387481     * VALIDATE_TYPES 
     482     * 
     483     * @see self::ATTR_VALIDATE 
    388484     */ 
    389485    const VALIDATE_TYPES            = 2; 
     
    391487    /** 
    392488     * VALIDATE_CONSTRAINTS 
     489     * 
     490     * @see self::ATTR_VALIDATE 
    393491     */ 
    394492    const VALIDATE_CONSTRAINTS      = 4; 
     
    396494    /** 
    397495     * VALIDATE_ALL 
     496     * 
     497     * @see self::ATTR_VALIDATE 
    398498     */ 
    399499    const VALIDATE_ALL              = 7; 
     
    403503     * 
    404504     * constant for auto_increment identifier 
     505     * 
     506     * @see self::ATTR_IDENTIFIER 
    405507     */ 
    406508    const IDENTIFIER_AUTOINC        = 1; 
     
    410512     * 
    411513     * constant for sequence identifier 
     514     * 
     515     * @see self::ATTR_IDENTIFIER 
    412516     */ 
    413517    const IDENTIFIER_SEQUENCE       = 2; 
     
    417521     * 
    418522     * constant for normal identifier 
     523     * 
     524     * @see self::ATTR_IDENTIFIER 
    419525     */ 
    420526    const IDENTIFIER_NATURAL        = 3; 
     
    424530     * 
    425531     * constant for composite identifier 
     532     * @see self::ATTR_IDENTIFIER 
    426533     */ 
    427534    const IDENTIFIER_COMPOSITE      = 4; 
     
    432539     * Constant for agressive model loading 
    433540     * Will require_once() all found model files 
     541     * 
     542     * @see self::ATTR_MODEL_LOADING 
    434543     */ 
    435544    const MODEL_LOADING_AGGRESSIVE   = 1; 
     
    441550     * Will not require_once() found model files inititally instead it will build an array 
    442551     * and reference it in autoload() when a class is needed it will require_once() it 
     552     * 
     553     * @see self::ATTR_MODEL_LOADING 
    443554     */ 
    444555    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    } 
    445583     
    446     /** 
    447      * Path 
    448      * 
    449      * @var string $path            doctrine root directory 
    450      */ 
    451     private static $_path; 
    452  
    453     /** 
    454      * Debug 
    455      * 
    456      * Bool true/false 
    457      * 
    458      * @var boolean $_debug 
    459      */ 
    460     private static $_debug = false; 
    461  
    462     /** 
    463      * _loadedModelFiles 
    464      * 
    465      * Array of all the loaded models and the path to each one for autoloading 
    466      * 
    467      * @var array 
    468      */ 
    469     private static $_loadedModelFiles = array(); 
    470  
    471     /** 
    472      * _validators 
    473      * 
    474      * Array of all the loaded validators 
    475      * @var array 
    476      */ 
    477     private static $_validators = array(); 
    478  
    479     /** 
    480      * __construct 
    481      * 
    482      * @return void 
    483      * @throws Doctrine_Exception 
    484      */ 
    485     public function __construct() 
    486     { 
    487         throw new Doctrine_Exception('Doctrine is static class. No instances can be created.'); 
    488     } 
    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  
    505584    /** 
    506585     * getPath 
     
    540619                    if (end($e) === 'php' && strpos($file->getFileName(), '.inc') === false) { 
    541620                         
    542                         if ($manager->getAttribute(Doctrine::ATTR_MODEL_LOADING) == Doctrine::MODEL_LOADING_CONSERVATIVE) { 
     621                        if ($manager->getAttribute(Doctrine::ATTR_MODEL_LOADING) === Doctrine::MODEL_LOADING_CONSERVATIVE) { 
    543622                            self::$_loadedModelFiles[$e[0]] = $file->getPathName(); 
    544623                            $loadedModels[] = $e[0]; 
     
    574653     * If you do not specify $classes it will return all of the currently loaded Doctrine_Records 
    575654     * 
    576      * @param classes  Array of classes to filter through, otherwise uses get_declared_classes() 
    577655     * @return array   $loadedModels 
    578656     */ 
    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)); 
    585661 
    586662        return self::filterInvalidModels($classes); 
     
    692768    public static function generateYamlFromDb($yamlPath) 
    693769    { 
    694         $directory = '/tmp/tmp_doctrine_models'; 
     770        $directory = sys_get_temp_dir() . DIRECTORY_SEPARATOR . 'tmp_doctrine_models'; 
    695771 
    696772        Doctrine::generateModelsFromDb($directory); 
     
    862938 
    863939            try { 
    864                 $connection->export->dropDatabase($name); 
     940                $connection->export->dropDatabase($connection->getDatabaseName()); 
    865941 
    866942                $results[$name] = true;