2012-01-18 5 views
1

MagentoのインストールでSimplePieを使用して、ブログ記事を数ヶ月間問題なくホームページに掲載しています。 Magentoのその他の問題のため、WebホストにAPCのオペコードを無効にしました。これを実行すると、SimplePieの次回のアップデートでホームページのロードが停止され、Apacheで次のエラーが返されます。Magento stopのためのAPCの変更

[水曜日1月18日09:59:57 2012] [エラー] PHP致命的なエラー: Zend_Log 'が{server root} /lib/SimplePie/simplepie.incの738行に見つかりませんでした。

私は何が起こっているのか、それを修正するために何をすべきか分かりません。 SimplePieはバナー/ウィジェットとして提供されるので、別のカテゴリページに置くと同じ結果が得られます。 (ページはSimplePieコマンドで停止します)古いchached RSSを強制的に変更して変更することはできないが、わからないような単純なものになることを期待していました。

ご協力いただければ幸いです。


SimplePieのコードは変更されず、バージョン1.2.1です。次のコードを持つ/app/design/frontend/default/default/template/page/html/blog.phtmlというページがあります。

<div class="col-narrow right sidebar-blog"> 
<h2>Our Gardening Blog</h2> 

<?php 

// Make sure SimplePie is included. You may need to change this to match the location of 

require_once('lib/SimplePie/simplepie.inc'); 

// We'll process this feed with all of the default options. 
$feed = new SimplePie(); 

// Set which feed to process. 
$feed->set_feed_url('http://blog.americanmeadows.com/feed/'); 

// Run SimplePie. 
$feed->init(); 

// This makes sure that the content is sent to the browser as text/html and the UTF-8 
$feed->handle_content_type(); 

    /* 
    Here, we'll loop through all of the items in the feed, and $item represents the 
current item in the loop. 
    */ 
    foreach ($feed->get_items(0,2) as $rss_item): 
    ?> 

<div class="article-teaser"> 
<p><span><?php echo $rss_item->get_date('F j, Y'); ?></span></p> 
<h2 class="article-title"><a href="<?php echo $rss_item->get_permalink(); ?>"><?php echo $rss_item->get_title(); ?></a></h2> 

<?php if ($rss_item->get_item_tags('', 'thumbnail')) {$thumbnail = $rss_item->get_item_tags('', 'thumbnail'); echo "<img src='" . $thumbnail[0]['data'] . "'>"; } ?> 
<p><?php echo $rss_item->get_description(); ?> <a class="more" href="<?php echo $rss_item->get_permalink(); ?>" target="_blank">Continue Reading</a></p> 
</div> 

<?php endforeach; ?> 

</div> 

私はその後、呼び出したバナーを持っているだけで、次の

{{block type="page/html" template="page/html/blog.phtml"}} 

私はそれが表示され持っている私たちのホームページ上の左の列ウィジェットでそのバナーが含まれます。

はSimplePieの行がエラーを投げているが

function SimplePie($feed_url = null, $cache_location = null, $cache_duration = null) 
{ 
    // Other objects, instances created here so we can set options on them 
    $this->sanitize =& new SimplePie_Sanitize; /* Error is thrown here */ 

    // Set options if they're passed to the constructor 
    if ($cache_location !== null) 
    { 
     $this->set_cache_location($cache_location); 
    } 

である私は何が必要だと思いますが、より多くを投稿する幸せです。

+0

関連するソースを掲載することはできますか? SimplePieはZendコンポーネントを使用しないので、あなたが持っているバージョンはカスタマイズされたバージョンでなければなりません。 –

+0

私はSimplePie.incをチェックしただけで、1.2.1の開発版でした。私はちょうど現在のバージョンにそれを更新しましたが、同じ結果を得ています。私は主な質問にどのように納品が起こったかを追加します。 –

+0

SimplePieの[line 738](https://github.com/simplepie/simplepie/blob/one-dot-two/simplepie.inc#L738)の唯一の事柄は 'SimplePie_Sanitize'のインスタンス化です。どこかから来ている。 (また、1.2.1がリリースされているので、1.2.1-devは古くなっています) –

答えて

1

ここでは、エラーロガーとしてZend_Logが設定されています。あなたのコードにset_error_handler()をチェックし、どこに登録されているか確認してください。 (trigger_error()でエラーが発生し、何が起こっているのかを再確認することができます)

なぜエラーが発生しているのかについては、PHPで1.2.1を使用しているためです4(これは、その行のような)参照によって新しいものを割り当てる時にE_DEPRECATEDのエラーを与えるでしょう。

+0

これは本当に奇妙なことです。私が読み込んだblogs.phtmlページにtrigger_error()を追加すると、エラーも作成されず、コードが問題になることもありません。 PHPはバージョン5.3.8ですが、設定上の問題であり、コードではありません。これにあなたの心を入れてくれてありがとう! –

+0

これを削除すると同じ問題が再び発生しますか?これは、単純にopcodeキャッシュをフラッシュして、そこに役立つ可能性があります。 (おそらくあなたのホストが変わったし、それでもキャッシュをロードしている) –

+0

はい、それを取り除くと同じ問題が再び発生します。ホストがオペコードをオフにしてキャッシュをフラッシュしなかった場合、私は驚くことはありません。 –

関連する問題