| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Общие вопросы > Ядро CMS |
| Автор: netmask 23.8.2009, 14:13 |
| Доброго времени суток, уважаемые программисты. Подскажите пожалуйста что представляет из себя ядро CMS (к примеру для варез-портала)? |
| Автор: pizzz 23.8.2009, 14:26 |
| Из самых самых часто используемых функций. Из диспечера запроса. Из обработчика ошибок. Вобще я свои системы строю примерно так. 1. Загружаеться конфиг. 2. Выполняеться диспетчер запроса. (Разбирает урл, и определяет какой модуль загрузить.) 3. Запрос заноситься в статистику. 4. Если есть кэшированая версия, и если отладка выключена выводиться кэш. 5. Загружаються самые частые библиотеки. 6. Загружаеться модуль. Что из этого ядро? Так вот, ядро это index.php который выполняет все выше перечисленное. (Все запросы кроме статики идут на index) Если есть вопросы, задавайте. P.s. Мне нравиться моя версия, я не говорю что она супер пупер правильная |
| Автор: Avrely 23.8.2009, 14:32 |
| Почитайте лучше о http://ru.wikipedia.org/wiki/MVC |
| Автор: fesor 23.8.2009, 14:54 |
| для меня ядро это все кроме самих приложений. Если уж брать мои наработки по этой части, то у меня происходт примерно так: Загружается базовый класс. Все загружается только по первому требованию. Первым делом система определяет что делать (загружается класс маршрутизатор). Затем маршрутизатор опредделяет приложение, которое надо, и идет загрузка конфигов приложения. Потом основываясь на конфигах этиъх система определяет что надо загружать (какой контроллер и какое действие). Затем система запрашивает у контроллера необходимые ему модели данных и загружает их. Ну а там уже если модели данных используют ActiveRecord или используют какие-то другие компоненты... то это уже дело функции autoload. Собственно все. В конце выводится шаблон страницы (только сли система не определила что это был XMLHttpRequest) В чем плюс? Вот надо тебе сделать допустим не обычный вывод комментов к новости, а дрревовидный. Тогда просто переделываешь модель comments и заменяешь соответстующий файл. Все. Системе пох что ты поменял что-то внутри модели. Минимум изменений так скажем. Но такой подход чуток больше ресурсов ест, хотя если сравнивать с WordPress то нормально. |
| Автор: SneG0K 24.8.2009, 12:10 |
| index.php |
| Автор: youri 25.8.2009, 12:31 |
а я думал все кроме модуля O_o Класс(ы) для работы с бд тоже к ядру не относишь, шаблонизатор (если такой есть)? |
| Автор: pizzz 25.8.2009, 12:45 |
| Классы для работы с БД, шаблонизатор, и т.д. это библиотеки, которые грузит сам модуль, или если они нужны часто то грузит ядро в автозагрузке |
| Автор: mexico 25.8.2009, 12:59 | ||||
отличный комментарий эксперта
Представляю себе сидит "система" зубочисткой ковыряется и так вальяжно а дайка мне эту модель или нет нет дайка вооонту fesor мне пришлось раз 10 перечитать что бы понять netmask короче все сводиться к одному, допустим на сайт поступает запрос http://сайт.ru/контролер/действие.php конечно все запросы с помощью .htaccess перенаправляются на любой файл но обычно это index.php лежащий в корне. - в index.php берем наш запрос "http://сайт.ru/контролер/действие.php" разбиваем на составляющие, - затем лично я через __autoload подключаю контроллер - в контролере включаю действие (если действий несколько истесно) Если использовать Модель_Представление_Контролер он же MVC то тут сложней для "Представления" необходим шаблонизатор а модель отвечает за реализацию классов тойсть всю муторную часть кода связную с базами данных, подсчетом и вычислениями. А если к тому же делать это с ООП то все усложняется еще на порядок, но если сайт большой а если темболее это CMS то все оправдуется. Все довольно абстрактно если хочешь разобраться с ядром что бы написать свою CMS то советую почитать http://framework.zend.com/manual/ru/ , а если конкретней по твоему вопросу то тут однозначного ответа нет т.к. разные цмски реализуют свои ядра по разному. |
| Автор: youri 25.8.2009, 13:05 |
| т.е. получается скрипт, который выполняет подготовительные мероприятия и есть ядро? И у ядра нету никакого API? Может у тебя просто ядра нету (не в обиду, возможно нормальный вариант)? Как ты отличаешь ядро от "неядра"? |
| Автор: mexico 25.8.2009, 13:36 |
| На мой взгляд такое понятие как "ядро" не существует, по крайней мере мне не приходилось о нем читать в учебниках. На практике же "модель" является единственным полноценным ООП классом. (хотя за такое я бы сам себя отпинал) но давайте топик о ядрах не превращать в обсуждение ооп концепции. youri - расскажи пару слов о реализации своего ядра и о его API плииз. |
| Автор: mexico 25.8.2009, 14:54 | ||||
| "а если mvc не использовать, то шаблонизатор не нужен?" -подразумеваю вопрос риторический то я как-то не понял откуда он родился у Вас? "Сложнее, потому что необходим шаблонизатор?" - и по этому тоже "Выше подразумевалось неиспользование mvc?" - проницательный аж страшно. http://ru.wikipedia.org/wiki/%D0%A8%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D1%8B_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F
если не модель то кто же? и при чем тут безболезненно изменить ? изменяйте сколько хотите на контролер и представление это не отразиться главное что бы выходящие данные были корректными. Или я чего то не понимаю? MVC есть 2-х видов (конечно же условно), 1 это так называемая "толстая" модель где и реализуется все все, контролер же сводиться к тому что просто вызывает методы модели. 2 это когда контролеры реализуют всю логику и вычисления а модель отвечает только за получение данных из хранилища и если вид хранилища поменялся то опять же вы исправляете только модель не затрагивая контролера.
я видимо до этого еще не дорос |
| Автор: youri 25.8.2009, 17:24 | ||||||||||||||
ну как же откуда:
еще возникает вопрос, php - шаблонизатор? Если нет, то разве нельзя обойтись php? То что, нужен отдельный шаблонизатор пока не общепринятое мнение
в таком случае ты непоследовательный. Помимо цитаты выше, еще пример:
p.s. просто ты пришел и с умный видом посмеялся над людьми, хотя твое описание не лучше, чем у других
ну в общем-то это не именно к mvc относится (mvc этот вопрос не затрагивает скорее) и какие плюсы/минусы у этих подходов?
бд, кэширование, маршрутизатор, шаблонизатор..., т.е. то, о чем пользователь сайта думать не должен |
| Автор: nerezus 25.8.2009, 21:44 | ||
Некоторые люди используют Smarty и ему подобные велосипеды библиотеки потому что им так удобнее. |
| Автор: netmask 25.8.2009, 22:51 |
| Спасибо за ответы. С ядром стало более менее понятно. Но появился еще один вопрос: Как реализовать модульную структуру CMS? Вынес в отдельную тему: http://forum.vingrad.ru/forum/act-ST/f-176/t-270753/unread-1.html |
| Автор: mexico 26.8.2009, 00:30 |
Модератор: Сообщение скрыто. |