Zend_Feed:生产中的白色死亡屏幕,在Dev Server上完美运行

时间:2011-12-11 19:34:41

标签: zend-framework zend-feed

几个星期前,我注意到我的直播网站上的RSS提要已被破坏 - 我得到了一个白色的死亡屏幕。直到那时它一直很好。我网站的其余部分继续正常工作。此外,相同的代码继续在我的开发箱上完美运行。

没有发生任何代码更改,所以我猜我的网络主机已经更改了服务器设置 - 但我不知道设置可能是什么(因此我不知道是否有解决方法或者我是否需要让我的网站主机改变一些事情)。 Prod& Dev正在运行PHP 5.3.8。

有人能给我一个关于这个设置可能是什么的线索吗?

我在响应标题中看到的唯一主要区别是我的(非工作)生产RSS源有此响应标题:“Accept-Ranges:none”。

我已经仔细检查了填充Feed的数据库调用,甚至用类中的一些静态数据替换它(以防万一有DB问题),但没有区别。

以下相关控制器方法的代码:

    public function articlesAction(){
    $format = $this->_request->getParam('format');
    //default format to rss if unspecified
    $format = in_array($format, array('rss','atom')) ? $format : 'rss';

    $articles = new Application_Model_DbTable_Articles();
    $rows = $articles->getLatestArticlesForFeed();
        $channel = array(
            'title'         =>  'Feed of articles',
            'link'          =>  'http://www.mysite.co.uk',
            'description'   =>  'The latest articles and reviews from my site',
            'author'        =>  'My name',
            'language'      =>  'en',
            'ttl'           =>  '60',
            'copyright'     =>  '© the writers of the articles',
            'charset'       =>  'utf-8',
            'entries'       =>  array()
        );
        foreach ($rows as $item) {
            $articlelink = 'http://www.mysite.co.uk/articles/' . $item['stub'];
            $formattedlink = '<p><strong>Source: <a href="'.$articlelink.'">'.$articlelink.'</a></strong></p>';
            $channel['entries'][] = array(
                'title'         =>  $item['title'],
                'link'          =>  $articlelink,
                'guid'          =>  $articlelink,
                'description'   =>  $formattedlink . $item['content'] . '<p>© ' . $item['byline'] . ', ' . $item['copyright'] . '</p>' ,
                'lastUpdate'    =>  strtotime($item['date_published'])
            );
        }
        $feed = Zend_Feed::importArray($channel, $format);
        $feed->__wakeup();
    }
    $feed->send();
    $this->_helper->viewRenderer->setNoRender();
    $this->_helper->layout()->disableLayout();
}

1 个答案:

答案 0 :(得分:0)

我曾经浪费了一个小时,因为我发起了一个带有一个小写字母的课程,因为我找到了一个WSOD的原因......

$ table = new Model_DbTable_EshopSubcategories();而不是

$ table = new Model_DbTable_EshopSubCategories();

开发服务器不必区分大小写,生产服务器也可以。