如果创建了缓存文件,Typo3Fluid FE会崩溃500,错误开启:getViewHelper()

时间:2016-01-25 18:33:08

标签: php caching fluid flux typo3-6.2.x

我已将Typo3从6.1.x升级到FED到6.2.17以及以下typo3Fluid扩展:

  • builder(1.0.0)
  • fluidcontent(4.3.3)
  • fluidpages(3.3.1)
  • flux(7.2.3)
  • vhs(2.3.3)

我已经完成了很多模板迁移,在Typo3Fluid网站上针对FEDFlux的迁移文档进行了指导,但是如果我将它们放入主题提供程序扩展中,我的系统会崩溃。

我已经尝试过仅使用流体构建器中的示例模板,它们似乎有效,但如果我添加了一个重构模板,则会发生错误。

  1. 后端正在加载/呈现非常慢,但我不介意目前
  2. 前端显示错误500,在php日志中它告诉我PHP Fatal error: Call to a member function getViewHelper() on a non-object in C:\xamppnew\htdocs\[Project]\web\typo3temp\Cache\Code\fluid_template\ThemeProvider_Content_action_render_eed9cf578f1072dfb942bb46036bee78de97954d.php on line 17
  3. 我进一步研究了2,特定行显示$self->getViewHelper(...,但$self从未在该处理过的文件中定义。而且我对此提出了自己的想法。

        public function getLayoutName(\TYPO3\CMS\Fluid\Core\Rendering\RenderingContextInterface $renderingContext)
        {
    // Rendering ViewHelper FluidTYPO3\Vhs\ViewHelpers\Extension\LoadedViewHelper
            $arguments53 = array();
            $arguments53['extensionName'] = 'fluidcontent_core';
            $arguments53['then'] = 'ContentCore';
            $arguments53['else'] = 'Content';
            $renderChildrenClosure54 = function () use ($renderingContext, $self) {
                return NULL;
            };
            $viewHelper55 = $self->getViewHelper('$viewHelper55', $renderingContext, 'FluidTYPO3\Vhs\ViewHelpers\Extension\LoadedViewHelper');
            $viewHelper55->setArguments($arguments53);
            $viewHelper55->setRenderingContext($renderingContext);
            $viewHelper55->setRenderChildrenClosure($renderChildrenClosure54);
    // End of ViewHelper FluidTYPO3\Vhs\ViewHelpers\Extension\LoadedViewHelper
    
            return $viewHelper55->initializeArgumentsAndRender();
        }
    

    这是我尝试过的FCE:

    <div xmlns:f="http://typo3.org/ns/TYPO3/Fluid/ViewHelpers"
         f:schemaLocation="https://fluidtypo3.org/schemas/fluid-6.2.0.xsd"
         xmlns:flux="http://typo3.org/ns/FluidTYPO3/Flux/ViewHelpers"
         flux:schemaLocation="https://fluidtypo3.org/schemas/flux-7.2.2.xsd">
    
        <f:layout name="Content"/>
    
        <f:section name="Configuration">
            <flux:form id="box2col_1-1" label="Container: 2 Spalten 1/1" >
                <flux:grid>
                    <flux:grid.row>
                        <flux:grid.column name="col-foo" colPos="0" style="width:50%;"/>
                        <flux:grid.column name="col-bar" colPos="1" style="width:50%;"/>
                    </flux:grid.row>
                </flux:grid>
            </flux:form>
        </f:section>
    
        <f:section name="Preview">
            2 Spalten mit gleicher Breite
            <br/>
            <flux:widget.grid/>
        </f:section>
    
        <f:section name="Main">
            <div>
                <div class="small-6 large-6 columns">
                    <flux:content.render render="1" area="col-foo"/>
                </div>
    
                <div class="small-6 large-6 columns">
                    <flux:content.render render="1" area="col-bar"/>
                </div>
            </div>
        </f:section>
    </div>
    

    希望你有一个新想法,或者可能是这个问题的解决方案,提前谢谢。

    干杯

    托拜厄斯

    一些新闻关于这一点,我根据有关FLUX和FLUID的文档稍微更改了FCE,并且包含了一些不同的代码(上面的代码示例已更新)。

    现在后端更好了,甚至前端在我删除缓存文件夹后渲染所有内容但在第二次重新加载时,如果已创建缓存文件,问题2仍然会发生。

    后端问题在此问题中得到解决: How do I know which file system apache can not access on windows?

0 个答案:

没有答案