당신이
따라가에있는 클래스 YII의 내용을 확장 할 수 원하는 경우 지금과 까지 Yii2이에서 찾을 수 없습니다 (/vendor/yiisoft/yii2/Yii.php) 클래스 Yii 함수에 추가합니다. public static load ($ path) 및 정적 함수 listFolderFiles ($ dir)입니다. :
다음 예를 코드에 사용하십시오!
Yii :: load ('models. *'); -이 부하 하위 디렉토리에서 디렉토리 모델에있는 모든 파일과 모든 파일
YII :: 부하 ([ '. 모델 *', '. 구성 요소 *']); - 모델 및 구성 요소의 모든 파일을 하위 디렉토리에있는 파일로로드합니다.
Yii :: load ([ 'models. *', 'components.yourClassFileName']); -이 부하 모든 모델에서 파일 (파일 서브 디렉토리) 및 콘텐츠와 구성 요소
공공 정적 기능로드 ($ 경로 = NULL)에서 하나 개의 파일 :
if($path != null){
$root = self::getAlias('@webroot');
if(is_array($path)){
foreach($path as $p){
$p = str_replace('/', '\\', $root).'/'.str_replace('.','/',$p);
if(substr($p, -2) == '/*'){
$dir = substr($p, 0, -2);
self::listFolderFiles($dir);
} else {
require substr($p, 0, -1).'.php';
}
}
}
if(is_string($path)){
$path = str_replace('/', '\\', $root).'/'.str_replace('.','/',$path);
if(substr($p, -2) == '/*'){
$dir = substr($p, 0, -2);
self::listFolderFiles($dir);
} else {
require $path.'.php';
}
}
}
정적 기능 listFolderFiles ($ 말 일세) 내용 :
$ffs = scandir($dir);
foreach($ffs as $ff){
if($ff != '.' && $ff != '..'){
if(is_dir($dir.'/'.$ff)) {
self::listFolderFiles($dir.'/'.$ff);
} else {
require $dir.'/'.$ff;
}
}
}
가장 좋은 방법은 네임 스페이스를 사용하는 것입니다. – Oleg
네임 스페이스는 PHP 5.3.0 이상이 필요하며 5.2.5를 사용하고 있습니다. – Youcef04
귀하의 게시물에 이것을 언급하지 마십시오. 5.3을 사용하지 않는 이유는 무엇입니까? :) – Oleg