在laravel项目中生成内置的对象配置文件扩展包推荐:punchcard
Punchcard扩展包:是一种懒惰而严格的方式来配置你的Laravel项目。
在Laravel的配置之上, 这个包提供了流畅的配置类,有以下内容:
严格类型的配置
在IDE中自动完成
基于类的参数
下面是作者的文章中的一个例子, 介绍Punchcard - Laravel的对象配置:
// config/view.php
use TomasVotruba\PunchCard\ViewConfig;
return ViewConfig::make()
->paths([__DIR__ . '/../resources/views'])
->compiled(__DIR__ . '/../storage/framework/views')
->toArray();
这个包可以生成内置的Laravel配置文件。
在写这篇文章的时候, ViewConfig可能看起来如下:
namespace TomasVotruba\PunchCard;
class ViewConfig implements \Illuminate\Contracts\Support\Arrayable
{
/**
* @var string[]
*/
private array $paths = [];
private ?string $compiled = null;
public static function make(): self
{
$config = new self();
$config->paths([
resource_path('views'),
]);
$config->compiled(env('VIEW_COMPILED_PATH', realpath(storage_path('framework/views'))));
return $config;
}
/**
* @param string[] $paths
*/
public function paths(array $paths): self
{
$this->paths = $paths;
return $this;
}
public function compiled(string $compiled): self
{
$this->compiled = $compiled;
return $this;
}
/**
* @return array<string, mixed[]>
*/
public function toArray(): array
{
return [
'paths' => $this->paths,
'compiled' => $this->compiled,
];
}
}
你可以在GitHub上了解更多关于这个包的信息,获得完整的安装说明,并查看源代码。
https://github.com/TomasVotruba/punchcard
相关文章