PHP + AngularJS: Первый сайт не комом. Часть 2. Админ часть (добавление страницы)

Для того чтобы научиться программировать нужно пробовать программировать самые простые, но функциональные вещи. Чтобы лучше понять как сделать «свой первый самый лучший в мире» сайт — рассмотрим пример элементарного сайта из одного уровня объектов — страниц. Нам нужно

Готовый код, по которому будет идти рассказ что где и почему. Пример простейшего сайта с админкой в связке PHP + AngularJS, первая часть описания

Результат выполнения этой части
что мы должны получить в результате

Добавление ссылки на добавление новой записи

и обработчки на эту ссылку (#/pages/add)

со связанным шаблоном blocks/page/page-add.html

обратите внимание — тут функция объявленная функция $scope.saveNew вызывается прямо, а переменная используется по прямой ссылке на свои поля — к примеру, привязка ng-model=»new.info» (они в области видимости этого шаблона!)

Серверная часть (обработчик добавления) на PHP

Обратите внимание — метод добавления вызывает путь api/pages/add.json — тут мы можем на самом деле что угодно вызывать, главное возвращать успешно или нет (самый простой вариант) и обновлять список (у нас переход автоматически перегружает объекты из базы. Можно добавлять в коллекцию и прочие методы для убыстрения, но топорный самый простой способ лучше для понимания механики — добавили -> перегрузили

На отработку мы поставили один php файл на все входы — он в папке api/index.php (если он не подгружается — проверьте настройки и подгружает ли Ваш сервер корректно .htaccess

Router::route

Для красоты и структуры мы договариваемся о правилах: путь pages/add.json => PagesControllder->add, где первый параметр — имя контроллера, второй — действие. Так просто и так красиво*) Сам код класса-роутера, разбирающего путь в параметры — посмотрите самостоятельно

Контроллер и Модель

Контроллер — это кусочек, из параметров входных выполняющий нужные действия с базой (через абстракции моделей)

Модель — класс абстракции, который позволяет не думать о каждый раз в параметрах sql-запросов) В готовом коде он уже разбит на базовую модель и отнаследованную от нее модель страницы (можно же не только страницы так редактировать, а что угодно)))).

Собственно и таблица куда будет происходить запись

Классы-помощники (DB, F) я тоже описывать не буду — это мой любимый способ группировки внутри статичных классов (F) и единого объекта к базе (DB) для запросов в одну строку))).

Оставить комментарий

XHTML: Вы можете использовать такие теги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre lang="" line="" escaped="" cssfile="">