通过修改 vendor/webman/database/src/Initializer.php 加上的
$capsule->getDatabaseManager()->extend('duckdb', function ($config, $name) {
$config['name'] = $name;
$connector = new DuckDBConnector();
$duckdb = $connector->connect($config);
return new DuckDBConnection($duckdb, $config['database'], $config['prefix'], $config);
});
请问是否可以不通过修改这个文件,类似 laravel 的 ServiceProvider 来实现
不然以后框架升级,改来改去很麻烦
webman提供了bottstrap机制,在进程启动时执行,类似 ServiceProvider,并且更灵活。
安装
composer require webman/console(已安装则忽略)。执行
php webman make:bootstrap duckdb(名称随意,这里使用duckdb)然后修改 app/bootstrap/Duckdb.php
reload生效
谢谢老大,早上按 <a href="https://www.workerman.net/doc/webman/others/autoload.html#%E5%88%A9%E7%94%A8%E6%A1%86%E6%9E%B6%E5%8A%A0%E8%BD%BD%E6%9F%90%E4%BA%9B%E6%96%87%E4%BB%B6 ">利用框架加载某些文件</a> 来实现的,但是这个更简单
这个 bootstrap 的方式更简单,一会改成这个