tslib_eidtools for typo3 7 的兼容性

Compatibility of tslib_eidtools for typo3 7

我正在尝试使 pi 基础扩展与 typo3 7.6.4 兼容。但是我无法制作以下代码的兼容版本

$this->feUserObj = tslib_eidtools::initFeUser();                
// Connect to database:         
tslib_eidtools::connectDB();

它抛出错误:Class tslib_eidtools 未找到。我如何转换 tslib_eidtools class,使其与 typo3 7 兼容?

TYPO3 7.6 LTS 核心文件中数据库连接建立代码位于core/Classes/Database/DatabaseConnection.php。您不必创建此 class 的对象。

您可以从 TYPO3 全局常量 $GLOBALS['TYPO3_DB'] 中获取数据库对象和连接参数。参考 Click Here

您可以使用此全局对象编写自定义 mysql 查询。

示例:

$results = $GLOBALS['TYPO3_DB']->exec_SELECTgetRows (
                                         $select_fields, 
                                         $from_table, 
                                         $where_clause, 
                                         $groupBy= '', 
                                         $orderBy= '', 
                                         $limit= '', 
                                         $uidIndexField= '' );

TYPO3 "database wrapper" class(3.6.0 中新增)此 class 包含

  • 执行INSERT/UPDATE/DELETE/SELECT的抽象函数 查询("Query execution";这些是所有未来所必需的 连接到数据库,从而确保 DBAL 合规性!)

  • 用于构建 SQL 查询的函数 (INSERT/UPDATE/DELETE/SELECT)
    ("Query building");这些是构建 SQL 的过渡函数 以更自动化的方式查询。使用这些来构建查询
    在您的代码中手动执行它!

  • mysqli 包装函数;这些是过渡函数。通过一个 简单 search/replace 你应该可以替换所有 mysql*() 使用 $GLOBALS['TYPO3_DB']->sql*() 和您的应用程序调用 开箱即用。你不能(合法地)使用任何 mysqli 在此 class 中未找到作为包装函数的函数!见 项目编码指南 (doc_core_cgl) 以获取更多说明 最佳实践

此外,在 TYPO3 6.2 的大多数情况下,您不需要使用此 connect() 方法