{{TOC}} == Модели == **Модели** - основа вашего приложения. Логика (//[[docs/v3/controllers контроллеры]]// и //[[docs/v3/routing маршруты]]//), так же как и //((docs/v3/views виды))// (представления данных - например, в HTML) - всего лишь средство для пользователя взаимодействовать с вашими //моделями//. Самый типичный пример логики, содержащейся в //модели// - ((ВП:Бизнес-логика бизнес-логика)). Примеры функциональности, которая может осуществляться моделью: * Работа с базами данных; * Файловый ввод/вывод; * Взаимодействие с вёб-сервисами. Предположим, что вы пишите блог. Вам наверняка потребуется модель "Сообщение". Посетители могут комментировать ваши заметки, поэтому вам также понадобится модель "Комментарий". А если пользователи будут комментировать, значит нам нужна будет модель "Пользователь". Уловили? == Библиотеки == **Библиотеки** - это классы, выполняющие действия, не привязанные конкретно к вашему приложению. Например, это может быть библиотека для создания PDF-документов из HTML. Эта задача, пусть и сложная, не специфична конкретно для вашего проекта - такие вещи и называются "библиотеками". Для создания //библиотеки// просто поместите её класс в папку **libraries**. Например, мы напишем //библиотеку// с единственным методом, который будет выводить на экран переданную ему строку. Создадим файл **printer.php** в папке **libraries** с таким содержимым: %% latitude = $latitude; $this->longitude = $longitude; } } %% Выглядит хорошо. Теперь, когда у нас есть сущность, мы можем поговорить о других двух папках. == Сервисы == **Сервисы** ("services") содержат //процессы// нашего приложения. В нашем тестовом проекте //Trackler// у нас может быть форма, где пользователь вводит GPS-координаты. Нам нужно удостовериться, что введённые координаты действительно верные - иными словами нам нужно //проверить ((#сущност+и))ь// **Location**. Итак, внутри папки **services** мы можем создать папку **validators** , содержащую следующий класс: %%