не могу включить строгую проверку на включение дублирующего класса конструктора - php 5.3 - PullRequest
0 голосов
/ 25 ноября 2011

У меня есть система, в которой Joomla и Symfony Frameworks работают вместе.В конкретной ситуации мне нужно включить ряд файлов в Joomla изнутри Symfony.Проблемный файл Joomla имеет «дубликат конструктора» для целей совместимости с PHP4, например:

class JObject{

/**
 * An array of errors
 *
 * @var     array of error messages or JExceptions objects
 * @access  protected
 * @since   1.0
 */
var     $_errors        = array();

/**
 * A hack to support __construct() on PHP 4
 *
 * Hint: descendant classes have no PHP4 class_name() constructors,
 * so this constructor gets called first and calls the top-layer __construct()
 * which (if present) should call parent::__construct()
 *
 * @access  public
 * @return  Object
 * @since   1.5
 */
function JObject()
{
    $args = func_get_args();
    call_user_func_array(array(&$this, '__construct'), $args);
}

/**
 * Class constructor, overridden in descendant classes.
 *
 * @access  protected
 * @since   1.5
 */
function __construct() {}

Когда я включаю это, я получаю ошибку

Strict Standards: Redefining already defined constructor

Из того, что я могу найтина php.net я должен быть в состоянии отключить строгие стандарты, как это, но это не работает:

error_reporting(error_reporting() & (E_ALL ^ E_STRICT));

1 Ответ

1 голос
/ 25 ноября 2011

В вашем apps/<app name>/config/settings.yml вы сможете установить уровень error_reporting.Что-то вроде:

all:
  .settings:
    error_reporting:        <?php echo (E_ALL | E_STRICT)."\n" ?>
...