반응형
PHP 다른 네임스페이스에서 모든 클래스를 가져오는 방법
기존 프로젝트에서 네임스페이스를 구현하고 있습니다.'use' 키워드를 사용하여 클래스를 네임스페이스로 가져올 수 있습니다.한 네임스페이스에서 다른 네임스페이스로 모든 클래스를 가져올 수 있습니까?예:
namespace foo
{
class bar
{
public static $a = 'foobar';
}
}
namespace
{
use \foo; //This doesn't work!
echo bar::$a;
}
PHP 7+ 업데이트
PHP 7의 새로운 기능은 그룹화된 선언입니다.이렇게 하면 특정 네임스페이스의 모든 클래스에 대해 하나의 '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();
긴 네임스페이스의 단축과 에일리어스에 "as"를 사용할 수 있습니다.
composer.json
{
"autoload": {
"psr-4": {
"Lorem\\Ipsum\\": "lorem/ipsum",
"Lorem\\Ipsum\\Dolor\\": "lorem/ipsum/dolor",
"Lorem\\Ipsum\\Dolor\\Sit\\": "lorem/ipsum/dolor/sit"
}
}
}
index.displaces를 표시합니다.
<?php
use Lorem\Ipsum\Dolor\Sit as FOO;
define ('BASE_PATH',dirname(__FILE__));
require BASE_PATH.DIRECTORY_SEPARATOR.'vendor'.DIRECTORY_SEPARATOR.'autoload.php';
$bar = new FOO\Bar();
$baz = new FOO\Baz();
$qux = new FOO\Qux();
언급URL : https://stackoverflow.com/questions/7121682/php-how-to-import-all-classes-from-another-namespace
반응형
'sourcecode' 카테고리의 다른 글
Java에서의 이니셜라이저와 컨스트럭터 사용 (0) | 2022.09.06 |
---|---|
여러 옵션 필드 필터를 사용한 SQL 키워드 검색(메타베이스) (0) | 2022.09.06 |
요소가 존재할 때까지 기다리는 방법 (0) | 2022.09.06 |
외부 "C++"를 사용하는 이유는 무엇입니까? (0) | 2022.09.06 |
PDOException SQLSTATE[HY000] [2002] 해당 파일 또는 디렉터리가 없습니다. (0) | 2022.09.06 |