Вход Регистрация
Файл: concrete5.7.5.6/concrete/vendor/concrete5/flysystem/src/Adapter/AbstractAdapter.php
Строк: 90
<?php

namespace ConcreteFlysystemAdapter;

use 
LogicException;
use 
ConcreteFlysystemAdapterInterface;

abstract class 
AbstractAdapter implements AdapterInterface
{
    
/**
     * Write using a stream
     *
     * @param   string  $path
     * @param   resource  $resource
     * @param   mixed     $config
     * @return  mixed     false or file metadata
     */
    
public function writeStream($path, $resource, $config = null)
    {
        return 
$this->stream($path, $resource, $config, 'write');
    }

    
/**
     * Update a file using a stream
     *
     * @param   string    $path
     * @param   resource  $resource
     * @param   mixed     $config   Config object or visibility setting
     * @return  mixed     false of file metadata
     */
    
public function updateStream($path, $resource, $config = null)
    {
        return 
$this->stream($path, $resource, $config, 'update');
    }

    
/**
     * Get the contents of a file in a stream
     *
     * @param   string          $path
     * @return  resource|false  false when not found, or a resource
     */
    
public function readStream($path)
    {
        if ( ! 
$data = $this->read($path)) {
            return 
false;
        }

        
$stream = tmpfile();
        
fwrite($stream, $data['contents']);
        
rewind($stream);

        
$data['stream'] = $stream;

        return 
$data;
    }

    
/**
     * Stream fallback
     *
     * @param   string    $path
     * @param   resource  $resource
     * @param   mixed     $config
     * @param   string    $fallback
     * @return  mixed     fallback result
     */
    
protected function stream($path, $resource, $config, $fallback)
    {
        
rewind($resource);
        
$contents = stream_get_contents($resource);

        return 
$this->{$fallback}($path, $contents, $config);
    }

    
/**
     * Get the file visibility
     *
     * @param   string  $path
     * @throws  LogicException
     */
    
public function getVisibility($path)
    {
        throw new 
LogicException(get_class($this).' does not support visibility settings.');
    }

    
/**
     * Set the file visibility
     *
     * @param   string  $path
     * @param   string  $visibility
     * @throws  LogicException
     */
    
public function setVisibility($path, $visibility)
    {
        throw new 
LogicException(get_class($this).' does not support visibility settings.');
    }

    
/**
     * Copy a file
     *
     * @param   string  $path
     * @param   string  $newpath
     * @return  boolean
     */
    
public function copy($path, $newpath)
    {
        
$stream = $this->readStream($path);

        if ( ! 
is_resource($stream)) {
            return 
false;
        }

        
$result = $this->writeStream($newpath, $stream);
        
fclose($stream);

        if ( ! 
$result) {
            return 
false;
        }

        return 
true;
    }
}
Онлайн: 1
Реклама