在 TYPO3 扩展中使用 TS3 PHP 框架
Using TS3 PHP framework in TYPO3 Extension
我正在尝试编写一个使用 Teamspeak3 PHP 框架的简单扩展
(https://docs.planetteamspeak.com/ts3/php/framework/) 只是为了在将服务器名称、端口等信息提供给后端插件后在前端显示 "Teamspeak3_Viewer_HTML" 元素。
问题是:如何在我的扩展中使用"external"php框架?我将整个框架源放在我的扩展文件夹中,所以我有
typoconf/ext/myExtension/Libraries/Teamspeak3...
然后我尝试在我的控制器操作中使用它
<?php
namespace Sc\Ts3view\Controller;
use \TeamSpeak3;
/**
* Ts3viewController
*/
class Ts3viewController extends
\TYPO3\CMS\Extbase\Mvc\Controller\ActionController
{
/**
* action show
*
* @return void
*/
public function showAction()
{
$server = $this->settings['server'];
$ts3_VirtualServer = TeamSpeak3::factory("serverquery://".$server["ts_query_admin"].":".$server["ts_query_password"]."@".$server["tsip"].":".$server["ts_query_port"]."/?server_port=".$server["tsport"]."&nickname=".$server["ts_query_user_nick"]."");
$resulthtml = $ts3_VirtualServer->getViewer(new TeamSpeak3_Viewer_Html("images/viewericons/", "images/countryflags/", "data:image"));
$this->view->assign('resulthtml', $resulthtml);
}
}
但是在前端我遇到了一个错误
"Oops, an error occurred! Code: 20170527153454d1abefa8"
尽管我打开了 displayErrors。关于如何在我的行动中使用这个框架有什么想法吗?
首先,您要么需要将环境设置为 Development
,要么必须在 TypoScript 模板中设置 config.contentObjectExceptionHandler = 0
。
你得到一个异常,因为 TYPO3 自动加载器找不到 类。您需要将此添加到您的作曲家自动加载部分:
"autoload": {
"files": ["libraries/TeamSpeak3/TeamSpeak3.php"]
}
或者您可以直接在您的根目录中要求 composer 包 composer.json
。
composer require planetteamspeak/ts3-php-framework
我正在尝试编写一个使用 Teamspeak3 PHP 框架的简单扩展 (https://docs.planetteamspeak.com/ts3/php/framework/) 只是为了在将服务器名称、端口等信息提供给后端插件后在前端显示 "Teamspeak3_Viewer_HTML" 元素。
问题是:如何在我的扩展中使用"external"php框架?我将整个框架源放在我的扩展文件夹中,所以我有 typoconf/ext/myExtension/Libraries/Teamspeak3...
然后我尝试在我的控制器操作中使用它
<?php
namespace Sc\Ts3view\Controller;
use \TeamSpeak3;
/**
* Ts3viewController
*/
class Ts3viewController extends
\TYPO3\CMS\Extbase\Mvc\Controller\ActionController
{
/**
* action show
*
* @return void
*/
public function showAction()
{
$server = $this->settings['server'];
$ts3_VirtualServer = TeamSpeak3::factory("serverquery://".$server["ts_query_admin"].":".$server["ts_query_password"]."@".$server["tsip"].":".$server["ts_query_port"]."/?server_port=".$server["tsport"]."&nickname=".$server["ts_query_user_nick"]."");
$resulthtml = $ts3_VirtualServer->getViewer(new TeamSpeak3_Viewer_Html("images/viewericons/", "images/countryflags/", "data:image"));
$this->view->assign('resulthtml', $resulthtml);
}
}
但是在前端我遇到了一个错误
"Oops, an error occurred! Code: 20170527153454d1abefa8"
尽管我打开了 displayErrors。关于如何在我的行动中使用这个框架有什么想法吗?
首先,您要么需要将环境设置为 Development
,要么必须在 TypoScript 模板中设置 config.contentObjectExceptionHandler = 0
。
你得到一个异常,因为 TYPO3 自动加载器找不到 类。您需要将此添加到您的作曲家自动加载部分:
"autoload": {
"files": ["libraries/TeamSpeak3/TeamSpeak3.php"]
}
或者您可以直接在您的根目录中要求 composer 包 composer.json
。
composer require planetteamspeak/ts3-php-framework