glavweb / uploader-bundle
此包最新版本(v3.5.1)没有可用的许可证信息。
Symfony GlavwebUploaderBundle
v3.5.1
2023-05-23 08:31 UTC
Requires
- php: >=7.2.5
- doctrine/doctrine-bundle: ^2.0
- doctrine/orm: ^2.3
- liip/imagine-bundle: ^2.3.1
- symfony/event-dispatcher: ^4.0|^5.0|^6.0
- symfony/filesystem: ^4.0|^5.0|^6.0
- symfony/finder: ^4.0|^5.0|^6.0
- symfony/form: ^4.0|^5.0|^6.0
- symfony/http-foundation: ^4.0|^5.0|^6.0
- symfony/mime: ^4.0|^5.0|^6.0
- symfony/routing: ^4.0|^5.0|^6.0
- symfony/templating: ^4.0|^5.0|^6.0
- symfony/translation: ^4.0|^5.0|^6.0
Suggests
- oneup/flysystem-bundle: Required for flysystem storage
- dev-master
- v3.5.1
- v3.5.0
- v3.4.2
- v3.4.1
- v3.4.0
- v3.3.0
- v3.2.1
- v3.2.0
- v3.1.0
- v3.0.3
- v3.0.2
- v3.0.1
- v3.0.0
- v2.x-dev
- v2.12.1
- v2.12.0
- v2.11.0
- v2.10.1
- v2.10.0
- v2.9.6
- v2.9.5
- v2.9.4
- v2.9.3
- v2.9.2
- v2.9.1
- v2.9.0
- v2.8.0
- v2.7.0
- v2.6.1
- v2.6.0
- 2.5.1
- 2.5.0
- 2.4.1
- v2.4.0
- v2.3.2
- v2.3.1
- v2.3.0
- v2.2.0
- v2.1.1
- v2.1
- v2.0
- v1.2
- v1.1.1
- v1.1.0
- v1.0.2
- v1.0.1
- v1.0
- v0.2.6
- v0.2.5
- v0.2.4
- v0.2.3
- v0.2.2
- v0.2.1
- v0.1.12
- v0.1.11
- v0.1.10
- v0.1.9
- v0.1.8
- v0.1.7
- v0.1.6.2
- v0.1.6.1
- v0.1.6
- v0.1.5
- v0.1.4
- v0.1.3
- v0.1.2
- v0.1.1
- v0.0.1
- dev-chunk-uploading
- dev-cutomize_templates
This package is auto-updated.
Last update: 2024-09-02 12:28:20 UTC
README
使用composer获取此包
从您的Symfony项目根目录的终端运行此命令以添加GlavwebUploaderBundle
php composer.phar require glavweb/uploader-bundle
启用包
要开始使用此包,请在您的应用程序内核类中注册该包
// app/AppKernel.php public function registerBundles() { $bundles = array( // ... new Glavweb\UploaderBundle\GlavwebUploaderBundle(), // ... ); }
配置包
此包设计为开箱即用。为了使此包运行,您必须配置的唯一内容是映射。
# app/config/config.yml glavweb_uploader: mappings: entity_images: providers : - glavweb_uploader.provider.image use_orphanage: true upload_directory: %kernel.root_dir%/../web/uploads/entity_images upload_directory_url: uploads/entity_images max_size: 4194304 # 4Mb allowed_mimetypes: [image/jpeg, image/gif, image/png] orphanage: lifetime: 86400 directory: %kernel.cache_dir%/uploader/orphanage
为了启用动态路由,将以下内容添加到您的路由配置文件中。
# app/config/routing.yml glavweb_uploader: resource: "@GlavwebUploaderBundle/Resources/config/routing.yml" prefix: /
基本用法
- 为需要支持 "GlavwebUploadable" 的实体添加了注解。在定义实体类之前,添加 "@Glavweb\Uploadable"
use Glavweb\UploaderBundle\Mapping\Annotation as Glavweb;
/**
* Entity
*
* @Glavweb\Uploadable
*/
class Entity
{
}
并在定义多对多或多对一的属性之前添加另一个注解 "@Glavweb\UploadableField"
/**
* @var \Doctrine\Common\Collections\Collection
*
* @ORM\ManyToMany(targetEntity="Glavweb\UploaderBundle\Entity\Media", inversedBy="entities", orphanRemoval=true)
* @ORM\OrderBy({"position" = "ASC"})
* @Glavweb\UploadableField(mapping="entity_images")
*/
private $images;
/**
* Constructor
*/
public function __construct()
{
...
$this->images = new \Doctrine\Common\Collections\ArrayCollection();
}
或者
/**
* @var Media
*
* @ORM\OneToOne(targetEntity="Glavweb\UploaderBundle\Entity\Media", orphanRemoval=true)
* @ORM\JoinColumn(name="image_id", referencedColumnName="id", nullable=true, onDelete="SET NULL")
*/
private $image;
- 对于构建表单,您可以使用 GlavwebUploaderDropzoneBundle。
事件
此包有3个事件
- glavweb_uploader.validation; // 第一个事件,将在文件上传之前执行
- glavweb_uploader.pre_upload; // 将在文件上传之前执行
- glavweb_uploader.post_upload. // 将在文件上传之后执行
示例
以示例为例,我们使用上传后事件。
services.yml
post_upload_listener:
class: AppBundle\Listener\PostUploadListener
tags:
- { name: kernel.event_listener, event: glavweb_uploader.post_upload, method: onPostUpload }
监听器类
namespace AppBundle\Listener;
use Glavweb\UploaderBundle\Event\PostUploadEvent;
class PostUploadListener
{
/**
* @param PostUploadEvent $event
*/
public function onPostUpload(PostUploadEvent $event)
{
// Some logic
}
}
其他监听器的工作逻辑类似。
您还可以只为您的上下文定义监听器,例如,如果上下文是 "article"。
article_post_upload_listener:
class: AppBundle\Listener\ArticlePostUploadListener
tags:
- { name: kernel.event_listener, event: glavweb_uploader.post_upload.article, method: onPostUpload }