PHP code example of marktaborosi / flysystem-filter

1. Go to this page and download the library: Download marktaborosi/flysystem-filter library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

marktaborosi / flysystem-filter example snippets


use League\Flysystem\Filesystem;
use League\Flysystem\Local\LocalFilesystemAdapter;
use Marktaborosi\FlysystemFilter\FilterBuilder;
use Marktaborosi\FlysystemFilter\FlysystemFilter;

lterBuilder();
$filter->isFile();

$flysystemFilter = new FlysystemFilter();
$filteredResults = $flysystemFilter->filter($flysystemContents, $filter);

foreach ($filteredResults as $result) {
    echo $result->path() . PHP_EOL;
}

$filter = new FilterBuilder();
$filter
    ->extensionEquals(['txt', 'log'])
    ->and()
    ->isPublic()
    ->and()
    ->sizeLt('1G');

$flysytemFilter = new FlysystemFilter();
$filteredResults = $flysystemFilter->filter($flysystemContents, $filter);

$filter = new FilterBuilder();
$filter
    ->group_start()
        ->extensionContains(['log', 'txt'])
        ->and()
        ->isFile()
    ->group_end()
    ->or()
    ->pathMatchesRegex('/debug/');

$flysytemFilter = new FlysystemFilter();
$filteredResults = $flysystemFilter->filter($flysystemContents, $filter);

'providers' => [
    Marktaborosi\FlysystemFilter\Laravel\FlysystemFilterServiceProvider::class,
],
'aliases' => [
    'FlysystemFilter' => Marktaborosi\FlysystemFilter\Laravel\FlysystemFilterFacade::class,
],

use Illuminate\Support\Facades\Storage;
use Marktaborosi\FlysystemFilter\FilterBuilder;
use FlysystemFilter; // Facade alias

Route::get('/filtered-files', function () {
    $listing = Storage::disk('local')->listContents('', true);

    $builder = (new FilterBuilder())
        ->isFile()
        ->group_start()
            ->filenameContains('console')
            ->or()
            ->filenameContains('file')
        ->group_end();

    $filtered = FlysystemFilter::filter($listing, $builder);

    return $filtered->map(fn($i) => $i->path())->toArray();
});

use Illuminate\Support\Facades\Storage;
use League\Flysystem\StorageAttributes;
use FlysystemFilter;

Route::get('/log-files', function () {
    $listing = Storage::disk('local')->listContents('', true);

    // Callable allows custom filter logic without building a `FilterBuilder`
    $callable = static fn(StorageAttributes $item): bool =>
        str_ends_with($item->path(), '.log');

    $filtered = FlysystemFilter::filter($listing, $callable);

    return $filtered->map(fn($i) => $i->path())->toArray();
});