Show
Ignore:
Timestamp:
01/05/08 19:14:35 (12 months ago)
Author:
romanb
Message:

reverting the reorganization done in 3455-3456 in order to make merging my experimental branch to trunk easier.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/lib/Doctrine.php

    r3456 r3458  
    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  
    5536    /** 
    5637     * VERSION 
     
    10182     * PDO derived constants 
    10283     */ 
    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; 
    142123 
    143124    /** 
     
    171152     * Doctrine constants 
    172153     */ 
    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 
    196179    const ATTR_FETCHMODE                = 118; 
    197180    const ATTR_NAME_PREFIX              = 121; 
    198181    const ATTR_CREATE_TABLES            = 122; 
    199182    const ATTR_COLL_LIMIT               = 123; 
     183 
    200184    const ATTR_CACHE                    = 150; 
    201185    const ATTR_RESULT_CACHE             = 150; 
     
    210194    const ATTR_AUTOLOAD_TABLE_CLASSES   = 160; 
    211195    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    /** 
    223202     * constant for row limiting 
    224      * 
    225      * @see self::ATTR_QUERY_LIMIT 
    226      */ 
    227     const QUERY_LIMIT_ROWS      = 1; 
     203     */ 
     204    const LIMIT_ROWS       = 1; 
    228205 
    229206    /** 
    230207     * constant for record limiting 
    231      * @see self::ATTR_QUERY_LIMIT 
    232      */ 
    233     const QUERY_LIMIT_RECORDS         = 2; 
     208     */ 
     209    const LIMIT_RECORDS    = 2; 
    234210 
    235211    /** 
     
    240216     * IMMEDIATE FETCHING 
    241217     * 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 
    249223     * 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 
    258229     * 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 
    267235     * 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 
    286251     * 
    287252     * Specifies that the fetch method shall return Doctrine_Record 
     
    289254     * 
    290255     * 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; 
    302263 
    303264    /** 
     
    306267 
    307268    /** 
    308      * PORTABILITY_NONE 
    309      * 
    310269     * Portability: turn off all portability features. 
    311      * 
    312270     * @see self::ATTR_PORTABILITY 
    313271     */ 
     
    315273 
    316274    /** 
    317      * PORTABILITY_FIX_CASE 
    318      * 
    319275     * Portability: convert names of tables and fields to case defined in the 
    320276     * "field_case" option when using the query*(), fetch*() methods. 
    321      * 
    322277     * @see self::ATTR_PORTABILITY 
    323278     */ 
     
    325280 
    326281    /** 
    327      * PORTABILITY_RTRIM 
    328      * 
    329282     * Portability: right trim the data output by query*() and fetch*(). 
    330      * 
    331283     * @see self::ATTR_PORTABILITY 
    332284     */ 
     
    334286 
    335287    /** 
    336      * PORTABILITY_DELETE_COUNT 
    337      * 
    338288     * Portability: force reporting the number of rows deleted. 
    339      * 
    340289     * @see self::ATTR_PORTABILITY 
    341290     */ 
     
    343292 
    344293    /** 
    345      * PORTABILITY_EMPTY_TO_NULL 
    346      * 
    347294     * Portability: convert empty values to null strings in data output by 
    348295     * query*() and fetch*(). 
    349      * 
    350296     * @see self::ATTR_PORTABILITY 
    351297     */ 
     
    353299 
    354300    /** 
    355      * PORTABILITY_FIX_ASSOC_FIELD_NAMES 
    356      * 
    357301     * Portability: removes database/table qualifiers from associative indexes 
    358      * 
    359302     * @see self::ATTR_PORTABILITY 
    360303     */ 
     
    362305 
    363306    /** 
    364      * PORTABILITY_EXPR 
    365      * 
    366307     * Portability: makes Doctrine_Expression throw exception for unportable RDBMS expressions 
    367      * 
    368308     * @see self::ATTR_PORTABILITY 
    369309     */ 
     
    371311 
    372312    /** 
    373      * PORTABILITY_ALL 
    374      * 
    375313     * Portability: turn on all portability features. 
    376      * 
    377314     * @see self::ATTR_PORTABILITY 
    378315     */ 
     
    380317 
    381318    /** 
    382      * LOCK CONSTANTS 
    383      */ 
    384  
    385     /** 
    386      * LOCK_OPTIMISTIC 
    387      * 
     319     * LOCKMODE CONSTANTS 
     320     */ 
     321 
     322    /** 
    388323     * mode for optimistic locking 
    389      * @see self::ATTR_LOCK 
    390324     */ 
    391325    const LOCK_OPTIMISTIC       = 0; 
    392326 
    393327    /** 
    394      * LOCK_PESSIMISTIC 
    395      * 
    396328     * mode for pessimistic locking 
    397      * 
    398      * @see self::ATTR_LOCK 
    399329     */ 
    400330    const LOCK_PESSIMISTIC      = 1; 
     
    406336    /** 
    407337     * EXPORT_NONE 
    408      * 
    409      * @see self::ATTR_EXPORT 
    410338     */ 
    411339    const EXPORT_NONE               = 0; 
     
    413341    /** 
    414342     * EXPORT_TABLES 
    415      * 
    416      * @see self::ATTR_EXPORT 
    417343     */ 
    418344    const EXPORT_TABLES             = 1; 
     
    420346    /** 
    421347     * EXPORT_CONSTRAINTS 
    422      * 
    423      * @see self::ATTR_EXPORT 
    424348     */ 
    425349    const EXPORT_CONSTRAINTS        = 2; 
     
    427351    /** 
    428352     * EXPORT_PLUGINS 
    429      * 
    430      * @see self::ATTR_EXPORT 
    431353     */ 
    432354    const EXPORT_PLUGINS            = 4; 
     
    434356    /** 
    435357     * EXPORT_ALL 
    436      * 
    437      * @see self::ATTR_EXPORT 
    438358     */ 
    439359    const EXPORT_ALL                = 7; 
    440360 
    441361    /** 
    442      * HYDRATE CONSTANTS 
    443      */ 
    444  
    445     /** 
    446      * HYDRATE_RECORD 
    447      * 
    448      * @see self::ATTR_HYDRATE 
     362     * HYDRATION CONSTANTS 
    449363     */ 
    450364    const HYDRATE_RECORD            = 2; 
     
    452366    /** 
    453367     * HYDRATE_ARRAY 
    454      * 
    455      * @see self::ATTR_HYDRATE 
    456368     */ 
    457369    const HYDRATE_ARRAY             = 3; 
     
    459371    /** 
    460372     * HYDRATE_NONE 
    461      * 
    462      * @see self::ATTR_HYDRATE 
    463373     */ 
    464374    const HYDRATE_NONE              = 4; 
    465375 
    466376    /** 
    467      * VALIDATE CONSTANTS 
    468      * 
    469      * @see self::ATTR_VALIDATE 
     377     * VALIDATION CONSTANTS 
    470378     */ 
    471379    const VALIDATE_NONE             = 0; 
     
    473381    /** 
    474382     * VALIDATE_LENGTHS 
    475      * 
    476      * @see self::ATTR_VALIDATE 
    477383     */ 
    478384    const VALIDATE_LENGTHS          = 1; 
     
    480386    /** 
    481387     * VALIDATE_TYPES 
    482      * 
    483      * @see self::ATTR_VALIDATE 
    484388     */ 
    485389    const VALIDATE_TYPES            = 2; 
     
    487391    /** 
    488392     * VALIDATE_CONSTRAINTS 
    489      * 
    490      * @see self::ATTR_VALIDATE 
    491393     */ 
    492394    const VALIDATE_CONSTRAINTS      = 4; 
     
    494396    /** 
    495397     * VALIDATE_ALL 
    496      * 
    497      * @see self::ATTR_VALIDATE 
    498398     */ 
    499399    const VALIDATE_ALL              = 7; 
     
    503403     * 
    504404     * constant for auto_increment identifier 
    505      * 
    506      * @see self::ATTR_IDENTIFIER 
    507405     */ 
    508406    const IDENTIFIER_AUTOINC        = 1; 
     
    512410     * 
    513411     * constant for sequence identifier 
    514      * 
    515      * @see self::ATTR_IDENTIFIER 
    516412     */ 
    517413    const IDENTIFIER_SEQUENCE       = 2; 
     
    521417     * 
    522418     * constant for normal identifier 
    523      * 
    524      * @see self::ATTR_IDENTIFIER 
    525419     */ 
    526420    const IDENTIFIER_NATURAL        = 3; 
     
    530424     * 
    531425     * constant for composite identifier 
    532      * @see self::ATTR_IDENTIFIER 
    533426     */ 
    534427    const IDENTIFIER_COMPOSITE      = 4; 
     
    539432     * Constant for agressive model loading 
    540433     * Will require_once() all found model files 
    541      * 
    542      * @see self::ATTR_MODEL_LOADING 
    543434     */ 
    544435    const MODEL_LOADING_AGGRESSIVE   = 1; 
     
    550441     * Will not require_once() found model files inititally instead it will build an array 
    551442     * and reference it in autoload() when a class is needed it will require_once() it 
    552      * 
    553      * @see self::ATTR_MODEL_LOADING 
    554443     */ 
    555444    const MODEL_LOADING_CONSERVATIVE= 2; 
    556  
     445     
    557446    /** 
    558447     * Path 
     
    563452 
    564453    /** 
     454     * Debug 
     455     * 
     456     * Bool true/false 
     457     * 
     458     * @var boolean $_debug 
     459     */ 
     460    private static $_debug = false; 
     461 
     462    /** 
    565463     * _loadedModelFiles 
    566464     * 
     
    572470 
    573471    /** 
     472     * _validators 
     473     * 
     474     * Array of all the loaded validators 
     475     * @var array 
     476     */ 
     477    private static $_validators = array(); 
     478 
     479    /** 
    574480     * __construct 
    575481     * 
     
    581487        throw new Doctrine_Exception('Doctrine is static class. No instances can be created.'); 
    582488    } 
    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 
    584505    /** 
    585506     * getPath 
     
    619540                    if (end($e) === 'php' && strpos($file->getFileName(), '.inc') === false) { 
    620541                         
    621                         if ($manager->getAttribute(Doctrine::ATTR_MODEL_LOADING) === Doctrine::MODEL_LOADING_CONSERVATIVE) { 
     542                        if ($manager->getAttribute(Doctrine::ATTR_MODEL_LOADING) == Doctrine::MODEL_LOADING_CONSERVATIVE) { 
    622543                            self::$_loadedModelFiles[$e[0]] = $file->getPathName(); 
    623544                            $loadedModels[] = $e[0]; 
     
    653574     * If you do not specify $classes it will return all of the currently loaded Doctrine_Records 
    654575     * 
     576     * @param classes  Array of classes to filter through, otherwise uses get_declared_classes() 
    655577     * @return array   $loadedModels 
    656578     */ 
    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        } 
    661585 
    662586        return self::filterInvalidModels($classes); 
     
    768692    public static function generateYamlFromDb($yamlPath) 
    769693    { 
    770         $directory = sys_get_temp_dir() . DIRECTORY_SEPARATOR . 'tmp_doctrine_models'; 
     694        $directory = '/tmp/tmp_doctrine_models'; 
    771695 
    772696        Doctrine::generateModelsFromDb($directory); 
     
    938862 
    939863            try { 
    940                 $connection->export->dropDatabase($connection->getDatabaseName()); 
     864                $connection->export->dropDatabase($name); 
    941865 
    942866                $results[$name] = true; 
     
    1058982 
    1059983    /** 
     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