2011-05-18 67 views
0

我們正在編寫基於庫的PHP應用程序,它有很多聲明和嚴格的標準警告。如何通過目錄禁用錯誤?

我們希望通過完整的錯誤報告來開發我們的應用程序。我們現在不能這樣做,因爲lib導致很多錯誤。我們想要抑制這個庫中的所有錯誤,只在我們的開發機器上顯示我們的應用程序。

在set_error_handler函數的幫助下,我已經可以實現它了。

是否有任何其他方式來做到這一點可能在php.ini或虛擬主機級別?

回答

3

對於Apache:
的添加到.htaccess文件(或者在虛擬主機配置):

php_value error_reporting 1 

但只有當阿帕奇解析URL可以通過用於這種分離。
讓你有這樣的文件夾:

/www/dir/
/models/
/lib/

而且的.htaccess放在/www/dir/lib

如果您打電話給URL example.com/dir,那麼.htaccess將被Apache解析並且設置將被設置。
但在'include /lib/some.php'的情況下 - Apache不會解析lib.htaccess不會產生任何影響。

+0

這將是無用的,因爲警告正在庫(包括)中發生,'.htaccess'設置僅指在給定目錄中直接打開的文件。 – 2011-05-18 20:18:08

+0

@ dev-null-dweller:'.htaccess'文件由apache針對每個請求進行評估,該文件與給定目錄中的文件相匹配。一旦它被評估,它並不關心包含哪些其他文件。 – KingCrunch 2011-05-18 20:25:45

+0

@ dev-null-dweller你確定這是正確的嗎? – 2011-05-18 20:26:03

0

簡答題:沒有。

通過檢查導致錯誤的文件的路徑來過濾錯誤與自定義功能和set_error_handler是最好的,你可以做的。

其他的解決方案,可能會更好,但只在某些條件下(如果存在且具有相同的功能)這個庫中自己

  • 解決問題(如果許可證允許它的庫

    • 新版本)
    • 禁用錯誤報告,包括圖書館和後啓用它(如果不包括實際使用過程中發生的大多數錯誤)
  • 0

    我發現我之前t的可能前置腳本:php_value auto_prepend_file prepend.php

    因此,我可以預先使用我自己的error_handler腳本。這樣我就可以通過vhost/php.ini指令觸發這個。

    感謝您的所有輸入。