bnomei / autoloader-for-kirby
用于在插件中自动加载各种 Kirby 扩展的辅助工具
4.4.0
2024-08-20 16:42 UTC
Requires
- php: >=8.2.0
- mustangostang/spyc: ^0.6.3
- symfony/finder: ^7.0
- symfony/yaml: ^6.0
Requires (Dev)
- getkirby/cms: ^4.0.0-beta.2
- larastan/larastan: ^2.9
- laravel/pint: ^1.13
- pestphp/pest: ^2.24
- pestphp/pest-plugin-drift: ^2.5
- pestphp/pest-plugin-type-coverage: ^2.4
- spatie/ray: ^1.41
Conflicts
- getkirby/cms: <4.0
README
用于在插件中自动加载各种 Kirby 扩展的辅助工具
商业使用
支持开源!
此插件免费,但如果您在商业项目中使用它,请考虑赞助我或捐款。
如果我的工作帮助您赚了一些钱,那么我得到一些回报似乎也是公平的,对吧?
要善良。分享一点。谢谢。
— Bruno
安装
composer require bnomei/autoloader-for-kirby
此包 NOT 是 kirby 插件
- 这是一个 composer 包,因为它实际上使其设置更容易,并且不会干扰扩展的加载顺序。
- 作为一个包,它也可以用于本地插件,也可以作为在线插件中的 composer 依赖项。
扩展自动加载
添加您想要自动加载的每种扩展类型的加载器一次,它将正确注册所有子文件夹中的文件。
支持的扩展
以下扩展可以自动加载
- 蓝图 (php 或 yml,类)
- 类 (php)
- 集合 (php)
- 命令 (php)
- 控制器 (php)
- 块模型 (php)
- 页面模型 (php)
- 路由 (php)
- api路由 (php)
- 用户模型 (php)
- 片段 (php)
- 模板 (php)
- 翻译 (php 或 yml 或 json)
注意
- 此包添加了从 yaml 或 json 文件加载翻译的功能,这不是 kirby 核心的原始部分。
- “类”加载器非常基础。建议使用 kirby 的
load()
-辅助程序或 composer 的 psr-4 自动加载的自定义数组。 - “路由”和“apiRoutes”加载器基于 @tobimori 的代码,需要类似于 Next.js 的文件结构 示例。
- 从类加载的蓝图需要 kirby-blueprints 插件
用法
在您的项目或插件的 composer.json
中将其作为依赖项引入后,您可以使用 autoload()
-辅助程序来加载各种扩展。
/site/plugins/example/index.php
<?php // only autoloader Kirby::plugin('bnomei/example', autoloader(__DIR__)->toArray());
<?php // merge autoloader with custom config Kirby::plugin('bnomei/example', autoloader(__DIR__)->toArray([ 'options' => [ // options ], // other extensions ]));
<?php // optionally change some settings /* autoloader(__DIR__, [ 'snippets' => [ 'folder' => 'schnippschnapp', ], ]); */ autoloader(__DIR__)->classes(); // use a different folder // autoloader(__DIR__)->classes('src'); // set each option explicitly without merging Kirby::plugin('bnomei/example', [ 'options' => [ // options ], 'blueprints' => autoloader(__DIR__)->blueprints(), 'collections' => autoloader(__DIR__)->collections(), 'commands' => autoloader(__DIR__)->commands(), 'controllers' => autoloader(__DIR__)->controllers(), 'blockModels' => autoloader(__DIR__)->blockModels(), 'pageModels' => autoloader(__DIR__)->pageModels(), 'routes' => autoloader(__DIR__)->routes(), 'userModels' => autoloader(__DIR__)->userModels(), 'snippets' => autoloader(__DIR__)->snippets(), 'templates' => autoloader(__DIR__)->templates(), 'translations' => autoloader(__DIR__)->translations(), // other extensions ]);
设置
该包附带 默认设置 以适应大多数用例。但您可以随时更改它们,每次调用 autoloader()
-辅助程序时为不同的目录(即每个插件的 index.php
文件)。
/site/plugins/example/index.php
<?php Kirby::plugin('bnomei/example', autoloader(__DIR__, [ 'blockModels' => [ // mapping BlockModel class names to file names, like // MyCustomBlock::class => 'my.custom' (site/blueprints/blocks/my.custom.yml) 'transform' => fn ($key) => \Bnomei\Autoloader::pascalToDotCase($key), ], ])->toArray() );
建议
此插件与我的 Kirby CLI 工具 结合使用效果很好,该工具可以帮助您更快地创建扩展文件。
免责声明
此包按“原样”提供,不提供任何保证。自行承担风险,并在将它们用于生产环境之前始终自行测试。如果您发现任何问题,请 创建新问题。
许可
不建议在任何推广种族主义、性别歧视、恐同、动物虐待、暴力或其他任何形式的仇恨言论的项目中使用此软件包。