“无法分析 class:可能未加载或没有自动加载器?”
“Could not analyse class: maybe not loaded or no autoloader?”
我已将 Typo3 v6.2.15 更新到 7.6.15 并尝试将名称空间添加到自定义扩展。现在我在 LoginController class:
上收到错误消息
Could not analyse class: "Tx_Verwaltung_Controller_LoginController"
maybe not loaded or no autoloader? Class
Tx_Verwaltung_Controller_LoginController does not exist
我做了什么:
在这些文件中将 $_EXTKEY
替换为 'DHW.' . $_EXTKEY
:ext_localconf.php、ext_tables.php
示例:
\TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin(
'DHW.' . $_EXTKEY,
'login',
array(
'Login' => 'loginbox,logoutbox'
),
array(
'Login' => 'loginbox,logoutbox'
)
);
在 ext_emconfig.php 中添加了这个:
array(
'classmap' => array('Classes'),
'psr-4' => array('DHW\Verwaltung\' => 'Classes')
),
在 composer.json 中添加了这个:
"autoload": {
"psr-4": {
"DHW\Verwaltung\": "Classes"
}
}
在 typo3conf/ext/verwaltung/Classes/LoginController 中添加了命名空间。php
namespace DHW\Verwaltung\Controller;
class Tx_Verwaltung_Controller_LoginController extends \TYPO3\CMS\Extbase\Mvc\Controller\ActionController { ... }
在后端禁用和启用扩展程序。
- 已清除后端缓存。
- 已删除 typo3temp 文件夹
- 已使用安装工具清除缓存。
看完后解决了这个问题:
How do I bootstrap a plugin on TYPO3 CMS 6.0 with extbase?
我不得不在我的 Typoscript 中添加供应商名称:
loginBoxWidget = USER
loginBoxWidget {
userFunc = TYPO3\CMS\Extbase\Core\Bootstrap->run
vendorName = DHW
pluginName = login
extensionName = Verwaltung
controller = Login
action = loginbox
...
之后我得到了 "Fatal error: Cannot declare class" 错误。将 class Tx_Verwaltung_Controller_LoginController
重命名为 LoginController
后一切正常。
我已将 Typo3 v6.2.15 更新到 7.6.15 并尝试将名称空间添加到自定义扩展。现在我在 LoginController class:
上收到错误消息Could not analyse class: "Tx_Verwaltung_Controller_LoginController" maybe not loaded or no autoloader? Class Tx_Verwaltung_Controller_LoginController does not exist
我做了什么:
在这些文件中将
$_EXTKEY
替换为'DHW.' . $_EXTKEY
:ext_localconf.php、ext_tables.php 示例:\TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin( 'DHW.' . $_EXTKEY, 'login', array( 'Login' => 'loginbox,logoutbox' ), array( 'Login' => 'loginbox,logoutbox' ) );
在 ext_emconfig.php 中添加了这个:
array( 'classmap' => array('Classes'), 'psr-4' => array('DHW\Verwaltung\' => 'Classes') ),
在 composer.json 中添加了这个:
"autoload": { "psr-4": { "DHW\Verwaltung\": "Classes" } }
在 typo3conf/ext/verwaltung/Classes/LoginController 中添加了命名空间。php
namespace DHW\Verwaltung\Controller; class Tx_Verwaltung_Controller_LoginController extends \TYPO3\CMS\Extbase\Mvc\Controller\ActionController { ... }
在后端禁用和启用扩展程序。
- 已清除后端缓存。
- 已删除 typo3temp 文件夹
- 已使用安装工具清除缓存。
看完后解决了这个问题: How do I bootstrap a plugin on TYPO3 CMS 6.0 with extbase?
我不得不在我的 Typoscript 中添加供应商名称:
loginBoxWidget = USER
loginBoxWidget {
userFunc = TYPO3\CMS\Extbase\Core\Bootstrap->run
vendorName = DHW
pluginName = login
extensionName = Verwaltung
controller = Login
action = loginbox
...
之后我得到了 "Fatal error: Cannot declare class" 错误。将 class Tx_Verwaltung_Controller_LoginController
重命名为 LoginController
后一切正常。