php - Composer 包在哪里放置客户端配置?
问题描述
我有一个作曲家包,设计用于具有配置的其他项目,或者更确切地说是默认设置,我希望最终用户能够根据他们的预期用途进行调整。包本身可以配置为根据传递给包的构建器类的配置以不同的方式构建事物。我希望有默认设置,可能在 settings.yml 文件中(介质不是问题,*.conf、*.json、*.php),这可能应该放在包中吗?但是我想如果是这种情况,最终用户将很难维护,因为它会在作曲家更新期间被覆盖?任何人都知道存储作曲家供应商包配置的规范是什么?
$parameters = [
'handlers' => [
// various depending on client use
'//widget' => 'LivingMarkup\Component\Widgets\{name}',
'//img' => 'LivingMarkup\Component\Img',
'//a' => 'LivingMarkup\Component\A',
'//var' => 'LivingMarkup\Component\Variable',
'//condition' => 'LivingMarkup\Component\Condition',
'//redact' => 'LivingMarkup\Component\Redact'
],
'hooks' => [
'beforeLoad' => 'Executed before onLoad',
'onLoad' => 'Loads object data',
'afterLoad' => 'Executed after onLoad',
'beforeRender' => 'Executed before onLoad',
'onRender' => 'RETURN_CALL',
'afterRender' => 'Executed after onRender',
]
];
谢谢你。
解决方案
经过一番搜索,我找到了一篇解决这个确切问题的帖子。
https://www.reddit.com/r/PHP/comments/3qqrmz/how_to_handle_config_files_and_default_settings/
总而言之,如果上面的链接有一天停止工作,这里有一些选项:
- “Bolt CMS 确实使用了 config.yml.dist,它包含在源代码中。如果不存在,最终用户可以创建一个 config.yml 文件。config.yml.dist 文件是官方的一部分项目并充当示例配置文件,不应修改。”
- “如果您愿意,可以在您的版本控制中跟踪您自己的 config.yml 文件。然后您可以将机密或特定于环境的信息放入 config_local.yml 并将该文件的名称放在 .gitignore 中。”
- “Symfony 我使用 parameters.yml 和 config.yml 将参数传递给 DIC 中的对象。”
- “Phpunit 使用 phpunit.xml.dist 文件来设置测试。”
- “Apigen 使用 .neon 或 .yaml 配置文件。”
- “Flysystem 要求直接在构造函数中传递配置选项”
- “Cakephp 有它自己的配置设置,并且插件附带了关于添加键的说明。这个资产压缩包使用一个 ini 文件”
- Opus 是一个选项:https ://github.com/imarc/opus
推荐阅读
- powershell - WindowsPowerShell 重命名项目
- java - java / scala不兼容的类型,当将scala类封装(或使用instanceof)到java类时,即使scala类扩展了java类
- php - 未定义的数组键 - Laravel/Fortify 寄存器
- laravel - 传递给 Laravel 中视图的测试变量
- python - 使用 Matplotlib 在两行之间着色
- cassandra - Cassandra:在多个节点关闭的情况下提示切换
- android - Firebase 实时数据库在连接不良时重复原子 ServerValue.increment
- matlab - 运行时检测到分段违规
- flutter - 在 Flutter 中绘制 3D 散点图
- nix - 如何使用 Nix 指定包/派生运行时依赖项?