Статьи

Условное объявление класса — плохая практика?

Был взволнован, чтобы прочитать один из комментариев на PHP5 Zend — Спросите экспертов ;

Q: В PHP 5 (rc1-dev) … есть ли причина, по которой вы не можете этого сделать?

if (!defined('SOMETHING')) {
class HelloWorld {
....
}
}

A: Это проблема, о которой мы знаем. В общем, мы не рекомендуем делать условные объявления классов, потому что это не очень хорошая практика программирования . Однако пока неясно, будет ли это поддерживаться, и может быть.

Хорошо — в общем, объявлять классы условно, ни по какой другой уважительной причине, чем потому, что вы можете, вероятно, плохая идея.

Но, как я здесь отстаивал, есть очень веские причины, IMO, почему условное объявление (то есть условное включение) является хорошей идеей, поскольку номер 1 позволяет сократить «след» кода, включаемый в каждый запрос страницы, когда запуск вашего приложения на типичном общем хосте PHP (где ускорители PHP обычно недоступны).

Если это вопрос объявления, какие файлы могут быть включены в любой данный скрипт вверху, для удобства чтения и т. Д., Простой совет с помощью Jason Sweat — это что-то вроде;


if ( FALSE ) {
require_once 'dbconn.php';
require_once 'logger.php';
require_once 'auth.php';
// etc.
}

Хотя ни один из этих классов не будет загружен каждый в данный момент, это делает его легко видимым, что может быть включено в скрипт позже, поэтому они видны другим разработчикам и легко документируются с помощью phpDocumentor .

Может быть, я слишком реагирую на утверждение, которое просто требует большей квалификации, но заставляет меня нервничать, когда я вижу его на Zend от одного из основных разработчиков PHP.