2010-05-02 32 views
8

Merhabalar Zend framework ile çalışıyorum ve bir nesnenin var olmayan bir özelliğine başvurmaya çalıştığım gibi yüzlerce özel durum hatasıyla karşılaştığımdan nefret ediyorum. Uygulama sadece ölür ve çöker. Ancak, bu hataları nerede göreceğimi veya ekranda nasıl görüntülenebileceğini bilmiyorum. Ben E_ALL sadık ve hata raporlamaya ekran hataları kurdum ancak bir hata atıldığında tüm gördüğüm hata görünüşte oluştu veya istisna atıldı nerede önce biraz dek sadece işlenmiş boş sayfası. Benim ayıklama saat var olmayan özelliğine başvurulmasıZend framework tarafından atılan özel durum hatalarını nasıl görüntülerim

cevap

4

APPLICATION_ENV ortam değişkeninin değeri nedir.

ZF uygulamasında standart kamu/index.php şunları yapar:

// Define application environment 
defined('APPLICATION_ENV') 
    || define('APPLICATION_ENV', (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV') : 'production')); 

Bu, hiçbir APPLICATION_ENV ayarlanırsa, çevre "üretim" olarak ayarlandığı anlamına gelir. Application.ini dosyanıza bakarsanız, ortam üretiliyorsa çerçevenin hataları bastırdığını göreceksiniz.

Tabii ki gelişiyorsunuz, bu yüzden 'geliştirme' ortamını kullanmak istiyorsunuz. Apache/mod_php altında çalıştırıyorsanız

, sen httpd.conf'a bu ayarlayabilir veya bir .htaccess dosyası:

SetEnv APPLICATION_ENV development 

Yoksa hep kötü gidebilir ve genel uzakta kesmek/index.php: Zend Aracı ile bir uygulama iskeletini oluşturursanız

// Define application environment 

/*defined('APPLICATION_ENV') 
    || define('APPLICATION_ENV', (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV') : 'production'));*/ 

// Ugly hack because I'm too lazy to properly set up my environment. 
define('APPLICATION_ENV','development'); 
+0

1. Ve işe yarıyor :) o httpd.conf ayarlanabilir söz için – Benj

+0

teşekkürler! – Christian

1

sürüklüyorsunuz lütfen

Yardım PHP'de bir hata değil, bir özel durum olduğunu. Eğer php.ini'nize display_errors etkinleştirirsem Hatalar html çıktısında genellikle. Ancak dikkat: onlar da benzeri bir görünmez html etiketi içinde oluşabilir:

<div style="display:none"><? echo $object->nonexistant?> ... 

... sayfanızın HTML çıktısını (içinde ateş CTRL-U) kontrol etmek ve altına gidin gerekir böylece

+0

bir istisnası atılır ediliyor Ben öyle görünüyor bir nesnenin olmayan var özelliğine erişmeye çalıştığınızda. Söz konusu nesne ya da ben kontrol etmek niyetinde özelliği olabilir veya olmayabilir bu dikkate dolaşmak için bir yolu var mı. Basit cevap ve ne yaptığını üzerinde açıklama için – Ali

2

, genellikle çalışma zamanı hataları yakalamak ve bunları gösterecektir bir hata denetleyicisi olacak. Eğer application/yapılandırmaları/application.ini içinde, daha sonra SetEnv APPLICATION_ENV development için timdev tavsiyelerine ve isteyeceksiniz:

[development : production] 

; This section defines config parameters loaded when the APPLICATION_ENV directive 
; is set to 'development' - undefined parameters are inherited from the production 
; section. 

; show errors and exceptions during development 
phpSettings.display_startup_errors = 1 
phpSettings.display_errors = 1 
resources.frontController.params.displayExceptions = 1