Как подключить библиотеку в PHP. Простой путь
Библиотека — это программный код, оформленный в виде отдельного компонента, который используют для решения изолированной задачи.
Назначение библиотек
Уровень разработчика определяется не только знанием языка, но и умением искать и выбирать подходящие инструменты для решения задачи. Если есть возможность использовать качественное готовое решение, то это лучший выбор.
Готовые решения помогают писать меньше кода и сосредоточиться на предметной области проекта. Большинство библиотек свободно распространяются в интернете и доступны для бесплатного использования.
Обычно библиотека — это набор PHP-сценариев, запакованных в архив. При установке файлы распаковываются из архива в определённую папку внутри вашего проекта. Как правило, один проект использует несколько библиотек.
Когда использовать библиотеку
Готовые решения используют для упрощения работы с базовыми операциями, которые часто встречаются в любом веб-проекте.
Примеры: отправка сообщений электронной почты, валидация форм, работа с графикой, изменение размера изображений, работа с архивами.
Библиотеки не заменят весь код проекта, но помогут в большой части рутинных действий.
При выборе библиотеки обратите внимание на наличие качественной документации. Она описывает возможности библиотеки и способы её использования. Если документация неполная, устаревшая или отсутствует, то использовать эту библиотеку будет очень сложно. Придётся самостоятельно разбираться в её исходном коде.
Второе важное качество библиотеки — это частота её использования другими программистами. Как узнать этот показатель? Можно ориентироваться на количество звёзд на GitHub, количество результатов при поиске или данные сервиса Google Trends.
Почему это важно? Чем больше у библиотеки пользователей, тем проще будет найти ответ в затруднительной ситуации или разобраться в особенностях использования.
Последний критерий, определяющий правильный выбор библиотеки — это набор предлагаемых возможностей. Для решения одной задачи существует несколько библиотек-конкурентов. И отличаются они не только документацией и пользовательской базой, но и общей функциональностью. Чтобы не забивать гвозди микроскопом, постарайтесь определить, не будет ли выбранное решение слишком громоздким для задачи. Если это так, то лучше найти более простое решение.
Пример подключения и использования библиотеки
Работа с библиотекой состоит из трёх шагов:
- установка
- подключение
- использование
Всё просто: нужно зайти на сайт с библиотекой, скачать архив и распаковать его в папку с PHP-сценариями.
Затем необходимо подключить сценарии с классами библиотеки. Далее в коде происходит создание новых объектов этих классов и вызов их методов. Такая процедура работы типична для любой библиотеки.
Зависимости библиотеки
Мы используем библиотеки, чтобы писать меньше кода и сосредоточиться на главном. Ирония в том, что авторы библиотек поступают точно так же. В коде библиотек они сами используют другие библиотеки для облегчения своей работы.
Вот пример: мы скачали библиотеку «А», а она, в свою очередь, использует библиотеку «Б». При этом код библиотеки «Б» мы не загружали и не устанавливали. Тогда библиотекой «А» воспользоваться не получится, потому что она не будет работать, пока дополнительно не будет установлена библиотека «Б». Такие отношения между библиотеками называются зависимостями.
Всё ещё больше усложняется, когда зависимость включает не только название библиотеки, но и конкретную версию.
«Доктайп» — журнал о фронтенде. Читайте, слушайте и учитесь с нами.
Как подключить библиотеку к php?
Нигде не могу найти инструкций по подключению такой большой библиотеки как phpfunct/funct. Скинули ссылку на гитхаб, там лежит папка, в которой очень много файлов, как их подключить одновременно?
- Вопрос задан более трёх лет назад
- 2790 просмотров
Комментировать
Решения вопроса 1
Front-end разработчик
Ответ написан более трёх лет назад
Нравится 2 2 комментария
Mopaa @Mopaa Автор вопроса
Спасибо, уже гуглю =)

2k18, некоторые PHP-программисты до сих пор не знают, что такое Composer. 🙂
Обязательно изучите этот инструмент, его появление было по своему для PHP революционным, я был ошарашен, когда узнал о его существовании и его возможностях в плане удобства.
Ответы на вопрос 1
Так там же все написано, как устанавливать и использовать.
Через композер установка, через пространство имен подключаете в нужном месте и используете.
Ответ написан более трёх лет назад
Комментировать
Нравится 1 Комментировать
Ваш ответ на вопрос
Войдите, чтобы написать ответ

