| « Поставить закладку » « Сделать стартовой » | |||
|
|||
|
CakePHP: Добавляем «каменты» в блог.
Итак, мы решили начать программировать «по понятиям» и наконец разобраться с каким-нибудь фреймворком. Перед нами встаёт мучительный выбор, какой же фреймворк для этого использовать. Для этого можно найти кучу статей, обзоров, сравнительных анализов скорости, производительности, удобства использования и установки, а можно просто набрать в гугле «php framework» и кликнуть «Мне повезёт». Ура, мы только что выбрали для разработки фрэймворк под названием CakePHP! Статья эта начинается с описания того, как установить CakePHP в свой проект.
Рассказывает о том, чего нужно хранить в каждой папочке и для чего они нужны. Статья эта написана на простом и понятном английском языке и содержит весь
необходимый для создания блога код. Знай себе копируй, да вставляй. Но создав этот блог по этому туториалу, мы вдруг понимаем, что самого
главного, ради чего ведутся все блоги, у нас нет. Это каменты (или «комментарии»
для любителей чистоты языка). В панике мы начинаем гуглить, ища расширенный
туториал, но убеждаемся, что кроме компонент заоблачной сложности нам ничего не
найти. И тогда мы решаемся на отчаянный шаг: добавим функционал каментов сами. Для этого сначала создадим таблицу, в которой будут хранится каменты Этот запрос создал нам таблицу `comments` и добавил в неё два камента. К
первой и второй записи соответственно. Теперь надо сделать так, чтобы эти каменты были видны. Мы слыхали про MVC,
поэтому сразу идём в контроллер постов (posts_controller.php). И добавляем там
следующую строчку: Переменная $uses контроллера отвечает за те модели, которые будет
использовать контроллер. Если эта переменная не задана, то по умолчанию он будет
использовать только ту модель, чьим контроллером он собственно и является. То
есть PostsController будет использовать только Post. Тут, как видно, мы указываем контроллеру, что тот будет использовать модели
Post и Comment. Теперь отредактируем функцию контроллера, которая отвечает за отображение
собственно поста. Этой новой строчкой, мы добавляем во вью новую переменную comment и
устанавливаем её значение результату $this->Comment->findAllByPost($id). Тут надо сказать пару слов о замечательном методе findAllByPost. Умный CakePHP предоставляет классам, унаследованным от AppModel использовать
методы типа findAllBy ( ). Которые найдут все записи из таблицы, соответствующей
модели, где = . Здорово, правда? Поэтому $this->Comment->findAllByPost($id) вернёт все каменты, принадлежащие
отображаемому посту. Теперь в файле view.thtml, который находится в папке app/views/posts добавим
отображение этих каментов. Для этого в самый конец этого файла добавим: Тут вью пробежит по всем каментам, что мы передали во вью в предыдущем
кусочке кода и выведит их на экран. Круто? Круто! Но в каментах самое главное, чтобы их могли оставлять. Поэтому нам нужна
форма добавления каментов внизу страницы поста. В этом нам поможет помощник
форм. Эта строчка в файле posts_controller.php указывает контроллеру, какие
помощники он будет использовать в своей работе. Нашему контроллеру постов
помогают соответственно Html и Form. Во всё тот же файл view.thtml добавляем следующее: Это наш маленький помощник создал форму добавления камента. В нём скрытым
полем (hidden) указан айдишник поста, а в textarea предлагается ввести камент. Теперь нам нужно что-то, что сможет контролировать добавление этого камента.
Это будет контроллер комментариев: У контроллера каментов всего один обработчик одного события «add». Он
идентичен такому же обработчику добавления контроллера постов, только редиректит
в другое место. Ура! У нас теперь есть настоящий блог с каментами. Да не простой, а
написанный на настоящем фреймворке, по взаправдашней архитектуре MVC. Своими
собственными руками. Рубрика: PHP
Вышел MySQL 5.1.30, первый стабильный рели....
После публикации 29 тестовых версий анонсирован первый стабильный релиз MySQL 5.1, пригодный для промышленной эксплуатации и обеспечивающий увеличение производительности для "тяжелых" SQL запросов, по сравнению с MySQL 5.0, примерно на 15-20%. Главные новшества появившиеся в MySQL 5.1:
Подробнее... |
Рубрика: MySQL
| Добавлено: 28.11.2008
Тестирование параллельных программ.
Тестирование параллельного программного обеспечения представляет собой более сложную задачу по сравнению с тестированием последовательной программы. Программист должен знать о подводных камнях при тестировании параллельного кода, имеющихся методологиях и инструментарии.
Подробнее... |
Рубрика: Тестирование
| Добавлено: 28.11.2008
Архитектура AMD64 (EM64T).
Аннотация. В статье кратко рассматривается архитектура AMD64 компании AMD и ее реализация EM64T компании Intel. Описаны особенности архитектуры, ее возможности, достоинства и недостатки.
Подробнее... |
Рубрика: Архитектура AMD
| Добавлено: 27.11.2008
Остальные статьи: |
Цитата дня (все,добавить):
|
Realcoding.NET
© 2003-2008 |
Контакты |
Реклама на сайте
|