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

使用TYPO3 V 6.1中的外部库进行扩展

荀增
2023-03-14

据此,http://docs.typo3.org/typo3cms/CoreApiReference/ApiOverview/Autoloading/Index.html从TYPO3 V6开始,鼓励使用名称空间,并且任何PHP文件都应该只包含一个类。引用上述链接

 - In TYPO3 every class must reside in its own file, i.e. there should
   be only one class per PHP file
 - Use the class naming convention and file location.

我的扩展是使用扩展生成器构建的。它使用twitter API库,并且有一个要使用的文件config.php。此文件包含多个类。

问题是,如何使用此配置。php,遵循这两个条件,我应该划分config。php到多个php文件中,每个文件中都有一个类?

或者有没有一个非常好的方法来解决这个问题?

共有2个答案

慕冠宇
2023-03-14

跟随http://docs.typo3.org/typo3cms/CoreApiReference/ApiOverview/Autoloading/Index.html正确的方法是创建ext_自动加载。扩展名根文件夹中包含以下内容的php文件:

$libraryClassesPath = \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::extPath('your_ext_key') . 'Relative/Path/Of/Your/External/Library/';
return array(
'class_name_to_call' => $libraryClassesPath . 'class_file.php',
);

>

  • 下载库并将其放入/typo3conf/ext/myext/Resources/Private/library/fpdf/
  • 将此代码保存在/typo3conf/ext/myext/ext\u autoload中。php

    $libraryClassesPath = \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::extPath('myext') . 'Resources/Private/Library/';
    return array(
        'FPDF' => $libraryClassesPath . 'fpdf/fpdf.php',
    );
    

    清除缓存

    通过调用在您的扩展到处使用FPDF:

    $pdf = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('FPDF');
    $pdf->AddPage();
    $pdf->SetFont('Arial','B',16);
    $pdf->Cell(40,10,'Hello World!');
    $pdf->Output();
    

  • 羊舌承颜
    2023-03-14

    保持外部代码不变。编码准则仅适用于扩展和核心开发本身,您不需要修改扩展库来匹配该准则。

    只需将外部脚本

    require_once t3lib_extMgm::siteRelPath('your_extension_key') . 'Path/to/the/Script.php';
    

    并开始使用它们。

     类似资料:
    • 问题内容: 我试图了解扩展在Python中是如何工作的,并且并没有达到我的期望。例如: 但我本来期望: 为什么返回None而不是扩展列表? 问题答案: 该方法将追加到现有数组并返回。在您的情况下,您正在动态创建一个数组-对其进行扩展,然后将其丢弃。该变量以返回值结束。

    • 首先,虽然我关注StackOverflow已经有相当一段时间了,但这是我第一次发布一些东西,所以如果我做错了或者不按规则做的话,请随时为我指出正确的方向。 我正在开发一个PDF数字签名应用程序,使用iText5,它依赖于一个外部服务,在我准备好PDF签名后提供一个签名哈希。 如iText文档中所述,在第一阶段,我准备了PDF(在最终实现中,所有PDF都可能是多签名的,因此我使用追加模式),如下所示

    • 我在计算引擎中创建了一个实例。 我安装了postgresql 9.6,现在我正在尝试使用pgadmin客户端连接外部ip,但它给了我一个错误 连接到35.224.170.161:5432被拒绝。检查主机名和端口是否正确,邮政局长是否接受TCP/IP连接。连接到35.224.170.161:5432被拒绝。检查主机名和端口是否正确,邮政局长是否接受TCP/IP连接。连接被拒绝:连接被拒绝:连接 我只

    • 我想使用这个java库[1]enj-library 我将这个库编译成jar,然后在eclipse下创建了一个新的插件项目“来自现有JAR档案的插件” 然后我试着将它添加到我的包,但它没有 2.我需要它作为添加包,但我得到了 3.我添加了类路径,我的包开始了,但我得到了类未找到异常 [1]https://github.com/dog 网关/enj-library 我在OSGI捆绑包包含这个库如何?

    • 问题内容: 大家好!长话短说,如果您不介意向这个新手PHPer伸出援手的话。:) 我有一个名为“类别”的数据库字段,其中存储有以下内容: 我在数据库中还有一个单独的表,其中每个项目的字段中都有具有这些类别名称的项目。现在,该脚本(我想对其进行分叉)使用: 为了显示所有可用类别的列表。很简单吧? Welllllll .....我不想按ASC排序,我想按我提到的第一个Categories字段中的项目列

    • 我假设有很多情况需要调用基于值列表的外部RESTful服务。 现在对于这些productId中的每一个,我想并行调用一个外部endpoint。大致如下: 你会如何转换这个 到 当所有通话成功完成时。 一个人如何使用可完成的未来来实现这一点? 我想我要问的是,如何等待所有调用完成,然后以集合的形式获得结果。