Аннотация и / или интерфейс для публичного API для классов PHP

У меня есть пара классов, которые находятся в Entities Пространство имен. У меня есть интерфейс Entity.php который имеет 3 метода; parse($data), getId(), __toString(),

Теперь я использовал объект Car (который implements Entity) и когда я пошел, чтобы напечатать $ entity->, я получил автозаполнение с parse() метод. Это имеет смысл, но я действительно хочу, чтобы этот метод не был виден при использовании на более высоких уровнях (внутри представлений / страниц).

Поэтому я попытался сделать этот метод защищенным, затем попытался изменить это и в интерфейсе, но это не позволило мне; msgstr «тип доступа к интерфейсу php должен быть опущен».

Я хочу, чтобы разработчики добавляли parse, getId и __toString в свои реализации Entity, но когда «пользователи» / разработчики используют реальные сущности, они видят только видимый API (который является принудительным getId, __toString и другие методы, специфичные для сущностей). ; getColor, getModel и т. д.).

Должен ли я сделать следующее: Car extends AbstractEntity а также AbstractEntity implements Entity?

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]