Единственный способ ответить на ваш вопрос - дать плюсы и минусы для каждого дизайнерского решения.
Обычно для процедурного проектирования лучше всего, когда требуется минимальное участие в управлении состоянием, для обработки без сохранения состояния, преобразования данных в один прием. Примерами процедурной обработки могут быть: все виды математических функций, преобразования строк, преобразования массивов, прямой доступ к памяти и т. П.
Хотя ООП отлично подходит для контроля состояния. Замечательно использовать ООП для таких вещей, как элементы пользовательского интерфейса (миллионы примеров из учебников), программирование сокетов (открыто, прослушивание, закрыто, другие состояния), реализации протоколов также выигрывают. Все, что включает в себя несколько экземпляров и конечные автоматы , прекрасно реализуется.
В таком случае обычной практикой является смешивание одноразовых функций для простой обработки со сложными элементами управления состоянием в классах. Методы в классах будут использовать функции для внутренней обработки данных.
Взлом чего-либо вместе может сработать для кратковременного непроизводственного кода. Но после нескольких обновлений вы можете в конечном итоге искать соус для спагетти для вашего кода. Всегда хорошо иметь преднамеренный дизайн для кода, в отличие от специального кодирования.
Другим аспектом является распространенная практика в рамках . Если в Zend Framework является обычной практикой иметь смешанные реализации (ООП и функционал для простых преобразований), нет особых причин не делать этого. Если это не так, лучше придерживайтесь одного подхода, иначе вы столкнетесь с проблемами сопровождения, и другие люди будут тратить часы и дни на понимание вашего кода.
Также необходимо изучить каждый бит технических ограничений делать то, что вы делаете:
- Если используется компилятор (в отличие от интерпретатора) и компоновка, убедитесь, что там нет проблем
- Если ваш код разбит на модули (библиотеки), обязательно убедитесь, что смешивание не нарушит совместимость
- Если есть проблемы с производительностью, определите их количество; как только вы это сделаете, решение может стать проще
- Проведите множество тестовых приложений, чтобы проверить свой выбор - неожиданные сбои, медленный запуск / остановка, повреждение данных, перепрыгивание через обручи для достижения цели - все указывает на то, что выбор не является оптимальным. Знание почему так же важно, как и знание что .