ну а чему ты отнесешь рекомендации следующие:
- слишком много методов
- слишком сложный метод
- не используйте статические функции
- не используйте статические переменные
- не используйте трейты
- не используйте обращение динамическое к методам и полям, вместо этого сделайте явное.
- не используйте абстрактные методы, используйте интерфейсы
- не возвращайте ассоциативные массивы, используйте дто
- используйте отдельную фабрику для создания объектов, вместо возвращения через нью
- методы, возвращающие бул, должны называться на is/has
- абстрактный класс должен иметь префикс abstract
- класс со статическими методами должен иметь постфикс static