1 フォロワー

クラス yii\BaseYii

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

BaseYiiはYiiフレームワークのコアヘルパークラスです。

BaseYiiを直接使用しないでください。代わりに、子クラスのYiiを使用してください。これはBaseYiiのメソッドをカスタマイズするために置き換えることができます。

公開プロパティ

継承されたプロパティを非表示

プロパティ 説明 定義元
$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

プロパティの詳細

継承されたプロパティを非表示

$aliases public static property

登録されたパスエイリアス

参照

public static array $aliases = [
    
'@yii' => __DIR__,
]
$app public static property

アプリケーションインスタンス

$classMap public static property

Yiiの自動読み込みメカニズムで使用されるクラスマップ。配列のキーはクラス名(先頭のバックスラッシュなし)、配列の値は対応するクラスファイルパス(またはパスエイリアス)です。このプロパティは主にautoload()の動作に影響します。

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

public static array $classMap = []
$container public static property

createObject()で使用される依存性注入(DI)コンテナ。クラスに必要な依存関係と初期プロパティ値を設定するには、yii\di\Container::set()を使用できます。

参照

public static yii\di\Container $container null

メソッドの詳細

継承されたメソッドを非表示

autoload() public static メソッド

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

このメソッドは、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 メソッド

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

これは、同じカテゴリ名で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 メソッド

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

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 メソッド

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

このメソッドは、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以降で使用可能)

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

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

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 メソッド

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

これは、同じカテゴリ名で以前に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 メソッド

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

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

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 メソッド

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

変換は次の手順で行われます。

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

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

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

ただし、変換するエイリアスが「@foo/barbar/config」の場合、「/」が境界文字として機能するため、「@foo」が「@foo/bar」の代わりに置き換えられます。

このメソッドは、返されたパスが存在するかどうかを確認しません。

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

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 メソッド

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 メソッド

オブジェクトのパブリックメンバ変数を返します。

このメソッドは、オブジェクトのパブリックなメンバ変数を取得するために提供されています。「get_object_vars()」とは異なり、オブジェクト内から呼び出された場合でも、プライベートおよびプロテクトされた変数は返しません。

public static array getObjectVars ( $object )
$object object

処理対象のオブジェクト

戻り値 array

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

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

            
getRootAlias() public static メソッド

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

ルートエイリアスとは、以前に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フレームワークの現在のバージョンを表す文字列を返します。

public static string getVersion ( )
戻り値 string

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

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

            
info() public static メソッド

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

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

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 Framework を使用して構築」情報を表示する、Webページに表示できるHTMLハイパーリンクを返します。

public static string powered ( )
戻り値 string

「Powered by Yii Framework」情報を表示する、Webページに表示できる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 メソッド

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

パスエイリアスは、長いパス(ファイルパス、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 メソッド

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

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

ロガーオブジェクト。

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

            
t() public static メソッド

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

これは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() を代わりに使用してください。

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 メソッド

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

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

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