开始主题之前,在controllers目录中创建两个新文件:
服务容器是一种集中管理对象之间依赖关系的设计模式,提供一种结构化的方式来访问和管理应用程序中的服务。
它充当网站内服务的注册表。
首先在Core目录下创建一个名为Controller.php的文件。在此初始化 Container 类,该类负责管理服务绑定和解析。
class Container { protected $bindings = []; public function bind($key, $resolver) { $this->bindings[$key] = $resolver; } public function resolve($key) { if (!array_key_exists($key, $this->bindings)) { throw new Exception("No matching binding found for {$key}"); } $resolver = $this->bindings[$key]; return call_user_func($resolver); } }
App类充当Container的接口,为访问服务提供方便的接口。
class App { protected static $container; public static function setContainer($container) { static::$container = $container; } public static function container() { return static::$container; } public static function bind($key, $resolver) { static::container()->bind($key, $resolver); } public static function resolve($key) { return static::container()->resolve($key); } }
Bootstrap 是应用程序的一个点,一切都在此处设置和初始化。
$container = new Container(); $container->bind('Core\Database', function () { $config = require base_path('config.php'); return new Database($config['database']); }); App::setContainer($container);
在此,引导过程:
可以使用 App::resolve() 方法从控制器中的容器解析服务。
$db = App::resolve('Core\Database');
现在服务容器已正确构建,您可以看到该项目运行良好。
希望您已经清楚地理解了。
以上是服务容器引导程序:入门的详细内容。更多信息请关注PHP中文网其他相关文章!