You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在TYPO3 Sitepackage Builder生成的站点包中集成Controller

手动给现有Sitepackage集成Controller的轻量方案

不需要依赖Extension Builder,完全可以直接在已经生成好的sitepackage里手动添加Controller,全程只需要4步,不会改动你现有的站点包配置:

  • 第一步:创建Controller类文件
    先确认你站点包的根命名空间,直接查看扩展根目录下composer.json里的autoload配置即可,默认生成的sitepackage命名空间格式为你的厂商名\你的站点包名。在扩展的Classes/Controller/目录下新建你的Controller类,例如命名为CustomController.php,基础代码结构如下:

    <?php
    namespace Vendor\SitepackageName\Controller;
    
    use TYPO3\CMS\Extbase\Mvc\Controller\ActionController;
    
    class CustomController extends ActionController
    {
        public function listAction()
        {
            // 写入业务逻辑,比如给模板传值
            $this->view->assign('demoText', '测试输出');
        }
    }
    

    注意把命名空间里的厂商名、站点包名替换成你自己项目里的实际值,和现有站点包的类命名空间保持一致即可。

  • 第二步:注册插件配置
    打开站点包根目录下的ext_localconf.php,保留原有代码,在文件末尾追加插件注册配置,把Controller和对应的动作绑定到系统中:

    \TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin(
        'SitepackageName',
        'CustomPlugin',
        [
            \Vendor\SitepackageName\Controller\CustomController::class => 'list',
        ],
        // 无缓存动作列表,无表单交互需求可留空
        [
            \Vendor\SitepackageName\Controller\CustomController::class => '',
        ]
    );
    

    这里第一个参数填你的站点包名称(不带厂商前缀,大驼峰格式),第二个参数是自定义的插件标识,可按需命名。

  • 第三步:接入后台内容元素选择器
    打开站点包根目录下的ext_tables.php,保留原有代码,在末尾追加配置,让后台新建内容元素时可以选中你新增的插件:

    \TYPO3\CMS\Extbase\Utility\ExtensionUtility::registerPlugin(
        'SitepackageName',
        'CustomPlugin',
        '自定义功能插件'
    );
    

    第三个参数是后台显示的插件名称,可根据业务功能自定义。

  • 第四步:创建对应模板文件
    在站点包的Resources/Private/Templates/目录下,新建和Controller名称对应的文件夹(比如Controller名为CustomController,就新建Custom文件夹),在文件夹内创建和Action名称对应的Fluid模板文件,比如对应listAction就新建List.html,直接写前端模板代码即可,模板里可以直接读取Controller assign的变量:

    <div class="custom-plugin-wrapper">
        <p>{demoText}</p>
    </div>
    

所有文件修改完成后,先在项目根目录执行composer dumpautoload更新类自动加载,再到TYPO3后台维护模块清空系统缓存,新的Controller和插件就可以正常使用了。

这种手动添加的方式比用Extension Builder更灵活,不会覆盖你已经在站点包里写好的样式、模板、Typoscript配置,适合给已成型的站点包快速新增功能Controller。

内容的提问来源于stack exchange,提问作者RHu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 04:39:34