Installation

Installation#

Install with Composer:

composer require infocyph/pathwise

Requirements:

  • PHP 8.4+

  • league/flysystem 3.x

  • ext-fileinfo

Optional extensions:

  • ext-zip for ZIP features.

  • ext-pcntl for long-running watch loops.

  • ext-posix for richer Unix ownership details.

  • ext-xmlreader and ext-simplexml for XML helpers.

Optional adapter packages (choose per driver):

  • AWS S3: league/flysystem-aws-s3-v3 + aws/aws-sdk-php

  • Async AWS S3: league/flysystem-async-aws-s3 + async-aws/s3

  • Azure Blob Storage: league/flysystem-azure-blob-storage

  • Google Cloud Storage: league/flysystem-google-cloud-storage

  • MongoDB GridFS: league/flysystem-gridfs

  • SFTP: league/flysystem-sftp-v3

  • SFTP (V2): league/flysystem-sftp-v2

  • FTP: league/flysystem-ftp

  • WebDAV: league/flysystem-webdav

  • ZIP archive: league/flysystem-ziparchive

  • In-memory: league/flysystem-memory

  • Read-only wrapper: league/flysystem-read-only

  • Path prefixing wrapper: league/flysystem-path-prefixing

See storage-adapters for setup patterns.

Where to Use First#

If you are evaluating Pathwise, start with the unified PathwiseFacade facade, then drop down to direct module classes as needed.

use Infocyph\Pathwise\PathwiseFacade;

$ops = PathwiseFacade::at('/tmp/example.txt')->file();
$ops->create('initial')->update('updated');