За последние 24 часа нас посетил 54321 программист и 1776 роботов. Сейчас ищут 984 программиста ...

Понятие модуль и библиотека в PHP

Тема в разделе "PHP для новичков", создана пользователем super-php, 16 мар 2013.

  1. super-php

    super-php Активный пользователь

    С нами с:
    8 мар 2013
    Сообщения:
    35
    Симпатии:
    0
    Объясните, что такое модуль и что такое библиотека в PHP и в чем отличие, в двух словах. Спасибо
     
  2. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    библиотека это набор функций и/или классов. не обязательно знать исходный код библиотеки но нужно знать ее интерфейс. например mysqli (расширение) это фактически библиотека функций. вы не знаете что там и на каком языке написано, как работает. но вы знаете что mysqli_connect открывает соединение с БД, mysqli_query выполняет запрос и так далее и, используете этот функционал в своем проекте.

    модуль это некоторый алгоритм, который работает в каком-то окружении (cms/cmf/"движок") и выполняет какой-то кусок возложенных на него обязанностей. фактически "движок" для модуля превращается в одну большую библиотеку. можно написать 100 файлов с одинаковыми кусками кода и небольшим отличием, а можно все одинаковое вынести в общий код (cms/cmf/"движок"), а уникальный алгоритм останется содержимым модуля.

    примерно так.
     
  3. super-php

    super-php Активный пользователь

    С нами с:
    8 мар 2013
    Сообщения:
    35
    Симпатии:
    0
    http://ru.wikipedia.org/wiki/Модуль

    ТУт написано так:

    Код (Text):
    1. Модуль (программирование) — функционально законченный фрагмент программы, оформленный в виде отдельного файла с исходным кодом или поименованной непрерывной её части.
    Получается например файл index.php - это модуль согласно википедии и одновременно и скрипт согласно ПХП и может быть одновременно и библиотекой(если в нем написать кучу функций)?
     
  4. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    любой файл с содержимым php это скрипт, интерпретируемый пхп-машиной.

    что в вашем примере делает индекс пхп?
    если через уйму эхо выводит какую-то фигню типа хеллоу ворлд то это скрипт.
    если подключает точку входа в "движок" и строит страницу - это модуль [стартовой страницы].
    если это точка входа в "движок" то он загружает, объявляет и инициализирует объекты.
    если это библиотека то она не должна содержать другого кода кроме определения классов/функций/констант/переменных так как не имеет смысла ради "стрима" компилировать уйму кода. но есть исключения - стенделоны, эмбедеты и тому подобное - файл содержит некоторый модуль и определение всех классов/функций/констант/переменных для своей работы. подобный файл применим только для самостоятельного исполнения ибо попытка его проинклюдить приведет к выполнению содержащегося в нем "стрима". при этом поскольку он несет все в себе то он не зависит от других файлов проекта.
     
  5. super-php

    super-php Активный пользователь

    С нами с:
    8 мар 2013
    Сообщения:
    35
    Симпатии:
    0
    MySQl можно назвать модулем или библиотекой?
     
  6. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    mysql это система управления базами данных - субд. mysql которое расширение для пхп это библиотека. она содержит функции которые вы используете в своем коде. но сама она написана на C, а не на пхп.
    другой вам пример - PECL - библиотека расширений пхп. там тоже библиотеки выкладываются. только все они на пхп написаны и их можно не только процедурно использовать, но и без труда расширять.
     
  7. super-php

    super-php Активный пользователь

    С нами с:
    8 мар 2013
    Сообщения:
    35
    Симпатии:
    0
    модуль - это набор функций, библиотека - это набор модулей? любая библиотека содержит модули - подключаемые файлы в эту библиотеку в обязательном порядке?
     
  8. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    нет же...
    вот есть модуль новостей для какого-нибудь друпала. это просто скрипт. он и сам бы мог подключаться к базе и заполнять шаблон. но он использует функциональные возможности друпала. для него друпал это библиотека. без друпала - этот модуль просто набор неясных инструкций.
    набор модулей это несколько файлов. набор функций это библиотека.
     
  9. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Друпа - это библиотека, да. Фреймворк даже. В Друпале есть модуль новостей. Он может использовать стороннюю библиотеку. Библиотека может быть разбита на модули...

    Модуль это абстрактное понятие. Совокупность методов, объединенная по некому признаку. Это субъективный критерий.

    не парьте себе голову =)