Skip to content
Wrapper for WordPress' Filesystem for easier file manipulations
PHP Shell
Branch: develop
Clone or download

Latest commit

Fetching latest commit…
Cannot retrieve the latest commit at this time.

Files

Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github/workflows
bin
src
tests
.editorconfig
.gitattributes
.gitignore
CHANGELOG.md
LICENSE
README.md
composer.json
composer.lock
phpcs.xml
phpunit.xml

README.md

Filesystem

BracketSpace Micropackage Latest Stable Version PHP from Packagist Total Downloads License

Micropackage logo

🧬 About Filesystem

This micropackage is a wrapper for WordPress filesystem intended to be used within the wp-content directory.

Supports:

  • plugins
  • must-use plugins
  • themes
  • custom upload directories
  • custom wp-content directories

This package will prefix all the relative paths to full paths giving a convinient way to manipulate files.

💾 Installation

composer require micropackage/filesystem

🕹 Usage

Initializing the Filesystem class from the main plugin/theme file. It just needs a base directory.

use Micropackage\Filesystem\Filesystem;

$filesystem = new Filesystem( __DIR__ );

Using the micropackage to obtain full paths (plugin example).

echo $filesystem->path();
// /var/www/html/wp-content/plugins/my-plugin/

echo $filesystem->path( 'src/templates/full-width.php' );
// /var/www/html/wp-content/plugins/my-plugin/src/templates/full-width.php

Using the micropackage to obtain full URL (plugin example).

echo $filesystem->url();
// https://my.plugin/wp-content/plugins/my-plugin/

echo $filesystem->url( 'assets/images/logo.svg' );
// https://my.plugin/wp-content/plugins/my-plugin/'assets/images/logo.svg

Convert image file to base64 URL.

echo '<img src="' . $filesystem->image_to_base64( 'assets/images/logo.svg' ) . '">';
// <img src="data:image/svg+xml;base64,m8q76v7wy4guiev...">

On top of that, you can use any method provided by WP_Filesystem class, which includes:

  • get_contents()
  • exists()
  • is_file(), is_dir()
  • mkdir()
  • delete()
  • ...

See all available methods

📦 About the Micropackage project

Micropackages - as the name suggests - are micro packages with a tiny bit of reusable code, helpful particularly in WordPress development.

The aim is to have multiple packages which can be put together to create something bigger by defining only the structure.

Micropackages are maintained by BracketSpace.

📖 Changelog

See the changelog file.

📃 License

GNU General Public License (GPL) v3.0. See the LICENSE file for more information.

You can’t perform that action at this time.