|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539 |
- <?php
-
-
- namespace yii;
-
- use yii\base\InvalidConfigException;
- use yii\base\InvalidParamException;
- use yii\base\UnknownClassException;
- use yii\log\Logger;
- use yii\di\Container;
-
-
- defined('YII_BEGIN_TIME') or define('YII_BEGIN_TIME', microtime(true));
-
- defined('YII2_PATH') or define('YII2_PATH', __DIR__);
-
- defined('YII_DEBUG') or define('YII_DEBUG', false);
-
- defined('YII_ENV') or define('YII_ENV', 'prod');
-
- defined('YII_ENV_PROD') or define('YII_ENV_PROD', YII_ENV === 'prod');
-
- defined('YII_ENV_DEV') or define('YII_ENV_DEV', YII_ENV === 'dev');
-
- defined('YII_ENV_TEST') or define('YII_ENV_TEST', YII_ENV === 'test');
-
-
- defined('YII_ENABLE_ERROR_HANDLER') or define('YII_ENABLE_ERROR_HANDLER', true);
-
-
- class BaseYii
- {
-
-
- public static $classMap = [];
-
-
- public static $app;
-
-
- public static $aliases = ['@yii' => __DIR__];
-
-
- public static $container;
-
-
-
-
- public static function getVersion()
- {
- return '2.0.9';
- }
-
-
-
- public static function getAlias($alias, $throwException = true)
- {
- if (strncmp($alias, '@', 1)) {
-
- return $alias;
- }
-
- $pos = strpos($alias, '/');
- $root = $pos === false ? $alias : substr($alias, 0, $pos);
-
- if (isset(static::$aliases[$root])) {
- if (is_string(static::$aliases[$root])) {
- return $pos === false ? static::$aliases[$root] : static::$aliases[$root] . substr($alias, $pos);
- } else {
- foreach (static::$aliases[$root] as $name => $path) {
- if (strpos($alias . '/', $name . '/') === 0) {
- return $path . substr($alias, strlen($name));
- }
- }
- }
- }
-
- if ($throwException) {
- throw new InvalidParamException("Invalid path alias: $alias");
- } else {
- return false;
- }
- }
-
-
-
- public static function getRootAlias($alias)
- {
- $pos = strpos($alias, '/');
- $root = $pos === false ? $alias : substr($alias, 0, $pos);
-
- if (isset(static::$aliases[$root])) {
- if (is_string(static::$aliases[$root])) {
- return $root;
- } else {
- foreach (static::$aliases[$root] as $name => $path) {
- if (strpos($alias . '/', $name . '/') === 0) {
- return $name;
- }
- }
- }
- }
-
- return false;
- }
-
-
-
- public static function setAlias($alias, $path)
- {
- if (strncmp($alias, '@', 1)) {
- $alias = '@' . $alias;
- }
- $pos = strpos($alias, '/');
- $root = $pos === false ? $alias : substr($alias, 0, $pos);
- if ($path !== null) {
- $path = strncmp($path, '@', 1) ? rtrim($path, '\\/') : static::getAlias($path);
- if (!isset(static::$aliases[$root])) {
- if ($pos === false) {
- static::$aliases[$root] = $path;
- } else {
- static::$aliases[$root] = [$alias => $path];
- }
- } elseif (is_string(static::$aliases[$root])) {
- if ($pos === false) {
- static::$aliases[$root] = $path;
- } else {
- static::$aliases[$root] = [
- $alias => $path,
- $root => static::$aliases[$root],
- ];
- }
- } else {
- static::$aliases[$root][$alias] = $path;
- krsort(static::$aliases[$root]);
- }
- } elseif (isset(static::$aliases[$root])) {
- if (is_array(static::$aliases[$root])) {
- unset(static::$aliases[$root][$alias]);
- } elseif ($pos === false) {
- unset(static::$aliases[$root]);
- }
- }
- }
-
-
-
- public static function autoload($className)
- {
- if (isset(static::$classMap[$className])) {
- $classFile = static::$classMap[$className];
- if ($classFile[0] === '@') {
- $classFile = static::getAlias($classFile);
- }
- } elseif (strpos($className, '\\') !== false) {
- $classFile = static::getAlias('@' . str_replace('\\', '/', $className) . '.php', false);
- if ($classFile === false || !is_file($classFile)) {
- return;
- }
- } else {
- return;
- }
-
- include($classFile);
-
- if (YII_DEBUG && !class_exists($className, false) && !interface_exists($className, false) && !trait_exists($className, false)) {
- throw new UnknownClassException("Unable to find '$className' in file: $classFile. Namespace missing?");
- }
- }
-
-
-
- public static function createObject($type, array $params = [])
- {
- if (is_string($type)) {
- return static::$container->get($type, $params);
- } elseif (is_array($type) && isset($type['class'])) {
- $class = $type['class'];
- unset($type['class']);
- return static::$container->get($class, $params, $type);
- } elseif (is_callable($type, true)) {
- return static::$container->invoke($type, $params);
- } elseif (is_array($type)) {
- throw new InvalidConfigException('Object configuration must be an array containing a "class" element.');
- } else {
- throw new InvalidConfigException('Unsupported configuration type: ' . gettype($type));
- }
- }
-
- private static $_logger;
-
-
-
- public static function getLogger()
- {
- if (self::$_logger !== null) {
- return self::$_logger;
- } else {
- return self::$_logger = static::createObject('yii\log\Logger');
- }
- }
-
-
-
- public static function setLogger($logger)
- {
- self::$_logger = $logger;
- }
-
-
-
- public static function trace($message, $category = 'application')
- {
- if (YII_DEBUG) {
- static::getLogger()->log($message, Logger::LEVEL_TRACE, $category);
- }
- }
-
-
-
- public static function error($message, $category = 'application')
- {
- static::getLogger()->log($message, Logger::LEVEL_ERROR, $category);
- }
-
-
-
- public static function warning($message, $category = 'application')
- {
- static::getLogger()->log($message, Logger::LEVEL_WARNING, $category);
- }
-
-
-
- public static function info($message, $category = 'application')
- {
- static::getLogger()->log($message, Logger::LEVEL_INFO, $category);
- }
-
-
-
- public static function beginProfile($token, $category = 'application')
- {
- static::getLogger()->log($token, Logger::LEVEL_PROFILE_BEGIN, $category);
- }
-
-
-
- public static function endProfile($token, $category = 'application')
- {
- static::getLogger()->log($token, Logger::LEVEL_PROFILE_END, $category);
- }
-
-
-
- public static function powered()
- {
- return \Yii::t('yii', 'Powered by {yii}', [
- 'yii' => '<a href="http://www.yiiframework.com/" rel="external">' . \Yii::t('yii',
- 'Yii Framework') . '</a>'
- ]);
- }
-
-
-
- public static function t($category, $message, $params = [], $language = null)
- {
- if (static::$app !== null) {
- return static::$app->getI18n()->translate($category, $message, $params, $language ?: static::$app->language);
- } else {
- $p = [];
- foreach ((array) $params as $name => $value) {
- $p['{' . $name . '}'] = $value;
- }
-
- return ($p === []) ? $message : strtr($message, $p);
- }
- }
-
-
-
- public static function configure($object, $properties)
- {
- foreach ($properties as $name => $value) {
- $object->$name = $value;
- }
-
- return $object;
- }
-
-
-
- public static function getObjectVars($object)
- {
- return get_object_vars($object);
- }
- }
|