Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Мой велосипед

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Очередная оболочка, личная разработка.
m4gz
Отправлено: 24 Апреля, 2012 - 19:24:30
Post Id


Новичок


Покинул форум
Сообщений всего: 24
Дата рег-ции: Нояб. 2011  


Помог: 0 раз(а)




Есть у меня небольшой проект, точнее оболочка для построения разных систем.
то что есть :
чпу - например при обращении mysite.ru/машинки/ауди/легковые контроллер показывает файл машинки.php и передает массивом все остальное
cache & autoloader - кэширует все sql/страницы/формы все классы подключается через spl-autoloader
404 и т.п. ошибки - просто если страницы нету получаешь главную.
безопасность - пускает только туда, где есть страничка в папке pages/
дробление - (самое интересное) странички, которые находятся в pages/ могут быть такими
PHP:
скопировать код в буфер обмена
  1.  
  2. $head = new page("head.html");
  3. $head->css=class_file::fget("style.css","../css/");
  4. $head->id=class_file::fget("mod.html");
  5. $head->menu="<div></div>";
  6. echo $head;
  7.  

тут как видно при создании отправляем ссылку на шаблон, дальше переменные, и что в них положить (class_file::fget() - просто класс обработке файлов, тут мы их просто подключаем) который имеет такой вид (только сервер может видеть его)
PHP:
скопировать код в буфер обмена
  1.  
  2. <style><?PHP echo $this->data['css'] ;?></style>
  3. <h1><center style="background:orange; border-radius:15px;">LOGO</center></h1>
  4. <br>
  5. <div>BANNER <div><?PHP echo $this->data['id'] ;?></div></div>
  6. <center>
  7. INSTALL CMF/CMS
  8. all rights reserved ©
  9. </center>
  10.  

как видно из последнего файла то в нем через echo обращаясь к $this->data[] получаем доступ к тем данным, которые раньше были объявлены. На первый взгляд выглядит странно, но удобств много, можно разносить как нравится сайт.
js - отказался от всяких framework в пользу максимальной оптимизации кода и подргузку его по факту через аякс.

Как думаете стоит продолжать работать над ней?
И если кому интересно буду рад любой помощи!


-----
http://www[dot]w3hub[dot]ru Q&A по программированию.
 
 Top
man1
Отправлено: 25 Апреля, 2012 - 12:10:24
Post Id


Новичок


Покинул форум
Сообщений всего: 57
Дата рег-ции: Апр. 2012  


Помог: 0 раз(а)




Хотелось бы более конкретной формулировки задачи, которую надо решить. Например, какие данные храните и что хотите с ними делать. Лично мне не хватает предыстории (контекста) в котором все это имеет смысл.
 
 Top
m4gz
Отправлено: 25 Апреля, 2012 - 20:57:09
Post Id


Новичок


Покинул форум
Сообщений всего: 24
Дата рег-ции: Нояб. 2011  


Помог: 0 раз(а)




запись / чтение данных делается через универсальный класс, в переменных определяется и записывается в ини или просто дефайнет поддерживает ли mysql если поддерживает - то можно как просто хранить данные в mysql либо дублировать в xml и mysql, если поддержки нету - то только xml reader/writer трудится.
По сути задачи никакой не стоит, это что-то вроде среднего между фраймворком и cms, на которое можно навесить зашаблоненные куски в нужном положении. Как я писал выше в непосредственном файле к которому обращается агент объявлены только откуда собрать эти 'кусочки' и какие данные записать в переменные, до этого хотел отказаться от html'a и заменить его пхп классом, вышло такое, но подумал что смысла мало в это, как вам?
PHP:
скопировать код в буфер обмена
  1.  
  2. $page=new chain("<!DOCTYPE html>");
  3. $page
  4. ->html("id=html")
  5. ->head
  6.         ->link("rel=icon href=http://www.corp-mobile.ru/favicon.ico type=image/x-icon",end)
  7.         ->meta("http-equiv=Content-Type content=text/html; charset=windows-1251",end)
  8.         ->title("id=title")->end
  9.         ->link("rel=stylesheet href=css/style.css media=all type=text/css",end)
  10.         ->meta("name=keywords content='awesome keywords'")
  11. ->end(2)
  12. ->body("","bodytext")
  13.         ->div("class=b",
  14.                 "1st separate element text with 200px width")
  15.                 ->center
  16.                         ->div("class=c",
  17.                                 "2nd separate element text with 200px width")
  18.         ->end(3)
  19.         ->div("class=b",
  20.                 "3rd separate element text with 200px width")
  21. ->end(3);
  22. //      cache::add($page,loc_req,"pages/");}
  23. echo $page;
  24.  


-----
http://www[dot]w3hub[dot]ru Q&A по программированию.
 
 Top
man1
Отправлено: 26 Апреля, 2012 - 12:10:12
Post Id


Новичок


Покинул форум
Сообщений всего: 57
Дата рег-ции: Апр. 2012  


Помог: 0 раз(а)




Как же вы собираетесь оценивать правильно ли вы написали код или нет, если не стоит задача, а следовательно и нет критериев оценки? Сначала должна идти постановка задачи, потом проектирование, а потом уже программирование.

То что у вас есть библиотека работы с данными это понятно. Я хотел узнать какими структурами данных вы собираетесь оперировать.

Приведенный код может вызвать рак мозга =)

Вы пытаетесь написать универсальное решение, но чтобы его написать, нужно понимать какие бывают частные случаи. Универсальное решение это обобщение известных частных случаев.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« CMS и фреймворки »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB