armetiz / media-bundle
Symfony ArmetizMediaBundle
Requires
- php: >=5.3.2
- doctrine/orm: >=2
- knplabs/gaufrette: *
- symfony/symfony: >=2.0.17
- twig/twig: 1.*
This package is not auto-updated.
Last update: 2022-02-01 12:21:58 UTC
README
媒体管理器包。
待办事项
进行某些操作以提供自动CDN http://domain.tld/medias/ 添加 "base_folder: medias/" 使用它来 Gaufrette 适配器 & CDN
将 "namespace" 从 Provider 移至 Context。告诉 MediaManager 在选定的 Provider 上使用 Context 参数
使用 "transformer.null" 可以使用 Provider 在不同格式上的默认处理
在 Media 中直接注册 context & provider:避免自动检测 context & provider。这也可以让 Media 在多个 context 中使用,而无需定义 ClassEntity。
视图渲染
options = { transformer: "thumbnail", transformer_options: { //Optional, use default transformer option and merge with it engine: gd } };
mediaRender (monMedia, "format_name", options);
//Numerosus 为了选择渲染类型,请使用带有 Helper Twig 的渲染选项。这将避免使 MediaManager 配置复杂化,因为 Provider 的格式配置...
安装
安装是一个简单的 3 步过程
- 使用 composer 下载 ArmetizMediaBundle
- 启用 Bundle
- 配置应用程序的 config.yml
步骤 1:使用 composer 下载 ArmetizMediaBundle
在您的 composer.json 中添加 ArmetizMediaBundle
{ "require": { "armetiz/media-bundle": "*" } }
现在运行以下命令让 composer 下载该包
$ php composer.phar update armetiz/media-bundle
Composer 将将包安装到您的项目的 vendor/armetiz
目录中。
步骤 2:启用 Bundle
在 kernel 中启用该 Bundle
<?php // app/AppKernel.php public function registerBundles() { $bundles = array( // ... new Armetiz\MediaBundle\ArmetizMediaBundle(), ); }
步骤 3:配置应用程序的 config.yml
最后,将以下内容添加到您的 config.yml 中
# app/config/config.yml armetiz_media: filesystems: fake: id: fake.service cdns: local: base_url: %website_url%/medias contexts: default: providers: armetiz.media.provider.youtube: ~ armetiz.media.provider.image: formats: annexe_display: transformer: armetiz.media.transformer.image_to_thumbnail formats: thumbnail: {width: 512}
配置
此 Bundle 可配置,以下是您可以执行的操作列表
- 默认存储存在。路径为 "web/medias"。
- Context 可以接受在任何地方定义的 provider(参见上面:app.media.provider_foo)
- Context 可以接受多个 provider。每个 provider 处理特定的媒体。如果多个 provider 可以处理媒体,则将首先选择定义的第一个
注意
用法
##Twig 一些辅助函数已经为 Twig 创建。实际上,您可以:使用模板渲染媒体,获取原始媒体、uri 或简单路径。
{{ media(thumbnail) }} {{ media(thumbnail, {template: foo}) }} {{ mediaPath(thumbnail) }} {{ mediaUri(thumbnail) }} {{ mediaRaw(thumbnail) }}
上下文
上下文是 Media 与 Providers 之间的一种简单映射。
Provider
提供者是特定媒体的具体管理者。它可以是一个FileProvider、YoutubeProvider、FlickrProvider、ImageProvider等现有类型。
- 文件(默认选项)
- 图片
- YouTube
- Dailymotion
- Vimeo
- 谷歌地图
注意:如果您为单个上下文定义了多个提供者,请将限制更严格的提供者放在上面!