<?php namespace Patchouli; define('PAT_STARTUP', microtime(true)); define('PAT_ROOT', __DIR__); define('PAT_DEBUG', is_file(PAT_ROOT . '/.debug')); define('PAT_PUB', PAT_ROOT . '/public'); // WWW visible define('PAT_SRC', PAT_ROOT . '/src'); // Patchouli namespace define('PAT_LIB', PAT_ROOT . '/lib'); // Other unresolved namespaces ini_set('display_errors', PAT_DEBUG ? 'on' : 'off'); error_reporting(PAT_DEBUG ? -1 : 0); mb_internal_encoding('utf-8'); set_include_path(PAT_SRC . PATH_SEPARATOR . PAT_LIB . PATH_SEPARATOR . get_include_path()); spl_autoload_register(function(string $className) { $parts = explode('\\', trim($className, '\\'), 2); if($parts[0] === __NAMESPACE__) require_once PAT_SRC . DIRECTORY_SEPARATOR . str_replace('\\', DIRECTORY_SEPARATOR, $parts[1]) . '.php'; else require_once PAT_LIB . DIRECTORY_SEPARATOR . str_replace('\\', DIRECTORY_SEPARATOR, $className) . '.php'; });