coshi/mediabundle

v0.2.0 2016-02-04 14:47 UTC

This package is not auto-updated.

Last update: 2024-09-18 19:42:43 UTC


README

MediaBundle - 为 Symfony 2 提供

提供

此包提供服务和基本实体类。每次媒体管理器服务操作后都会触发事件。

设置

  1. 创建您的媒体包,例如 AcmeMediaBudle - [可选步骤 - 仅需要创建实体]

  2. 创建扩展自 Coshi\MediaBundle\Entity\Media 的媒体实体,添加 id 列和您选择的映射[如果已创建包,则在该包中创建实体]

  3. 将 CoshiMediaBundle 配置添加到应用程序的 config.yml 中,查看配置参考。注意,您必须在 web_root 中创建 media_path 并赋予它们适当的权限

  4. 将 CoshiMediaBundle 添加到 AppKernel.php

  5. 更新您的数据库模式

  6. 添加具有附加媒体的所需实体,并为所需实体实现 Coshi\MediaBundle\Model\MediaInterface 接口

  7. 现在您可以使用 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