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
Форумы портала PHP.SU :: Версия для печати :: Нужны советы php-программистов по построению структуры для CMS на файлах
Форумы портала PHP.SU » » CMS и фреймворки » Нужны советы php-программистов по построению структуры для CMS на файлах

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

1. alexlasto - 21 Августа, 2011 - 09:41:51 - перейти к сообщению
Хеллоу всем!

Хочу узнать мнения и советы по улучшению структуры самописного CMS на файлах.

На данный момент он таков:
в корне
- index.php (в нем же все функции движка)
- images (папка для всех изображений)
- content (для всех контентных файлов)
в папке content
-- about.txt (обычные файлы для страниц типа "О блоге", "Контакты")
-- namecat-1 (папка для файлов определенной категории 1)
-- namecat-2 (папка для файлов определенной категории 2)
в папке namecat-2 (для примера)
---- post-1.txt ( в каждой папке свои файлы с содержанием статьи )


Как это работает:
-- одна функция парсит обычные страницы (about.txt и др.),
-- другая функция парсит папки и выводит список категорий,
-- следующая - выводит превью всех статей в выбранной категории
-- последняя - выводит выводит весь пост полностью

Это при большом количестве файлов не будет тормозить (каждый раз открывать файл, читать...)?

Может все посты поместить в одной папке, а название категорий прописывать в самих файлах? Не понял

Может предложите свои варианты как реализовать все это?
2. КЫР - 21 Августа, 2011 - 09:46:12 - перейти к сообщению
alexlasto
делать cms с помощью файлов без бд - да вы еретик, батенька)
а как вы соотносите папку для категории с самой категорией?

первое, что бросается в глаза - отсутствие файла с конфигами. Их стоит отдельно вынести, чтобы не копаться в индексе в поисках нужного значения.
3. alexlasto - 21 Августа, 2011 - 13:03:19 - перейти к сообщению
От БД отказался, потому что нагружает хост и я планирую простую CMS без лишних наворотов. Очень будет удобен для ведения блога.

В папке категории создается спец файл, который содержит название категории.
4. White - 21 Августа, 2011 - 13:12:25 - перейти к сообщению
alexlasto пишет:
От БД отказался, потому что нагружает хост
бд работает быстрее и меньше нагружает хост, чем аналогичные действия на файлах + есть готовый интерфейс для хранилища.
5. alexlasto - 21 Августа, 2011 - 13:43:31 - перейти к сообщению
White пишет:
alexlasto пишет:
От БД отказался, потому что нагружает хост
бд работает быстрее и меньше нагружает хост, чем аналогичные действия на файлах + есть готовый интерфейс для хранилища.

Но ведь многие пишут: вот MySQL нагружает хостинг, может иногда "заглючить".

Кстати вот привожу цитату
Цитата:

Но "мускуль" - это типичное клиент-серверное приложение, и из этого вытекает его основной недостаток - он громоздкий! На мой взгляд, даже излишне громоздкий, когда речь идёт о чём-то простом и лёгком, вроде движка для простого блога.

Если вам доводилось переносить с одного хостинга на другой сайт, работающий с базой MySQL, уверен - вы вспомните, что это было непросто. Трудоёмкий бэкап и разворачивание, плюс постоянные проблемы с кодировками (возможно, в этом месте админы будут смеяться, но обычным пользователям не до смеху), этого уже достаточно, чтобы не питать особой любви к MySQL'ю. Конечно же, есть проекты, где без него просто не обойтись, но умоляю - для небольших блогов, да нет альтернативы?!


Есть конечно альтернатива SQLite, но я не так хорошо знаю как с ним пользоваться.
Если знаете, подскажите сайты, блоги или книги по SQLite
6. DeepVarvar - 21 Августа, 2011 - 14:07:18 - перейти к сообщению
alexlasto пишет:
MySQL нагружает хостинг
ну да, ну да....
По 200-250 запросов на страницу от эксклюзивного васи-прогера через циклы выборки вложенного меню..
7. White - 21 Августа, 2011 - 14:51:42 - перейти к сообщению
DeepVarvar а может подскажете почему такой код не работает
PHP:
скопировать код в буфер обмена
  1. <html>
  2. <head>
  3. <script language=php>
  4. $rows=array('name','id','login','password','email');
  5. foreach($rows as $row) {
  6.   for($i=0;$i<250;$i++) {
  7.     $res=mysql_query('SELECT '.$row.' FROM `user` WHERE `id`='.$i);
  8.     $result=mysql_fetch_array($res);
  9.     $user[$i][$row]=$result[$row];
  10.   }
  11. }
  12. </script>
  13. </head>

