在laravel项目中生成内置的对象配置文件扩展包推荐:punchcard

2023-06-01 00:00:00 生成 扩展 配置文件

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


相关文章