понедельник, 15 сентября 2008 г.

Symfony: Создаем форму обратной связи 1/3

Начнем делать маленький сайт-визитку с использованием Symfony(версия 1.1.1 на момент написания статьи).

Первым модулем сделаем обратную связь.

Обратная связь необходимый компонент практически для любого сайта, на ее примере мы опробуем многие интересные моменты.

Приступим.

1. Создаем проект

>symfony init-project minisite

2. Создаем 2 приложения

>symfony init-app frontend
>symfony init-app backend

3. Разворачиваем базу
ссылка на дамп

4. Пишем схему

propel:

sf_feedback_users:
_attributes: { phpName: FeedbackUsers }
id: { type: integer, required: true,primaryKey: true, autoIncrement: true }
name: { type: varchar(255) }
email: { type: varchar(255) }
subject: { type: varchar(255) }

sf_feedback_log:
_attributes: { phpName: FeedbackLog }
id: { type: integer, required: true, primaryKey: true, autoIncrement: true }
feedback_user_id: { phpName: FeedbackUserId, type: integer, foreignTable: sf_feedback_users, foreignReference: id }
name: { type: varchar(255) }
email: { type: varchar(255) }
subject: { type: varchar(255) }
content: { type: longvarchar }
is_published: { type: boolean, default: 0 }
get_answer: { type: boolean, default: 0 }
created_at: ~
updated_at: ~


Проверим propel.ini, вписываем свои настройки для MySQL
propel.targetPackage = lib.model
propel.packageObjectModel = true
propel.project = minisite
propel.database = mysql
propel.database.createUrl = mysql://root@localhost/
propel.database.url = mysql://root@localhost/minisite

5. Создаем модель
>symfony propel:build-model

6. Сгенерируем формы
>symfony propel:build-forms

7. Вносим поправки в C:\WINDOWS\system32\drivers\etc\hosts
127.0.0.1 minisite

8. Вносим изменения в httpd.conf
ServerName minisite
DocumentRoot "C:\www\sfprojects\minisite\web"
DirectoryIndex index.php
Alias /sf c:\php\data\symfony\web\sf

AllowOverride All
Allow from All


AllowOverride All
Allow from All



Перезапускаем Апач.

7. Проверяем
http://minisite/index.php



Если Вы видите такое изображение, значит все идет по плану :)

8. Создаем модуль обр.связи
>symfony init-module frontend feedback

Проверяем:
http://minisite/index.php/feedback


Если все сделано правильно, видим ту же картинку, только надпись по центру изменилась. Все идет хорошо, в следующей статье займемся непосредственной генерацией формы.

3 комментария:

Костя Чудо комментирует...

Привет.
Хочу по-нормальному освоить symfony.
Я думаю, что всё пойму, если найду где-нибудь пример, как создать блог с авторизацией и древовидными коментами.
Есть где-нибудь такой туториал?

Vit228 комментирует...

Привет, я именного такого учебника не видел.
Можно самим сделать, все инсрументы известны, завтра начнем ;)

Костя Чудо комментирует...

Было б здорово.
Вообще, имхо, именно такой туториал нужно выкладывать всем создателям фреймворков в первую очередь. Потому что он описывает на начальном уровне 90% типичных задач.
Как работать с авторизацией и как привязывать вещи к пользователям.
А там уже не важно, какие вещи.

Вообще я для полной картины хочу сделать блог по (уже) твоему, а потом прикрутить к нему ещё и оценку постов самостоятельно.
И тогда это будет ну просто complete crash guide to symfony.
Да ещё и на русском.