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

腾讯Biny框架集成think-orm

伊铭
2023-12-01

当然想要先集成扩展,前提我已经把框架部署好了。下面就开始吧!

下载 Biny 框架

git clone https://github.com/Tencent/Biny.git

安装 think-orm

composer require topthink/think-orm

引入 composer 自动加载文件

Biny 框架默认没有 vendor 目录的,当我们第一次使用 composer 会自动生成一个 vendor 目录并且会生成 composer.jsoncomposer.lock 文件。

想要使用 composer 的自动加载,只需要引入 vendor 目录下的 autoload.php 文件,即可自动加载 vendor 目录下的所有扩展或类文件。

Biny/web/index.php 入口脚本中引入 composer 自动加载文件。

<?php
date_default_timezone_set('Asia/Shanghai');

defined('SYS_DEBUG') or define('SYS_DEBUG', true);
defined('SYS_CONSOLE') or define('SYS_CONSOLE', true);

defined('SYS_ENV') or define('SYS_ENV', 'dev');
defined('isMaintenance') or define('isMaintenance', false);

if (SYS_DEBUG) {
 ini_set('display_errors', 'On');
}
error_reporting(E_ALL ^ E_NOTICE);

include __DIR__ . '/../lib/App.php';

// 引入 composer 自动加载文件
include_once __DIR__ . '/../vendor/autoload.php';

App::registry(realpath(__DIR__ . '/../app'));
App::run();

添加数据库配置

app/config/dns_dev.php 中添加 think-orm 需要的数据库配置信息,这里以 mysql 为例。

'db' => [
  // 默认数据连接标识
  'default' => 'mysql',
  // 数据库连接信息
  'connections' => [
  'mysql' => [
  // 数据库类型
  'type' => 'mysql',
  // 主机地址
  'hostname' => '127.0.0.1',
  // 用户名
  'username' => 'root',
  // 密码
  'password' => 'root',
  // 数据库名
  'database' => 'test',
  // 数据库编码默认采用utf8
  'charset' => 'utf8',
  // 数据库表前缀
  // 'prefix'   => 'think_',
 // 数据库调试模式
  'debug' => true,
  ],
  ],
],

注册数据库配置

Biny 框架没有像 easyswoole 等框架那样专门提供一个服务注册类用来让我们注册一下自己的类,通过查看 index.php 发现 App::registry(realpath(__DIR__ . '/../app')); 框架自己的一些东西都是通过 registry 方法进行注册的,因此我们也在 App::registry() 中注册我们的数据库配置。

/**
 * App注册运行
 * @param $appPath
 * @throws BinyException
 */
public static function registry($appPath)
{
	self::define();
	self::$base = new self();
	self::$model = new Model();
	self::$base_root = dirname(__DIR__);
	self::$extends_root = self::$base_root.DS."extends";
	self::$log_root = self::$base_root.DS."logs";
	if (RUN_SHELL){
		self::$log_root .= '/shell';
	}

	if (is_readable($appPath)) {
		self::$app_root = $appPath;
	} else {
		throw new BinyException(1001, [$appPath]);
	}
	self::$view_root = self::$app_root.DS."template";
	if (!is_writable(self::$log_root) && !mkdir(self::$log_root)){
		throw new BinyException(1007, [self::$log_root]);
	}

	// 注册数据库配置
	\think\facade\Db::setConfig(self::$base->app_config->get('db', 'dns'));

	self::init();
}

愉快地使用

配置好之后就可以按照 th5 的使用就去进行使用了。

模型也是和以前完全相同的用法

$res = Db::table('user')->where('id', 1)->find();
var_dump($res);
 类似资料: