14.01 2009

Посмотрим, что он делает

Автор: admin | Категории: Статьи


Посмотрим, что он делает

Посмотрим, что он делает. 1) Подключаем библиотеку (строка 2). Тут объяснять нечего, RedBean состоит всего из одного файла. 2) Подключаемся к базе данных и создаем объекты, которые будем в ней хранить (строка 5). Обе операции выполняются с помощью метода kickstartDev. В первом параметре мы указываем перечень нужных объектов (они будут создаваться динамически). В остальных параметрах – данные, необходимые для подключения к базе (dns, имя пользователя и пароль). Предварительно от нас требуется только создать пустую БД. Созданием таблиц, сохранением и чтением данных будет заниматься RedBean. Примечание. Метод kickstartDev переводит библиотеку в т. н. fluid режим. При этом если вы измените, количество или названия свойств объектов, то RedBean автоматически изменит структуру таблиц в БД. Этот режим имеет смысл использовать во время разработки. После переноса приложения на «боевой» сервер kickstartDev лучше заменить на kickstartFrozen.

Посмотрим, что он делает

Библиотека перейдет во frozen режим, при этом таблицы автоматически изменяться не будут, но и потребление ресурсов сократится. 3) Создаем данные и сохраняем их в БД (строки 7-15). В данном случае создано два объекта типов Post и Comment, каждый из которых содержит несколько свойств. Обратите внимание, что свойства создаются автоматически. От нас требуется указать только название свойства и его значение. Мы просто присваиваем значения нужным свойствам и вызываем метод save(), который записывает объект в БД (строка 10). Объект Comment принадлежит Post. Эту связь мы устанавливаем с помощью метода belongsTo. При этом использовать save не нужно. Сохранение в БД произойдет автоматически. 4) Читаем данные из базы (строки 29-40). Тут тоже все достаточно прозрачно. С помощью статического метода listAll мы получаем массив со всеми объектами типа Post, находящимися в БД. Чтобы получить доступ к комментариям мы создаем объект типа Post (строка 31) и при этом в качестве параметра указываем id. После этого мы можем использовать метод getRelatedComment для получения массива с комментариями. Примечание. Название метода getRelatedComment формируется следующим образом. К приставке getRelated добавляется имя объекта, который мы хотим получить. Затем в цикле мы выводим комментарии. В результате выполнения скрипта вы увидите такую страницу. Теперь посмотрим, что у нас делается с базой данных. Прежде всего, взгляните на перечень таблиц. Как видите, RedBean создал 6 таблиц. Три из них (post, comment_post и comment) используются для хранения данных приложения, остальные – используются самой RedBean. Теперь посмотрим, что сохранено в самих таблицах. post comment_post comment Думаю, вы уже догадались, в чем дело. Между объектами Post и Comment отношение типа ОДИН-К-МНОГИМ и для его реализации не нужна промежуточная таблица. Т. е. если бы база создавалась вручную, мы бы обошлись всего двумя таблицами. Соответственно, упрощаются и SQL запросы. Использовать или не использовать? Это вопрос философский . RedBean не единственная ORM библиотека. Например, существуют более мощные Propel и Doctrine. Ответ будет зависеть от требований к конкретному приложению. В общем случае при использовании ORM увеличивается скорость разработки и упрощается поддержка, но при этом растет потребление ресурсов. К тому же стоит учесть время, необходимое на изучение библиотеки. В этом RedBean значительно превосходит библиотеки типа Doctrine. Вряд ли у вас уйдет больше пары дней на эксперименты с RedBean. В общем, думаю, что в ряде случаев использование RedBean будет вполне оправданно.

Посмотрим, что он делает

В заключение хочу сказать, что это статью нельзя рассматривать как руководство по использованию библиотеки. Поэтому я очень рекомендую вам почитать документацию на сайте.

Понравилась статья? Получай обновления и будь всегда в курсе событий!
Подпишись на RSS или
blog comments powered by Disqus