Кто писал свою CMS - есть вопрос

Savio

Новичок
Кто писал свою CMS - есть вопрос

Здравствуйте уважаемые програмисты!
Пишу свою CMS.

На данный момент много не написано. Есть сам "склет" CMS. Модули лежат каждый в своем файле, использую глобальные переменные, сесии, функции.

Возникает вопрос,
писать на ООП или нету никакого смысла. Или же для даной задачи хватит функций?

Просьба отвечать тем, кому данный вопрос не чужд. От высказывань разного рода "я не знаю но дума..." прошу воздержаться
 

master_x

Pitavale XXI wieku
Savio
неохота все пересказывать сначала, если умный, то поймешь, пойди поищи по форуму, была тема в оффтопике про ООП, даже автора помню Toxic-cat, там все разжевали.
PS: если бы ты знал ООП, то не задавал бы этот вопрос.
 

white phoenix

Новичок
Savio
Я писал свою CMS, и не одну. Советую начать с того что напиши "ядро", его основа у меня 5 кб занимает. Советую сделать (потом будет удобнее) в .htaccess:
RewriteEngine On
RewriteRule .* srv.php
Т.е. перенаправление всего вся на srv.php, а srv.php уже делает инициализационные вызовы и в зависимости от REQUEST_URI подключает нужный файл (как правило index.php, за некоторыми исключениями), index.php подключает system.php, нужные пакеты классов/функций из папки kernel, указывает сессию и т.д. system.php производит дополнительные операции с настройками (set_time_limit, set_magic_quotes_runtime и т.д.), вторично парсит REQUEST_URI (без параметров). ну а далее идет подключение ./themes/__style__/index.php и понеслось подключение модулей которые всем заправляют.
 

white phoenix

Новичок
master_x
Если он задает такой вопрос значит у него скорее всего скелет плохой.
 

Renny

Новичок
Писать ли на ООП решает каждый самостоятельно, и зависит от целей и задач. Если твоя CMS будет только управлять текстовыми страницами, и не обладать мощным функционалом, то думаю никакого ООП тебе не понадобиться.
 

master_x

Pitavale XXI wieku
Renny
ООП- не антиматерия :) Даже для "мощного" движка хватает структурного программирования.
 

Renny

Новичок
А я что-то иное утверждал? Я сам ООП использую очень редко.
 

Savio

Новичок
Спасибо за ответы. Да, что касается ООП - так я действительно его не знаю. Ну просто никогда небыло необходимости в ООП. Читал о нем но практически как то не сложылось учить и использовать. А почему я спрашиваю, да просто друг у меня большой любитель ООП. Говорит что такие вещи как CMS нада писать на ООП. А я вот пишу все модули с использованием функций, и думаю, может зря пишу, ООП я же незнаю, а может действительно нужно на ООП. Вот потому и задал такой вопрос. А что касается плохой "склет" то думаю поживем увидим :)
 

Vladson

Сильнобухер
Savio
Cначала разберись что такое ООП и чем оно может помочь именно в твоём случае, и тогда вопрос о том использовать его или не отпадёт сам собой.

>>> может действительно нужно на ООП
Без него можно обойтись и какой-то реальной необходимости в нём нету...
 

crocodile2u

http://vbolshov.org.ru
Без него можно обойтись и какой-то реальной необходимости в нём нету...
Я бы добавил: ... если ты не считаешь, что ООП тебе необходим.

Правда, так может считать только человек, который как минимум на хорошем уровне знает и объектно-, и процедурно-ориентированный подход.
 

Alesto

Новичок
Честно говоря, несовсем понимаю суть споров об ООП и процедурном программировании (нет, конечно, понимаю, но не считаю целесообразном).

В своих проектах использую ООП для описания ядра, модулей, etc… Процедурное для вызова всего этого и формирования окончательного документа. Ну а в АОП только начинаю разбираться :).
 

Royal Flash

-=MaestrO=-
Savio
Варианты многофункциональных CMS на ООП имеют весьма существенные недостакоки в использовании серверных ресурсов и скорости работы, по сравнению со своими аналогами без него.
ООП подходит для написания CMS коммандой программистов. Одиночке лучше его не использовать.
 

