За последние 24 часа нас посетили 22845 программистов и 1272 робота. Сейчас ищут 822 программиста ...

Ядро сайта - что это?

Тема в разделе "PHP для новичков", создана пользователем Johnson, 14 мар 2009.

  1. Johnson

    Johnson Активный пользователь

    С нами с:
    14 мар 2009
    Сообщения:
    36
    Симпатии:
    0
    Простите за нескромный вопрос!
    Дело в том, что у меня уже есть небольшой опыт работы с php и базами данных, но вот до сих пор не понял что же означает - "Ядро сайта" (или как его по другому называют - движок).

    Свой первый сайт, простой, я написал на классах, без авторизации - просто сайт - данные в базе, скипты их вытаскивают, сортируют и показывают. Много говорится о движках, о ядре:

    "Я написал ядро, теперь буду создавать к нему модули!"

    Так что такое ядро? Пожалуйста, разъясните кто знает!
     
  2. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    Движок = CMS -- код, который обрабатывает запросы и на их основе выдает данные.
     
  3. Hight

    Hight Старожил
    Команда форума Модератор

    С нами с:
    5 мар 2006
    Сообщения:
    7.153
    Симпатии:
    0
    Адрес:
    из злой параллельной вселенной
    Движок - это архитектура :)

    Структура каталогов, классы, функции и прочее.
     
  4. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    Куча бессонных ночей и море выпитого пива? =)
     
  5. Hight

    Hight Старожил
    Команда форума Модератор

    С нами с:
    5 мар 2006
    Сообщения:
    7.153
    Симпатии:
    0
    Адрес:
    из злой параллельной вселенной
    Под пиво не прёт... Под пиво только CS ;)
     
  6. Johnson

    Johnson Активный пользователь

    С нами с:
    14 мар 2009
    Сообщения:
    36
    Симпатии:
    0
    Понятие движок - я примерно себе представляю. А вот как оно работает... пытаюсь разобраться.

    Как я понимаю ядро - это совокупность каких-то основных частей программы.
    А вот какие именно части должны составлять - вот вопрос.
     
  7. Johnson

    Johnson Активный пользователь

    С нами с:
    14 мар 2009
    Сообщения:
    36
    Симпатии:
    0
    Господа! Может у кого есть ссылки, как правильно строить ядро сайта на классах.
    Будте добры - киньте пожалуйста!!!
     
  8. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.553
    Симпатии:
    631
    Johnson
    О ядре есть смысл говорить, если cms - модульная. Ядро модульной cms состоит главным образом из функций, создающих API. Например:
    PHP:
    1. <?php
    2. class core () {
    3. ...
    4.      public function select ($table, $cols, $where = false) {
    5.           $query = 'SELECT ('.implode($cols,',').') FROM '.$table;
    6.           if ($where) {
    7.                $query .= ' WHERE ('.implode($where,',').')';
    8.           }
    9.           return mysql_query($query);
    10.      }
    11. ...
    12.  
    Кроме того, в модульной cms не обойтись без шаблонов.
     
  9. Johnson

    Johnson Активный пользователь

    С нами с:
    14 мар 2009
    Сообщения:
    36
    Симпатии:
    0
    Спасибо! Ваш ответ наиболее близок к тому что я пытаюсь узнать.
    Пожалуйста, можно поподробнее!!!
     
  10. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
  11. Johnson

    Johnson Активный пользователь

    С нами с:
    14 мар 2009
    Сообщения:
    36
    Симпатии:
    0
    Спасибо! Нашел много полезного!
     
  12. Johnson

    Johnson Активный пользователь

    С нами с:
    14 мар 2009
    Сообщения:
    36
    Симпатии:
    0
    Ещё один вопрос:
    Из каких классов нужно составить ядро?
    Один из них - соединение с дазой данных... а дальше?
     
  13. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    Его можно и без классов состоявлять
     
  14. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    а дальше отсоединение.
     
  15. Johnson

    Johnson Активный пользователь

    С нами с:
    14 мар 2009
    Сообщения:
    36
    Симпатии:
    0
    Очень смешно! Ставим вопрос по другому:
    Кроме класса базы данных что можно включить в ядро?
     
  16. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
  17. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда

    правильно. дай мне описание твоего понимания ядра и тогда ОТ ЭТОГО ОПРЕДЕЛЕНИЯ будем рассуждать про классы, функции и т.д.

    потому, что работа с базой может быть как модуль и к ядру не иметь никакого отношения.
     
  18. akrinel

    akrinel Активный пользователь

    С нами с:
    26 янв 2009
    Сообщения:
    955
    Симпатии:
    1
    Адрес:
    Spb
    ИМХО ядро это как минимум:

    0. Класс/набор функций, который в зависимости от запроса подгружает те или иные модули, собирает от них данные, вызывает шаблон, отдает данные пользователю и т.д.
    В принципе этим можно и ограничится. Для меня в понятие ядро еще входит:

    1. Класс для работы с БД.

    2. Пользователи:
    а) Создание, редактирование данных, удаление.
    б) Сеансы пользователей

    3. Классы для работы с мультиязычностью.

    4. Класс для обработки кэша

    5. Класс разных полезностей для вывода (Простенькие склонения слов а-ля (один ответа, 115 ответов); и т.д.).

    и другая ерунда, которую я сейчас не могу вспомнить.


    А вообще ядро это какая-то абстрактная вещь, как тебе будет про него удобнее думать, то и есть ядро :)
     
  19. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    akrinel

    я бы не скатывался с уровня абстракции до классов и т.д. это уже уровень реализации, а мы сейчас говорим об архитектуре.

    ядро должно обеспечивать?
    1. сессии (слежение за сеансом)
    2. многопользовательность
    3. многоязычность? оно надо?
    4. удобство разработки (autoload, шаблонизатор и т.д.)
    5. модульность (возможность подключить модуль на различные уровни), т.е. API модулей
    6. база?

    и так? кто что как?
     
  20. akrinel

    akrinel Активный пользователь

    С нами с:
    26 янв 2009
    Сообщения:
    955
    Симпатии:
    1
    Адрес:
    Spb
    Да согласен.

    Ну в наш Век глобализации думаю не помешает. Большинство клиентов хотят сайты, как минимум русско-английские.

    Мне очень сложно придумать модуль которому бы помешало использование базы данных. Все фотогалереи, каталоги, магазины, новостные ленты, гостевые книги и поиски на мой взгляд гораздо удобнее разрабатывать с БД, а не на файлах.
    Так что (ИМХО) функционал для работы с БД должен быть в ядре.

    К этому списку я бы еще добавил:
    7. Сам процесс обработки сеанса (разбор URL, подгрузка модулей необходимых для отдачи данных клиенту, вызов шаблонизатора при необходимости, проверка прав доступа к разделу и т.д.).
     
  21. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    Ядро -- это API с контроллером. ИМХО.
     
  22. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    брат, откуда такая феня?
     
  23. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    эх... :(
     
  24. kostyl

    kostyl Guest

    Помоему пример в пункте 5 дожен быть методом пункта 3


    Я тоже думаю, что движок - это не набор классов, а некоторый набор основных функций модели сайта, которые, как говорит 440Hz, это ядро обеспечивает. Его можно реализовать и классами и не классами, как угодно...
     
  25. akrinel

    akrinel Активный пользователь

    С нами с:
    26 янв 2009
    Сообщения:
    955
    Симпатии:
    1
    Адрес:
    Spb
    Ну я привык к классам поэтому назвал их классами, безусловно это могут быть и наборы функций и просто единая "простыня" кода.