public static function init()
{
// Let’s modify the `include_path`
$path = dirname(__FILE__) . '/';
$path_pear = dirname(__FILE__) . '/PEAR/';
set_include_path($path . PATH_SEPARATOR . $path_pear . PATH_SEPARATOR . get_include_path());
require_once 'PEAR.php';
// Exception class
require 'PubwichError.php';
// Configuration files
if (!file_exists(dirname(__FILE__) . "/../cfg/config.php")) {
throw new PubwichError('You must rename <code>/cfg/config.sample.php</code> to <code>/cfg/config.php</code> and edit the Web service configuration details.');
} else {
require dirname(__FILE__) . '/../cfg/config.php';
}
// Internationalization class
if (defined('PUBWICH_LANG') && PUBWICH_LANG != '') {
require 'Gettext/streams.php';
require 'Gettext/gettext.php';
self::$gettext = new gettext_reader(new FileReader(dirname(__FILE__) . '/../lang/' . PUBWICH_LANG . '/pubwich-' . PUBWICH_LANG . '.mo'));
}
// JSON support
if (!function_exists('json_decode')) {
require_once dirname(__FILE__) . '/../Zend/Json.php';
}
// Events logger (and first message)
require 'PubwichLog.php';
PubwichLog::init();
PubwichLog::log(1, Pubwich::_("Pubwich object initialization"));
// Theme
self::$theme_url = PUBWICH_URL . 'themes/' . PUBWICH_THEME;
self::$theme_path = dirname(__FILE__) . '/../themes/' . PUBWICH_THEME;
require 'PubwichTemplate.php';
// PHP objects creation
self::setClasses();
// Other classes
require 'FileFetcher.php';
require 'Cache/Lite.php';
if (!defined('PUBWICH_CRON')) {
require_once 'Mustache.php/Mustache.php';
}
}