Использование движков для создания своих проектов
Некоторое время назад я провел эксперимент по созданию скрипта, который бы позволял размещать задачки, и комментировать их. Скрипт работает, и вполне меня устраивает. Однако, проанализировав список усовершенствований, которые нужно было бы внедрить в этот скрипт, я пришел к выводу, что пилю опилки. Например, нужно сделать оповещения, сделать антиспамовские заглушки, сделать простым привлечение сторонних размещателей задачек.
Подумалось, что лучше использовать уже готовые скрипты (блоговый или форумский). Мысль, вроде кажется, очевидная, но не совсем. Для начала, видимо нужно было получить шваброй по голове, и попробовать запрограммировать что либо свое…
Можно, конечно, заказать нужный скрипт у стороннего исполнителя. Но, тут есть серьезная заковырка - я просто не могу сформулировать требования к скрипту, и уверен на 100% что после того, как скрипт будет готов, нужно будет его дополнять и переделывать.
В качестве очередного эксперимента, решил разобраться с блоговым скриптом MAXSITE. Оказывается, у этого движка очень простая внутренняя стуктура, и для автоматического добавления новой страницы можно обойтись одним SQL запросом.
В ниже приведенном примере показыавется как добавлять страницу в блог на основе maxsite:
$act="addpage";
//$act="addcoment";
include_once("config_maxsite.php");
if ($act == "addpage"){
$title='test title';
$body='test body';
$page_date_publish=date('Y-m-d H:i:s');
$page_slug='zz1'; // транслитное наименование страницы
$req= "INSERT INTO `max_voo_page` (`page_type_id`,`page_id_parent`,`page_id_autor`,`page_title`,`page_content`,`page_date_publish`,`page_status`,`page_slug`) VALUES ('1',0,'1','$title','$body','$page_date_publish','publish','$page_slug');";
$result_select = mysql_query($req);
if (!$result_select) { die("<p>Invalid INSERT NEW max_voo_page " . mysql_error()); return;}
$page_id = mysql_insert_id();
echo "<hr>Была вставлена страница N <b>$page_id</b>";
// добавить категорию
$req= "INSERT INTO `max_voo_cat2obj` (`page_id`,`category_id`) VALUES ('$page_id',6);";
$result_select = mysql_query($req);
if (!$result_select) { die("<p>Invalid INSERT NEW max_voo_cat2obj " . mysql_error()); return;}
$iLastID_max_voo_cat2obj = mysql_insert_id();
echo "<hr>Была вставлена max_voo_cat2obj N <b>$iLastID_max_voo_cat2obj</b>";
}
if ($act == "addcoment"){
echo"попытка добавить новый коментарий";
$comments_page_id =8;
$comments_users_id =1;
$comments_date =date('Y-m-d H:i:s');
$comments_content ='comments_content';
$comments_approved=1;
$req= "INSERT INTO `max_voo_comments` (`comments_page_id`,`comments_users_id`,`comments_date`,`comments_content`,`comments_approved`) VALUES ('$comments_page_id','$comments_users_id','$comments_date','$comments_content','$comments_approved');";
$result_select = mysql_query($req);
if (!$result_select) { die("<p>Invalid INSERT NEW $bd_name " . mysql_error()); return;}
$iLastID = mysql_insert_id();
echo "<hr>Был добавлен коментарий N <b>$iLastID</b>";
}
Но, оказывается, есть еще более элегантное решение:
К чему такие сложности? См. functions-edit.php. Пример использования например в remote.php.
Ну и на последок, отвечу на вопрос зачем мне все это? А для очень простых целей: я хочу отработать технологию, которая бы позволяла создавать сообщества с пол-оборота.
ИсточникЖ Блог Сергея Михайлова
Февраль 15th, 2010 07:51
Сергей, ты мои экзерцисы читал, думаю, на тему Джанго. ТАк вот: это правило универсально для всех языков: «юзай фреймворки». Для PHP их щас топовых штуки 3-4: http://www.google.com/search?client=safari&rls=en&q=php+фреймворки&ie=UTF-8&oe=UTF-8
И это как раз технология для создания различных но распространённых типов сайтов с полоборота. Использование CMS — немного тупиковый путь, т. к. это всё же «допиливание», а фреймворк — это программирование с использованием библиотек. Структура для добавления чего хошь, тем не менее, там такая же удобная и даже удобнее при гораздо большей гибкости.
Февраль 15th, 2010 13:34
…Читал я твою заметку….
Слово фреймворк для меня новое. В том смысле, что я только смутно представляю что это такое и ни разу ни чего целенаправленно по этой теме не читал.
Спасибо за пинок.
Февраль 15th, 2010 16:17
Ну это языковая библиотека, в которую вынесено всё, что ты используешь из проекта в проект. Даже если ты, блин, 2 ф-ции — вывод даты и изменение цвета засунул в какую-нить mega-framework.php — это уже он.
Но в данном контексте я говорю про опенсорс-фреймворки для создания сайтов.
.NET — это, кстати, тоже фреймворк для приложений под винду. Там тысячи рабочих часов программеров засунуто.
Март 16th, 2010 16:57
Стандартаная ошибка для всех программистов, всем нам интересней создавать свое, чем изучать чужое. Сам использую pmwiki. Это хоть и CMS, но возможностей конфигурации и доделки там море
Март 16th, 2010 17:06
pmwiki - хорошая штука. Правда тормозит на больших проектах.
У меня некоторые проекты тоже сделаны на ней. Очень просто вносить новые элементы, создавать индексы.