c2h6 / twill-croppa

在Twill应用程序中使用Croppa作为媒体渲染服务

v1.0.1 2024-03-23 09:51 UTC

This package is auto-updated.

Last update: 2024-09-21 11:56:52 UTC


README

在Twill应用程序中使用Croppa作为媒体渲染服务。

关于Croppa的更多信息,请访问https://github.com/BKWLD/croppa

关于Twill CMS的更多信息,请访问https://twillcms.com

关于此包

此包提供了一个易于使用的Croppa图像库集成,用于Twill CMS作为媒体和图像渲染服务。当切换到提供的渲染服务时,可以在您的Twill应用程序中使用Croppa的优势。此外,还提供了一些Twill环境中处理媒体的其他实用工具。

特性

  • 用于与Twill媒体库接口的图像渲染服务
  • 所有插件设置的简单配置
  • 一些Croppa预配置
  • 媒体删除时自动删除裁剪
  • 模型删除时媒体分离特性

预置/版本

使用以下表格查找适合您Laravel/Twill/Croppa版本的正确版本以适应您的环境。

所有包版本均可通过GitHub和Packagist版本下载。

由于glide(Twill依赖项)请求intervention/image v2与Croppa v7要求intervention/image v3之间存在当前包依赖版本冲突,因此2.x版本的开发已停止。

要求

此包需要Composer PHP包管理器才能正常工作并管理其依赖项。

此外,此包仅依赖于Twill CMS和Croppa及其依赖项。这将通过Composer自动管理。

安装

通过Composer轻松安装此库

composer require c2h6/twill-croppa

包发现由Laravel框架自动完成。

您应该已经设置了存储链接来存储您的媒体文件。有关更多信息,请参阅Twill CMS文档

使用方法

使用Croppa渲染服务非常简单。只需在Twill配置中设置渲染服务配置属性即可。其他所有设置都为您设置好了。

要设置图像渲染服务,请编辑twill.php配置文件中的media_library.image_service属性。您可能需要首先发布Twill配置文件或添加配置属性。

...
    'media_library' => [
        'image_service' => \C2H6\TwillCroppa\TwillCroppa::class,
    ],
...

有关更多帮助,请参阅https://twillcms.com/docs/media-library/image-rendering-service.html

关于性能的注意事项

首次访问裁剪时,Croppa需要渲染每个图像。在某些服务器或环境配置中,这非常慢(每个图像请求2+秒)。当页面有大量裁剪或图像时,这会呈指数级变差,因为这些都是在需要时渲染的。

要使普通访客在访问页面时看不到这一点,建议在发布之前查看预览或访问页面,并等待所有图像加载。另一种选择是在发布之前先通过队列作业编程渲染裁剪(请参阅Croppa文档中关于渲染命令的部分)。

要使用 LQIP 图像,请使用命令 php artisan twill:lqip 生成并将它们存储在数据库中。

配置选项

如果您想更改此插件的配置选项,您可以在 Laravel 配置目录中创建一个名为 twillcroppa.php 的新配置文件,或者使用命令 php artisan vendor:publish --tag=twillcroppa-config 发布默认配置文件。以下显示了一个详细描述配置选项的列表。

此库自动配置了一些 croppa 参数。要进一步细化 Croppa 设置,请参阅 Croppa 文档 中声明的 Croppa 配置选项。

额外:模型删除时的媒体分离

在处理 Twill 中的媒体模型时,删除模型时通常需要分离任何媒体。否则,会留下一些悬空引用,并且由于 Twill 注册了一些使用情况,这些媒体文件中的任何一个都无法从应用程序中删除。

为了加快此过程,此包包含几个 PHP 特性,用于在删除或强制删除给定模型时自动分离任何媒体关系。

C2H6\TwillCroppa\Traits\DetachMediaOnForceDelete::class 用于在模型强制删除时自动删除关系,

C2H6\TwillCroppa\Traits\DetachMediaOnDelete::class 用于在模型(软)删除时自动删除关系。

对于常规使用情况,只需要第一个即可,因为 Twill 默认总是使用软删除。在模型删除时,模型被放入回收站,其中可以进行恢复。只有从回收站中删除时,才应该进行媒体分离。

使用方法

要使用这些特性,只需将它们添加到任何模型中,它们应该就会工作。

包开发

  • 克隆或分叉此 GitHub 仓库,并将其下载到您的开发环境中
  • 使用 composer install 安装所有 composer 依赖项
  • 使用命令 composer test 运行测试
  • 只需提交问题和拉取请求即可