我在模板的TYPO3扩展中找不到我的PHP类。错误代码1407060572
我为一个TYPO3站点(版本10.4.15)编写了一个扩展,在那里您必须使用ViewHelper类访问数据库。ViewHelper类的路径为 websitename/public/typo3conf/ext/sitepackage/Classes/ViewHelpers/GetRecordViewHelper.php我在模板的TYPO3扩展中找不到我的PHP类。错误代码1407060572,php,templates,typo3,Php,Templates,Typo3,我为一个TYPO3站点(版本10.4.15)编写了一个扩展,在那里您必须使用ViewHelper类访问数据库。ViewHelper类的路径为 websitename/public/typo3conf/ext/sitepackage/Classes/ViewHelpers/GetRecordViewHelper.php <?php namespace mwatschong\sitepackage\ViewHelpers; use TYPO3Fluid\Fluid
<?php
namespace mwatschong\sitepackage\ViewHelpers;
use TYPO3Fluid\Fluid\Core\Rendering\RenderingContextInterface;
use TYPO3Fluid\Fluid\Core\ViewHelper\Traits\CompileWithRenderStatic;
use TYPO3Fluid\Fluid\Core\ViewHelper\AbstractViewHelper;
use TYPO3\CMS\Core\Utility\GeneralUtility;
use TYPO3\CMS\Core\Database\ConnectionPool;
class GetRecordViewHelper extends AbstractViewHelper
{
use CompileWithRenderStatic;
public function initializeArguments()
{
$this->registerArgument('land', 'string','the land which is rendered', true);
}
public static function renderStatic(
array $arguments,
\Closure $renderChildrenClosure,
RenderingContextInterface $renderingContext
) }
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('tx_patentsites_content');
$resultSet = $connection->query('SELECT text FROM tx_patentsites_content WHERE land = $arguments['land']')->execute();
return $resultSet
}
}
并调用我的ViewHelper作为
但是我得到了错误代码1407060572,这意味着fluidparser找不到我的类
我希望这是讨论这个问题的足够信息
编辑:
我在composer.json中添加了一个autoload子句,未做任何更改,但在typo3文档、StoreInventory和SJROffer示例中的示例插件的composer.json中是默认值
"autoload": {
"psr-4": {
"mwatschong\\sitepackage\\": "Classes/"
}
编辑:
我首先尝试从
在autoload_psr4.php中没有对我的包类的引用。我试图手动将它们添加到此文件('mwatschong\\sitepackage\\\\\\'=>数组($baseDir./public/typo3conf/ext/sitepackage/Classes')
),但遗憾的是没有任何区别
编辑:
我从零开始做这件事,但仍然没有运气。我有权根据博客上的答案检查拼写。这是新的composer.json
{
"name": "mvision/patentsites",
"type": "typo3-cms-extension",
"description": "Create Patentsites from Database",
"license": ["GPL-2.0-or-later"],
"keywords": ["TYPO3 CMS"],
"require": {
"typo3/cms-core": "^10.4",
"typo3/cms-rte-ckeditor": "^10.4",
"typo3/cms-fluid-styled-content": "^10.4"
},
"autoload": {
"psr-4": {
"Mvision\\Patentsites\\": "Classes/"
}
}
}
编辑
我执行composer dumpautoload
并检查我的自动加载\u psr4。没有提到我的包裹
编辑
我运行composer req mvision/patentsites-vvv
,它输出最小稳定性不匹配。但是在我的ext_emconf.php中,状态设置为稳定,extensionmanager也显示了它
编辑
我在另一个typo3/composer线程中完成了这项工作,我知道我可以毫无问题地加载我的类。我认为问题在于错误的composer/repo配置
谢谢你的帮助 有一篇由赫尔穆特·哈默尔撰写的博客文章,告诉我们
psr-4的PHP名称空间前缀必须只有两部分,第一部分必须是大写的供应商名称,第二部分必须是大写的扩展名
1) 您是否将扩展的静态TS包括在主TS中?2) 你清除后端的所有缓存了吗?@biesior谢谢你的回答!我已经尝试清除缓存了,但它不起作用,但是你说的“TS”是什么意思,我不确定你指的是TSconfig还是主模板或其他什么。转到你的主打字脚本模板(后端,左窗格,
WEB>Template>Info/modify>Edit whole…
进入Includes
选项卡,确保在中包含static(来自扩展)
selector您的ext包含在选择器的左侧。啊,谢谢。是的,我的扩展名位于所选项目下。您是否从BE转储自动加载的类?Admin tools>Maintenance>Rebuild PHP自动加载信息
?我从最新编辑中描述的类型3开始使用sitepackagebuilder从头开始尝试。仍然不走运
{
"name": "mvision/patentsites",
"type": "typo3-cms-extension",
"description": "Create Patentsites from Database",
"license": ["GPL-2.0-or-later"],
"keywords": ["TYPO3 CMS"],
"require": {
"typo3/cms-core": "^10.4",
"typo3/cms-rte-ckeditor": "^10.4",
"typo3/cms-fluid-styled-content": "^10.4"
},
"autoload": {
"psr-4": {
"Mvision\\Patentsites\\": "Classes/"
}
}
}