服务容器指导程序:入门-php教程

首页 2024-07-09 18:53:51

在开始正题之前,在controllers目录下新建两份文件:

  1. destroy.php 从数据库中删除注释的代码。
  2. store.php 用表单和请求方法创建新笔记的代码。
服务容器简介

服务容器是集中管理对象之间依赖关系的设计模式,为访问和管理应用程序提供结构化的服务。

它作为网站服务的注册表。

集装箱类

首先,在Core目录中创建一个名为Controler.php文件。在这里初始化 Container 负责绑定和分析管理服务。

  • bind():向容器注册服务。
  • resolve():从容器中检索服务。
类容器{
    被保护的$绑定= [];

    绑定公共函数($key,$resolver){
        $this->绑定[$key] = $resolver;
    }

    公共函数解析($key){
        if (!array_key_exists($key, $this->bindings)) {
            throw new Exception("没有找到 {$key} 的匹配绑定");
        }
        $resolver = $this->绑定[$key];
        返回 call_user_func($resolver);
    }
}
应用程序类

作为Container的接口,App类为访问服务提供了方便的接口。

  • setContainer():设置App的容器实例。
  • container():检索容器实例。
  • bind():向容器注册服务。
  • resolve():从容器中检索服务。
类应用程序{
    静态$容器受保护;

    公共静态函数 setContainer($container) {
        静态::$容器=$容器;
    }

    公共静态函数容器(){
        返回静态::$容器;
    }

    公共静态函数bindd($key, $resolver) {
        static::container()->bind($key, $resolver);
    }

    公共静态函数分析($key){
        返回静态::container()->resolve($key);
    }
}
引导程序

Bootstrap 它是应用程序的一个点,一切都在其中设置和初始化。

$container = new Container();
$container->bind('CoreDatabase', function () {
    $config = require base_path('config.php');
    返回新数据库($config['database']);
});
应用程序::setContainer($container);

在此,引导过程:

  1. 创建一个新的容器实例($container)
  2. 使用bind方法向容器注册服务(如Coredatabase)
  3. 使用 App::setContainer($container) 容器设置应用程序
控制器

可以使用 App::resolve() 方法来自控制器中的容器分析服务。

$db = App::resolve('CoreDatabase');

现在服务容器已经正确构建,项目运行良好。

我希望你能清楚地理解。

以上是服务容器指导程序:详细介绍,请关注其他相关文章!


p
MySQL连接就这么简单!本地远程、编程语言连接方法一网打尽
还在为MySQL日期计算头疼?这份加一天操作指南能解决90%问题
MySQL日志到底在哪里?Linux/Windows/macOS全平台查找方法在此
MySQL数据库管理工具全景评测:从Workbench到DBeaver的技术选型指南
MySQL密码忘了怎么办?这份重置指南能救急,Windows/Linux/Mac都适用
你的MySQL为什么经常卡死?可能是锁表在作怪!快速排查方法在此
MySQL单表卡爆怎么办?从策略到实战,一文掌握「分表」救命技巧
清空MySQL数据表千万别用错!DELETE和TRUNCATE这个区别可能导致重大事故
你的MySQL中文排序一团糟?记住这几点,轻松实现准确拼音排序!
别再混淆Hive和MySQL了!读懂它们的天壤之别,才算摸到大数据的门道