代码拉取完成,页面将自动刷新
<?php
namespace Sinta\Laravel\Addons;
use Sinta\Laravel\Addons\Environment as AddonEnvironment;
class ClassLoader
{
protected $env;
protected $addons;
protected static $instance;
public static function register(AddonEnvironment $env, $addons)
{
static::$instance = new static($env, $addons);
spl_autoload_register([static::$instance, 'load'], true, false);
}
public static function unregister()
{
if (static::$instance) {
spl_autoload_unregister([static::$instance, 'load']);
}
}
public function __construct(AddonEnvironment $env, array $addons)
{
$this->env = $env;
$this->addons = $addons;
}
public function load($className)
{
foreach ($this->addons as $addon) {
$namespace = $addon->phpNamespace();
$namespacePrefix = $namespace ? $namespace.'\\' : '';
if (!starts_with($className, $namespacePrefix)) {
continue;
}
$relativeClassName = substr($className, strlen($namespacePrefix));
$relativePath = $this->env->classToPath($relativeClassName);
foreach ($addon->config('addon.directories') as $directory) {
$path = $addon->path($directory.'/'.$relativePath);
if (file_exists($path)) {
require_once $path;
return true;
}
}
}
return false;
}
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。