prestashop代码分析之config.inc.php 2009-12-23 16:47:23
分类: 第一步先打开index.php,可以看到引入了3个文件:config/config.inc.php,header.php,footer.php。 @ini_set('display_errors', 'off'); @ini_set('upload_max_filesize', '100M'); @ini_set('default_charset', 'utf-8'); //这些部分修改了php.ini里的一些默认设置 header('Content-Type: text/html; charset=utf-8'); //强调是utf8的编码 function __autoload($className) { if (!class_exists($className, false)) require_once(dirname(__FILE__).'/../classes/'.$className.'.php'); } //很神奇的自动载入函数,不知道的童鞋看看手册,其实很简单 if (!file_exists(dirname(__FILE__).'/settings.inc.php')) { $dir = ((is_dir($_SERVER['REQUEST_URI']) OR substr($_SERVER['REQUEST_URI'], -1) == '/') ? $_SERVER['REQUEST_URI'] : dirname($_SERVER['REQUEST_URI']).'/'); if(!file_exists(dirname(__FILE__).'/../install')) die('Error: \'install\' directory is missing'); Tools::redirect('install', $dir); } include(dirname(__FILE__).'/settings.inc.php'); //如果没有settings.inc.php,就开始安装进程 if (!isset($_SERVER['REQUEST_URI']) OR empty($_SERVER['REQUEST_URI'])) { $_SERVER['REQUEST_URI'] = $_SERVER['SCRIPT_NAME']; if (isset($_SERVER['QUERY_STRING']) AND !empty($_SERVER['QUERY_STRING'])) $_SERVER['REQUEST_URI'] .= '?'.$_SERVER['QUERY_STRING']; } //有些web服务器会没有这个REQUEST_URI,所以要处理一下 $currentDir = dirname(__FILE__);//这个目录,是config目录,因为__FILE__是当前文件 这下面就是定义常量的了。有些童鞋要问了,为什么不定义成变量呢?一是这些内容不需要改动,二是在smarty中,可以使用$smarty.const.xxx来直接调用常量。 Configuration::loadConfiguration();//prestashop把所有的配置都存在一个表里面 Language::loadLanguages();//载入语言 Tax::loadTaxZones();//税,国内就很少有这样的设置 $defaultCountry = new Country(intval(Configuration::get('PS_COUNTRY_DEFAULT')));//读取地区id,设置 $timezone = Tools::getTimezones(Configuration::get('PS_TIMEZONE'));//设定时区 if (function_exists('date_default_timezone_set')) date_default_timezone_set($timezone);//如果是php5,有date_default_timezone_set函数,则设定时区 |
|
来自: sumi2005 > 《prestashop》