看文档里面好像还没有在插件中导入自己的函数呀,我新建了一个插件的autoload.php,但似乎好像还是没生效
support/bootstrap.php里找到
foreach (config('autoload.files', []) as $file) { include_once $file; }
在上面加一段代码
foreach (config('plugin', []) as $firm => $projects) { foreach ($projects as $name => $project) { foreach ($project['autoload']['files'] ?? [] as $file) { include_once $file; } } }
现在有没有其他方案可以扩展引入自己的函数库呢?还是得用这个方法呀? 我这里倒是可以改,但发布了插件,官方的bootstrap.php没有这些代码,别人安装我插件就报错了呀
下个版本会加上这个代码。 如果担心有的用户没有这段代码,就用composer.json来自动加载。
本地开发需要更改2个composer.json,一个是webman的composer.json,一个是你插件的composer.json。正式发布的时候只需要你插件的composer.json。
比如你要加载的文件是 vendor/foo/admin/src/functions.php 1、webman的composer.json里autoload.files里加上要加载的文件
"autoload": { "psr-4": { "": "./", "App\\": "./app" }, "files": [ "./support/helpers.php", "./vendor/foo/admin/src/functions.php" ] },
2、你的插件项目的composer.json里autoload.files类似这样
"autoload": { "psr-4": { // 这里省略了配置 }, "files": [ "./src/functions.php" ] },
然后执行 composer dumpautoload
ok,明白了
support/bootstrap.php里找到
在上面加一段代码
现在有没有其他方案可以扩展引入自己的函数库呢?还是得用这个方法呀? 我这里倒是可以改,但发布了插件,官方的bootstrap.php没有这些代码,别人安装我插件就报错了呀
下个版本会加上这个代码。
如果担心有的用户没有这段代码,就用composer.json来自动加载。
本地开发需要更改2个composer.json,一个是webman的composer.json,一个是你插件的composer.json。正式发布的时候只需要你插件的composer.json。
比如你要加载的文件是 vendor/foo/admin/src/functions.php
1、webman的composer.json里autoload.files里加上要加载的文件
2、你的插件项目的composer.json里autoload.files类似这样
然后执行 composer dumpautoload
ok,明白了