loilo / storage-paths
Get OS-specific paths for storing your project's config, cache, logs etc.
Requires
- php: >= 7.1
- webmozart/path-util: ^2.3
Requires (Dev)
- phpunit/phpunit: ^7.5
- squizlabs/php_codesniffer: ^3.4
This package is auto-updated.
Last update: 2024-10-24 07:40:27 UTC
README
Storage Paths
This package yields OS-specific paths for storing your project's config, cache, logs etc. While the API has been adjusted for PHP, the research and opinionated fallbacks stem from the Node.js env-paths package by Sindre Sorhus.
Install
composer require loilo/storage-paths
Usage
Example for macOS:
use Loilo\StoragePaths\StoragePaths; $paths = StoragePaths::for('MyApp'); $paths->data() === '/Users/loilo/Library/Application Support/MyApp-php'; $paths->config() === '/Users/loilo/Library/Preferences/MyApp-php'; $paths->cache() === '/Users/loilo/Library/Caches/MyApp-php'; $paths->log() === '/Users/loilo/Library/Logs/MyApp-php'; $paths->temp() === '/var/folders/qh/z_hny67s57sfm_sxy1zynnkr0000gn/T/MyApp-php';
API
Signature
StoragePaths::for(string $name, array $options): StoragePathsInterface;
-
$name
— The name of your project. This is used to generate the paths, therefore it needs to be a valid filename. -
$options
— An (optional) associative array of options:-
$options['suffix']
Type:
string
Default:
'php'
A suffix string appended to the project name to avoid naming conflicts with native apps.
-
$options['os']
Type:
string
Default:
PHP_OS_FAMILY
Override the operating system to generate paths for. Values correspond to the
PHP_OS_FAMILY
constant.
-
Note: Calling
StoragePaths::for()
only generates the path strings. It doesn't create the directories for you.
Result
The returned StoragePathsInterface
provides access to the following storage methods:
data()
— Directory for data filesconfig()
— Directory for config filescache()
— Directory for for non-essential data fileslog()
— Directory for log filestemp()
— Directory for temporary files