phpguild / media-object-bundle
Symfony 媒体对象 Bundle
v1.2.9
2021-09-16 05:07 UTC
Requires
- php: >=7.2
- ext-fileinfo: *
- liip/imagine-bundle: ^2.6
- mashape/unirest-php: ^3.0
- phpguild/doctrine-extra-bundle: ^1.0
- symfony/form: *
- symfony/mime: *
- symfony/property-access: *
- symfony/serializer: *
- dev-main
- v1.2.9
- v1.2.8
- v1.2.7
- v1.2.6
- v1.2.5
- v1.2.4
- v1.2.3
- v1.2.2
- v1.2.1
- v1.2.0
- v1.1.1
- v1.1.0
- V1.0.6
- V1.0.5
- V1.0.4
- V1.0.3
- V1.0.2
- V1.0.1
- v1.0.0
- dev-dependabot/composer/symfony/http-kernel-5.4.20
- dev-dependabot/composer/twig/twig-3.4.3
- dev-dependabot/composer/symfony/framework-bundle-5.4.4
- dev-dependabot/composer/symfony/serializer-5.3.12
This package is auto-updated.
Last update: 2024-08-30 01:11:56 UTC
README
功能
- Api Platform 支持
- Base64 文件规范化
- URL 文件规范化
安装
使用 composer 安装
composer req phpguild/media-object-bundle
配置
创建文件 config/packages/phpguild_media_object.yaml
phpguild_media_object:
default_filter: 'original'
media_prefix: 'media'
original_prefix: 'media/original'
cache_prefix: 'media/cache'
resolve_prefix: 'media/cache/resolve'
resolve_filter_prefix: 'media/cache/resolve/{filter}'
web_root: '%kernel.project_dir%/public'
data_root: '%kernel.project_dir%/public/media/original'
命令支持
https://symfony.ac.cn/doc/current/routing.html#router-generate-urls-commands
编辑文件 .env
###> symfony/request ###
REQUEST_CONTEXT_SCHEME=https
REQUEST_CONTEXT_HOST=localhosturl
REQUEST_CONTEXT_PORT=
REQUEST_CONTEXT_PATH=
###< symfony/request ###
编辑文件 config/packages/routing.yaml
parameters:
router.request_context.scheme: '%env(REQUEST_CONTEXT_SCHEME)%'
router.request_context.host: '%env(REQUEST_CONTEXT_HOST)%'
router.request_context.port: '%env(REQUEST_CONTEXT_PORT)%'
router.request_context.base_url: '%env(REQUEST_CONTEXT_PATH)%'
asset.request_context.base_path: '%router.request_context.base_url%'
asset.request_context.secure: true
编辑文件 config/packages/liip_imagine.yaml
liip_imagine:
driver: gd
default_image: '/media/default.jpg'
loaders:
default:
filesystem:
data_root: '%kernel.project_dir%/public/media/original'
resolvers:
default:
web_path:
web_root: '%kernel.project_dir%/public'
cache_prefix: 'media/cache'
filter_sets:
_post_upload:
quality: 95
filters:
auto_rotate: ~
thumbnail: { size: [2048], mode: outbound }
使用方法
自定义使用
use Doctrine\ORM\Mapping as ORM;
use PhpGuild\MediaObjectBundle\Model\MediaObjectInterface;
use PhpGuild\MediaObjectBundle\Annotation as MediaObject;
class Photo implements MediaObjectInterface
{
/**
* @ORM\Column(type="string")
* @MediaObject\Uploadable(urlProperty="fileUrl")
*/
protected $file;
protected $fileUrl;
使用预定义特性
use PhpGuild\MediaObjectBundle\Model\File\FileInterface;
use PhpGuild\MediaObjectBundle\Model\File\FileTrait;
class Photo implements FileInterface
{
use FileTrait;
API Platform 桥接
编辑文件 config/services.yaml
imports:
- { resource: '@PhpGuildMediaObjectBundle/Resources/config/bridge/api-platform.yaml' }
编辑文件 config/routes.yaml
api_phpguild_media_object_upload_image:
path: /api/upload/image
controller: PhpGuild\MediaObjectBundle\Bridge\ApiPlatform\Action\UploadImageAction
methods: POST
defaults:
_api_item_operation_name: post_upload_image