Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Files Laravel Package

arxy/files

Arxy Files simplifies file management in PHP apps with FlySystem: store files anywhere, persist metadata in the database, and deduplicate uploads using MD5 checksums. Automatic upload/delete hooks and flexible naming strategies keep entities in sync.

View on GitHub
Deep Wiki
Context7
6.0.2
6.0.1
6.0.0

Add context. Upgrade dependencies.

What's Changed

Full Changelog: https://github.com/Warxcell/files/compare/5.1.4...6.0.0

5.1.3
5.1.2
5.1.1
5.0.0

This release introduces Storage and removes hard-dependency on FlySystem. This opens new possibilities. You can still use FlySystem throught adapter: $storage = new \Arxy\FilesBundle\Storage\FlysystemStorage($flysystem);

Other changes:

Removes SymfonyCachePathResolver. Replaced by CachePathResolver which uses PSR-16 Cache.

4.0.1
4.0.0

Changelog:

  • [BC] writeStream is removed, write now accepts SplFileInfo as second argument.
  • Convert all warnings into exceptions (fopen/fclose/etc).
  • Use RuntimeExtension for Twig Extensions.
  • Add command that verifies that files are same on db and fs level.
3.1.0
  • Add proper Exceptions
  • Add generics annotations.
  • Aws S3 PreSigned PathResolver
3.0.0

This version comes with a lot of refactoring, removals and new features:

CHANGELOG.

  • Split file into 2 interfaces: File and MutableFile.
  • Added Entity\MutableFile. It contains additional field modifiedAt.
  • Removal of ManagerInterface::refresh(File)
  • Removal of RefreshDatabaseCommand
  • Added 2 new methods write(MutableFile $file, string $contents) and writeStream(MutableFile $file, resource $resource)
  • Renamed md5Hash to just hash. This will allows usage of any hashing algotithm. (Sha1, sha256, etc.)
  • Make hash unique.
  • Renamed fileSize to just size.
  • Added support for Embeddable files. Added model for it: Entity\EmbeddableFile.
  • Added events. (PostUpload, PreMove, PostMove, PreRemove, PreUpdate, PostUpdate).
  • Added new naming strategies.
  • Added utility which eases serving files from Controller.
  • Added Preview sub-system.
  • Added LiipImagine built-in support.
  • Added Model\DecoratedFile which eases decorating file.
  • Added numerous different Naming Strategies (DateStrategy, UUID V4, UUID V5, PersistentPath, NullDirectory)
  • Created ModelFactory which is responsible for instantiating File objects when uploading new file.
  • Added numerous different Path Resolvers (AzureBlobStorage, AzureBlobStorageSAS).

UPGRADE:

  • Rename usages of getMd5Hash to getHash. Rename queries from property md5Hash to hash
  • Rename usages of getFileSize to getSize. Rename queries from property fileSize to size.
  • Constructor of Manager now accepts arguments in different order. If you are not using named arguments - please take a look and update them.
  • Constructor of Manager now accepts Psr\EventDispatcher\EventDispatcherInterface - please pass it in order to use Events. (If using Symfony Autowire, nothing to do).
2.2.0

Changelog:

  • Allow PHP8.
  • Add DelegatingManager which allows fluent usage of ManagerInterface for read operations with more than 1 file entity.
  • Add option manager on FileType form, which will allow usage of different ManagerInterface instance when having more than 1 file entity.
  • Add 5th argument of Manager which accepts League\MimeTypeDetection\MimeTypeDetector\MimeTypeDetector, which are used to detect mime types.
  • add AzureBlobStoragePathResolver.
  • add DelegatingPathResolver which allows using of multiple file entities with different path resolvers.
  • add Arxy\FilesBundle\Repository\ORMTrait which can be used on ORM Repositories.
  • add file_content filter for Twig which returns contents of file.
  • add public function clear(): void; on ManagerInterface which clears temporary files map.
2.1.1
2.0.1
2.1.0

Support Doctrine/Persistence ^2.1

2.0.0

Files is now supporting FlySystem V2. https://flysystem.thephpleague.com/v2/docs/what-is-new/

New features: PathResolvers - Transforms Files to web browser path. Few built-in resolvers exists as per this release:

  • AssetsPathResolver - uses The Asset Component
  • AwsS3PathResolver - uses Amazon AWS S3 Client to generate paths.
  • SymfonyCachePathResolver - decorator that uses Symfony Cache to cache response from decorated resolver, so next time it will not call it.

DirectoryPrefixStrategy - decorator that prefixes directory.

BC Breaks: getDirectory() in NamingStrategy is now optional. Return type should be now ?string. FileType form now uses internally 'file' field to handle files, instead extending FileType. This allows you to add custom fields for Files in forms.

$formMapper->add(
    'image',
    FileType::class,
    [
        'required' => false,
        'constraints' => [ConstraintsOnEntity]
        'input_options' => [
            'attr' => [
                'accept' => 'image/*',
            ],
            'constraints' => [
                   SymfonyConstraintsOnFiles
            ]
        ],
    ]
);

Introduces ManagerInterface - from now on use this interface for type-hints.

1.1.1

Also add translations to Form Theme.

1.1.0

Also bump PHP to ^7.4, because of added typehinting of class variables.

1.0.1
1.0.0
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
se7enxweb/flysystem
lampwick/laravel
jeslage/statamic-emojis
micahdshackelford/rmap-laravel
draftsmaninc/draftsman
square-bit/laravel-volition
himito/laravel-mailman
htinlynn/genius-helper
maco-studios/hephaestus
elmogy/larafast
xeviant/laravel-paystack
gorilladash/laravel-website-sdk
martialbe/flysystem-oss
chondal/3312client
jeroen-g/flickr
opscale-co/nova-genbi
itsjustvita/laravel-retention
tequilarapido/trackit
gregsphotography/site-builder-filament
cabaoctavio/laravel-query-log