Показаны сообщения с ярлыком yeap. Показать все сообщения
Показаны сообщения с ярлыком yeap. Показать все сообщения

2009/09/05

YeAP Project

YeAP is Yet Another PHP yeap! Project
пилим мал-помалу
код фреймворка на гуглокоде http://code.google.com/p/yeap/ , цмс на его основе готовится в другом месте, хотя проскакивают куски в репозиторий
твиттер-тег (твитег %) #YeAP @dotAIDE

зы: да! я завёл твиттер; зачем, пока не совсем понял. тви хорош для спама, вирусной рекламы итп

upd: надо бы сменить твитег, а то всякие иносранцы пишут глупости

2009/04/10

yeap. Передача параметров

Непростая это задача - правильная передача параметров.
Мы ведь решили делать RESTful ;) систему. А описания принципа рэст говорят нам, что вся информация запроса содержится в uri (Точнее, наоборот: любая доступная информация однозначно идентифицируется uri, что, соот-но, см. утверждение выше.)
Но мы также решили сделать внутренним форматом (вообще, единственным форматом передачи) данных - XML.
Мы схитрим. Введём специальный параметр в uri, указывающий на то, что параметры переданы отдельно. Назовём его request. Кусок uri будет выглядеть так /path/parameters/request/ .
Далее, т.к. модуль сам разбирает свои параметры, то он сам знает, откуда брать параметры, то параметр request фактически является декларативным, для нас.
Вроде всё. Запоминаем и работаем дальше.

ps: зарезервируем на всякий случай $_REQUEST['module']['module_name'] для передачи параметров. хаком можно пользоваться и надо не забывать очищать. модуль-враппер-компоновщик параметров из массивов в хмл писать не будем. хотя надо бы. позже

2009/04/02

yeap. Ещё соглашения

Мы уже договаривались о некоторых соглашениях, касательно работы системы и модулей в ней. Обяжем модули возвращать XML такого свойства
[module name="module_name" path="fullpath"]
[head]
[title]
[meta = ]
[meta = ]
[link = ]
[script]
[description]
блок содрежит разного рода служебное и не очень описалово, типа автора, дата последнего изменения итп. делит важность с виджетом
[/description]
[/head]
[body] // %)
[widget]
это такая хитрая штуковина для визуального оформления, которая внедряется только по месту расположения модуля в документе. для разного рода рсс, разумеется, игнорируется
[/widget]
[data]
[row]
[smthng_field]
[/row]
[/data]
[/body]
[/module]

2009/03/29

x00.yeap Принципы мега-системы

Ориентиры:
  1. Модульность (ох, как много светлых вострых копий разбилось об эту стену и дерзких сердец угасло. Но мы-то - старые циники; плюс - терять уже нечего)
    Модульность - это система блоков и плагинов. Необходимо разработать и воплотить такой принцип движка, чтобы наращивание (урезание) функциональности не оказывало влияния на прочий функционал.
    зы: модули не отменяют нормальных уровней абстракции
  2. KISS - Keep It Simple, Stupid (вдруг кто не в курсе) - "Будь проще, идиотина"
    & JMS - Just Make Simple - "Тупо сделай проще". Принцип был придуман совместно во время работы в %companyname%. Одна из любимых программерских фраз была: "Давай сделаем это ещё проще"

  3. В принципе, на этом можно было бы и закончить ;) потому что дальше технические подробности.
    Внутренний формат представления данных: XML (andnearbird), включая протоколы, интерфейсы и пр. (кроме, разве что, JSON)
  4. База данных (наверняка, понадобится ;) PostgreSQL.
    Почему? По сумме критериев: она достаточно мощна (вдруг кто-нить соберётся делать порталы?), распространена у хостеров, не-MySQL, на постгре можно делать нормальную бизнес-логику. Тем более, что нас модули - желющие могут и поменять.
    Кстати, подключение конкретных обработчиков и надо сделать модулями-плагинами.
  5. Шаблонизатор. Какой шаблонизатор?! о_О
    а) PHP - лучший шаблонизатор
    б) у нас же XML - для него есть XSLT
    в) можно сказать, что это будет шаблонизатор pull типа (смарти типа push)

Ядро.
Ядром системы будет пхп. Что за странный выбор, спросите вы? Что эдакового вы хотите видеть в ядре, чего нет в пхп, спрошу я вас?

MVC.
МВЦ не существует.

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

Виджеты!
Работают только с визуальной частью плагинов.
Очень интересно, но непонятно пока, как это подключать.

Helpers
Хелперы - весьма полезная штука. Посмотрим, как оно уживётся с пул-шаблонизатором.

ps: http://code.google.com/p/yeap/