libriciel/cakephp-filesystem

Manipulations de fichiers avec transaction

2.2.2 2023-10-10 14:41 UTC

This package is auto-updated.

Last update: 2024-04-27 14:59:26 UTC


README

build status coverage report

Description

Permet de manipuler des fichiers, avec ou sans système de transaction.

Installation

composer config repositories.libriciel/cakephp-filesystem git https://gitlab.libriciel.fr/lganee/cakephp-filesystem.git
composer require libriciel/cakephp-filesystem ~1.0

Pour bénéficier des fichiers de traduction (Exceptions et Shell), vous pouvez ajouter au chemin de votre application celui du plugin :

Configure::write('App.paths.locales', [
    APP . 'Locale' . DS,
    ROOT.DS.'vendor'.DS.'libriciel'.DS.'cakephp-filesystem'.DS.'src'.DS.'Locale'.DS
]);

Utilisation

En PSR-4, ajoutez un use Libriciel\Filesystem\Utility\Filesystem;

Transactions

Filesystem::begin();
Filesystem::remove($files);
if ($condition) {
    Filesystem::commit();
} else {
    Filesystem::rollback();
}

Rollback en cas d'arret du script

Filesystem::begin();
Filesystem::rename($filename, $newFilename);
exit; // rollback

Supporte plusieurs niveaux de transaction

Filesystem::begin();
Filesystem::rename($tmpFile1, $tmpFile2, true);

    Filesystem::begin('nested');
    Filesystem::rename($tmpFile2, $tmpFile3, true);
    if ($cond) {
        Filesystem::rollback('nested');
    }

if ($cond) {
    Filesystem::rollback();
}

Shell

Un shell existe afin d'effectuer les rollbacks qui n'ont pas pu être effectués (ex: arrêt brutal du serveur). À utiliser avec le binaire de cakephp

bin/cake \\Libriciel\\Filesystem\\Shell\\FilesystemShell

Shred

Sur système Unix, le programme shred peut être utilisé pour supprimer bit par bit un fichier. Pour l'utiliser avec Filesystem, vous devez passer la clef de configuration Configure::write('FilesystemUtility.useShred', true). Vous pouvez changer à tout moment cette valeur en appelant :

Filesystem::useShred($bool);

Tests

vendor/bin/phpunit