在Laravel 5中我想更改默认目录结构,因此api
的路径我希望将其移动到.
├── app
├── bootstrap
├── config
├── database
├── public
├── resources
├── storage
├── tests
└── vendor
之类的内容,我该如何实现?
示例,而不是这个结构:
.
├── api
├── bootstrap
├── config
├── database
├── public
├── resources
├── storage
├── tests
└── vendor
我想要这个:
"autoload": {
"classmap": [
"database"
],
"psr-4": {
"Api\\": "api/"
}
},
在我的作曲家中,我更改了名称空间,如下所示:How to change app folder name in laravel 5:
[RuntimeException]
Unable to detect application namespace.
但是我收到了错误:
app
答案 0 :(得分:1)
好吧,过了一段时间我找到了实现这个目标的方法,在寻找其他答案后like this我发现Application::path()
路径是Application::path()
see the source中的硬编码}
然后我可以通过覆盖class Application extends \Illuminate\Foundation\Application
{
/**
* Overrides the path to the application "app" directory.
*
* @return string
*/
public function path()
{
return $this->basePath.DIRECTORY_SEPARATOR.'api';
}
}
方法来使其工作:
bootstrap/app.php
然后更新// Overrides the PATH to use api instead of app
$app = new Api\Application(
realpath(__DIR__.'/../')
);
:
.
├── api
├── bootstrap
├── config
├── database
├── public
├── resources
├── storage
├── tests
└── vendor
现在我可以拥有以下结构:
<form method="get" action="in-out.htm" id="sensor_1">
<select name="schedule" value="~maj_sensor_schedule(1)~">
<option value="0">never</option>
<option value="1">every 5 minutes</option>
<option value="2">every 10 minutes</option>
<option value="3">every 15 minutes</option>
<option value="4">every 30 minutes</option>
<option value="5">every hour</option>
<option value="6">every 2 hours</option>
<option value="7">every 4 hours</option>
<option value="8">every 8 hours</option>
<option value="9">every 12 hours</option>
<option value="10">everyday</option>
<option value="11">every week</option>
<option value="12">every month</option>
<option value="13">every 6 months</option>
<option value="14">every year</option></select>
<input src="./checked.png"onclick="document.getElementById('sensor_1').submit()" align="center" type="image">
</form>
在https://mattstauffer.co/blog/extending-laravels-application
中找到了类似的方法答案 1 :(得分:0)
在Laravel 5.7中,您现在可以使用$app->setAppPath($path)
,如下所示:
$app->useAppPath(realpath(__DIR__ . '/../api'));
可以从bootstrap/app.php
调用它。