civicrm / cv-lib
CiviCRM CLI工具的Bootstrap库
v0.3.55
2024-09-13 02:50 UTC
Requires
- php: >=7.3.0
- ext-json: *
README
cv-lib
是由 cv
提供的子包。它定义了 cv
的基本核心 -- 定位和启动 CiviCRM。
此代码的标准开发地址是 civicrm/cv。它将被定期发布到只读镜像 civicrm/cv-lib,以方便其他项目的使用。
安装
composer require civicrm/cv-lib
主要API
该库提供了一些受支持的类
-
Civi\Cv\CmsBootstrap
支持标准的启动协议。在这个协议中,我们寻找一个已知的 UF/CMS,启动它,然后启动 CiviCRM。这个协议的优势是它更类似于典型的 HTTP 请求。(由 UF/CMS 和 CRM 支持的事件和插件将更正常地工作。)基本用法
Civi\Cv\CmsBootstrap::singleton()->bootCms()->bootCivi();
或者你可以传入选项
$options = [...]; Civi\Cv\CmsBootstrap::singleton() ->addOptions($options) ->bootCms() ->bootCivi();
最终用户可以通过设置
CIVICRM_BOOT
(如cv
中所述)来微调行为。 -
Civi\Cv\Bootstrap
支持传统的启动协议。在这个协议中,我们寻找civicrm.settings.php
并启动 CiviCRM。最后,我们使用civicrm-core
API 启动相关的 UF/CMS。基本用法
$options = [...]; \Civi\Cv\Bootstrap::singleton()->boot($options); \CRM_Core_Config::singleton(); \CRM_Utils_System::loadBootStrap([], FALSE);
最终用户可以通过设置
CIVICRM_SETTING
(如cv
中所述)来微调行为。
两种启动机制都接受一个可选的提示和覆盖集。
例如,默认情况下,cv-lib
将错误打印到 STDERR,但你可以覆盖消息的处理
// Disable all output $options['log'] = new \Psr\Log\NullLogger(); // Enable verbose logging to STDOUT/STDERR $options['log'] = new \Civi\Cv\Log\StderrLogger('Bootstrap', TRUE); // Use bridge between psr/log and symfony/console $options['log'] = new \Symfony\Component\Console\Logger\ConsoleLogger($output); // Use the console logger from cv cli. (Requires symfony/console. Looks a bit prettier.) public function execute(InputInterface $input, OutputInterface $output) { ... $options['output'] = $output; ... }
有关 $options
的更多信息,请参阅文档块。
实验性API
还包括其他类,但它们的契约可能发生变化。
特别有趣的一个是 BootTrait
。它需要 symfony/console
,并且大多数 cv
子命令用它来实现常见的行为
BootTrait
定义了某些 CLI 选项(如--level
、--user
、--hostname
等)。BootTrait
自动在Bootstrap.php
和CmsBootstrap.php
之间做出选择。BootTrait
将 CLI 选项传递给Bootstrap.php
或CmsBootstrap.php
。