Наткнулся на идею Psih о форумном API.Идея кажеться очень интересной. Навскидку представляю себе так: У нас есть обьект класса forum. в нем опреденены методы от загрузки данных до показа последнее сообщения. В базовой комплектации класс самодостаточен.Вызвал метод run и получил html код форума.(Хотя для уменьшения кода эту самодостаточность нужно обрезать,пусть лучше будет дополнительной оберткой для нежелающих работать напрямую с API) метод Run представляет также вызов других методов по почереди, то то например:showHeader,showTheamesList,showFooter. Но мы можем не вызвать метод Run а через более низкоуровневые методы получать данные, напримере getThemesList($forumId,$pageId) которая вернет нам массив данных в заранее известном формате. Также мы можем переписать метод Run и аналогичные под свои нужны чтоб свои нужны. Пока хочетсья услышать что в нем нужно будет, идеи о реализации, как асбтрагироваться от БД, система кеширование и т.д.Рассуждения по принципу "А зачет этот форум API нужен?","Очередной велосипед!!!" не желательны.
АПИ по определению не возвращает контент для отображения. АПИ возвращает наборы данных. Иначе смысл апи отсутствует
Ну почему же. АПИ это просто набор методов для доступа к некоторым функциям приложения. Некоторые из этих методов, вполне могут возвращать готовый контент для отображения.
Можно подойти с другой точки зрения - кому нужен форум, который возвращает уже html, нарушая дизайн сайта? API на то и API, чтобы можно было легко интегрировать с сайтом.
Пфф. Да с какой точки не подходи. API не для легкости интеграции, а именно для предоставления доступа к некоторым своим функциям другим приложениям. ТОЧКА. Если форум имеет API для интеграции в блок сайта. А соответственно: - методы вывода себя в блок - возможность для темизации - возможность кастомизации шаблонов То нарушить дизайн сайта - вещь нереальная. Впрочем, если сам сайт криво спроектирован. То все возможно.
Нет, это такая же часть API, если ты ее написал. API - это не волшебная палочка и не готовое решение. Что ты в него положишь, то там и будет.
API как раз для встраивания и нужен. Использовать такой форум отдельно не получится, либо его нужно поставлять в собственной обёртке для самостоятельной работы. API должен возвращать или принимать структуры данных - никакого HTML и прочего. Таким образом тому, кто встраивает форум, вы даёте полный контроль надо тем, в каком виде эти данные отдавать - HTML, JSON, XML, RSS - это его выбор.
Тогда, собственно, так и говорите - что вам нужен не форум с API для встраивания. А некий компонент-библиотека для создания встроенных форумов. Это разные вещи.
Я могу ошибаться, но насколько мне помнится. Речь шла об API форума для встраивания, а не о библиотеке для создания встроенных форумов. 1е подразумевает законченный и самостоятельный продукт с возможностью встраивания.
первое есть самодостаточная библиотека библиотека !== приложение а я ещё раз повторяю, что форум ПО ОПРЕДЕЛЕНИЮ не может быть библиотекой =)
Мое мнение что данные должны быть структурированы ввиде обьекта.Кто захочет xml пусть пишет себе обертку.
Мы и не говорим о форуме, мы говорим о API форумном. Даем людям кубики, а они из них пусть собирают что хотят.
Вы бредите и плывете мыслью по древу. Поднимите тему с идеей Psih. Там была речь о прозрачном использовании данных и методов из уже рабочего форума. А не о конструкторе "сделай сам".
Simpliest там была идея о том, чтобы легко подключить форумное апи к любому сайту, изменив только дизайн, а про рабочий форум там не было ни слова. Я поддерживаю рассуждения Alost'а об этом АПИ. Имхо, это должно быть что-то типа такого: PHP: <? $forum = new ForumAPI ($config); $topic = $forum->getTopic($_GET['topic_id']); ?> <table> <? foreach ($topic->posts as $post) { ?> <tr> <td> <strong><?=$post->author->name?></strong> <img src="<?=$post->author->getAvaUrl()?>" /> </td> <td> <?=$post->text?> </td> </tr> <? } ?> </table> При этом — View в API совершенно не описывается (только для примеров), так как для каждого следующего форума — это будет совершенно иной шаблон со своим дизайном и т.п.
то есть интерфейс должен быть типа такого: PHP: <?php interface IForumAPI { /** * @return array */ public function getCategories (); /** * @param int $id * @return ForumAPI_Category */ public function getCategory ($id); /** * @param int $id * @return ForumAPI_Topic */ public function getTopic ($id); /** * @param ForumAPI_Topic $id * @return void */ public function createTopic (ForumAPI_Topic $topic); // И так далее, суть понятна }
Такого рода API пишется за полчаса. А потом еще 20часов тратится на реализацию функций форума с его помощью. Хотите делать дерьмо и называть его API форума - делайте. Правда форумом и его API это не станет. В общем - в космос.
Я не понимаю, Simpliest, нахера к нам применять эти дешевые трюки НЛП? Мы — не пятилетние дети и не умственно-отсталые, чтобы нас так унижать. Напишешь такое апи за полчаса — напиши и выложи — я тебе поаплодирую. Но когда ты сутки над ним проебешься и нихрена не сделаешь — вот тогда глянем, что ты скажешь. Когда нету аргументов — лучше помолчать. А вышеописанное апи, если оно будет грамотно сделано — было бы довольно удобно.
Мда. Убейтесь со своим НЛП. Никогда его не изучал и скорее всего изучать не буду. Я так живу. Вы планируете сделать бесполезную хрень, которая ни на грамм не облегчит задачу "встраивания" форума, с чего все и началось. Но зато облегчит создание форумов. Так вот еще 1000 форумов не нужно. Нужен 1 легковстраиваемый с возможностью доступа к отдельным его функциям без "уличной магии". Где можно будет ACL форума легко подменить своим или наоборот, вместо своего использовать ACL форума и т.д. Если результатом вашего API будет мануал по написанию своего форума плюс 3-4 готовых реализации форума в виде модуля/виджета для популярных фреймворков (ZF, Symfony, Yii, Kohana) - делайте. Но вы этого не сделаете, вы слепите очередной конструктор "сделай сам"(если вообще пойдете дальше разговоров). Хотите - делайте. Я от дискуссии самоустранился. Dixi.