* @copyright 2007-2011 PrestaShop SA * @version Release: $Revision$ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) * International Registered Trademark & Property of PrestaShop SA */ // Check PHP version if (version_compare(PHP_VERSION, '5.1', '<')) die('You need at least PHP 5.1 to run PrestaShop. Your current PHP version is '.PHP_VERSION); // Generate common constants define('PS_INSTALLATION_IN_PROGRESS', true); define('_PS_INSTALL_PATH_', dirname(__FILE__).'/'); define('_PS_INSTALL_DATA_PATH_', _PS_INSTALL_PATH_.'data/'); define('_PS_INSTALL_CONTROLLERS_PATH_', _PS_INSTALL_PATH_.'controllers/'); define('_PS_INSTALL_MODELS_PATH_', _PS_INSTALL_PATH_.'models/'); define('_PS_INSTALL_LANGS_PATH_', _PS_INSTALL_PATH_.'langs/'); define('_PS_INSTALL_FIXTURES_PATH_', _PS_INSTALL_PATH_.'fixtures/'); require_once(_PS_INSTALL_PATH_ . 'install_version.php'); // we check if theses constants are defined // in order to use init.php in upgrade.php script if (!defined('__PS_BASE_URI__')) define('__PS_BASE_URI__', str_replace('//', '/', '/'.trim(preg_replace('#/(install(-dev)?)$#', '/', str_replace('\\', '/', dirname($_SERVER['REQUEST_URI']))), '/').'/')); if (!defined('_THEME_NAME_')) define('_THEME_NAME_', 'default'); require_once(dirname(_PS_INSTALL_PATH_).'/config/defines.inc.php'); require_once(dirname(_PS_INSTALL_PATH_).'/config/defines_uri.inc.php'); // PrestaShop autoload is used to load some helpfull classes like Tools. // Add classes used by installer bellow. require_once(_PS_ROOT_DIR_.'/config/autoload.php'); require_once(_PS_ROOT_DIR_.'/config/alias.php'); require_once(_PS_INSTALL_PATH_.'classes/exception.php'); require_once(_PS_INSTALL_PATH_.'classes/languages.php'); require_once(_PS_INSTALL_PATH_.'classes/language.php'); require_once(_PS_INSTALL_PATH_.'classes/model.php'); require_once(_PS_INSTALL_PATH_.'classes/session.php'); require_once(_PS_INSTALL_PATH_.'classes/sqlLoader.php'); require_once(_PS_INSTALL_PATH_.'classes/xmlLoader.php'); require_once(_PS_INSTALL_PATH_.'classes/simplexml.php'); @set_time_limit(300); class InstallLog { /** * @return InstallLog */ public function getInstance() { static $instance = null; if (!$instance) $instance = new InstallLog(); return $instance; } protected $fd; protected $data = array(); protected $last_time; protected $depth = 0; public function __construct() { $this->fd = fopen(_PS_INSTALL_PATH_.'log.txt', 'w'); $this->last_time = microtime(true); } public function write($id) { $str = str_pad("[$id]", 35, ' '); if (isset($this->data[$id]['start'])) $str .= str_pad(round(microtime(true) - $this->data[$id]['start'], 4).'ms', 10, ' '); $str .= str_pad(round(microtime(true) - $this->last_time, 4).'ms', 10, ' '); $this->data[$id]['str'] = str_repeat("\t", $this->depth - 1)."$str\n"; $this->depth--; } public function start($id) { $this->data[$id] = array('start' => microtime(true)); $this->depth++; } public function __destruct() { foreach ($this->data as $k => $info) if (!isset($info['str'])) $this->write($k); foreach ($this->data as $info) fwrite($this->fd, $info['str']); fclose($this->fd); } }