PHPackages                             ticaje/solid-file-manager - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [File &amp; Storage](/categories/file-storage)
4. /
5. ticaje/solid-file-manager

ActiveLibrary[File &amp; Storage](/categories/file-storage)

ticaje/solid-file-manager
=========================

This is an API to files interaction for PHP

1.0.6(4y ago)018OSL-3.0PHPPHP ^7.2

Since Mar 27Pushed 4mo ago1 watchersCompare

[ Source](https://github.com/ticaje/fileManager)[ Packagist](https://packagist.org/packages/ticaje/solid-file-manager)[ RSS](/packages/ticaje-solid-file-manager/feed)WikiDiscussions master Synced 3w ago

READMEChangelogDependencies (8)Versions (8)Used By (0)

Solid File Manager API
======================

[](#solid-file-manager-api)

This library is an API to simple use of file management, is oriented when big files managements is involved.
------------------------------------------------------------------------------------------------------------

[](#this-library-is-an-api-to-simple-use-of-file-management-is-oriented-when-big-files-managements-is-involved)

[![GPLv3 License](https://camo.githubusercontent.com/19f3b8cdb6c4ca7671e1af3240e94eb087c2b0c1181a3357d8381af53c9d40cb/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d47504c76332d6d6172626c652e737667)](https://www.gnu.org/licenses/gpl-3.0.en.html)[![Latest Version on Packagist](https://camo.githubusercontent.com/2ea5a56563f8ce26a77341918c631de0917434a4920bc1e5e7b4b19ca889c169/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f746963616a652f736f6c69642d66696c652d6d616e616765722e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/ticaje/solid-file-manager)[![Quality Score](https://camo.githubusercontent.com/9d3f467fe7210f65bc5ea0e5c9c64ef545b9570295702a823bd825ef87e0c818/68747470733a2f2f696d672e736869656c64732e696f2f7363727574696e697a65722f672f746963616a652f66696c654d616e616765722e7376673f7374796c653d666c61742d737175617265)](https://scrutinizer-ci.com/g/ticaje/fileManager)[![Total Downloads](https://camo.githubusercontent.com/e8ab4af2bf61fdaa04ee5ea191472bf2c50bdc02cc9e9a5d0084ae72d0a68e21/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f746963616a652f736f6c69642d66696c652d6d616e616765722e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/ticaje/solid-file-manager)[![Author](https://camo.githubusercontent.com/3c3154e7d1e6e1d3c45389165493e28fc0279eced5a2b180bc66058f847196ff/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f48424c61746572616c2e636f6d2d2532333032313133613f7374796c653d6c6162656c436f6c6f723d6c6967687467726579)](https://hblateral.com)

Preface
-------

[](#preface)

Traditionally dealing with big files turns into a nightmare, especially for reading them, cause it brings about sort of bottleneck into our system. I have provided a solution to this problem be creating an API based on Hexagonal Design and S.O.L.I.D principles that allows developers on just few steps start reading efficiently big files in an asynchronous way using modern techniques.

Installation
------------

[](#installation)

You can install this package using composer(the only way i recommend)

```
composer require ticaje/solid-file-manager
```

What's the fuzz about this library
----------------------------------

[](#whats-the-fuzz-about-this-library)

This library can be included using standalone project, DI framework or higher level platform like Symfony or Laravel; regardless any context it will work using loose coupling approach by default. Gonna explain with a sample how easy is to work with.

### Real Life Example

[](#real-life-example)

Imagine that you have a big XLSX file you need to read without breaking your application cause need to read it from a browser just for checking the first five rows of it, but the file is too big. It seems weird but this is something that happened to me in the real world. As you can imagine reading the file via standard methods provided in PHP does not resolve this problem cause there is a time delay you can not afford loosing cause you are on a browser and your app could go down. The magic to achieving this is by using Generators which allows you to iterate data without the need to build an array in memory cause it uses data yielding by reference which could be translated as async data handling or at least on demand.

### Standalone Instantiation

[](#standalone-instantiation)

```
