Seditio Source
Root |
./othercms/xenForo 2.2.8/src/vendor/league/flysystem/src/Plugin/GetWithMetadata.php
<?php

namespace League\Flysystem\Plugin;

use
InvalidArgumentException;
use
League\Flysystem\FileNotFoundException;

class
GetWithMetadata extends AbstractPlugin
{
   
/**
     * Get the method name.
     *
     * @return string
     */
   
public function getMethod()
    {
        return
'getWithMetadata';
    }

   
/**
     * Get metadata for an object with required metadata.
     *
     * @param string $path     path to file
     * @param array  $metadata metadata keys
     *
     * @throws InvalidArgumentException
     * @throws FileNotFoundException
     *
     * @return array|false metadata
     */
   
public function handle($path, array $metadata)
    {
       
$object = $this->filesystem->getMetadata($path);

        if ( !
$object) {
            return
false;
        }

       
$keys = array_diff($metadata, array_keys($object));

        foreach (
$keys as $key) {
            if ( !
method_exists($this->filesystem, $method = 'get' . ucfirst($key))) {
                throw new
InvalidArgumentException('Could not fetch metadata: ' . $key);
            }

           
$object[$key] = $this->filesystem->{$method}($path);
        }

        return
$object;
    }
}