- PHP
- +2 ещё
Как вывести полное описание товара в категории Woocommerce?
- 1 подписчик
- 9 часов назад
- 17 просмотров
Как подключить дополнительные библиотеки к PHP скриптам
Всем известно, что в стандартный дистрибутив PHP входит очень неплохая коллекция библиотек. Но, тем не менее, постоянно встречаются ситуации, в которых хотелось бы её расширить. Поэтому в процессе разработки часто возникает необходимость в установке дополнительных библиотек. В этой статье я расскажу о способах подключения внешних библиотек PHP.
На сегодняшний день разработаны тысячи библиотек, ориентированных на различные области применения. Кроме того, вполне возможно, что существующие решения по каким-то причинам вам не подойдут, и вы захотите создать свою собственную библиотеку. В любом случае, вам понадобиться подключить эту библиотеку к своему проекту.
Существуют три основных способа подключения дополнительных библиотек.
Первый способ основан на том, что любая PHP библиотека – это набор PHP скриптов, которые можно использовать точно также как и любые другие скрипты. Т.е. скопировать в папку с проектом и по мере необходимости подключать с помощью операторов include или require . При этом нужно помнить, что структура каталогов самой библиотеки должна оставаться постоянной. Этот способ удобен, если вы хотите распространять файлы библиотеки вместе с вашим проектом (вопросы соблюдения авторских прав остаются на вашей совести).
Второй способ предполагает использование одной и той же копии библиотеки несколькими проектами. В этом случае взаимное размещение библиотеки и вашего проекта заранее неизвестно. Для того чтобы сделать библиотеку доступной, необходимо указать её размещение в файле php.ini с помощью параметра include_path .
Рассмотрим пример. Допустим, мы хотим сделать доступной библиотеку simpletest (используется для модульного тестирования).
Архив с библиотекой мы распаковали в папку C:\simpletest_php. Т.е. файлы библиотеки размещены следующим образом:
C:\simpletest_php\simpletest\файлы библиотеки
После этого в файле php.ini (он расположен в папке с PHP) ищем параметр include_path , и указываем размещение библиотеки.
include_path=»…;C:\simpletest_php;…»
Вместо троеточий у вас буду указаны папки с другими библиотеками. Если перед параметром стоит точка с запятой (превращает строку в комментарий) уберите её. Учтите, что параметр include_path может быть создан автоматически, например, менеджером пакетов PEAR. В этом случае просто добавляйте через точку с запятой размещения ваших библиотек.
Использовать подключённую библиотеку можно следующим образом:
require_once «simpletest/unit_tester.php»;
Третий способ касается пакетов PEAR. По сути это очень большой набор библиотек для PHP, многие из которых тесно друг с другом связаны. Для работы с этой библиотекой существует специальная программа – менеджер пакетов. Он позволяет устанавливать пакеты как с сайта проекта, с помощью команды pear install , так и с локального компьютера (предварительно необходимо загрузить архив с нужным пакетом) pear install .tgz .
После установки в папке с PHP появится папка PEAR, в которой будут размещены файлы библиотек.
Постовой
Создаем библиотеку на php и публикуем на packagist

