Просмотр поста

.
Delphinum
Термины и определения
Дабы говорить с вами на одном языке, определимся с терминологией.
Пакет - пакетом я называю готовое решение некоторой задачи, представленное в виде PHP скрипта (классов, данных, конфигураций, тестов, документации), имеющего четкую область применения. К примеру возьмем пакет для решения задачи шаблонизации. В этот пакет может входить один класс, который будет загружать требуемый HTML файл и рендерить его, а может быть и целая библиотека типа Smarty. Оба решения я называю пакетами, так как в них четко определена задача и они являются не более чем частью чего либо большего
Библиотека - множество пакетов, объединенных общей идеей. На пример это может быть библиотека для работы с БД, в которую входит как пакет PDO, так и реализации ORM шаблонов
Фреймворк - архитектурное решение, которое определяет структуру приложений, написанных на его основе. Во фреймворке важно именно то, что он определяет структуры программы. Написать программу можно и без использования готовых фреймворков, но когда вы определитесь со структурой вашей программы, вы по сути изобретете собственный фреймворк
CMS - готовое приложение, которое позволяет управлять контентом. Внутри CMS может использоваться некоторый фреймворк, но в отличии от онного, CMS это готовое решение с админкой, таблицами в БД, системой авторизации и т.д. Пользователю остается только создать контент

Чтобы было понятнее, можно изобразить зависимости этих частей приложения в виде следующей схемы:
CMS(Фреймворк(Библиотека(Пакеты)))

Здесь мы рассмотрим некоторые готовые пакеты, а так же реализуем фреймворк на их основе.