PHPackages                             phpro/zf-filesystem - 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. [Utility &amp; Helpers](/categories/utility)
4. /
5. phpro/zf-filesystem

AbandonedArchivedLibrary[Utility &amp; Helpers](/categories/utility)

phpro/zf-filesystem
===================

Filesystem wrapper objects

v0.2.2(10y ago)31.1k1PHPPHP &gt;=5.4

Since Jul 3Pushed 5y ago3 watchersCompare

[ Source](https://github.com/phpro/zf-filesystem)[ Packagist](https://packagist.org/packages/phpro/zf-filesystem)[ RSS](/packages/phpro-zf-filesystem/feed)WikiDiscussions master Synced today

READMEChangelog (4)Dependencies (10)Versions (4)Used By (0)

> ## Repository abandoned 2020-11-27
>
> [](#repository-abandoned-2020-11-27)
>
> This repository has been archived since we are not using it anymore internally. Feel free to use it AS-IS, we won't be providing any support anymore.

zf-filesystem
=============

[](#zf-filesystem)

This module contains of:

- a wrapper for filesystem actions
- a wrapper for files with specific features
- a metadata layer which makes it possible to query for specific file metadata like IPTC, EXIF, XMP, ...

Installation
============

[](#installation)

Add to composer.json
--------------------

[](#add-to-composerjson)

```
"phpro/zf-filesystem": "~0.2.0"

```

Add to application config
-------------------------

[](#add-to-application-config)

```
return array(
    'modules' => array(
        'Phpro\\Filesystem',
        // other libs...
    ),
    // Other config
);
```

Configuration
-------------

[](#configuration)

Copy the file `config/phpro_filesystem.local.php.dist` to the autoload folder of your application.

Configuration options:
----------------------

[](#configuration-options)

*Exiftool*

- executable: The location of exiftool on your machine
- allowed\_tags: The tags that can be queried with exiftool. This list is automatically generated, but could be manually overwritten. Check `config/exiftool-tags.php` for a full list.

Features
========

[](#features)

Filesystem wrapper
------------------

[](#filesystem-wrapper)

This module adds the Symfony Filesystem component to the ZF2 servicemanager. By using the `FilesystemAwareInterface`, the filesystem component is automatically added to your objects by the serviceManager.

File wrapper
------------

[](#file-wrapper)

By implementing the `FileInterface` it is easy and straight forward to pass file objects to custom objects and services in your application. There are already 2 implementations available:

- LocalFile
- UploadedFile

It is possible to apply certain features to these file objects. For example:

- Moveable

Metadata
--------

[](#metadata)

This module provides some tools to query for metadata on a file. Following metadata providers are available:

*General*

- Md5

*Images*

- ExifTool
- Identify
- ImageInfo

### Md5:

[](#md5)

The MD5 metadata tool provides the MD5 hash of a file and is a wrapper for the php `md5_file()` command..

Usage:

```
$md5 = $serviceLocator->get('Phpro\Filesystem\Metadata\Md5');
$hash = $md5->getMetadataForFile($file, []);
```

### ExifTool

[](#exiftool)

The ExifTool metadata tool provides a wrapper for the `exiftool` command. It is possible to return all data or specify a specific tag.

Usage:

```
$exiftool = $serviceLocator->get('Phpro\Filesystem\Metadata\Image\ExifTool');
$meta = $exiftool->getMetadataForFile($file, []);
$meta = $exiftool->getMetadataForFile($file, ['tag' => 'exif']);
$meta = $exiftool->getMetadataForFile($file, ['tag' => 'iptc']);
$meta = $exiftool->getMetadataForFile($file, ['tag' => 'xmp']);

```

### Identify

[](#identify)

The Identify metadata tool provides a wrapper for the `identify` command of `ImageMagick`. It is possible to ask for the regular information or some extended configurations. Extended configuration consist of:

- spotColors

Usage:

```
$identify = $serviceLocator->get('Phpro\Filesystem\Metadata\Image\Identify');
$meta = $identify->getMetadataForFile($file, []);
$meta = $identify->getMetadataForFile($file, ['extended' => true]);

```

### ImageInfo

[](#imageinfo)

The ExifTool metadata tool provides a wrapper for the php `getImageSize()` command. It is possible to return the regular data or the regular + extended data:

Usage:

```
$imageInfo = $serviceLocator->get('Phpro\Filesystem\Metadata\Image\ImageInfo');
$meta = $imageInfo->getMetadataForFile($file, []);
$meta = $imageInfo->getMetadataForFile($file, ['extended' => true]);

```

###  Health Score

27

—

LowBetter than 47% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity19

Limited adoption so far

Community11

Small or concentrated contributor base

Maturity50

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 92.3% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~190 days

Total

4

Last Release

3809d ago

PHP version history (2 changes)v0.1.0PHP &gt;=5.4.8

v0.2.0PHP &gt;=5.4

### Community

Maintainers

![](https://www.gravatar.com/avatar/cab1b0de06c75fec5317beded0c2978f3e9e560e6830c1d9048f3e37b3287342?d=identicon)[phpro](/maintainers/phpro)

---

Top Contributors

[![veewee](https://avatars.githubusercontent.com/u/1618158?v=4)](https://github.com/veewee "veewee (24 commits)")[![stefliekens](https://avatars.githubusercontent.com/u/3245491?v=4)](https://github.com/stefliekens "stefliekens (2 commits)")

### Embed Badge

![Health badge](/badges/phpro-zf-filesystem/health.svg)

```
[![Health](https://phpackages.com/badges/phpro-zf-filesystem/health.svg)](https://phpackages.com/packages/phpro-zf-filesystem)
```

###  Alternatives

[composer/composer

Composer helps you declare, manage and install dependencies of PHP projects. It ensures you have the right stack everywhere.

29.5k193.1M3.0k](/packages/composer-composer)[friendsofphp/php-cs-fixer

A tool to automatically fix PHP code style

13.5k245.4M24.0k](/packages/friendsofphp-php-cs-fixer)[tempest/framework

The PHP framework that gets out of your way.

2.2k31.1k12](/packages/tempest-framework)[civicrm/civicrm-core

Open source constituent relationship management for non-profits, NGOs and advocacy organizations.

751284.3k37](/packages/civicrm-civicrm-core)[symplify/monorepo-builder

Not only Composer tools to build a Monorepo.

5275.7M110](/packages/symplify-monorepo-builder)[shlinkio/shlink

A self-hosted and PHP-based URL shortener application with CLI and REST interfaces

5.1k4.9k](/packages/shlinkio-shlink)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
