当然想要先集成扩展,前提我已经把框架部署好了。下面就开始吧!
Biny
框架git clone https://github.com/Tencent/Biny.git
think-orm
composer require topthink/think-orm
composer
自动加载文件Biny
框架默认没有 vendor
目录的,当我们第一次使用 composer
会自动生成一个 vendor
目录并且会生成 composer.json
和 composer.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);