(Добавление)
мне кажется в 3 строке php надо брать в кавычки...
8. alexlasto - 21 Августа, 2011 - 15:12:02 - перейти к сообщению
DeepVarvar пишет:
alexlasto пишет:
MySQL нагружает хостинг
ну да, ну да....
По 200-250 запросов на страницу от эксклюзивного васи-прогера через циклы выборки вложенного меню..


Окей Радость

Понимаю, что меня ввели в заблуждение Закатив глазки
Тогда как вам SQLite? Пользовались ли им? Каково ваше мнение на счет его?
9. iflight - 23 Августа, 2011 - 12:25:41 - перейти к сообщению
А чем не жизнеспособна CMS без БД? Такие есть и будут, и имхо, в этом нет ничего страшного. Если например надо сделать визитку в пару страниц, то можно обойтись и хранением инфы в текстовиках.
alexlasto Мускул сейчас наиболее популярен и инфы море, только он потихонечку загибается, но загнется явно не скоро, я бы советовал начать с него, когда научитесь перепрыгнуть на любую другую будет не сложно.
White, DeepVarvar Не понял Ха-ха
10. morosit - 23 Августа, 2011 - 12:30:44 - перейти к сообщению
iflight пишет:
Если например надо сделать визитку в пару страниц, то можно обойтись
обойтись и без CMS
11. iflight - 23 Августа, 2011 - 12:33:38 - перейти к сообщению
morosit пишет:
iflight пишет:
Если например надо сделать визитку в пару страниц, то можно обойтись
обойтись и без CMS

Есть ситуации, когда надо ставить такого рода производство сайтов на поток, так логично бы было один раз написать простенькую CMS, а затем менять CSS файл + 2-3 txt с текстом, чем писать все заново или просто перековыривать исходники? Да и имея в наличии такую истему этим делом может заниматься человек, не знающий что такое php вообще..
12. DeepVarvar - 23 Августа, 2011 - 12:36:42 - перейти к сообщению
White
PHP:
скопировать код в буфер обмена
  1. <source lang="php">
  2. // синтаксис юми ЦМС
  3. </source>

Радость
13. morosit - 23 Августа, 2011 - 13:02:39 - перейти к сообщению
iflight если у вас 2 пхп файла, 2-3 текст, и 1 цсс. и вам нужно заменить все файлы кроме пхп - вам ненужно будет ни ЦМС, ни глубокие знания PHP.
14. iflight - 23 Августа, 2011 - 13:29:08 - перейти к сообщению
morosit
КМС - широкое понятие, мы просто разные вещи имеем ввиду видимо.. Два управляющих скрипта, база данных из текстовиков + возможность настройки внешнего вида - это уже впринципе CMS...
Я с вашей точкой зрения согласен, то что пользы от таких вещей не густо, но и исключать их не стоит (они есть, их много и ими пользуются).
15. Stierus - 14 Ноября, 2011 - 12:23:25 - перейти к сообщению
alexlasto, кешируйте структуру папок (что бы при каждом открытии дерева документов не просматривать всю структуру папок и документов). ГОрячий кэш и такая схема будет летать.

White пишет:
DeepVarvar а может подскажете почему такой код не работает
PHP:
скопировать код в буфер обмена
  1. <html>
  2. <head>
  3. <script language=php>
  4. $rows=array('name','id','login','password','email');
  5. foreach($rows as $row) {
  6.   for($i=0;$i<250;$i++) {
  7.     $res=mysql_query('SELECT '.$row.' FROM `user` WHERE `id`='.$i);
  8.     $result=mysql_fetch_array($res);
  9.     $user[$i][$row]=$result[$row];
  10.   }
  11. }
  12. </script>
  13. </head>



Эти 1250 запросов можно заменить одним ... надеюсь, этот код приведен для примера и нигде не используется?

 

Powered by ExBB FM 1.0 RC1