当前位置: 首页 > 工具软件 > Webman > 使用案例 >

webman手动安装think-orm组件

吴和硕
2023-12-01

webman 1.2版本支持think-orm插件,可自动安装think-orm并配置webman。该插件需要webman>=1.2.1,如果你的webman版本是旧版本,请参考以下文档手动配置安装think-orm。

  • 安装ThinkOrm
    composer require topthink/think-orm

  • 配置文件 config/thinkorm.php 内容如下:

    <?php
    return [
      'default'    =>    'mysql',
      'connections'    =>    [
          'mysql'    =>    [
              // 数据库类型
              'type'        => 'mysql',
              // 服务器地址
              'hostname'    => '127.0.0.1',
              // 数据库名
              'database'    => 'test',
              // 数据库用户名
              'username'    => 'root',
              // 数据库密码
              'password'    => '',
              // 数据库连接端口
              'hostport'    => '3306',
              // 数据库连接参数
              'params'      => [],
              // 数据库编码默认采用utf8
              'charset'     => 'utf8',
              // 数据库表前缀
              'prefix'      => '',
              // 断线重连
              'break_reconnect' => true,
              // 关闭SQL监听日志
              'trigger_sql' => false,
          ],
      ],
    ];
  • 建立数据库初始化文件

    新建support/bootstrap/ThinkOrm.php,内容如下:

    <?php
    namespace support\bootstrap;
    
    use Webman\Bootstrap;
    use Workerman\Timer;
    use think\facade\Db;
    
    class ThinkOrm implements Bootstrap
    {
      // 进程启动时调用
      public static function start($worker)
      {
          // 配置
          Db::setConfig(config('thinkorm'));
          // 维持mysql心跳
          if ($worker) {
              Timer::add(55, function () {
                  $connections = config('thinkorm.connections', []);
                  foreach ($connections as $key => $item) {
                      if ($item['type'] == 'mysql') {
                          Db::connect($key)->query('select 1');
                      }
                  }
              });
          }
      }
    }
  • 进程启动配置

    打开config/bootstrap.php,加入如下配置:

    return [
      // 这里省略了其它配置 ...
      support\bootstrap\ThinkOrm::class,
    ];

    进程启动时会执行一遍config/bootstrap.php里配置的类的start方法。我们利用start方法来初始化ThinkORM的配置,业务就直接可以使用ThinkORM了。

  • 使用

    <?php
    namespace app\controller;
    
    use support\Request;
    use think\facade\Db;
    
    class Foo
    {
      public function get(Request $request)
      {
          $user = Db::table('user')->where('uid', '>', 1)->find();
          return json($user);
      }
    }
  • ThinkORM使用文档

    ThinkORM文档地址

 类似资料: