myerscode / package-discovery
该包最新版本(1.0.0)没有可用的许可证信息。
一个帮助通过Composer元数据查找产品插件的包!
1.0.0
2022-09-25 21:34 UTC
Requires
- php: ^8.1
- myerscode/utilities-bags: ^2.0
- myerscode/utilities-files: ^2.0
Requires (Dev)
- phpunit/phpunit: ^9.5
This package is auto-updated.
Last update: 2024-09-16 17:07:19 UTC
README
一个帮助轻松查找服务插件的服务的服务,使用Composer元数据!
安装
您可以通过composer安装此包
composer require myerscode/package-discovery
用法
仅发布项目需要在他们的包中添加适当的元数据,然后由消费项目检测。一个想要发现项目的项目需要实例化一个Finder
来查找项目命名空间。您将能够按需消费项目中发现的所有元数据。
发布项目
在您的package.json
文件中,在extras
对象中添加一个对象,其键与您想要发现的项目命名空间相关。
{ "name": "myerscode/corgis", "extra": { "myerscode": { "corgis": ["Gerald", "Rupert"], "providers": [ "Myerscode\\Corgis\\CorgiProvider" ] } } }
消费项目
使用Finder
类,传递相对于vendor
目录的根路径来初始化。
然后使用discover
方法来查找所有在其额外字段中有给定名称的包。
$finder = new Finder(__DIR__); // would find all installed packages that have a myerscode namespace in the extras $packages = $finder->discover('myerscode');
在发现包后,您将有一个数组,其中包含每个发现的元数据。
[ "myerscode/corgis" => [ "corgis": ["Gerald", "Rupert"], "providers": [ "Myerscode\\Corgis\\CorgiProvider" ] ] ]
避免发现
如果您不想发现特定项目,则可以在消费包中添加一些元数据以防止此操作。
您可以通过在package.json
文件的extra字段的projects命名空间下的avoid中添加包名来实现此操作。
{ "name": "myerscode/demo-project", "extra": { "myerscode": { "avoid": [ "myerscode/corgis" ] } } }
如果您想避免加载所有可发现的包,只需在avoid字段中添加*
。
{ "name": "myerscode/demo-project", "extra": { "myerscode": { "avoid": [ "*" ] } } }
定位包
当您想要找出包在磁盘上的位置时,您可以使用locate
方法来查找其绝对路径。
$finder = new Finder(__DIR__); echo $finder->locate('myerscode/test-package'); // /User/fred/project-name/vendor/myerscode/test-package
获取服务包元数据
要获取特定服务的包元数据,请调用packageMetaForService
方法,并传递包名和服务名。
$finder = new Finder(__DIR__); echo $finder->packageMetaForService('myerscode/test-package', 'myerscode'); [ "corgis": ["Gerald", "Rupert"], "providers": [ "Myerscode\\Corgis\\CorgiProvider" ] ]
获取包额外信息
要获取包的所有额外数据,请调用packageExtra
方法。
$finder = new Finder(__DIR__); echo $finder->packageExtra('myerscode/test-package'); [ "myerscode" => [ "corgis": ["Gerald", "Rupert"], "providers": [ "Myerscode\\Corgis\\CorgiProvider" ] ] ]
问题
有关错误报告和功能请求,请提交到Github Issue Tracker。
贡献
有关信息,请参阅Myerscode contributing页面。
许可
MIT许可证(MIT)。有关更多信息,请参阅许可文件。