ngmy/okuribito-laravel

OkuribitoLaravel 可以监控视图加载并记录,这有助于删除未使用的视图文件。

0.1.0 2019-05-30 12:46 UTC

This package is auto-updated.

Last update: 2024-08-29 05:06:55 UTC


README

Build Status Coverage Status

Latest Stable Version Total Downloads Latest Unstable Version License

OkuribitoLaravel 可以监控视图加载并记录,这有助于删除未使用的视图文件。

本软件包受 Ruby 的 Okuribito 钥匙环宝石的启发,链接:[Ruby's Okuribito gem](https://github.com/shakemurasan/okuribito)。

要求

OkuribitoLaravel 有以下要求

  • PHP >= 7.1.3
  • Laravel >= 5.5

安装

执行 Composer 的 require 命令

composer require ngmy/okuribito-laravel

这将更新您的 composer.json 文件并将此软件包安装到 vendor 目录。

迁移

执行 Artisan 的 migrate 命令

php artisan migrate

这将创建您的数据库中的 view_load_logs 表。

发布配置

执行 Artisan 的 vendor:publish 命令

php artisan vendor:publish

这将发布配置文件到 config/ngmy-okuribito-laravel.php 文件。

您还可以使用标签来执行命令

php artisan vendor:publish --tag=ngmy-okuribito-laravel

您还可以使用服务提供者来执行命令

php artisan vendor:publish --provider="Ngmy\OkuribitoLaravel\OkuribitoServiceProvider"

基本用法

更新 config/ngmy-okuribito-laravel.php 文件的 monitor_views 选项为要监控加载的视图

'monitor_views' => 'your.view.foo',

您也可以指定多个视图

'monitor_views' => [
    'your.view.bar',
    'your.view.baz',
],

您也可以使用通配符

'monitor_views' => 'your.view.*',

此值与 Laravel 的 View::composer 方法的第一个参数格式相同,链接:[Laravel's View::composer method](https://laravel.net.cn/docs/5.5/views#view-composers)。

当指定的视图加载时,它会记录到您的数据库中的 view_load_logs 表。

您还有其他可用的选项。请参阅 config/ngmy-okuribito-laravel.php 文件以获取详细信息。

高级用法

自定义记录方法

创建 ViewLoadLogRepositoryInterface 接口的实现。

<?php
declare(strict_types=1);

namespace Your\Namespace;

use Ngmy\OkuribitoLaravel\Domain\Model\View\View;
use Ngmy\OkuribitoLaravel\Domain\Model\ViewLoadLog\ViewLoadLog;
use Ngmy\OkuribitoLaravel\Domain\Model\ViewLoadLog\ViewLoadLogRepositoryInterface;

class YourViewLoadLogRepository implements ViewLoadLogRepositoryInterface
{
    public function existsByView(View $view): bool
    {
        // Implement your existsByView() method here
    }

    public function save(ViewLoadLog $log): void
    {
        // Implement your save() method here
    }
}

ViewLoadLogRepositoryInterface 接口绑定到您在服务提供者的 register 方法中的实现。

$this->app->bind(
    \Ngmy\OkuribitoLaravel\Domain\Model\ViewLoadLog\ViewLoadLogRepositoryInterface::class,
    \Your\Namespace\YourViewLoadLogRepository::class
);

许可

OkuribitoLaravel 是开源软件,受 MIT 许可证许可,链接:[MIT license](https://open-source.org.cn/licenses/MIT)。