1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
<?php
namespace BEdita\Core\Filesystem\Adapter;
use BEdita\Core\Filesystem\FilesystemAdapter;
use Cake\Routing\Router;
use League\Flysystem\Adapter\Local;
class LocalAdapter extends FilesystemAdapter
{
protected $_defaultConfig = [
'baseUrl' => null,
'path' => WWW_ROOT . '_files',
'writeFlags' => LOCK_EX,
'linkHandling' => Local::DISALLOW_LINKS,
'permissions' => [],
'visibility' => 'public',
];
public function initialize(array $config)
{
$success = parent::initialize($config);
if (empty($this->_config['baseUrl']) && strpos($this->getConfig('path'), WWW_ROOT) === 0) {
$path = str_replace(DS, '/', substr($this->getConfig('path'), strlen(WWW_ROOT)));
$this->setConfig('baseUrl', Router::url($path, true));
}
return $success;
}
protected function buildAdapter(array $config)
{
return new Local(
$this->getConfig('path'),
$this->getConfig('writeFlags'),
$this->getConfig('linkHandling'),
(array)$this->getConfig('permissions')
);
}
}