440hz

php.ru
Re: Кто писал свою CMS - есть вопрос

Автор оригинала: Savio
Здравствуйте уважаемые програмисты!
Пишу свою CMS.
пришел к выводу, что нужно иметь "ядро", а все остальное пишется каждый раз под конкретную задачу ибо объять все невозможно..

"ядро" умеет:
- авторизация, распределение: пользователь, группы, права
- многоязычность
- управление буферами вывода
- простые "быстрые" шаблоны

как пример можно посмотреть старые исходники и посмотреть как примерно работает
 

Savio

Новичок
Я что-то немаогу понять как у Вас 440hz это все работает. Ну вот создал групу, создал пользователя, создал с десяток прав доступа, ну назначил несколько прав доступа созданому юзеру. А как потом все это реализуется?

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

440hz

php.ru
Savio
дальше ручками ... ручками ... на той странице, где рулим доступ пишем

/adm/start.inc
PHP:
OOPSAuth("Access2Adm");
и этот каталог и нижеследующие проходят проверку на это право.

грубо говоря каждый скрипт знает в каждый момент какой юзер его испльзует и какие права у данного юзера есть. фичей является то, что права на дирктории "наследуются". т.е. если кто-то запросит /adm/users/editr/, то он пройдет проверку в start.inc файлах всех этих директорий.

я как-то отошел от "динамического" создания страниц и дальнейшего их разруливания через index.php?call=news. я делаю каталог /news/ и там все, что для данной опрерации надо, описываю. права, необходимый функции и т.д. ничего лишнего. остальное "ядро" ему предоставит.

p.s. там include_path не стандартный. include_once('start.inc'); делает вызов и каталога /oops/. далее этот самый start.inc все включает, что надо
 

Popoff

popoff.donetsk.ua
Savio
Если ты еще не изучил ООП, то пиши с использованием ООП, чтобы изучить.

А по существу - не имеет значения, на РНР можно писать большие, мощные и гибкие системы без использования ООП. Вот пример:
http://popoff.donetsk.ua/light
В целом, все, что есть на моем сайте, написано без объектов.

-~{}~ 25.12.05 15:04:

На примерчике можете показать как это все реализуется.
Если быть точным то хочу узнать ваш алгоритм пользователь, права. Посколько все изменяется динамически (тоесть можна в любой момент добавить какое хочу правило), мне не понятно что с ним дальше делать.
http://popoff.donetsk.ua/text/work/libs/passport/admin
 

440hz

php.ru
Popoff
1. AJAX сам рулил?
2. зачет. мне понравилось при первом взгляде. на днях поизучаю основательно.

p.s. эк. жаль ты в UA. я бы тебя к себе взял на 1000$ стартовую в Питер.
 

Demetrius

Новичок
А я опытным путём пришёл к тому, что очень удобно иметь шаблонную _физическую_ структуру "под себя", и к ней потом всё прикручивать.
Я себе сделал скрипт по имени "includes/index.php", который прочёсывает всю директорию инклюдов (с поддиректориям) и включает все .php, которые находит, а также дописывает в массивы конфигураций и сообщений (многоязычных) сайта инфу из соотв. найденных файлов. А корневой index.php занимается распределениями, языками и т.п. Таким образом, физическая структура сайта прозрачна донельзя.
В отличие от Феникса, я предпочитаю писать более подробные mod_rewrite-инструкции для разных разделов, в зависимости от их (разделов) структуры интерфейса, и туда же кладу хитрый 404.
А что в модулях написано, ООП или просто П, - зависит от специфики задачи, которую решает скрипт. Это может быть как просто библиотека полезных функций на какую-то тему, так и полноценный модуль в отдельной папке со своими конфигами и набором сообщений, и кучей файлов - отдельно для функций работы с БД, для генерации XML и чего угодно ещё.
Имхо, очень удобно.
Короче говоря, по теме CMS мне кажется гораздо более актуальным вопрос физической организации и удобства апгрейда, чем вечная дилемма ООП против процедур. Да, и ещё никак нельзя забывать древовидную структуру и т.п., а то расстановка сил нечестная получается. :)
 
Сверху