2013-10-19 72 views
2

我使用./yiic webapp /path/to/name創建一個項目,但我不需要創建一些文件。yii創建一個沒有資產的乾淨應用程序

實際: assets css images index.php index-test.php protected themes

預計: index.php protected

哪裏是模板,我應該改變。

回答

3

如果您希望真正改變這種情況,您應該擴展(或修改)作爲框架一部分的類WebAppCommand。它可以在

Yii 
-> Framework 
    ->cli 
    -> commands 
     ->WebAppCommand.php 

而不是通過修改等植物學代碼,我建議你寫一個擴展WebAppCommand類,只是刪除在調用的WebAppCommand run方法,並增加了額外的行刪除單獨的方法目錄自定義類中找到不必要的目錄。 也許這樣的事情...

<?php 
class MyCustomWebAppCommand extends WebAppCommand { 
     private $_rootPath; // Need to redefine and compute this as thevariable is defined as private in the parent class and better not touch core classes; 
     public function run($args){ 
      parent::run($args); 
      $path=strtr($args[0],'/\\',DIRECTORY_SEPARATOR); 
      if(strpos($path,DIRECTORY_SEPARATOR)===false) 
      $path='.'.DIRECTORY_SEPARATOR.$path; 
      if(basename($path)=='..') 
      $path.=DIRECTORY_SEPARATOR.'.'; 
      $dir=rtrim(realpath(dirname($path)),'\\/'); 
      if($dir===false || !is_dir($dir)) 
       $this->usageError("The directory '$path' is not valid. Please make sure the parent directory exists."); 
      if(basename($path)==='.') 
       $this->_rootPath=$path=$dir; 
      else 
       $this->_rootPath=$path=$dir.DIRECTORY_SEPARATOR.basename($path); 
       $this->deleteDir($this->_rootPath.DIRECTORY_SEPARATOR."assets"); 
       $this->deleteDir($this->_rootPath.DIRECTORY_SEPARATOR."themes"); 
       $this->deleteDir($this->_rootPath.DIRECTORY_SEPARATOR."images"); 
       $this->deleteDir($this->_rootPath.DIRECTORY_SEPARATOR."css"); 
       unset($this->_rootPath.DIRECTORY_SEPARATOR."index-test.php"); 
     } 


     public static function deleteDir($dirPath) { 
      if (! is_dir($dirPath)) { 
      throw new InvalidArgumentException("$dirPath must be a directory"); 
      } 
      if (substr($dirPath, strlen($dirPath) - 1, 1) != '/') { 
      $dirPath .= '/'; 
      } 
      $files = glob($dirPath . '*', GLOB_MARK); 
      foreach ($files as $file) { 
      if (is_dir($file)) { 
       self::deleteDir($file); 
      } else { 
       unlink($file); 
      } 
     } 
     rmdir($dirPath); 
     } 
} 

最後調用,而不是調用Web應用程序MyCustomWebApp。

P.S.我通常會建議而不是在不知道自己在做什麼的情況下擴展/修改核心類,它會在很多您不會預料的地方破解很多內容,並且升級變得非常困難。更簡單的是手動刪除文件。

相關問題