У меня есть функция public beforeDelete() почти в каждом классе CMS. К сожалению, некоторые умные люди передо мной создали некоторые из них с параметром ($rowId)
и некоторые из них без каких-либо параметров.Можно ли удалить пустую функцию в родительском классе?
Родитель Main_Admin_Module
имеет пустую декларацию функции, как это:
public function beforeDelete() {}
, но из-за этого, я получаю ошибки как
ERR: Декларация Model_EshopCategories :: beforeDelete() должен be , совместимый с версией Admin_Module_Main :: beforeDelete()
потому что (очевидно) декларация с ($rowId)
не совместима с (empty)
.
К сожалению, это предотвращает ответы Json, поскольку тело ответа содержит ошибку и поэтому повреждено, поэтому я хочу исправить это.
Мой вопрос: могу ли я просто избавиться от родительского метода или должен ли я переписать каждый отдельный ребенок beforeDelete, чтобы исправить это? Я попытался сделать ($rowId = null)
в родительском методе, и это не сработало.
Какова видимость данных функций в родительском и дочернем 'public/protected/private'? – jitendrapurohit
Вы должны переписать все методы и убедиться, что они все согласованы. Вы можете использовать интерфейс для обеспечения соответствия сигнатуры метода. –
@jitendrapurohit public, они оба (все модели и родительская модель) public –