Как написать сильный и умный движок?

lantastic

Новичок
Как написать сильный и умный движок?

Приветствую!

1. Недавно написал простенький движок сайта. Писал в целях обучения языку, поэтому HTML часто был просто перемешан с PHP-кодом, хотя уже пытался как-то разделять их. В общем, в итоге довольно неплохо все это работало, хотя код выглядел ужасно и дальнейшему сопровождению не подлежал.

2. Почитав умные статейки про шаблоны решил писать грамотней. Разобрал простейшие php-templates и написал с их помощью. Но облегчения никакого не получил. Безусловно для дизайнера удобно, вставляй вместо изменяемого контента теги {xxx} и все. А вот парсить такие шаблоны как-то нерационально. Код смотрится неэффективно. В общем четкого отделения логики от представления не наблюдается, на мой взгляд.

3. Думаю писать заново. Какой технологией воспользоваться на этот раз? Кандидаты на мой взгляд таковы:
a) XML/XSLT;
б) Smarty;
в) некие собственные классы.

На мой взгляд цель в том, чтобы выбранная технология позволяла:
а) возводить удовлетворяющий требованиям движок сайта за минимальное время;
б) сопровождать движок, изменяя по необходимости некоторые элементы и добавляя новые;
в) легко использовать уже готовые функционально независимые законченные элементы движка (авторизация, голосование, статьи и т.п.) в последующих проектах.
 

Макс

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

lantastic

Новичок
Я готов потрудиться сейчас, чтобы понять концепцию построения достаточно крупных сайтов. Хочу окончательно отделить логику от представления, разработать законченные и независимые блоки сайта (авторизация, голосования, форум), чтобы потом можно было бы возводить движки за минимальное время...

А вот чем смарти лучше php_templates? Это шаблоны, которые потом нужно парсить? Можно ли на смарти разработать блоки из которых потом собирать сайт как из кирпичиков? :)
 

tony2001

TeaM PHPClub
>А вот чем смарти лучше php_templates?
они разные

>Это шаблоны, которые потом нужно парсить?
тебе ничего не надо парсить - Смарти генерит из шаблона РНР-код, который обрабатывается РНР.

>Можно ли на смарти разработать блоки из которых потом собирать сайт как из кирпичиков?
конечно.
иначе, какой смысл в нем?

http://smarty.php.net/manual/ru/
 

Orlis

Guest
Я готов потрудиться сейчас, чтобы понять концепцию построения достаточно крупных сайтов. Хочу окончательно отделить логику от представления, разработать законченные и независимые блоки сайта (авторизация, голосования, форум), чтобы потом можно было бы возводить движки за минимальное время...
Наука проектирования веб-приложений еще далека от завершенности. Собрался бежать впереди паровоза без дороги по компасу? Программирование это искусство... Даже если у тебя большой талант, сотни холстов нужно испортить, прежде чем создашь шедевр.
 

confguru

ExAdmin
Команда форума
lantastic

Если такие цели - то начни:
1) Планирование
2) Стандарты кодирования
 

tug

Guest
ИМХО XML/XSLT рвёт все шаблоны... будущее за eXtensible(расширяемыми) технологиями
 

lantastic

Новичок
После того, как я взял и написал свой первый движок в лоб, мне всегда хотелось выделить/разбить сайт на независимые блоки, чтобы потом собирать сайт, как из кубиков :) Вот к этому я и стремлюсь... чтобы дизайнер, нарисовав и сверстав дизайн смог быстро прикрутить к нему полноценный движок, не вкуривая особо в PHP
 

Silex

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

Это как если бы ты решил с телевизором продавать автоматический подъемник на нужный этаж, хотя достаточно было бы нанять для этих целей грузчика :)
 
[q]
Вместо создания максимальных удобств для дизайнера путем создания веб-интерфейса для визуальной "сборки" сайта (которая, кстати говоря, происходит, как правило, всего один раз - при создании сайта), лучше ориентироваться на совершенствование движка с точки зрения функциональных возможностей и удобства администрирования - сайтом пользуются и админят каждый день.
[/q]
Вот это просто супер фраза. Запомню. Со ссылкой. Просто блеск. Извините за оффтоп.
 

lantastic

Новичок
Автор оригинала: Silex
Вместо создания максимальных удобств для дизайнера путем создания веб-интерфейса для визуальной "сборки" сайта (которая, кстати говоря, происходит, как правило, всего один раз - при создании сайта), лучше ориентироваться на совершенствование движка с точки зрения функциональных возможностей и удобства администрирования - сайтом пользуются и админят каждый день.
Это понятно. Но каждый сайт, например, содержит форму регистрации/авторизации, обработку ошибок при регистрации, профиль пользователя... Каждый раз приходится прикручивать это в дизайн. Было бы здорово, если бы дизайнер, сверстав HTML смог легко прикрутить к нему регистрацию/авторизацию. Это технология шаблонов, когда разделяется дизайн и код. Но давайте сделаем так, чтобы дизайнером и вся логика, весь код автоматически прикручивался к сайту. Захотелось ему регистрацию, вставил блок регистрации и вся регистрация уже происходит гармонично с другими элементами сайта с занесением пользователя в БД, обработкой ошибок и выдачей соответствующих сообщений. Выходит, что нужно разработать иерархию классов - блоков сайта, чтобы они могли легко собираться в сайт.

P.S. Наверное и веб-интерфейс для дизайнера не нужно писать, иначе совсем сложно будет такое написать, пусть вручную собирает... для этого конечно, он должен обладать небольшими навыками программиста. Некий такой дизайнер/программист :)
 

Фанат

oncle terrible
Команда форума
У каждого сайта есть небольшие нюансы в модуле регистрации профилей юзеров.
 
lantastic
А почему, простите, за сборку сайта вообще должен отвечать дизайнер/верстальщик?
Вообще работа по созданию сайта идет несколько по другому принципу (как правило). Заказчик предъявляет требования к сайту, дизайнер выдаёт ему шаблоны всех страниц со всеми встречающимися элементами. Потом уже программист легко встраивает дизайн в систему (читай систему в дизайн), и далее причесывают все с информацией.
Почему сейчас так модно перекладывать сборку сайта (это же чистой воды элемент программирования: Никто же не заствляет пользователей OpenOffice самостоятельно компилировать под вынь) на плечи дизайнера?
 
Сверху