Почему переопределение Doctrine_Record::save() дает мне строгую стандартную ошибку в Symfony 1.2?
Вопрос
У меня есть следующая модель:
class Model extends BaseModel
{
public function save($conn = null)
{
if(!$this->getId())
{
//do stuff
}
return parent::save($conn);
}
}
У меня такое чувство, будто я следую описанию API Doctrine_Record::save() подпись (за исключением странной скобки, я бы дал синтаксическую ошибку...).
Когда я запускаю этот код, это работает хорошо но я получаю следующее предупреждение:
Strict Standards: Declaration of Model::save() should be compatible with that of Doctrine_Record::save() in $ROOT/lib/model/doctrine/Model.class.php on line 6
Обычно я переключаю отчет об ошибках на ERROR_ALL и стараюсь придерживаться кода, не допускающего предупреждений.Это беспокоит меня.Я извлекаю весь исходный код Doctrine и нажимаю на него команду «save(», пробуя одну подпись за другой.Ничего.Впервые PHP обвинил меня в слишком снисходительности, странно, да :-) ?
Решение
Правильная подпись метода сохранения должна быть следующей:
public function save(Doctrine_Connection $conn = null)
Другие советы
В качестве примечания:В других функциях вы можете получить эту ошибку, но вам нужно будет использовать функцию ($event) вместо приведенной выше.