class から trait を use する場合
- 現在属している名前空間が基点になる
- 定義の時点でトレイトが見つからない場合はエラーになる
絶対指定
<?php
namespace mpyw;
class App
{
use \mpyw\AwesomeLogger\LoggerTrait;
}
相対指定
<?php
namespace mpyw;
class App
{
use AwesomeLogger\LoggerTrait;
}
namespace から何かを use する場合
- 常にルート名前空間が基点になる
- 実際に対象が使用されるまでエラーは検査されない
絶対指定
<?php
namespace mpyw;
use \mpyw\AwesomeLogger\Logger;
use \mpyw\AwesomeLogger\LoggerInterface;
use \mpyw\AwesomeLogger\LoggerTrait;
use function \mpyw\AwesomeLogger\writelog;
相対指定
<?php
namespace mpyw;
use mpyw\AwesomeLogger\Logger;
use mpyw\AwesomeLogger\LoggerInterface;
use mpyw\AwesomeLogger\LoggerTrait;
use function mpyw\AwesomeLogger\writelog;
つまり,この場合は先頭の \
は完全に不必要です。書かないことが推奨される,ってどこかで見たような…(情報求む)