0 フォロワー

クラス Yii

継承Yii » yii\BaseYii
利用可能なバージョン2.0
ソースコード https://github.com/yiisoft/yii2/blob/master/framework/Yii.php

Yiiは、共通のフレームワーク機能を提供するヘルパークラスです。

これはyii\BaseYiiを拡張しており、実際の処理を提供します。yii\BaseYii独自のYiiクラスを作成することで、いくつかの機能をカスタマイズできます。

公開プロパティ

継承されたプロパティを隠す

プロパティ 説明 定義元
$aliases array 登録されたパスエイリアス yii\BaseYii
$app yii\console\Application|yii\web\Application アプリケーションインスタンス yii\BaseYii
$classMap array Yiiの自動読み込みメカニズムで使用されるクラスマップ。 yii\BaseYii
$container yii\di\Container createObject()で使用される依存性注入(DI)コンテナ。 yii\BaseYii

公開メソッド

継承されたメソッドを隠す

メソッド 説明 定義元
autoload() クラスの自動読み込みローダー。 yii\BaseYii
beginProfile() プロファイリングのためのコードブロックの開始をマークします。 yii\BaseYii
configure() 初期プロパティ値でオブジェクトを構成します。 yii\BaseYii
createObject() 与えられた設定を使用して新しいオブジェクトを作成します。 yii\BaseYii
debug() デバッグメッセージをログに記録します。 yii\BaseYii
endProfile() プロファイリングのためのコードブロックの終了をマークします。 yii\BaseYii
error() エラーメッセージをログに記録します。 yii\BaseYii
getAlias() パスエイリアスを実際のパスに変換します。 yii\BaseYii
getLogger() yii\BaseYii
getObjectVars() オブジェクトの公開メンバ変数を返します。 yii\BaseYii
getRootAlias() 指定されたエイリアスのルートエイリアスパートを返します。 yii\BaseYii
getVersion() Yiiフレームワークの現在のバージョンを表す文字列を返します。 yii\BaseYii
info() 情報メッセージをログに記録します。 yii\BaseYii
powered() 「Yii Frameworkで動作しています」情報を表示するWebページに表示できるHTMLハイパーリンクを返します。 yii\BaseYii
setAlias() パスエイリアスを登録します。 yii\BaseYii
setLogger() ロガーオブジェクトを設定します。 yii\BaseYii
t() メッセージを指定された言語に翻訳します。 yii\BaseYii
trace() debug()のエイリアス。 yii\BaseYii
warning() 警告メッセージをログに記録します。 yii\BaseYii

メソッドの詳細

継承されたメソッドを隠す

autoload() public static method

定義元: yii\BaseYii::autoload()

クラスの自動読み込みローダー。

このメソッドは、PHPが未知のクラスを検出すると自動的に呼び出されます。このメソッドは、次の手順に従ってクラスファイルを含めようとします。

  1. $classMapで検索します。
  2. クラスが名前空間付きの場合(例:yii\base\Component)、対応するパスエイリアス(例:@yii/base/Component.php)に関連付けられたファイルを含めようとします。

このオートローダーを使用すると、PSR-4標準に従い、トップレベルの名前空間またはサブ名前空間がパスエイリアスとして定義されているクラスを読み込むことができます。

例:エイリアス@yii@yii/bootstrapが定義されている場合、yii\bootstrap名前空間のクラスは、bootstrap拡張ファイルがインストールされているディレクトリを指す@yii/bootstrapエイリアスを使用して読み込まれ、他のyii名前空間からのすべてのクラスはyiiフレームワークディレクトリから読み込まれます。

また、オートローディングに関するガイドセクションも参照してください。

public static void autoload ( $className )
$className string

先頭の円記号「\」のない完全修飾クラス名

スロー yii\base\UnknownClassException

