我不能在這個Yii2直到找到現在 如果你願意,你可以做跟隨
擴展類的Yii它位於的內容(/vendor/yiisoft/yii2/Yii.php)並添加類Yii功能 public static load($ path)和 static function listFolderFiles($ dir)。 :
在您的代碼中使用這些示例! Yii :: load('models。*');();}};}}}}}} - 這加載目錄模型中的所有文件和子目錄中的所有文件
Yii :: load(['models。*','components。*']); - 這加載模型和組件中的所有文件也在子目錄中的文件
Yii :: load(['models。*','components.yourClassFileName']); - 這種負荷模型中的所有文件(和文件子目錄),並與內容組件
公共靜態功能負荷($ PATH = 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($ DIR)內容:
$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