1. ホーム
  2. php

[解決済み] PHP 別の名前空間からすべてのクラスをインポートする方法

2023-07-13 20:41:20

質問

既存のプロジェクトで名前空間を実装しています。キーワード 'use' を使用すると、クラスをネームスペースにインポートできることがわかりました。私の質問は、1 つのネームスペースから別のネームスペースにすべてのクラスをインポートすることもできます。例

namespace foo
{

    class bar
    {

        public static $a = 'foobar';

    }

}

namespace
{
    use \foo;  //This doesn't work!
    echo bar::$a;
}

PHP 7+ 対応のアップデート

PHP 7 の新機能として、グループ化された宣言があります。これは、与えられた名前空間内のすべてのクラスに対して1つの「use文」を使用するほど簡単ではありませんが、いくらか容易になります...。

コード例です。

<?php
// Pre PHP 7 code
use some\namespace\ClassA;
use some\namespace\ClassB;
use some\namespace\ClassC as C;

// PHP 7+ code
use some\namespace\{ClassA, ClassB, ClassC as C};
?>

こちらもご覧ください。 https://secure.php.net/manual/en/migration70.new-features.php#migration70.new-features.group-use-declarations

どのように解決するのですか?

PHPでは不可能です。

できるのは

namespace Foo;

use Bar;

$obj = new Bar\SomeClassFromBar();