Changeset 357

Show
Ignore:
Timestamp:
01/24/07 02:21:28 (2 years ago)
Author:
laurentj
Message:

- ENABLE_PHP_JELIX : a first step to the world domination :-)
change ENABLE_OPTIMIZE to ENABLE_OPTIMIZED_SOURCE
- fix ticket #75 : error message on unknow controller is not coherent

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/build/buildjelix.php

    r348 r357  
    3535    false, 
    3636    ), 
     37'ENABLE_PHP_JELIX'=>array( 
     38    "true if jelix can use jelix php extension. WARNING ! EXPERIMENTAL !", 
     39    false, 
     40    ), 
    3741'WITH_BYTECODE_CACHE'=> array( 
    3842    "says which bytecode cache engine will be recognized by jelix. Possible values :  'auto' (automatic detection), 'apc', 'eaccelerator' or '' for  none", 
     
    4448    true, 
    4549    ), 
    46 'ENABLE_OPTIMIZE'=>array( 
    47     "true if you want on optimized version of jelix, for production server", 
     50'ENABLE_OPTIMIZED_SOURCE'=>array( 
     51    "true if you want on optimized version of source code, for production server", 
    4852    false, 
    4953    ), 
     
    118122} 
    119123 
    120 if(!$ENABLE_OPTIMIZE
     124if(!$ENABLE_OPTIMIZED_SOURCE
    121125    $STRIP_COMMENT=''; 
    122126 
     
    130134        $PACKAGE_NAME.='-php'.$PHP_VERSION_TARGET; 
    131135 
    132     if($ENABLE_OPTIMIZE && $ENABLE_DEVELOPER) 
     136    if($ENABLE_OPTIMIZED_SOURCE && $ENABLE_DEVELOPER) 
    133137        $PACKAGE_NAME.='-optdev'; 
    134     elseif($ENABLE_OPTIMIZE
     138    elseif($ENABLE_OPTIMIZED_SOURCE
    135139        $PACKAGE_NAME.='-opt'; 
    136140    elseif($ENABLE_DEVELOPER) 
     
    150154//... execution des manifests 
    151155jManifest::process('build/manifests/jelix-lib.mn', '.', $BUILD_TARGET_PATH, ENV::getAll(), $STRIP_COMMENT); 
    152 if(!$ENABLE_OPTIMIZE){ 
     156if(!$ENABLE_OPTIMIZED_SOURCE){ 
    153157    jManifest::process('build/manifests/jelix-no-opt.mn', '.', $BUILD_TARGET_PATH , ENV::getAll(), $STRIP_COMMENT); 
    154158} 
     159if(!$ENABLE_PHP_JELIX && !$ENABLE_OPTIMIZED_SOURCE){ 
     160    jManifest::process('build/manifests/jelix-no-ext.mn', '.', $BUILD_TARGET_PATH , ENV::getAll(), $STRIP_COMMENT); 
     161} 
     162 
    155163if($ENABLE_DEVELOPER){ 
    156164    jManifest::process('build/manifests/jelix-dev.mn', '.', $BUILD_TARGET_PATH , ENV::getAll()); 
     
    167175$view = array('PHP_VERSION_TARGET', 'LIB_VERSION', 'SVN_REVISION', 'ENABLE_PHP_FILTER', 
    168176    'ENABLE_PHP_JSON', 'ENABLE_PHP_XMLRPC', 'WITH_BYTECODE_CACHE', 'ENABLE_DEVELOPER', 
    169     'ENABLE_OPTIMIZE', 'STRIP_COMMENT', 'ENABLE_OLD_CLASS_NAMING' ); 
     177    'ENABLE_OPTIMIZED_SOURCE', 'STRIP_COMMENT', 'ENABLE_OLD_CLASS_NAMING' ); 
    170178 
    171179$infos = 'BUILD_DATE= "'.date('Y-m-d H:i')."\"\n".ENV::getIniContent($view); 
  • trunk/build/config/jelix-dist-dev.ini

    r314 r357  
    44PACKAGE_ZIP = 1 
    55STRIP_COMMENT = 
    6 ENABLE_OPTIMIZE
     6ENABLE_OPTIMIZED_SOURCE
    77ENABLE_DEVELOPER = 1 
    88ENABLE_PHP_FILTER = 
  • trunk/build/config/jelix-dist-opt.ini

    r314 r357  
    88PACKAGE_ZIP = 1 
    99STRIP_COMMENT = 1 
    10 ENABLE_OPTIMIZE = 1 
     10ENABLE_OPTIMIZED_SOURCE = 1 
    1111ENABLE_OLD_CLASS_NAMING = 1 
  • trunk/build/config/jelix-test.ini

    r314 r357  
    88PACKAGE_ZIP = 
    99STRIP_COMMENT = 
    10 ENABLE_OPTIMIZE
     10ENABLE_OPTIMIZED_SOURCE
    1111ENABLE_OLD_CLASS_NAMING = 1 
  • trunk/build/lib/jBuild.inc.php

    r347 r357  
    6969                    self::storeValue($k,$v); 
    7070                }else{ 
    71                     echo "warning: unknow option name ($name) in the ini file\n"; 
     71                    echo "warning: unknow option name ($k) in the ini file\n"; 
    7272                } 
    7373            } 
  • trunk/build/manifests/jelix-lib.mn

    r354 r357  
    1414 
    1515cd lib/jelix/auth 
    16  jAuth.class.php 
     16* jAuth.class.php 
    1717  jAuthDriverDb.class.php 
    1818  jAuthDriverClass.class.php 
  • trunk/build/manifests/jelix-no-opt.mn

    r345 r357  
    22* jConfig.class.php 
    33  jContext.class.php 
    4  jController.class.php 
     4* jController.class.php 
    55  jCoordinator.class.php 
    66  jErrorHandler.lib.php 
    77  jException.lib.php 
    8   jIncluder.class.php 
    9   jIPlugin.iface.php 
     8* jIncluder.class.php 
    109  jLocale.class.php 
    1110  jRequest.class.php 
     
    1413 
    1514cd lib/jelix/core/url 
    16   jUrl.class.php 
     15*  jUrl.class.php 
    1716 
    1817cd lib/jelix/db 
  • trunk/lib/jelix/auth/jAuth.class.php

    r339 r357  
    1414* 
    1515*/ 
    16  
     16#ifnot ENABLE_PHP_JELIX 
    1717/** 
    1818 * interface for auth drivers 
     
    9090} 
    9191 
    92  
     92#endif 
    9393 
    9494/** 
  • trunk/lib/jelix/core/jConfig.class.php

    r345 r357  
    5858                if(BYTECODE_CACHE_EXISTS){ 
    5959                    include($file); 
     60                    $config = (object) $config; 
    6061                }else{ 
     62#if ENABLE_PHP_JELIX 
     63                    $config = jelix_read_ini($file); 
     64#else 
    6165                    $config = parse_ini_file($file,true); 
     66                    $config = (object) $config; 
     67#endif 
    6268                } 
    6369#elseif WITH_BYTECODE_CACHE  
    6470                include($file); 
     71                $config = (object) $config; 
     72#else 
     73#if ENABLE_PHP_JELIX 
     74                $config = jelix_read_ini($file); 
    6575#else 
    6676                $config = parse_ini_file($file,true); 
     77                $config = (object) $config; 
    6778#endif 
    68                 $config = (object) $config; 
     79#endif 
    6980 
    7081                if($config->compilation['checkCacheFiletime']){ 
  • trunk/lib/jelix/core/jConfigCompiler.class.php

    r345 r357  
    2828     */ 
    2929    static public function read($configFile){ 
     30 
     31        if(preg_match("/^(\w+).*$/", PHP_OS, $m)){ 
     32            $os=$m[1]; 
     33        }else{ 
     34            $os=PHP_OS; 
     35        } 
     36 
     37#if ENABLE_PHP_JELIX 
     38        $config = jelix_read_ini(JELIX_LIB_CORE_PATH.'defaultconfig.ini.php'); 
     39 
     40        @jelix_read_ini(JELIX_APP_CONFIG_PATH.'defaultconfig.ini.php',$config); 
     41 
     42        if($configFile !='defaultconfig.ini.php'){ 
     43            if(!file_exists(JELIX_APP_CONFIG_PATH.$configFile)) 
     44                die("Jelix config file $configFile is missing !"); 
     45            if( false === @jelix_read_ini(JELIX_APP_CONFIG_PATH.$configFile,$config))) 
     46                die("Syntax error in the Jelix config file $configFile !"); 
     47        } 
     48        $config->OS = $os; 
     49        $os=strtolower($os); 
     50        $config->isWindows = ((strpos($os,'win')!== false) && (strpos($os,'darwin')=== false)); 
     51        if(trim( $config->defaultAction) == '') 
     52             $config->defaultAction = '_'; 
     53 
     54        $config->_pluginsPathList = self::_loadPathList($config->pluginsPath); 
     55        $config->_modulesPathList = self::_loadPathList($config->modulesPath); 
     56 
     57        self::_loadTplPathList($config, 'tplpluginsPath'); 
     58 
     59        if($config->checkTrustedModules){ 
     60            $config->_trustedModules = explode(',',$config->trustedModules); 
     61        }else{ 
     62            $config->_trustedModules = array_keys($config->_modulesPathList); 
     63        } 
     64        $path=$config->urlengine['basePath']; 
     65        if($path!='/'){ 
     66            if($path{0} != '/') $path='/'.$path; 
     67            if(substr($path,-1) != '/') $path.='/'; 
     68            $config->urlengine['basePath'] = $path; 
     69        } 
     70#else 
    3071        $config = jIniFile::read(JELIX_LIB_CORE_PATH.'defaultconfig.ini.php'); 
    3172 
     
    4283        } 
    4384 
    44         if(preg_match("/^(\w+).*$/", PHP_OS, $m)){ 
    45             $os=$m[1]; 
    46         }else{ 
    47             $os=PHP_OS; 
    48         } 
    4985        $config['OS'] = $os; 
    5086        $os=strtolower($os); 
     
    69105            $config['urlengine']['basePath'] = $path; 
    70106        } 
     107#endif 
     108 
    71109#if WITH_BYTECODE_CACHE == 'auto' 
    72110        if(BYTECODE_CACHE_EXISTS){ 
    73111            $filename=JELIX_APP_TEMP_PATH.str_replace('/','~',$configFile).'.conf.php'; 
    74112            if ($f = @fopen($filename, 'wb')) { 
     113#if ENABLE_PHP_JELIX 
     114                fwrite($f, '<?php $config = '.var_export(get_object_vars($config),true).";\n?>"); 
     115#else 
    75116                fwrite($f, '<?php $config = '.var_export($config,true).";\n?>"); 
     117#endif 
    76118                fclose($f); 
    77119            } else { 
     
    79121            } 
    80122        }else{ 
     123#if ENABLE_PHP_JELIX 
     124            jIniFile::write(get_object_vars($config), JELIX_APP_TEMP_PATH.str_replace('/','~',$configFile).'.resultini.php'); 
     125#else 
    81126            jIniFile::write($config, JELIX_APP_TEMP_PATH.str_replace('/','~',$configFile).'.resultini.php'); 
     127#endif 
    82128        } 
    83129#elseif WITH_BYTECODE_CACHE  
    84130        $filename=JELIX_APP_TEMP_PATH.str_replace('/','~',$configFile).'.conf.php'; 
    85131        if ($f = @fopen($filename, 'wb')) { 
     132#if ENABLE_PHP_JELIX 
     133            fwrite($f, '<?php $config = '.var_export(get_object_vars($config),true).";\n?>"); 
     134#else 
    86135            fwrite($f, '<?php $config = '.var_export($config,true).";\n?>"); 
     136#endif 
    87137            fclose($f); 
    88138        } else { 
     
    90140        } 
    91141#else 
     142#if ENABLE_PHP_JELIX 
     143        jIniFile::write(get_object_vars($config), JELIX_APP_TEMP_PATH.str_replace('/','~',$configFile).'.resultini.php'); 
     144#else 
    92145        jIniFile::write($config, JELIX_APP_TEMP_PATH.str_replace('/','~',$configFile).'.resultini.php'); 
    93146#endif 
     147#endif 
     148#ifnot ENABLE_PHP_JELIX 
    94149        $config = (object) $config; 
     150#endif 
    95151        return $config; 
    96152    } 
     
    128184     */ 
    129185    static private function _loadTplPathList(&$config,  $var){ 
     186#if ENABLE_PHP_JELIX 
     187        $list = split(' *, *',$config->$var); 
     188#else 
    130189        $list = split(' *, *',$config[$var]); 
     190#endif 
    131191        foreach($list as $path){ 
    132192            $p = str_replace(array('lib:','app:'), array(LIB_PATH, JELIX_APP_PATH), $path); 
     
    138198                while (false !== ($f = readdir($handle))) { 
    139199                    if ($f{0} != '.' && is_dir($p.$f)) { 
     200#if ENABLE_PHP_JELIX 
     201                        $prop = '_tplpluginsPathList_'.$f; 
     202                        $config->$prop[] = $p.$f.'/'; 
     203#else 
    140204                        $config['_tplpluginsPathList_'.$f][] = $p.$f.'/'; 
     205#endif 
    141206                    } 
    142207                } 
     
    145210        } 
    146211    } 
    147  
     212#ifnot ENABLE_PHP_JELIX 
    148213    /** 
    149214     * merge two array which are the result of a parse_ini_file call 
     
    168233 
    169234    } 
     235#endif 
    170236} 
    171237 
  • trunk/lib/jelix/core/jController.class.php

    r345 r357  
    1010* 
    1111*/ 
    12  
     12#ifnot ENABLE_PHP_JELIX 
    1313/** 
    1414 * interface for controllers used for RESTFull request/response 
     
    2222    public function delete(); 
    2323} 
    24  
     24#endif 
    2525 
    2626/** 
  • trunk/lib/jelix/core/jIncluder.class.php

    r334 r357  
    1313 */ 
    1414 
    15  
     15#ifnot ENABLE_PHP_JELIX 
    1616/** 
    1717 * interface for compiler which needs only one source file 
     
    5050    public function endCompile($cachefile); 
    5151} 
    52  
     52#endif 
    5353/** 
    5454 * This object is responsible to load cache files. 
  • trunk/lib/jelix/core/jSelector.class.php

    r345 r357  
    4141    } 
    4242} 
    43  
     43#ifnot ENABLE_PHP_JELIX 
    4444/** 
    4545 * interface of selector classes 
     
    7070    public function toString($full=false); 
    7171} 
    72  
     72#endif 
    7373 
    7474/** 
     
    250250        $className = $this->controller.'Ctrl'; 
    251251        if($GLOBALS['gJConfig']->enableOldClassNaming && !class_exists($className,false)){ 
    252             $className = 'CT'.$this->controller; 
     252            if(class_exists('CT'.$this->controller,false)) 
     253                $className = 'CT'.$this->controller; 
    253254        } 
    254255#else 
  • trunk/lib/jelix/core/url/jUrl.class.php

    r338 r357  
    1414* http://www.copix.org 
    1515*/ 
    16  
     16#ifnot ENABLE_PHP_JELIX 
    1717/** 
    1818 * interface for url engines 
     
    4040 
    4141} 
    42  
     42#endif 
    4343/** 
    4444 * base class for jUrl and jUrlAction 
  • trunk/lib/jelix/dao/jDaoCompiler.class.php

    r345 r357  
    99* @licence  http://www.gnu.org/licenses/lgpl.html GNU Lesser General Public Licence, see LICENCE file 
    1010* 
    11 #if ENABLE_OPTIMIZE 
     11#if ENABLE_OPTIMIZED_SOURCE 
    1212* Une partie du code est issue des classes CopixDaoCompiler, CopixDAOGeneratorV1, CopixDAODefinitionV1 
    1313* du framework Copix 2.3dev20050901. http://www.copix.org 
  • trunk/lib/jelix/db/jDb.class.php

    r345 r357  
    1111* API inspir�de la classe CopixDbFactory issue du framework Copix 2.3dev20050901. http://www.copix.org 
    1212*/ 
    13 #if ENABLE_OPTIMIZE 
     13#if ENABLE_OPTIMIZED_SOURCE 
    1414 
    1515#includephp jDbConnection.class.php 
  • trunk/lib/jelix/events/jEvent.class.php

    r345 r357  
    1616*/ 
    1717 
    18 #if ENABLE_OPTIMIZE 
     18#if ENABLE_OPTIMIZED_SOURCE 
    1919 
    2020#includephp jEventListener.class.php 
  • trunk/lib/jelix/init.php

    r345 r357  
    33* Initialize all defines and includes necessary files 
    44* 
    5 #if ENABLE_OPTIMIZE 
     5#if ENABLE_OPTIMIZED_SOURCE 
    66* Some line of code come from php framework Copix 2.3dev20050901 
    77* They are copyrighted 2001-2005 CopixTeam (LGPL Licence) 
     
    1010* @subpackage core 
    1111* @author   Jouanneau Laurent 
    12 #if ENABLE_OPTIMIZE 
     12#if ENABLE_OPTIMIZED_SOURCE 
    1313* @author Croes Gerald 
    1414* @contributor Loic Mathaud 
     
    2424* @licence  GNU Lesser General Public Licence see LICENCE file or http://www.gnu.org/licenses/lgpl.html 
    2525*/ 
     26 
     27#if ENABLE_PHP_JELIX 
     28if(!function_exists('jelix_version')){ 
     29    die('this edition of Jelix needs jelix php extension.'); 
     30} 
     31#endif 
    2632 
    2733/** 
     
    6975#endif 
    7076 
    71 #if ENABLE_OPTIMIZE 
     77#if ENABLE_OPTIMIZED_SOURCE 
    7278 
    7379#includephp core/jErrorHandler.lib.php 
     
    8389#includephp core/jLocale.class.php 
    8490#includephp core/jIncluder.class.php 
     91#ifnot ENABLE_PHP_JELIX 
    8592#includephp core/jIPlugin.iface.php 
    86  
     93#endif 
    8794#else 
    8895 
     
    100107require_once (JELIX_LIB_CORE_PATH . 'jLocale.class.php'); 
    101108require_once (JELIX_LIB_CORE_PATH . 'jIncluder.class.php'); 
     109#ifnot ENABLE_PHP_JELIX 
    102110require_once (JELIX_LIB_CORE_PATH . 'jIPlugin.iface.php'); 
    103  
     111#endif 
    104112#endif 
    105113 
     
    155163   } 
    156164 
    157 #if ENABLE_OPTIMIZE 
     165#if ENABLE_OPTIMIZED_SOURCE 
    158166    require_once($f); 
    159167#else 
Download in other formats: Unified Diff Zip Archive