Download the PHP package 2lenet/entity-file-bundle without Composer
On this page you can find all versions of the php package 2lenet/entity-file-bundle. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download 2lenet/entity-file-bundle
More information about 2lenet/entity-file-bundle
Files in 2lenet/entity-file-bundle
Package entity-file-bundle
Short Description This package allows you to attach files to entities
License MIT
Informations about the package entity-file-bundle
EntityFileBundle
With this bundle, you can attach files to entities.
- Installation
- Configuration
- Basic configuration
- Change the storage adapter
- Usage
- Retrieve files
- Retrieve files from URL
- Access file contents
- Delete a file
- Rename or move a file
- Exception handling
- Crudit
Installation
Configuration
This bundle works with configurations. A configuration = 1 entity 1 file system.
For example, you may have a configuration for the logo of multiple sellers, and a configuration for the pictures of the products they sell.
Basic configuration
In lle_entity_file.yaml
That's it! With the default storage adapter configuration, those files will be saved under data/seller_logos
Change the storage adapter
This bundle uses the FlySystem Symfony Bundle. You can create your own storage adapters, (Local disk, FTP, Drive...).
For that, you need to configure a new adapter. Then, change the storage_adapter
of your configuration.
Usage
First of all, you need to get the manager for your configuration. For that, use the Lle\EntityFileBundle\Service\EntityFileLoader
Create a file
$data may be a string, a Symfony File object (including UploadedFile) or a resource.
:warning: Never forget to persist and flush the EntityFile.
- I want my EntityFile to contain additional properties!
You can use your own Entity class, it needs to be a Doctrine entity that implements Lle\EntityFileBundle\Entity\EntityFileInterface
. For your convenience, the trait LleEntityFileBundle\Entity\Trait\EntityFileTrait
exists.
You will also have to update your configuration:
-
I want to edit my new properties!
-
I want to have a dynamic path in my file structure!
- For some reason, I want to save my files somewhere else than data
Create your own storage adapter in flysystem.yaml
, which is basically a copy of the default one with different directory option.
Retrieve files
Retrieve files from URL
If you didn't use Symfony Flex, you need to add the routes in routes.yaml:
Two routes are available:
- lle_entityfile_entityfile_read (requires configName and id)
Example: /lle-entity-file/seller_logos/1 - lle_entityfile_entityfile_readbypath (requires configName and path)
Example: /lle-entity-file/seller_logos?path=2le.png
Protect your urls
By default, only logged in users can access those urls. You can change the role
key in the configuration:
- I want the files to be public !
You can use "PUBLIC_ACCESS" in the role
key.
- I want to do something more complex !
Change content disposition (Show in browser or automatically download)
By default, files are served inline. You can change the disposition key under your configuration:
Access file contents
Delete a file
Rename or move a file
:warning: Never forget to flush the EntityFile.
Exception handling
https://flysystem.thephpleague.com/docs/usage/exception-handling/
Crudit
This bundle is compatible with 2LE's Crudit bundle.
You can use the EntityFileBrick, for example in tabs:
It features a dropzone where you can see, add, remove and download files.
All versions of entity-file-bundle with dependencies
league/flysystem-bundle Version ^3.0
doctrine/orm Version ^2.12
doctrine/doctrine-bundle Version ^2.6
symfony/webpack-encore-bundle Version ^2.0
gedmo/doctrine-extensions Version ^3.7
symfony/form Version ^6.1 || ^7.1