![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/dceprojects.corals.io/vendor/league/flysystem/src/Plugin/ |
<?php namespace League\Flysystem\Plugin; use BadMethodCallException; use League\Flysystem\FilesystemInterface; use League\Flysystem\PluginInterface; use LogicException; trait PluggableTrait { /** * @var array */ protected $plugins = []; /** * Register a plugin. * * @param PluginInterface $plugin * * @throws LogicException * * @return $this */ public function addPlugin(PluginInterface $plugin) { if ( ! method_exists($plugin, 'handle')) { throw new LogicException(get_class($plugin) . ' does not have a handle method.'); } $this->plugins[$plugin->getMethod()] = $plugin; return $this; } /** * Find a specific plugin. * * @param string $method * * @throws PluginNotFoundException * * @return PluginInterface */ protected function findPlugin($method) { if ( ! isset($this->plugins[$method])) { throw new PluginNotFoundException('Plugin not found for method: ' . $method); } return $this->plugins[$method]; } /** * Invoke a plugin by method name. * * @param string $method * @param array $arguments * @param FilesystemInterface $filesystem * * @throws PluginNotFoundException * * @return mixed */ protected function invokePlugin($method, array $arguments, FilesystemInterface $filesystem) { $plugin = $this->findPlugin($method); $plugin->setFilesystem($filesystem); $callback = [$plugin, 'handle']; return call_user_func_array($callback, $arguments); } /** * Plugins pass-through. * * @param string $method * @param array $arguments * * @throws BadMethodCallException * * @return mixed */ public function __call($method, array $arguments) { try { return $this->invokePlugin($method, $arguments, $this); } catch (PluginNotFoundException $e) { throw new BadMethodCallException( 'Call to undefined method ' . get_class($this) . '::' . $method ); } } }