クラスがクラスファイルに存在しない場合

                public static function autoload($className)
{
    if (isset(static::$classMap[$className])) {
        $classFile = static::$classMap[$className];
        if (strncmp($classFile, '@', 1) === 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?");
    }
}

            
beginProfile() public static method

定義元: yii\BaseYii::beginProfile()

プロファイリングのためのコードブロックの開始をマークします。

これは、同じカテゴリ名でendProfile()への呼び出しと一致する必要があります。beginとendの呼び出しも適切にネストする必要があります。例:

\Yii::beginProfile('block1');
// some code to be profiled
    \Yii::beginProfile('block2');
    // some other code to be profiled
    \Yii::endProfile('block2');
\Yii::endProfile('block1');

endProfile()も参照してください。

public static void beginProfile ( $token, $category 'application' )
$token string

コードブロックのトークン

$category string

このログメッセージのカテゴリ

                public static function beginProfile($token, $category = 'application')
{
    static::getLogger()->log($token, Logger::LEVEL_PROFILE_BEGIN, $category);
}

            
configure() public static method

定義元: yii\BaseYii::configure()

初期プロパティ値でオブジェクトを構成します。

public static object configure ( $object, $properties )
$object object

構成されるオブジェクト

$properties array

名前と値のペアで指定されたプロパティの初期値。

戻り値 object

オブジェクト自体

                public static function configure($object, $properties)
{
    foreach ($properties as $name => $value) {
        $object->$name = $value;
    }
    return $object;
}

            
createObject() public static メソッド

定義場所: yii\BaseYii::createObject()

与えられた設定を使用して新しいオブジェクトを作成します。

このメソッドは、new演算子の拡張版と考えることができます。クラス名、設定配列、または無名関数に基づいてオブジェクトの作成をサポートします。

いくつかの使用例を以下に示します。

// create an object using a class name
$object = Yii::createObject('yii\db\Connection');

// create an object using a configuration array
$object = Yii::createObject([
    'class' => 'yii\db\Connection',
    'dsn' => 'mysql:host=127.0.0.1;dbname=demo',
    'username' => 'root',
    'password' => '',
    'charset' => 'utf8',
]);

// create an object with two constructor parameters
$object = \Yii::createObject('MyClass', [$param1, $param2]);

依存性注入コンテナ を使用すると、このメソッドは依存オブジェクトも識別し、それらをインスタンス化して、新しく作成されたオブジェクトに注入することもできます。

こちらも参照してください yii\di\Container

public static object createObject ( $type, array $params = [] )
$type string|array|callable

オブジェクトの種類。以下のいずれかの形式で指定できます。

  • 文字列: 作成するオブジェクトのクラス名を表します。
  • 設定配列: 配列にはclass要素が含まれていなければなりません。これはオブジェクトクラスとして扱われ、残りの名前と値のペアは対応するオブジェクトのプロパティの初期化に使用されます。
  • PHPの呼び出し可能オブジェクト: 無名関数、またはクラスメソッドを表す配列([$class or $object, $method])。呼び出し可能オブジェクトは、作成されるオブジェクトの新しいインスタンスを返す必要があります。
$params array

コンストラクタパラメータ

戻り値 object

作成されたオブジェクト

スロー yii\base\InvalidConfigException

設定が無効な場合。

                public static function createObject($type, array $params = [])
{
    if (is_string($type)) {
        return static::$container->get($type, $params);
    }
    if (is_callable($type, true)) {
        return static::$container->invoke($type, $params);
    }
    if (!is_array($type)) {
        throw new InvalidConfigException('Unsupported configuration type: ' . gettype($type));
    }
    if (isset($type['__class'])) {
        $class = $type['__class'];
        unset($type['__class'], $type['class']);
        return static::$container->get($class, $params, $type);
    }
    if (isset($type['class'])) {
        $class = $type['class'];
        unset($type['class']);
        return static::$container->get($class, $params, $type);
    }
    throw new InvalidConfigException('Object configuration must be an array containing a "class" or "__class" element.');
}

            
debug() public static メソッド (バージョン 2.0.14 以降で使用可能)

定義場所: yii\BaseYii::debug()

デバッグメッセージをログに記録します。

トレースメッセージは、主に開発目的で、コードの実行ワークフローを確認するためにログに記録されます。このメソッドは、アプリケーションがデバッグモードの場合にのみメッセージをログに記録します。

public static void debug ( $message, $category 'application' )
$message string|array

ログに記録するメッセージ。単純な文字列でも、配列など、より複雑なデータ構造でもかまいません。

$category string

メッセージのカテゴリ。

                public static function debug($message, $category = 'application')
{
    if (YII_DEBUG) {
        static::getLogger()->log($message, Logger::LEVEL_TRACE, $category);
    }
}

            
endProfile() public static メソッド

定義場所: yii\BaseYii::endProfile()

プロファイリングのためのコードブロックの終了をマークします。

これは、同じカテゴリ名で以前呼び出されたbeginProfile()と対応付けられなければなりません。

こちらも参照してください beginProfile()

public static void endProfile ( $token, $category 'application' )
$token string

コードブロックのトークン

$category string

このログメッセージのカテゴリ

                public static function endProfile($token, $category = 'application')
{
    static::getLogger()->log($token, Logger::LEVEL_PROFILE_END, $category);
}

            
error() public static メソッド

定義場所: yii\BaseYii::error()

エラーメッセージをログに記録します。

エラーメッセージは、通常、アプリケーションの実行中に回復不可能なエラーが発生した場合にログに記録されます。

public static void error ( $message, $category 'application' )
$message string|array

ログに記録するメッセージ。単純な文字列でも、配列など、より複雑なデータ構造でもかまいません。

$category string

メッセージのカテゴリ。

                public static function error($message, $category = 'application')
{
    static::getLogger()->log($message, Logger::LEVEL_ERROR, $category);
}

            
getAlias() public static メソッド

定義場所: yii\BaseYii::getAlias()

パスエイリアスを実際のパスに変換します。

変換は、以下の手順で行われます。

  1. 指定されたエイリアスが'@'で始まらない場合、変更せずに返されます。
  2. それ以外の場合は、指定されたエイリアスの先頭部分に一致する、登録されている最も長いエイリアスを探します。存在する場合は、指定されたエイリアスの対応する部分を、登録された対応するパスに置き換えます。
  3. $throwExceptionパラメータに応じて、例外をスローするか、falseを返します。

たとえば、デフォルトでは'@yii'はYiiフレームワークディレクトリ(たとえば'/path/to/yii')へのエイリアスとして登録されています。エイリアス'@yii/web'は、'/path/to/yii/web'に変換されます。

2つのエイリアス'@foo'と'@foo/bar'を登録した場合、'@foo/bar/config'の変換では、'@foo'ではなく'@foo/bar'の部分が対応する登録されたパスに置き換えられます。これは、最も長いエイリアスが優先されるためです。

ただし、変換するエイリアスが'@foo/barbar/config'の場合、'/'は境界文字として機能するため、'@foo/bar'ではなく'@foo'が置き換えられます。

注記: このメソッドは、返されたパスが存在するかどうかをチェックしません。

詳細については、エイリアスに関するガイド記事を参照してください。

こちらも参照してください setAlias()

public static string|false getAlias ( $alias, $throwException true )
$alias string

変換するエイリアス。

$throwException boolean

指定されたエイリアスが無効な場合に例外をスローするかどうか。これがfalseで、無効なエイリアスが指定された場合、このメソッドはfalseを返します。

戻り値 string|false

エイリアスに対応するパス。ルートエイリアスが以前に登録されていない場合はfalse。

スロー yii\base\InvalidArgumentException

$throwExceptionがtrueの場合、エイリアスが無効な場合。

                public static function getAlias($alias, $throwException = true)
{
    if (strncmp((string)$alias, '@', 1) !== 0) {
        // not an alias
        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);
        }
        foreach (static::$aliases[$root] as $name => $path) {
            if (strpos($alias . '/', $name . '/') === 0) {
                return $path . substr($alias, strlen($name));
            }
        }
    }
    if ($throwException) {
        throw new InvalidArgumentException("Invalid path alias: $alias");
    }
    return false;
}

            
getLogger() public static メソッド

