positibe / media-bundle
Symfony Positibe 媒体Bundle
1.1.0
2019-03-26 15:58 UTC
Requires
- doctrine/orm: ^2.5
- gedmo/doctrine-extensions: ^2.4
- knplabs/gaufrette: ^0.8
- liip/imagine-bundle: ^2.1
- pcabreus-utils/entity-traits: ^1.2
- symfony/framework-bundle: ^3.4 || ^4.0
This package is not auto-updated.
Last update: 2024-09-28 20:40:48 UTC
README
此Bundle为Symfony-Cmf MediaBundle提供实体。
安装
要安装此Bundle,只需添加依赖的Bundle
php composer.phar require positibe/media-bundle
接下来,确保在您的应用程序内核中启用这些Bundle
<?php
// config/kernel.php
return [
// ...
Liip\ImagineBundle\LiipImagineBundle::class => ['all' => true],
Positibe\Bundle\MediaBundle\PositibeMediaBundle::class => ['all' => true],
];
配置
创建您的配置文件
# config/packages/positibe_media.yml
parameters:
positibe_media.media_class: 'Positibe\Bundle\MediaBundle\Entity\Media'
positibe_media.url_path: 'uploads/media'
positibe_media.web_root: "%kernel.root_dir%/../public/"
positibe_media.cache_prefix: media/cache
positibe_media.upload_file_role: ROLE_EDITOR
twig:
form_themes:
- 'PositibeMediaBundle::_media_type.html.twig'
liip_imagine:
resolvers:
default:
web_path:
web_root: "%positibe_media.web_root%"
cache_prefix: "%positibe_media.cache_prefix%"
loaders:
default:
filesystem:
data_root: "%positibe_media.web_root%" # %kernel.root_dir%/../web/
filter_sets:
# define the filter to be used with the image preview
image_upload_thumbnail:
filters:
thumbnail: { size: [100, 100], mode: outbound }
image_thumbnail:
filters:
thumbnail: { size: [250, 250], mode: outbound }
image_thumbnail_small:
filters:
thumbnail: { size: [50, 50], mode: outbound }
image_preview:
filters:
thumbnail: { size: [190, 190], mode: outbound }
为管理媒体创建自己的路由
[yaml]
# config/routing/positibe_media.yaml
positibe_media_image_display:
path: /media/display/{path}
defaults: { _controller: PositibeMediaBundle:File:display }
requirements:
method: GET
path: .*
positibe_media_download:
path: /media/download/{path}
defaults: { _controller: PositibeMediaBundle:File:download }
requirements:
method: GET
path: .*
positibe_media_upload:
path: /media/image/upload/{editor}
defaults: { _controller: PositibeMediaBundle:File:upload, editor: ckeditor, _format: json }
requirements:
method: POST
_liip_imagine:
resource: "@LiipImagineBundle/Resources/config/routing.yaml"
要集成Positibe管理
[yaml]
# config/routing/admin/positibe_media.yaml
positibe_media_update:
path: /multimedias/{id}
methods: [GET, PUT]
defaults: { _controller: PositibeMediaBundle:Media:update }
positibe_media_delete:
path: /multimedias/{id}
methods: [DELETE]
defaults: { _controller: PositibeMediaBundle:Media:update }
positibe_media_index:
path: /multimedias
defaults: { _controller: PositibeMediaBundle:Media:index }
**注意:** 如果您使用Ckeditor,必须将ROLE_EDITOR
角色设置为可以上传图片的用户
如果尚未创建,需要创建一些特定文件夹以允许上传
[bash]
mkdir public/uploads
mkdir public/uploads/media
chmod -R 0777 public/uploads
mkdir public/media
mkdir public/media/cache
chmod -R 0777 public/media
注意:您必须配置一些Gedmo Doctrine扩展(如timestampable、sortable、translatable)
文档
文档在此处可用。
使用媒体实体的简单示例
[php]
//$media = new Media(); //Default provider MediaProvider::getName()
$media = new Media(ImageProvider::getName()); //Image provider
$media->setBinaryContent(__DIR__ . '/../Resources/public/img/positibelabs_logotipo 2.jpg');
$manager->persist($media);
$manager->flush();
使用相册实体的简单示例
[php]
$media = new Media(ImageProvider::getName());
$media->setBinaryContent(__DIR__.'/../../Resources/public/img/positibelabs_logotipo 2.jpg');
$gallery = new Gallery();
$gallery->setName('PositibeLabs Gallery'); //This step is not necessary. Default name is `gallery`
$gallery->setDefaultFormat('.zip'); //This step is not necessary. Default format is `.jpg`
//You can optional also set title and body content to each media in the gallery
$gallery->addMedia($media, 'PositibeLabs', 'PositibeLabs is developing great open-source libraries');
$manager->persist($gallery);
$manager->flush();