当前位置: 首页 > 知识库问答 >
问题:

类型3:如何在Extbase扩展中使用外部PHP库(无编写器安装)

栾弘新
2023-03-14

我让TYPO3 v10.2在没有Composer的情况下运行。我正在创建一个扩展,并希望将一些第三方PHP库包含到我的Extbase扩展中。我已经在TYPO3文档中读到,这些应该放在Resources/Private/PHP/第三方库中,但是我如何在那里包含它们?它仍然可能与作曲家需要或我应该只是下载第三方库资源并解压缩在那里?如何在控制器或扩展中使用外部库中的命名空间/类?没有和作曲家一起做这件事的最好方法是什么?想知道两种方式。到目前为止感谢!

共有2个答案

鲍俊杰
2023-03-14

您需要为您的库加载类。我不知道你在用哪个图书馆。

将以下代码放入您的ext_localconf.php

<?php

$composerAutoloadFile = \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::extPath('yourExtKey') . 'Resources/Private/PHP/ThirdPartyLibrary/vendor/autoload.php';
require_once($composerAutoloadFile);

现在,您可以在任何您想使用它的地方使用库类。确保您从TYPO3后端转储缓存和自动加载类!

戚勇
2023-03-14
  1. 作曲家初始化
  2. 作曲家要求

他们将外部库放在Resources/Private/Shariff/vendor/

https://bitbucket.org/reelworx/rx_shariff/src/master/Resources/Private/Shariff/

https://bitbucket.org/reelworx/rx_shariff/src/master/Classes/Shariff.php

如果您想在控制器中使用这些库,那么这些库需要已经有名称空间。

由于您在TYPO3 V10中,您可以使用现在在TYPO3中实现的新Symfony依赖注入:https://usetypo3.com/dependency-injection.html

您的扩展/类/控制器/控制器。php

/**
 * @var ThirdPartyLibrary
 */
protected $thirdPartyLibrary;

/**
 * @param ThirdPartyLibrary $thirdPartyLibrary
 */
public function __construct(ThirdPartyLibrary $thirdPartyLibrary)
{
    $this->thirdPartyLibrary = $thirdPartyLibrary;
}

您的扩展/配置/服务。亚马尔

services:
    _defaults:
        autowire: true
        autoconfigure: true
        public: false

    Vendor\Namespace\:
        resource: '../Resources/Private/PHP/ThirdPartyLibrary/*'

 类似资料:
  • 我有自己的扩展,它有两个操作的控制器:listAction和show Action。 问题:我可以在同一个页面上显示两个操作吗? 在特定页面,我用自己的插件创建了一个插入插件记录,在插件后端配置的flexform中,我通过switchableControllerActions字段选择了“列表操作”。列表操作包含产品列表,其中包含指向产品显示操作的链接。 那我想要什么呢? 我有页面产品。URL就是一

  • 我正试图用三个额外的日期(时间戳)字段扩展扩展扩展名(新闻),并希望在(新闻)的fluidtemplate中调用这些字段。 我已经连线到目前为止,我可以看到我的后端额外的字段,而无需选择一个外部类型-我已经相应地修改了ext_tables.php,并可以保存数据。 现在,我试图在我的新闻流模板中使用这些字段,在我的Partials/List/Item中使用以下代码。html-{newsItem.d

  • 进入php源码目录中,配置需要提供mysql_config文件的位置,而且mysql_config文件又要去找mysql其他文件。 由于我的php 和mysql 是2个容器 ,不在一个文件系统里,这可怎么办呀?

  • 所以我学会了如何在打字稿中进行扩展: 但是如何从中制作一个吸气剂?例如: 所以我可以在代码someArray.lastIndex中调用is作为getter? 我找到了这个答案,但代码无法为泛型类型编译,这样写也很丑陋,但也许我在打字稿中要求太多:如何使用 get 属性扩展打字稿类?

  • 我已经使用这个回购安装了PHP 7,但是当我尝试运行时,它会出现以下错误: [软件包]需要ext curl*- 对于php5,您可以通过运行或命令轻松安装它,但我找不到如何安装PHP7的等效版本。 如何为PHP7安装ExtCurl?

  • 问题内容: 我想更改类的方法的执行方式,而不覆盖该方法,而仅覆盖(或理想地扩展)内部类。假设我无法更改需要执行此操作的事实(我正在修改现有的开放源代码库,因此拔出类或其他方法会遇到麻烦)。 我的目标是通过仅更改Thing,使B的toString()返回“ 30”,当前在该位置将返回“ 20”。理想的情况是仅更改方法value2(从而使任何其他方法保持不变),但是我不知道这是否可行。 谢谢 问题答案