定制 somehow-digital/typo3-media-processing 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

somehow-digital/typo3-media-processing

Composer 安装命令:

composer require somehow-digital/typo3-media-processing

包简介

Media Processing

README 文档

README

Media Processing for TYPO3 integrates various image processing libraries and SaaS cloud services into TYPO3 by leveraging their APIs to process images. This basically replaces the need for local image processing libraries like ImageMagick for image processing operations.

Providers

name resize crop focus sign
imgproxy 🟢 🟢 🟢 🟢
imagor 🟢 🟢 🟡 🟢
thumbor 🟢 🟢 🟡 🟢
optimole.com 🟢 🟢 🟢 🔴
bunny.net 🟢 🟢 🔴 🟢
cloudflare.com 🟢 🟢 🟢 🔴
imagekit.io 🟢 🟢 🟡 🟢
sirv.com 🟢 🟢 🟡 🔴
imgix.com 🟢 🟢 🟡 🟢
cloudinary.com 🟢 🟢 🟡 🟢
cloudimage.io 🟢 🟢 🟡 🟢
gumlet.com 🟢 🟢 🟢 🟢
imglab.io 🟢 🟢 🟢 🟢
  • resize: Provider supports resize operations.
  • crop: Provider supports crop operations.
  • focus: Provider supports gravity or focus points. (experimental)
  • sign: Provider supports URL signing.

🟢 supported and integrated
🟡 supported but not integrated
🔴 unsupported

Installation 📦

Composer Mode

Install the somehow-digital/typo3-media-processing package from the Composer Package Repository.

composer require somehow-digital/typo3-media-processing

Legacy Mode

Install the media_processing extension from the TYPO3 Extension Repository.

Requirements

  • TYPO3 12-13
  • PHP 8.1-8.4
  • PHP openssl extension

Setup ⚙️

By choosing and configuring one of the available image processing providers, TYPO3 will use the configured provider to process images instead of using the local image processing library.

Configuration

Extension configuration is located in the TYPO3 backend under Admin Tools → Settings → Extension Configuration.

common common

option type description default
provider options Service provider to use for image processing. null
storage bool Enable local storage of processed files. false
backend bool Enable image processing in the backend. true
frontend bool Enable image processing in the frontend. true

imgproxy provider.imgproxy

option type description default
api_endpoint string The API endpoint of the imgproxy service. null
source_loader options The source loader of the imgproxy service. uri
source_uri string The origin host URL where files are stored. null
signature bool Enable signature of the imgproxy service. false
signature_key string The signature key of the imgproxy service. null
signature_salt string The signature salt of the imgproxy service. null
signature_size int The signature size of the imgproxy service. null
encryption bool Enable encryption of the imgproxy service. false
encryption_key string The encryption key of the imgproxy service. null

See also the official imgproxy documentation for more information.

imagor provider.imagor

option type description default
api_endpoint string The API endpoint of the imagor service. null
source_loader options The source loader of the imagor service. uri
source_uri string The origin host URL where files are stored. null
signature bool Enable signature of the imagor service. false
signature_key string The signature key of the imagor service. null
signature_algorithm options The signature algorithm of the imagor service. sha1
signature_length int The signature size of the imagor service. null

See also the official imagor documentation for more information.

thumbor provider.thumbor

option type description default
api_endpoint string The API endpoint of the thumbor service. null
source_loader options The source loader of the thumbor service. uri
source_uri string The origin host URL where files are stored. null
signature bool Enable signature of the thumbor service. false
signature_key string The signature key of the thumbor service. null
signature_algorithm options The signature algorithm of the thumbor service. sha1
signature_length int The signature size of the thumbor service. null

See also the official thumbor documentation for more information.

optimole.com provider.optimole

option type description default
api_key string The API key of the optimole service. null
source_uri string The origin host URL where files are stored. null

See also the official optimole documentation for more information.

bunny.net provider.bunny

option type description default
api_endpoint string The Pull Zone URL of the bunny.net service. null
source_uri string The origin host URL where files are stored. null
signature bool Enable signature of the bunny.net service. false
signature_key string The signature key of the bunny.net service. null

