Tamam, bu aptalca bir hataydı. Ben bunun olabileceğini düşündüm izinleri veya başka bir şey ile ilgisi yoktu. Ben bile düşünmüyordu bir dosyada basit bir sözdizimi hatası yüklenen oldu.
Şimdiye kadar ilk bilgisayar bilimleri öğretmeni bir alıntı hatırlatıyor:
"Eğer tüm kodu doğru eminseniz ve program bir şey işe yaramazsa belirli bir yanlış vardır."
Kaz kovalamak için üzgünüm.
Original Post:
Şimdi birkaç gündür beni terörize ediyor benim PHP kodunda bir hata var.
Ben Magento çerçeve çok yeni değilim ama ben, varolan Magento (v1.4) siteye yeni bir modül toka çalışıyorum. Ben backend görüntülenmesini istediğiniz bir blok üzerinde "Dünya, Merhaba" almak oldukça yakın olduğumu düşünüyorum, ama menü öğesi seçildiğinde 500 hatası alıyorum.
Ben Layout.php dosyası (app \ code \ core \ Mage \ Core \ Model \ Layout.php, hat 472ish) bir satıra (eko stmts kullanarak) izini başardı:
if (class_exists($block, false) || mageFindClassFile($block)) {
$temp = $block;
echo "<p>before constructor: $temp</p>";
$block = new $block($attributes);
echo "<p>after constructor: $temp</p>";
}
Benim blok için, bu "... kurucusuna önce" sadece verir, bu yüzden bu başarısız ne olduğunu biliyorum. Biraz daha fazla hata ayıklama $ bloğun (I göstermeye çalışıyorum yeni bloğu) sınıf yok olduğunu ortaya koymaktadır. Ben __ özdevinimli_yükle işlevi bu dikkat çekmek için umuyordum, ama __ autoload benim yansımaları, hiçbiri görüntüleniyor.
Bir son dakika çabası olarak, ben blok sınıfının mutlak konuma Mage.php bir include deyimi çalıştı, ancak benzer önce ve sonra yankılanırken include deyimi o kırılma hattı haline gelir ortaya.
Ben "izinleri" düşünmeye başlamak için cazip, ama ben de tüm bu sunucu yönetimi tarafında tecrübeli değilim, ve ben (test sunucusu istemciye ait) sınama sunucusuna erişim sınırlıdır.
Soruyu tahmin: PHP günlük dosyasında bildirilen hiçbir hata vardır. Aslında müşteri her şeyin açık olduğunu belli olmasına rağmen bu site, (ben bu siteden bir şey görmedim) günlük dosyası hataları raporlama ikna değilim.
IIS 7. Entegre modu, ben eminim. Herkes bu neden olabilir biliyor musun?
Per Joe's questions:
The name of the block is FiveTalent_BikeCompat_Adminhtml_Block_Bikes.
The class is in the file [magento_root]\app\code\local\FiveTalent\BikeCompat\Adminhtml\Block\Bikes.php.
The mageFindClassFile function confirms that it finds the file for the class.
I'm pretty sure I am using Magento's loading methods properly. Admittedly the path pattern is a little different from your example, but I think this is because I am trying to create an Adminhtml block. This is the action on the controller that is executing:
public function indexAction() {
$this->loadLayout();
$block = $this->getLayout()->createBlock('adminhtml/bikes', 'bikecompat');
$this->_addContent($block);
$this->renderLayout();
}
Again, I'm back to the question of the webserver (IIS, in this case) having rights to read the file. I'll see if I can't get hold of someone with access to the server to check this.