Download the PHP package asseco-voice/laravel-attachments without Composer
On this page you can find all versions of the php package asseco-voice/laravel-attachments. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download asseco-voice/laravel-attachments
More information about asseco-voice/laravel-attachments
Files in asseco-voice/laravel-attachments
Package laravel-attachments
Short Description Laravel support for attachments
License MIT
Informations about the package laravel-attachments
Attachments
Purpose of this repository is to enable attachment upload and connecting it to any Laravel model as an M:M relation.
Installation
Require the package with composer require asseco-voice/laravel-attachments
.
Service provider will be registered automatically.
Setup
In order to use the package, migrate the tables with artisan migrate
and add Attachable
trait to model you'd like to have attachment support on.
Standard CRUD endpoints are exposed for attachment administration where you can, among others, store an attachment. Due to the fact that attachments are a morph relation, you have to provide your own controllers for attaching/detaching those attachments to attachable models.
Example:
Cached attachments
Option to keep attachments in filesystem, or cache. Based on value ATTACHMENTS_CACHE_TYPE, there are two scenarios:
- FILE
- attachments are stored in filesystem (ATTACHMENTS_CACHE_LOCATION)
- mapping is saved in cache key ATTACHMENTS_CACHE_MAP_KEY
- [attachment1->id => path1, attachment2->id => path2, ...]
- CACHE
- attachment content is stored in cache, 1 attachment = 1 cache key
- cache key is named as: ATTACHMENTS_CACHE_KEY_PREFIX + attachment_id
ENV variables which controls the behaviour:
- ATTACHMENTS_CACHE_ENABLED=true (default: false)
- ATTACHMENTS_CACHE_MAP_KEY="ASEE_ATTACHMENTS_MAP" (default: ASEE_ATTACHMENTS_MAP)
- ATTACHMENTS_CACHE_TYPE="FILE" (default: FILE)
- ATTACHMENTS_CACHE_LOCATION="/tmp/" (default: sys_get_temp_dir())
- ATTACHMENTS_CACHE_KEY_PREFIX="ASEEATTACHMENT" (default: ASEEATTACHMENT)
- ATTACHMENTS_CACHE_TIME=3600 (default: 3600 seconds)
Extending the package
Publishing the configuration will enable you to change package models as well as controlling how migrations behave. If extending the model, make sure you're extending the original model in your implementation.