coshi / mediabundle
简单的媒体包
v0.2.0
2016-02-04 14:47 UTC
Requires
- php: >=5.3.2
- knplabs/gaufrette: 0.2.*@dev
- symfony/config: @stable
- symfony/event-dispatcher: @stable
- symfony/http-foundation: @stable
- symfony/http-kernel: @stable
- symfony/security-core: @stable
- symfony/security-csrf: @stable
Requires (Dev)
- doctrine/common: @stable
- doctrine/dbal: @stable
- doctrine/orm: @stable
- twig/twig: @stable
This package is not auto-updated.
Last update: 2024-09-18 19:42:43 UTC
README
MediaBundle - 为 Symfony 2 提供
提供
此包提供服务和基本实体类。每次媒体管理器服务操作后都会触发事件。
设置
-
创建您的媒体包,例如 AcmeMediaBudle - [可选步骤 - 仅需要创建实体]
-
创建扩展自 Coshi\MediaBundle\Entity\Media 的媒体实体,添加 id 列和您选择的映射[如果已创建包,则在该包中创建实体]
-
将 CoshiMediaBundle 配置添加到应用程序的 config.yml 中,查看配置参考。注意,您必须在 web_root 中创建 media_path 并赋予它们适当的权限
-
将 CoshiMediaBundle 添加到 AppKernel.php
-
更新您的数据库模式
-
添加具有附加媒体的所需实体,并为所需实体实现 Coshi\MediaBundle\Model\MediaInterface 接口
-
现在您可以使用 coshi_media.media_manager 服务执行文件上传,就像这样
$this->get('coshi_media.media_manager')->create($uploadedFileObject); $this->getDoctrine()->getManager()->flush();
存储在本地文件系统上的最小配置
coshi_media:
media_class: AppBundle\Entity\Media
#Adapters definiton
adapters:
local:
directory: media
create: true
filesystems:
local:
adapter: local
filesystem_default: local
目前仅支持 Amazon S3 和本地文件系统。
配置参考
coshi_media:
media_class: Webfit\MO\MediaBundle\Entity\Media
#Adapters definiton
adapters:
local:
directory: media_upload_delete_work
create: true
aws_s3:
service_id: aws_s3.client #name of amazon service
bucket_name: test-mediabundle
options:
directory: media_bundle_adapter_upload
#Filesystems/storage definition
filesystems:
local:
adapter: local
amazon:
adapter: aws_s3
#Optional parameter
filesystem_default: amazon
Twig 扩展
此包提供简单的扩展以在 Twig 中渲染媒体路径
{{ coshi_media_url(media) }}
其中当然媒体是映射的媒体类的实例
事件
该包生成一些事件,它们在 Coshi\MediaBundle\MediaEvents 中定义。事件在创建、更新和删除媒体时发生。这是扩展包功能的方式。
MediaEvents::CREATE_MEDIA
MediaEvents::UPDATE_MEDIA
MediaEvents::DELETE_MEDIA