定義場所: yii\BaseYii::getLogger()

public static yii\log\Logger getLogger ( )
戻り値 yii\log\Logger

メッセージロガー

                public static function getLogger()
{
    if (self::$_logger !== null) {
        return self::$_logger;
    }
    return self::$_logger = static::createObject('yii\log\Logger');
}

            
getObjectVars() public static メソッド

定義場所: yii\BaseYii::getObjectVars()

オブジェクトの公開メンバ変数を返します。

このメソッドは、オブジェクトのパブリックメンバ変数を取得できるように提供されています。"get_object_vars()"とは異なり、後者はオブジェクト自体内で呼び出された場合、プライベート変数とプロテクト変数を返します。

public static array getObjectVars ( $object )
$object object

処理するオブジェクト

戻り値 array

オブジェクトのパブリックメンバ変数

                public static function getObjectVars($object)
{
    return get_object_vars($object);
}

            
getRootAlias() public static メソッド

定義場所: yii\BaseYii::getRootAlias()

指定されたエイリアスのルートエイリアスパートを返します。

ルートエイリアスとは、以前にsetAlias()を介して登録されたエイリアスです。指定されたエイリアスが複数のルートエイリアスに一致する場合、最も長いものが返されます。

public static string|false getRootAlias ( $alias )
$alias string

