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 :: Как сделать правильную CMS

 PHP.SU

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


 Страниц (8): [1] 2 3 4 5 6 7 8 »   

> Без описания
morph-x
Отправлено: 13 Ноября, 2011 - 01:58:49
Post Id



Гость


Покинул форум
Сообщений всего: 111
Дата рег-ции: Июнь 2011  


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




Привет всем! Недавно решил написать маленькую CMS. Да и вообщем, написал, но к сожалению в процедурном стиле. Решил переписать заново, но уже в объектно-ориентированном стиле. Посмотрел много уроков и статей и в результате запутался Улыбка . Какие классы должны быть? Видел, что используют Config и Db (extends Config) и уже от класса Db создают классы Page, User и т.д. Еще видел что создают один класс с именем CMS (или Main). В этом классе создают все функции (для соединения с БД, создания страниц, пользователей и т.д). Подскажите, пожалуйста, как правильнее делать? Какая структура, приблизительно, должна быть? Заранее большое спасибо!

(Отредактировано автором: 13 Ноября, 2011 - 01:59:33)

 
 Top
caballero
Отправлено: 13 Ноября, 2011 - 02:43:29
Post Id


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


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


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




Думаешь на пальцах можно рассказать как делать CMS? Тем более что делать можно стопицот разными способоми и наиболее правильного нет.
Берешь любую CMS или фреймворк и смотришь как сделано.


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
morph-x
Отправлено: 13 Ноября, 2011 - 02:47:15
Post Id



Гость


Покинул форум
Сообщений всего: 111
Дата рег-ции: Июнь 2011  


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




Смотрел пару CMS, но там был процедурный стиль, а мне нужен объектно-ориентированный. Если можете, подскажите, пожалуйста, CMS на ООП.
 
 Top
caballero
Отправлено: 13 Ноября, 2011 - 02:52:51
Post Id


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


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


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




Не знаю что вы там смотрели
все современные на ООП

CodeIngiter - самый простой
Zend сложный но от разрабтчиков PHP


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
morph-x
Отправлено: 13 Ноября, 2011 - 02:57:10
Post Id



Гость


Покинул форум
Сообщений всего: 111
Дата рег-ции: Июнь 2011  


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




Я имел ввиду именно CMS, а не фреймворки... но посмотрю тогда CodeIgniter. Спасибо!
 
 Top
vert4
Отправлено: 14 Ноября, 2011 - 15:09:31
Post Id


Новичок


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


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




Сам то же изобретаю свою CMS. Советую присмотреться к shopcms.
 
 Top
morph-x
Отправлено: 14 Ноября, 2011 - 22:44:34
Post Id



Гость


Покинул форум
Сообщений всего: 111
Дата рег-ции: Июнь 2011  


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




Я решил использовать паттерн ActiveRecord. И тут появилась одна проблема: как вывести список страниц? Т.е. у меня есть класс Page, и одна страница = один экземпляр класса Page. При создании страницы (экземпляра класса Page) в скобках указывается Id страницы, и если оно указано, то данные подгружаются из БД, а если нет, то создается как бы новая страница. А как при этом правильно организовать вывод всех страниц сайта (не перечисляя все страницы вручную) ?
 
 Top
caballero
Отправлено: 14 Ноября, 2011 - 23:06:22
Post Id


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


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


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




ActiveRecord работает со строкой(record) в таблице БД. При чем тут разбивка на страницы и прочее.У вас страница в одной строке?

(Отредактировано автором: 14 Ноября, 2011 - 23:11:29)



-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
morph-x
Отправлено: 14 Ноября, 2011 - 23:58:59
Post Id



Гость


Покинул форум
Сообщений всего: 111
Дата рег-ции: Июнь 2011  


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




Да, одна страница в одной записи БД. И разбивка на страницы тут не причем. Здесь дело в получении списка страниц. Допустим, мы создали экземпляр класса Page (страницу) с Id = 10, при этом в наш экземпляр загружает страницу из БД. Затем нам нужно получить все ее дочерние страницы. Как это правильно сделать? Делать метод get_childrens в классе Page, по-моему, не правильно. Вот я и спрашиваю, как правильно.
 
 Top
caballero
Отправлено: 15 Ноября, 2011 - 00:28:26
Post Id


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


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


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




Цитата:
Затем нам нужно получить все ее дочерние страницы

создать соответствующие экземпляры ActiveRecord разумеется


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
morph-x
Отправлено: 15 Ноября, 2011 - 00:41:04
Post Id



Гость


Покинул форум
Сообщений всего: 111
Дата рег-ции: Июнь 2011  


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




caballero пишет:
создать соответствующие экземпляры ActiveRecord разумеется

Это понятно. Мне интересно как получить список Id дочерних страниц. Здесь нужен метод типа:

PHP:
скопировать код в буфер обмена
  1. function static название_метода($parentId) {
  2.    // Получаем список Id страниц с parentId = {$parentId}
  3.    // Возвращаем этот список Id
  4. }


Если я правильно понимаю, в соответствии с паттерном ActiveRecord, в классе Page должны быть методы для обработки только экземпляра класса, и не содержать статических полей и методов. Тогда в какой класс запихнуть этот метод?
 
 Top
caballero
Отправлено: 15 Ноября, 2011 - 01:36:16
Post Id


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


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


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




Вы все равно не обойдетесь активрекордами для работы с базой - как минимум придется писать запросы сложнее чем запрос на одну строку одной таблицы Так что классы кроме активрекорда писать все равно придется.
выбираете строки и создаете экземпляры активрекорд.
Либо придется писать уже что то ближе к ORM. Но тогда есть смысл взять готовый (впрочем как и реализацию активрекорда).

Паттерны выглядят правильно и логично только в теории.

Работайте с базой как обычно и не мучайтесь. Лично мне библиотеки типа ADODB хватает с избытком.


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
morph-x
Отправлено: 18 Ноября, 2011 - 19:02:16
Post Id



Гость


Покинул форум
Сообщений всего: 111
Дата рег-ции: Июнь 2011  


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




caballero пишет:
Паттерны выглядят правильно и логично только в теории.

Да вы правы, на практике не все так логично как кажется... И я уже передумал насчет ActiveRecord Улыбка

У меня появился еще один вопрос: хорошо ли юзать абстрактный (или синглтон) класс для работы со страницами? Это как бы самый подходящий вариант получается, но тогда получается классов больше чем объектов, и мне интересно будет ли это еще считаться нормальным ООП или это уже не то?
 
 Top
DeepVarvar Супермодератор
Отправлено: 18 Ноября, 2011 - 19:20:42
Post Id



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


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


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




morph-x пишет:
классов больше чем объектов
Разве это важно? Это из разряда: ф-ций больше чем массивов...
 
 Top
caballero
Отправлено: 18 Ноября, 2011 - 19:33:34
Post Id


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


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


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




Цитата:
хорошо ли юзать абстрактный (или синглтон) класс для работы со страницами

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

Просто делайте сайт а не пытайтесь применить что то лишь бы применить. Особенно когда не понимаете что это и зачем.

Как говорил таксист из анекдота - тебе ехать или шашечки?


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
Страниц (8): [1] 2 3 4 5 6 7 8 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Объектно-ориентированное программирование »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB