gpt4 book ai didi

yii 创建一个没有 Assets 的干净应用程序

转载 作者:行者123 更新时间:2023-12-04 04:37:37 25 4
gpt4 key购买 nike

我用 ./yiic webapp /path/to/name创建一个项目,但我不需要一些创建的文件。

实际:
assets css images index.php index-test.php protected themes
预期:
index.php protected
我应该更改的模板在哪里。

最佳答案

如果您希望真正改变这一点,您应该扩展(或修改)作为框架一部分的 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);
}
}

最后调用 MyCustomWebApp 而不是调用 WebApp。

附言我一般会建议 不是 在不知道你在做什么的情况下扩展/修改核心类,它会在你意想不到的地方破坏很多东西,升级变得非常困难。在您的情况下更简单的是手动删除文件。

关于yii 创建一个没有 Assets 的干净应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19467635/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com