在 Joomla 中连接第三方 PHP 库
PHP 库很方便,因为它们可以从应用程序中的任何位置访问:从插件、组件模型、模块等。如果有人已经解决了类似的问题并将其设计为库(甚至更新了它),那么将此库连接到您的 Joomla 是有意义的。例如,要为在线商店开发付款方式,您需要付款聚合器的官方库。或者您对某些 CRM 的官方 PHP SDK 感到满意。
作曲家
Joomla 不支持直接使用 Composer。为了在工作中使用该库,您需要将其“包装”在 Joomla 扩展类型“库”中并安装它。在严肃的项目中,采用修复项目所有组件版本的方法:代码经过多次检查、测试并允许在生产中使用。
您使用库创建一个包,然后将其安装在您需要的任何位置。随着库的新版本的发布,您可以更新包装器并获得使用 Joomla 扩展的所有优势:以标准方式更新扩展,包括通过 CLI。在更新之前,在管理区域中查看扩展的更改日志等。

Joomla,PSR,Symfony
Joomla 符合 PSR 标准,因此在这方面使用它很方便。Joomla 核心中包含一些 Symfony 包(`console`、`string`、`vardumper`、`yaml`、`error-handler` 等),因此如果您突然想添加更多包,它们会很合适并且运行良好。您可以在 `libraries/vendor` 中查看 Joomla 中除了 Symfony 组件之外还有什么其他有价值的东西。
如何在 Joomla 扩展中包装第三方 PHP 库?
没什么复杂的。库文件通常位于“src”文件夹中。在此文件夹旁边,您需要根据文档 (manual.joomla.org) 创建 Joomla 扩展的 XML 清单。然后我们将所有内容打包成一个 zip 存档,就这样!就可以安装了。
如果您需要在数据库中使用自己的表以使库正常工作,则需要在安装或更新期间使用 SQL 查询添加必要的文件。由于 Joomla 4+ 使用命名空间,因此在扩展的 XML 清单中指定此命名空间非常重要。以下是 Joomla 库的 XML 清单的简化示例。
WebTolk AmoCRM library Webtolk/Amocrm 1.2.1 ...Webtolk\Amocrm src amocrm.xml
`` 标签意味着我们档案中的 `src` 文件夹将被复制到 `JPATH_SITE/libraries/Webtolk/Amocrm`。在`”部分,我们指出需要从档案中填写的内容。并且“\ \` 表示必须为 `JPATH_SITE/libraries/Webtolk/Amocrm` 中的 `src` 文件夹注册命名空间 `Webtolk\Amocrm`。
重要提示!
app->getConfig(); $options = array( 'defaultgroup' => 'wt_amo_crm_temp', 'caching' => true, 'cachebase' => $jconfig->get('cache_path'), 'storage' => $jconfig->get('cache_handler'), ); $cache = Cache::getInstance('', $options); $cache->store($lib_params, 'wt_amo_crm_temp'); } return true; }
并在 `postflight()` 方法中相应地使用 `LibraryHelper::saveParams('Webtolk/Amocrm', $lib_params);` 将保存的参数放回。
params); $param = $params->param; // OR you can use Joomla\Registry\Registry $params = new Registry($plugin->params); $param = $params->get('param', 'defatul value if empty'); }