Я только что обновился до версии для разработчиков OSX Lion с php 5.3.6 (от Snow Leopard).
Теперь мои сайты, созданные на Yii, не работают. Как я узнаю, какой код сейчас взломан, не обнаруживая их один за другим? Почему приведенный ниже код не работает? Есть ли что-то, что я могу включить в файлах php.ini, чтобы преодолеть эти проблемы? Мне нужно вернуться к работе, но я не хочу просто вернуться в Snow Leopard, чтобы сделать это. Был бы признателен за помощь / руководство.
Вот некоторые из следующих ошибок:
Использование неопределенного постоянного стиля - предполагаемый "стиль" на
'htmlOptions'=>array(style=>'cursor: pointer;'),
Исправлено заключением слова "стиль"
'htmlOptions'=>array('style'=>'cursor: pointer;'),
Попытка получить свойство не-объекта (в CJuiTabs) на
'Title' =>$this->renderPartial("_details", array('model' => $model), $this),
Не знаю, как это исправить
Использование неопределенной константы Y - предполагается 'Y' (в поставщике данных CGridView) на
$dataProvider =
new CActiveDataProvider('Bus', array(
'criteria'=>array(
'with' => array(
'address' => array(
'on'=>'busAddresses.Id='.$model->Id.'
AND busAddresses.IsPhysical="'.Y.'"',
Не знаю, как это исправить
AND busAddresses.IsPhysical="'.Y.'"',
Y
- это строка в вашем случае, поэтому используйте ее как строку:
AND busAddresses.IsPhysical="Y"',
Поскольку в другом месте вы подразумевали, что получаете больше сообщений об ошибках, чем те, которые опубликовали, я предполагаю, что одна из ошибок, которые вы не опубликовали, была примерно такой:
Предупреждение: невозможно изменить информацию заголовка - заголовки уже отправлены
Поскольку основные причины всех этих сообщений, которые вы видите, не отличаются в вашей новой версии PHP, скорее всего, в разнице виноват параметр конфигурации. В частности, display_errors
параметр, который просто контролирует, будут ли сообщения обо всех ошибках, предупреждениях и уведомлениях выводиться на экран.
В файле Apple php.ini по умолчанию для display_errors установлено значение Off, но вам нужно переместить /etc/php.ini.default в /etc/php.ini, чтобы этот файл вступил в силу. /etc/php.ini не переносится при обновлении OS X, поэтому имеет смысл потерять этот параметр.