Прежде чем приступать к написанию кода, нам нужно решить, что именно такого полезного мы можем создать, какие функции будет выполнять библиотека. Довольно популярным является написание библиотек, упрощающих работу с тем или иным API. Зачастую API представляют из себя большой список различных методов, работающих не только через GET method http-протокола. И это доставляет сложность при работе с ним у программистов: нужно постоянно учитывать все нюансы обращения к методу, его ответа, а еще может присутствовать аутентификация при работе и тд.
Гораздо проще иметь готовый класс или группу классов, через которые можно легко объектно-ориентированно работать, не сильно заботясь обо всех этих нюансах, к тому же современные IDE умеют подсказывать и подсвечивать, когда у вас есть такой класс, а стороннего API они никак не знают и не подскажут. Поэтому написание библиотеки-прослойки между API и использующим его приложением так популярно.
Наша основная цель научиться создавать и публиковать lib для composer, а не реализация крутого и огромного решения, поэтому я выбрал API, которое уже имеет официальную php client library, но все же его вполне можно дополнить, и тем самым упростить использование. Я говорю о Почте от Google: Gmail API. Если перейти на официальную страницу настройки и использования этого API https://developers.google.com/gmail/api/quickstart/php, то мы увидим, что она предполагает все же некоторую подготовительную работу прежде, чем можно будет приступить к непосредственной работе с почтой.
Посмотрим на листинг в пункте «Step 2: Set up the sample», там мы видим подключение composer зависимостей, затем функцию getClient(), которая создает подключение к сервису почты, и только после нее идет пример кода работы с почтовыми лейблами. Как минимум эту функцию мы можем вынести за скобки нашего основного веб-приложения в библиотеку, которую сделать доступной для установки на любой проект, где понадобится работа с Gmail. Конечно, в реальном мире разработки создавать библиотеку только ради упрощения одной функции идея не самая лучшая, но мы учимся, к тому же вполне вероятно, что во время работы мы войдем во вкус и придумаем, что еще можно упростить, ускорить и вынести в библиотеку кроме этой функции настройки и подключения.
Создание библиотеки
Этот пример еще хорош и тем, что мы увидим далее, как настроить дополнительную зависимость нашего решения от сторонних библиотек. Что ж приступим, создаем директорию для будущего расширения и инициализируем composer проект:
mkdir gmail && cd gmail composer init
Composer предлагает нам ввести данные о создаваемом пакете:
Welcome to the Composer config generator This command will guide you through creating your composer.json config. Package name (/) [zhukmax/gmail]: Description []: Package for easy using Gmail Api Author [ZhukMax , n to skip]: Minimum Stability []: dev Package Type (e.g. library, project, metapackage, composer-plugin) []: library License []: Apache-2.0 Define your dependencies. Would you like to define your dependencies (require) interactively [yes]? no Would you like to define your dev dependencies (require-dev) interactively [yes]? no < "name": "zhukmax/gmail", "description": "Package for easy using Gmail Api", "type": "library", "license": "Apache-2.0", "authors": [ < "name": "ZhukMax", "email": "zhukmax@ya.ru" >], "minimum-stability": "dev", "require": <> > Do you confirm generation [yes]? Include the Composer autoloader with: require 'vendor/autoload.php';
Обратим внимание на название пакета (Package name), оно должно быть уникальным для того, чтобы можно было разместиться в packagist. Так же мы видим, что composer в квадратных скобках [ ] предлагает ответ на свой же вопрос, и если нас он устраивает, то просто нажимаем на клавишу Enter, иначе после двоеточия пишем свой вариант. Для лицензии проекта я выбрал Apache второй версии, открытую лицензию, отлично подходящую для opensource публикуемых программных решений, так же есть крайне популярные MIT и GNU GPL (https://ru.wikipedia.org/wiki/GNU_General_Public_License). В поле Description одним предложением описываем свою библиотеку, а в Author можно перечислить авторов, мой Composer уже знает меня, и поэтому подставил по умолчанию. На вопросы о зависимостях (dependencies) я пока что ответил отрицательно, мы поставим нужные зависимости позже, а также добавим кое-что вручную прям в файл composer.json, в котором и хранятся все настройки проекта.
В конце после вопроса «Do you confirm generation [yes]?» мы нажали Enter, и в корне проекта появился файл composer.json. Откроем его и пропишем зависимость от php, я выбрал версию не ниже 7.1, так как седьмая версия выпущена уже более пяти лет. Но если вы предполагаете, что вашей библиотекой будут пользоваться на проектах с php 5, тогда можно проставить «>=5.6.0». Далее запускаем команду установки зависимости от официальной Gmail API библиотеки:
composer require google/apiclient:^2.0
Это займет некоторое время, добавляем autoload, который позволит Composer’у находить все файлы с кодом у нас в проекте, и в конечном итоге наш composer.json будет выглядеть вот так:
< "name": "zhukmax/gmail", "description": "Package for easy using Gmail Api", "type": "library", "license": "Apache-2.0", "authors": [ < "name": "ZhukMax", "email": "zhukmax@ya.ru" >], "minimum-stability": "dev", "require": < "php": ">=7.1.0", "google/apiclient": "^2.0", "ext-json": "*" >, "autoload": < "psr-4": < "Zhukmax\\Gmail\\": "src/" >> >
Заходим на github под своим аккаунтом (если нужно зарегестрируйтесь) и создаем новый репозиторий с названием gmail, так же стоит указать описание, лицензию и другие настройки.

Подключаем к уже созданому локально проекту новый репозиторий:
git init git remote add origin https://github.com/ZhukMax/gmail.git git config checkout.defaultRemote origin git pull origin main
Открываем папку с нашим проектов в любимом редакторе коде, я лично предпочитаю PhpStrorm, но вполне подойдет даже Notepad++. Создаем директорию src, в которой и будет располагаться основной код. Как видно из листинга выше, мы прописали именно эту папку для всех классов в namespace Zhukmax\Gmail.

На шаге два из официальной инструкции к работе с Gmail API (https://developers.google.com/gmail/api/quickstart/php#step_2_set_up_the_sample) нам требуется создать файл, в котором размещаем некоторые конфигурационные данные, функцию авторизации и сам код работы с API. Как раз конфигурацию и авторизацию мы и перенесем в наш пакет, чтобы при использовании можно было не заморачиваться с этим кодом и сразу заниматься тем, что необходимо на проекте. Поэтому создаем класс авторизации в src и добавляем в него функцию авторизации:
touch src/Auth.php

Пока что наш код не будет работать, так как функции авторизации нужны настройки: название приложения, путь к директории для хранения токена, путь к файлу credentials.json, который можно получить в консоли разработчика Google. А еще этот код можно улучшить и упростить работу с ним для конечного разработчика. Для начала создадим публичный конструктор и метод, который будет отдавать готовый к работе сервис, либо выбрасывать исключение (Exception), если произошла какая-то ошибка, а уже созданный сделаем приватным:
$this->credentialsPath = $params['credentials']; if (!$params['token']) < throw new Exception("Path to token is required"); >$this->tokenPath = $params['token']; $this->name = $params['name'] ?? 'Gmail API PHP'; $this->scope = $params['scope'] ?? Google_Service_Gmail::GMAIL_READONLY; > public function getService()

Также предлагаю сделать небольшую декомпозицию основного метода, взятого нами из официальной документации. Во-первых, стоит вынести код, занимающийся сохранением файла токена в отдельный метод, во-вторых, запрос токена, если предыдущий просрочен или даже не существует:
createAuthUrl(); printf("Open the following link in your browser:\n%s\n", $authUrl); print 'Enter verification code: '; $authCode = trim(fgets(STDIN)); // Exchange authorization code for an access token. $accessToken = $client->fetchAccessTokenWithAuthCode($authCode); $client->setAccessToken($accessToken); // Check to see if there was an error. if (array_key_exists('error', $accessToken)) < throw new Exception(join(', ', $accessToken)); >> private function saveToken(Google_Client $client) < if (!file_exists(dirname($this->tokenPath))) < mkdir(dirname($this->tokenPath), 0700, true); > file_put_contents($this->tokenPath, json_encode($client->getAccessToken())); >
Конечно, еще хорошо бы покрыть весь наш код юнит-тестами, но это уже другая история.
Публикация библиотеки
Когда код библиотеки готов сделаем коммит и отправим все правки в репозиторий на github (или другой выбранный вами ранее):
git push origin main
Теперь скопируем ссылку на репозиторий:

На сайте packagist.org после авторизации переходим в раздел Submit, вставляем GitHub URL — ссылку на репозиторий и нажимаем Check и затем Submit

Готово, наша библиотка отправлена в публичное пространство и доступна для установок и использования.
Результат
Мы создали новую библиотеку, облегчающую работу с API, отправили ее публичный репозиторий и опубликовали для установки через composer. Теперь мы умеем делиться своими наработками и решениями с сообществом.