See also the official bunny.net documentation for more information.

cloudflare.com provider.cloudflare

option type description default
api_endpoint string The API endpoint of the cloudflare service. null
source_uri string The origin host URL where files are stored. null

See also the official cloudflare documentation for more information.

imagekit.io provider.imagekit

option type description default
api_endpoint string The API endpoint of the imagekit service. null
source_uri string The origin host URL where files are stored. null
signature bool Enable signature of the imagekit service. false
signature_key string The signature key of the imagekit service. null

See also the official imagekit.io documentation for more information.

sirv.com provider.sirv

option type description default
api_endpoint string The API endpoint of the sirv service. null
source_uri string The origin host URL where files are stored. null

See also the official sirv.com documentation for more information.

imgix.com provider.imgix

option type description default
api_endpoint string The API endpoint of the imgix service. null
source_loader options The source loader of the imgix service. folder
source_uri string The origin host URL where files are stored. null
signature bool Enable signature of the imgix service. false
signature_key string The signature key of the imgix service. null

See also the official imgix.com documentation for more information.

cloudinary.com provider.cloudinary

option type description default
api_endpoint string The API endpoint of the cloudinary service. null
delivery_mode options The source loader of the cloudinary service. fetch
source_uri string The origin host URL where files are stored. null
signature bool Enable signature of the cloudinary service. false
signature_key string The signature key of the cloudinary service. null
signature_algorithm options The signature algorithm of the cloudinary service. sha1

See also the official cloudinary.com documentation for more information.

cloudimage.io provider.cloudimage

option type description default
api_endpoint string The API endpoint of the cloudimage service. null
source_uri string The origin host URL where files are stored. null
signature bool Enable signature of the cloudinary service. false
signature_key string The signature key of the cloudinary service. null

See also the official cloudimage.io documentation for more information.

gumlet.com provider.gumlet

option type description default
api_endpoint string The Gumlet URL of the gumlet.com service. null
signature bool Enable signature of the gumlet.com service. false
signature_key string The signature key of the gumlet.com service. null

See also the official gumlet.com documentation for more information.

imglab.io integration.imglab

option type description default
api_endpoint string The Gumlet URL of the imglab.io service. null
signature bool Enable signature of the imglab.io service. false
signature_key string The signature key of the imglab.io service. null

See also the official imglab.io documentation for more information.

Usage 🪄

API

Events

MediaProcessedEvent

The MediaProcessedEvent is dispatched after a media file has been processed and can be used to adapt the final URI before it is stored in the database.

use SomehowDigital\Typo3\MediaProcessing\Event\MediaProcessedEvent;

class MediaProcessedEventListener
{
  public function __invoke(MediaProcessedEvent $event): void
  {
    $event->getService();
    $event->getTask();
    $event->getResult();
  }
}

Support 🛟

Roadmap 🚧

Version 1.0.0 🏷️ developing

Version 2.0.0 🏷️ planning

Version 3.0.0 🏷️ researching

  • Integration of more image processing libraries/services.
  • Integration of video processing libraries/services.

somehow.digital

somehow-digital/typo3-media-processing 适用场景与选型建议

somehow-digital/typo3-media-processing 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 1.26k 次下载、GitHub Stars 达 12, 最近一次更新时间为 2023 年 05 月 08 日, 在 PHP 生态内属于活跃度较高的组件。

它主要适用于以下技术方向: 「performance」 「media」 「image」 「extension」 「resize」 「responsive」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。

我们在过去多个企业项目中使用过 somehow-digital/typo3-media-processing 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 somehow-digital/typo3-media-processing 我们能提供哪些服务?
定制开发 / 二次开发

基于 somehow-digital/typo3-media-processing 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 1.26k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 12
  • 点击次数: 33
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 12
  • Watchers: 3
  • Forks: 1
  • 开发语言: PHP

其他信息

  • 授权协议: GPL-3.0
  • 更新时间: 2023-05-08