locomotivemtl/charcoal-contrib-embed

嵌入属性的Charcoal服务提供商。

0.2.1 2024-01-25 16:06 UTC

README

License Latest Stable Version Code Quality Coverage Status Build Status

一个 Charcoal 服务提供商嵌入属性。

目录

安装

首选(也是唯一支持的)方法是使用 Composer

$ composer require locomotivemtl/charcoal-contrib-embed

依赖项

要求

服务提供商

使用 locomotivemtl/charcoal-contrib-embed 提供以下服务

服务

  • embed/repositoryEmbed\EmbedRepository 实例
    • 提供 Charcoal\Embed\Mixin\EmbedRepositoryTrait 以便于使用。

配置

在项目的配置文件中包含嵌入模块。这将提供 locomotivemtl/charcoal-contrib-embed 正常工作所需的一切。无需 metadata/views/action/routes 路径等。

{
    "modules": {
       "charcoal/embed/embed": {}
    }
}

您可以在项目的配置文件中提供额外的配置,例如

{
    "embed_config": {
        "ttl": 3600,
        "format": "array",
        "table": "embed_cache"
    }
}

这是实际默认配置。

使用

Embed Contrib 提供了一个自定义属性类型:"embed"。当使用它时,属性将从媒体提供商获取嵌入数据并将它们存储在第三个表中。

{
    "video": {
        "type": "embed",
        "l10n": true,
        "label": {
            "en": "Video",
            "fr": "Video"
        },
        "notes": "Full video url. ex.: https://www.youtube.com/watch?v=_VIDEO_ID"
    }
}

要从数据库中加载嵌入数据,请使用 EmbedRepository 服务方法

$this->embedRepository()
     ->embedData('https://youtube.com/someid');

依赖注入

use EmbedRepositoryTrait;

/**
 * Inject dependencies from a DI Container.
 *
 * @param  Container $container A dependencies container instance.
 * @return void
 */
protected function setDependencies(Container $container)
{
    parent::setDependencies($container);
    $this->setEmbedRepository($container['embed/repository']);
}

开发

要安装开发环境

$ composer install

要运行脚本(phplint、phpcs 和 phpunit)

$ composer test

API 文档

开发依赖

  • [php-coveralls/php-coveralls][phpcov]
  • [phpunit/phpunit][phpunit]
  • [squizlabs/php_codesniffer][phpcs]

编码风格

charcoal-contrib-embed 模块遵循 Charcoal 编码风格

可以使用 composer phpcs 执行编码风格验证/执行。还有一个 composer phpcbf 的自动修复器。

致谢

许可证

Charcoal 在 MIT 许可证下发布。有关详细信息,请参阅 LICENSE