Major refactoring cleanup: - Add new controller architecture (class-controller-*.php) - Add new settings-v2 UI (views/settings-v2/) - Add new CSS architecture (agentic-sidebar.css, tokens) - Add esbuild build pipeline (scripts/build.js, package.json) - Add composer dependencies (vendor/) - Add frontend src directory (assets/js/src/index.jsx) - Add documentation files - Remove old/obsolete files (class-settings.php, old CSS) This commits all pending changes from previous refactoring efforts.
61 lines
1.5 KiB
PHP
61 lines
1.5 KiB
PHP
<?php
|
|
|
|
namespace League\Flysystem\Adapter\Polyfill;
|
|
|
|
use League\Flysystem\Config;
|
|
use League\Flysystem\Util;
|
|
|
|
trait StreamedWritingTrait
|
|
{
|
|
/**
|
|
* Stream fallback delegator.
|
|
*
|
|
* @param string $path
|
|
* @param resource $resource
|
|
* @param Config $config
|
|
* @param string $fallback
|
|
*
|
|
* @return mixed fallback result
|
|
*/
|
|
protected function stream($path, $resource, Config $config, $fallback)
|
|
{
|
|
Util::rewindStream($resource);
|
|
$contents = stream_get_contents($resource);
|
|
$fallbackCall = [$this, $fallback];
|
|
|
|
return call_user_func($fallbackCall, $path, $contents, $config);
|
|
}
|
|
|
|
/**
|
|
* Write using a stream.
|
|
*
|
|
* @param string $path
|
|
* @param resource $resource
|
|
* @param Config $config
|
|
*
|
|
* @return mixed false or file metadata
|
|
*/
|
|
public function writeStream($path, $resource, Config $config)
|
|
{
|
|
return $this->stream($path, $resource, $config, 'write');
|
|
}
|
|
|
|
/**
|
|
* Update a file using a stream.
|
|
*
|
|
* @param string $path
|
|
* @param resource $resource
|
|
* @param Config $config Config object or visibility setting
|
|
*
|
|
* @return mixed false of file metadata
|
|
*/
|
|
public function updateStream($path, $resource, Config $config)
|
|
{
|
|
return $this->stream($path, $resource, $config, 'update');
|
|
}
|
|
|
|
// Required abstract methods
|
|
abstract public function write($pash, $contents, Config $config);
|
|
abstract public function update($pash, $contents, Config $config);
|
|
}
|