エイリアス

戻り値 string|false

ルートエイリアス、またはルートエイリアスが見つからない場合は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;
        }
        foreach (static::$aliases[$root] as $name => $path) {
            if (strpos($alias . '/', $name . '/') === 0) {
                return $name;
            }
        }
    }
    return false;
}

            
getVersion() public static メソッド

定義されている場所: yii\BaseYii::getVersion()

Yiiフレームワークの現在のバージョンを表す文字列を返します。

public static string getVersion ( )
戻り値 string

Yiiフレームワークのバージョン

                public static function getVersion()
{
    return '2.0.50-dev';
}

            
info() public static メソッド

定義されている場所: yii\BaseYii::info()

情報メッセージをログに記録します。

情報メッセージは、通常、アプリケーションによって重要な事柄(例:管理者のログイン)を記録するためにログに記録されます。

public static void info ( $message, $category 'application' )
$message string|array

ログに記録するメッセージ。単純な文字列でも、配列など、より複雑なデータ構造でもかまいません。

$category string

メッセージのカテゴリ。

                public static function info($message, $category = 'application')
{
    static::getLogger()->log($message, Logger::LEVEL_INFO, $category);
}

            
powered() public static メソッド
2.0.14から非推奨、2.1.0で削除されます。

定義されている場所: yii\BaseYii::powered()

「Yii Frameworkで動作しています」情報を表示するWebページに表示できるHTMLハイパーリンクを返します。

public static string powered ( )
戻り値 string

Webページに表示できる「Powered by Yii Framework」情報を表示するHTMLハイパーリンク

                public static function powered()
{
    return \Yii::t('yii', 'Powered by {yii}', [
        'yii' => '<a href="https://yii.dokyumento.jp/" rel="external">' . \Yii::t('yii', 'Yii Framework') . '</a>',
    ]);
}

            
setAlias() public static メソッド

定義されている場所: yii\BaseYii::setAlias()

パスエイリアスを登録します。

パスエイリアスは、長いパス(ファイルパス、URLなど)を表す短い名前です。たとえば、「@yii」はYiiフレームワークディレクトリへのパスのエイリアスとして使用します。

