Перейти к содержимому


Фотография

xFramework


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 4

#1 fesor

fesor

    Активный участник

  • Пользователи
  • PipPipPip
  • 70 сообщений
  • Пол:Мужчина
  • Город:Беларусь, Минск
  • Интересы:Девушки, Пиво, WEB програмирование, 3D и 2D графика, Музыка

Отправлено 31 December 2008 - 18:16

xFramework это мой личный проект, который я начал делать после того как мне было лениво писать WEB скрипты которые отличаются друг от друга только немного, однако изза чего приходится придумывать структуру по новой. Многие для таких проектов уже давно используют готовые фреймворки, однако все что я пользовал было либо слишком громоздким, либо непрактичным.

Изображение


правда у меня пока проблемы с идеей скрипта)) хочу спросить, какая структура более понятна:

данный код берет из базы данные, запихвает их в массив с индексом из их ID. Иногда это бывает полезным)

1) просто код для Datalife Engine
$row = super_query("SELECT * FROM ".PREFIX."categories", true);
$categories = array();

foreach($row as $value)
{
	$categories[$value['id']]=$value;
	unset($categories[$value['id']]['id']);
}

2) разделение на контроллер и модель

контроллер
$categories - mapper::execute('get_cat_tree');

модель (записана в INI файл 'get_cat_tree.ini')
[id]
source = db.id
index = true

[parent_id]
source = db.parent_id

[title]
source = db.title

[alt_title]
source = db.alt_title

[_database]
table = categories

формально этот INI файл генерируется отдельной тулзой)) правда оно еще криииво работает)
I am lexx! The the most powerful weapon of destruction in the universe and I have the power to destroy entire planets. © Lexx fesor's<dog>gmail.com

#2 Chipsman

Chipsman

    Активный участник

  • Главные администраторы
  • PipPipPip
  • 786 сообщений
  • Пол:Не определился


Отправлено 31 December 2008 - 18:49

поскольку мои знания пхп не ахти.. кароче на счет пункта 1 вродибы все понятно, а на счет 2 - вообще не втыкнул :mellow:

#3 fesor

fesor

    Активный участник

  • Пользователи
  • PipPipPip
  • 70 сообщений
  • Пол:Мужчина
  • Город:Беларусь, Минск
  • Интересы:Девушки, Пиво, WEB програмирование, 3D и 2D графика, Музыка

Отправлено 31 December 2008 - 20:01

не, ну первая строчка есть приказ на исполение модели а тот INI файл есть модель (ну тобиш это описание модели) мол что откуда брать)) как правило ее должно хватать для работы аппликейшена)) однако.. короче вот пример такого файла для выборки постов новостной ленты в отдельной категории (по аналогии с DLE) )

[post_id]
source = db.post_id

[title]
source = db.title

[alt_title]
source = db.alt_title

[post]
source = db.post

[date]
source = db.date
mutation = core.langdate

[category]
source = db.cid
value = model.get_cat_ids::app.cat_id
type = int
mutation = model.get_cat_link

[icon]
source = db.icon
mutation = model.build_icon

[author]
source = db.author
mutation = core.build_user_link::db.author, db.name

[published]
source = db.publ
value = 1
system = true

[_database]
table = posts
тобиш логика такая:

[Название секции] = элемент массива (тобиш в массиве результатов оно буит так: $results[i][Название секции])

source - источник где искать данные (тобиш по префиксу, db.* - из базы данных, session.* - из сессии, cookie.* - из куки, app.* - то что передается аппликейшеном (короче то что можно указывать в параметрах функции), model.function::param - для вызова функции из класса модели ( например model.get_cat_ids::app.cat_id вызывает в классе модели функцию get_cat_ids с параметром = cat_id передоваемые функции execute),еще есть core.function::param|param-2... но оно невсегда хорошо работает)) оно должно вызывать функцию из ядра скрипта.... но оно мало джля чего надо, тобиш я пока непридумал что с этим можно сделать ) короче на деле все довольно просто

value = 1 = это используется для постоения запроса, тобиш WHERE field='value'. Потом доделаю more = 1 или less = 4 (для > и < соответственно). Также если указан тип данных как INT то если value=1,4,6 то запрос формируется как: WHERE field IN ('1', '4', '6')

system = true - это для того чтобы требуемая фигня не выводилась потом в результатах выполнения

mutation = model.get_cat_link||self - ну после получения скажем ID категории нам надо построить ссылку на нее: для этого вызываем функцию)) Если параметр=self то то что взяло из базы идет в параметры)

--------------

посути бред, однако если немного разобраться - довольно легко. Эту идею я слизал с MZZ Framework однако у них тама ну очень все как-то мудрено
I am lexx! The the most powerful weapon of destruction in the universe and I have the power to destroy entire planets. © Lexx fesor's<dog>gmail.com

#4 fesor

fesor

    Активный участник

  • Пользователи
  • PipPipPip
  • 70 сообщений
  • Пол:Мужчина
  • Город:Беларусь, Минск
  • Интересы:Девушки, Пиво, WEB програмирование, 3D и 2D графика, Музыка

Отправлено 02 January 2009 - 21:54

Люди, тут ктонибудь вообще занимается WEB програмированием? Неподелитесь своими предложениями в упращении этого нудного дела?
I am lexx! The the most powerful weapon of destruction in the universe and I have the power to destroy entire planets. © Lexx fesor's<dog>gmail.com

#5 CodeWarrior

CodeWarrior

    Участник

  • Неактивированные
  • PipPip
  • 10 сообщений
  • Пол:Мужчина
  • Город:Албания


Отправлено 13 March 2009 - 15:51

Если тема не устарела, то отвечу: я занимаюсь веб-программированием. А что посоветовать не знаю, т.к. не вник в практичность идеи.




Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 анонимных