在laravel中,我試圖使用控制檯創建文件。我將要創建的文件是一個特徵文件。我的情況是,如果我只寫了文件的名稱,它會根據需要創建。但是,當作爲目錄傳遞時,它不會被創建。如何在php中創建嵌套的目錄php
該數組可以是動態的。這取決於用戶多大的目錄應該是。
只是爲了舉例:我採取2級目錄。
我的數組是:
Array
(
[0] => 'RootTrait' // the root place of the trait folder
[1] => 'Level-1' // Directory inside the trait folder
[2] => 'Level-2' // Directory inside the Level-1 folder
[3] => 'file.php' // The file that will be created inside Level 2 folder
)
我應該怎麼做才能實現這一目標?
,我已經試過到目前爲止是代碼:
/**
* Process the creation of trait file.
*
* @param string $traitName
* @param \Illuminate\Filesystem\Filesystem $file
* @param string $nameSpace
* @return bool
*/
public function processTraitFile($traitName, Filesystem $file, $nameSpace = 'App')
{
$traitFileName = $file->get('app/stubs/Trait.stub');
$newTraitFile = str_replace(['TraitName', 'App'], [$traitName, $nameSpace], $traitFileName);
if (! file_exists("app/Http/Traits/{$traitName}")) {
$traitFolders = explode('/', $traitName);
$lastElement = array_pop($traitFolders);
foreach ($traitFolders as $key => $folder) {
$file->makeDirectory('app/Http/Traits/' . $folder, 0755, true);
}
}
return $file->put("app/Http/Traits/{$traitName}.php", $newTraitFile);
}
,上述方法並創建文件夾,但不能嵌套。它是這樣創建文件夾:
|-- Root Trait Folder
|-- Level-1
|-- Level-2
|-- file.php
我知道這一定很容易實現,但我失敗了。
請幫助我。謝謝。