パスエイリアスは「@」で始まる必要があります。これにより、エイリアス以外のパスと簡単に区別できます。

このメソッドは、指定されたパスが存在するかどうかをチェックしません。エイリアスとパスを関連付けるだけです。

指定されたパスの末尾の「/」と「\」文字はトリムされます。

詳細については、エイリアスに関するガイド記事を参照してください。

getAlias()も参照してください。

public static void setAlias ( $alias, $path )
$alias string

エイリアス名(例:「@yii」)。「@」で始まる必要があります。「/」を含めることができ、getAlias()によるエイリアス変換を行う際に境界文字として機能します。

$path string|null

エイリアスに対応するパス。これがnullの場合、エイリアスは削除されます。「/」と「\」の末尾の文字はトリムされます。これは、次のことができます。

  • ディレクトリまたはファイルパス(例:「/tmp」、「/tmp/main.txt」)
  • URL(例:「https://yii.dokyumento.jp」)
  • パスエイリアス(例:「@yii/base」)。この場合、パスエイリアスはgetAlias()を呼び出すことで実際のパスに変換されます。
スロー yii\base\InvalidArgumentException

$pathが不正なエイリアスの場合。

                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]);
        }
    }
}

            
setLogger() public static メソッド

定義されている場所: yii\BaseYii::setLogger()

ロガーオブジェクトを設定します。

public static void setLogger ( $logger )
$logger yii\log\Logger|null

ロガーオブジェクト。

                public static function setLogger($logger)
{
    self::$_logger = $logger;
}

            
t() public static メソッド

定義されている場所: yii\BaseYii::t()

メッセージを指定された言語に翻訳します。

これはyii\i18n\I18N::translate()のショートカットメソッドです。

翻訳はメッセージカテゴリに従って行われ、ターゲット言語が使用されます。

翻訳メッセージにパラメータを追加できます。これは、翻訳後に対応する値で置き換えられます。このフォーマットは、次の例のように、パラメータ名を波括弧で囲むことです。

$username = 'Alexander';
echo \Yii::t('app', 'Hello, {username}!', ['username' => $username]);

PHP intl拡張機能メッセージフォーマッタを使用して、メッセージパラメータのさらなるフォーマットがサポートされています。yii\i18n\I18N::translate()で詳細を参照してください。

public static string t ( $category, $message, $params = [], $language null )
$category string

メッセージカテゴリ。

$message string

翻訳するメッセージ。

$params array

メッセージ内の対応するプレースホルダーを置き換えるために使用されるパラメータ。

$language string|null

言語コード(例:「en-US」、「en」)。これがnullの場合、現在のアプリケーション言語が使用されます。

戻り値 string

翻訳されたメッセージ。

                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);
    }
    $placeholders = [];
    foreach ((array) $params as $name => $value) {
        $placeholders['{' . $name . '}'] = $value;
    }
    return ($placeholders === []) ? $message : strtr($message, $placeholders);
}

            
trace() public static メソッド
2.0.14から非推奨。debug()を使用してください。

定義されている場所: yii\BaseYii::trace()

debug()のエイリアス。

public static void trace ( $message, $category 'application' )
$message string|array

ログに記録するメッセージ。単純な文字列でも、配列など、より複雑なデータ構造でもかまいません。

$category string

メッセージのカテゴリ。

                public static function trace($message, $category = 'application')
{
    static::debug($message, $category);
}

            
warning() public static メソッド

定義されている場所: yii\BaseYii::warning()

警告メッセージをログに記録します。

警告メッセージは、通常、エラーが発生しても実行を継続できる場合にログに記録されます。

public static void warning ( $message, $category 'application' )
$message string|array

ログに記録するメッセージ。単純な文字列でも、配列など、より複雑なデータ構造でもかまいません。

$category string

メッセージのカテゴリ。

                public static function warning($message, $category = 'application')
{
    static::getLogger()->log($message, Logger::LEVEL_WARNING, $category);
}