Простите за нескромный вопрос! Дело в том, что у меня уже есть небольшой опыт работы с php и базами данных, но вот до сих пор не понял что же означает - "Ядро сайта" (или как его по другому называют - движок). Свой первый сайт, простой, я написал на классах, без авторизации - просто сайт - данные в базе, скипты их вытаскивают, сортируют и показывают. Много говорится о движках, о ядре: "Я написал ядро, теперь буду создавать к нему модули!" Так что такое ядро? Пожалуйста, разъясните кто знает!
Понятие движок - я примерно себе представляю. А вот как оно работает... пытаюсь разобраться. Как я понимаю ядро - это совокупность каких-то основных частей программы. А вот какие именно части должны составлять - вот вопрос.
Господа! Может у кого есть ссылки, как правильно строить ядро сайта на классах. Будте добры - киньте пожалуйста!!!
Johnson О ядре есть смысл говорить, если cms - модульная. Ядро модульной cms состоит главным образом из функций, создающих API. Например: PHP: <?php class core () { ... public function select ($table, $cols, $where = false) { $query = 'SELECT ('.implode($cols,',').') FROM '.$table; if ($where) { $query .= ' WHERE ('.implode($where,',').')'; } return mysql_query($query); } ... Кроме того, в модульной cms не обойтись без шаблонов.
Ещё один вопрос: Из каких классов нужно составить ядро? Один из них - соединение с дазой данных... а дальше?
правильно. дай мне описание твоего понимания ядра и тогда ОТ ЭТОГО ОПРЕДЕЛЕНИЯ будем рассуждать про классы, функции и т.д. потому, что работа с базой может быть как модуль и к ядру не иметь никакого отношения.
ИМХО ядро это как минимум: 0. Класс/набор функций, который в зависимости от запроса подгружает те или иные модули, собирает от них данные, вызывает шаблон, отдает данные пользователю и т.д. В принципе этим можно и ограничится. Для меня в понятие ядро еще входит: 1. Класс для работы с БД. 2. Пользователи: а) Создание, редактирование данных, удаление. б) Сеансы пользователей 3. Классы для работы с мультиязычностью. 4. Класс для обработки кэша 5. Класс разных полезностей для вывода (Простенькие склонения слов а-ля (один ответа, 115 ответов); и т.д.). и другая ерунда, которую я сейчас не могу вспомнить. А вообще ядро это какая-то абстрактная вещь, как тебе будет про него удобнее думать, то и есть ядро
akrinel я бы не скатывался с уровня абстракции до классов и т.д. это уже уровень реализации, а мы сейчас говорим об архитектуре. ядро должно обеспечивать? 1. сессии (слежение за сеансом) 2. многопользовательность 3. многоязычность? оно надо? 4. удобство разработки (autoload, шаблонизатор и т.д.) 5. модульность (возможность подключить модуль на различные уровни), т.е. API модулей 6. база? и так? кто что как?
Да согласен. Ну в наш Век глобализации думаю не помешает. Большинство клиентов хотят сайты, как минимум русско-английские. Мне очень сложно придумать модуль которому бы помешало использование базы данных. Все фотогалереи, каталоги, магазины, новостные ленты, гостевые книги и поиски на мой взгляд гораздо удобнее разрабатывать с БД, а не на файлах. Так что (ИМХО) функционал для работы с БД должен быть в ядре. К этому списку я бы еще добавил: 7. Сам процесс обработки сеанса (разбор URL, подгрузка модулей необходимых для отдачи данных клиенту, вызов шаблонизатора при необходимости, проверка прав доступа к разделу и т.д.).
Помоему пример в пункте 5 дожен быть методом пункта 3 Я тоже думаю, что движок - это не набор классов, а некоторый набор основных функций модели сайта, которые, как говорит 440Hz, это ядро обеспечивает. Его можно реализовать и классами и не классами, как угодно...
Ну я привык к классам поэтому назвал их классами, безусловно это могут быть и наборы функций и просто единая "простыня" кода.