@ Александр упоминает CakePHPs Поведения , Компоненты и Помощники . Они отлично подходят для абстрагирования от общей функциональности. Я считаю Поведение особенно полезным, поскольку, конечно, основная часть бизнес-логики передается в моделях. В настоящее время я работаю над проектом, в котором у нас есть такие поведения, как:
- Lockable
- 1012 * к опубликованию *
- Tagable
- соответственный
- Commentable
и т.д.
Для кода, который выходит за рамки даже инфраструктуры MVC, т.е. библиотек кода, которые вы используете для различных вещей, которые не привязаны к конкретной платформе, которую вы используете - в нашем случае, например, к классам кодирования видео и т. Д. CakePHP имеет поставщиков папка.
Все, что фактически не имеет ничего общего с CakePHP, идет туда.
Я подозреваю, что CodeIgniter не имеет такой гибкой структуры, он меньше и легче, чем CakePHP, но кратко рассмотрим руководство CakePHP , чтобы увидеть, как Поведение, Компоненты, Помощники и папка Vendors может быть полезным
Должно быть легко включить некоторые общие вспомогательные классы из ваших моделей, оставьте все в порядке и DRY