Введение
Сегодня столкнулся с необходимостью использовать одну библиотеку, для установки которой требовался Composer. Ранее мне никогда не приходилось с ним работать (даже немного стыдно это признавать, т.к. я в веб-разработке с 2012 года). Разобравшись с композером, решил написать эту небольшую статью, которая может помочь и другим разработчиком быстро начать использовать этот полезный инструмент.
В данной статье рассмотрим установку композера с помощью SSH в директорию конкретного проекта на примере виртуального хостинга jino.ru. Хоть я и не рекомендую использовать виртуальный хостинг от Джино, мне самому иногда приходится с ним работать. Если у вас другой хостинг — не беда, в целом алгоритм одинаков для всех провайдеров.
5 последних уроков рубрики «PHP»
Когда речь идёт о безопасности веб-сайта, то фраза «фильтруйте всё, экранируйте всё» всегда будет актуальна. Сегодня поговорим о фильтрации данных.
Обеспечение безопасности веб-сайта — это не только защита от SQL инъекций, но и протекция от межсайтового скриптинга (XSS), межсайтовой подделки запросов (CSRF) и от других видов атак
В частности, вам нужно очень осторожно подходить к формированию HTML, CSS и JavaScript кода.
Expressive 2 поддерживает возможность подключения других ZF компонент по специальной схеме. Не всем нравится данное решение
В этой статье мы расскажем как улучшили процесс подключение нескольких модулей.
Предположим, что вам необходимо отправить какую-то информацию в Google Analytics из серверного скрипта. Как это сделать. Ответ в этой заметке.
Подборка PHP песочниц
Подборка из нескольких видов PHP песочниц. На некоторых вы в режиме online сможете потестить свой код, но есть так же решения, которые можно внедрить на свой сайт.
Глобальные параметры #
С каждой командой доступны следующие параметры:
- —verbose (-v): Увеличить количество сообщений.
- —help (-h): отобразить справочную информацию.
- —quiet (-q): Не выводить никаких сообщений.
- —no-interaction (-n): Не задавать никаких интерактивных вопросов.
- —no-plugins: отключает плагины.
- —working-dir (-d): Если указано, используйте данный каталог в качестве рабочего каталога.
- —profile: отображение времени и информации об использовании памяти
- —ansi: принудительный вывод ANSI.
- —no-ansi: отключить вывод ANSI.
- —version (-V): отобразить эту версию приложения.
Что такое Symfony-компонент DependencyInjection?
Компонент Symfony DependencyInjection предоставляет стандартный способ для создания объектов и обработки управления зависимостями в PHP-приложениях. Сердце компонента DependencyInjection является контейнер, который содержит все доступные сервисы в приложении.
Во время этапа начальной загрузки вашего приложения вы должны зарегистрировать все сервисы вашего приложения в контейнер. На более позднем этапе контейнер отвечает за создание запрашиваемых сервисов
Что еще более важно, так это то, что контейнер отвечает также за создание и внедрение зависимости сервисов
Преимущество этого подхода заключается в том, что вам не нужно жестко задавать в коде процесс создания экземпляров объектов, поскольку зависимости будут обнаружены и создаваться и внедряться автоматически. Это создает слабую связанность между частями приложения.
В этой статье мы будем изучать, как вы можете раскрыть потенциал компонента DependencyInjection. Как обычно мы начнем с инструкции по установке и конфигурации, а затем реализуем несколько реалистичных примеров использования, чтобы продемонстрировать ключевые концепции.
Как установить Composer
Установка Composer может выполняться по-разному. Она также зависит от используемой среды и операционной системы. Рассмотрим различные варианты.
Установка Composer в Ubuntu, выполняющейся в подсистеме Windows для Linux (WSL)
Для установки Composer в Windows 10 на подсистему Windows для Linux (WSL) необходимо выполнить следующие команды:
Первая команда выполняет загрузку скрипта установщика с сайта «getcomposer.org». Вторая команда выполняет запуск этого установщика. В процессе своей работы установщик проверит некоторые настройки «php.ini», предупредит вас, если они установлены неправильно, а затем загрузит последний «composer.phar» в текущий каталог. Последняя или третья команда просто удалит загруженный установщик, который ранее использовался для установки Composer.
Phar — это исполняемые файлы (программы), которые выполняются посредством php интерпретатора.
Если при установке php пакетов у вас выводиться ошибки на отсутствие прав записи в каталог «~/.composer/cache», то в командной строке просто запустите данную команду:
Для установки Composer глобально, т.е. чтобы он был доступен с помощью команды необходимо дополнительно выполнить ещё следующую команду:
Эта команда переместит файл «composer.phar» из директории пользователя в директорию «/usr/local/bin» и уберёт у него расширение «phar».
Установка Composer на OpenServer (в Windows)
В OpenServer по умолчанию уже установлен Composer. Находится он в зависимости от выбранной версии PHP (устанавливается в настройках OpenServer) в директории «OSPanel\modules\PHP_*\».
Работа с Composer в OpenServer по умолчанию осуществляется в собственной консоли. Для того чтобы открыть эту консоль необходимо нажать на значок Open Server правой кнопкой мыши в области уведомлений и в открывшемся контекстном меню найти соответствующий пункт.
В консоли для проверки того, что Composer подключен, например, можно ввести команду:
Эта команда также отобразит версию Composer.
Если при выполнении этой команды отобразится сообщение, что версия Composer устарела, то её можно обновить. Осуществляется это посредством выполнения следующей команды:
Синтаксис и опции Composer
Первое, что необходимо сказать, Composer — это консольная утилита, у неё нет графического интерфейса, однако это не делает её хуже. Вот её синтаксис:
$ composer опции команда
Опций у самой утилиты не так уж много. Давайте рассмотрим самые полезные:
- -h — вывести справку по утилите;
- -q — сокращённый вариант вывода;
- -V — показать версию утилиты;
- -n — не задавать интерактивных вопросов;
- -v, -vv, -vvv — настройка подробности вывода;
- -d — использовать указанную рабочую директорию.
Более интересны команды, которые вы будете постоянно использовать:
- archive — архивирует текущий проект в качестве библиотеки для отправки в Сеть;
- check-platform-reqs — проверяет, соблюдены ли системные требования;
- create-project — создаёт проект на основе пакета в указанную директорию;
- depends — выводит зависимости пакета;
- dump-autoload — обновляет систему автозагрузки классов;
- exec — позволяет выполнять скрипты из установленных пакетов;
- init — создаёт пустой проект в текущей папке;
- list — выводит список доступных команд;
- outdated — выводит список пакетов, для которых есть обновления;
- prohibits — выводит названия пакетов, которые мешают установить указанный пакет;
- search — поиск пакетов в репозиториях;
- self-update — обновление Composer до последней версии, работает только при локальной установке;
- show — информация о пакете;
- update — обновляет все пакеты до самой актуальной версии.
Большинство из этих опций мы разберём чуть ниже, в примерах использования composer. А пока давайте посмотрим, как его установить.
Заполняем файл composer.json
После того, как наша структура готова, нам необходимо уведомить composer о том, откуда и как ему осуществлять загрузку ваших классов. Если у вас еще нет файла composer.json в корне вашего проекта (рядом с файлом index.php в нашем случае), самое время его создать и добавить примерно следующее содержимое:
Здесь больше всего нас интересует строка autoload, где указывается откуда composer должен загружать наши классы. В нашем случае мы сообщаем, что классы нашего проекта необходимо искать в папке src.
Важно отметить, что psr-4 необходимо писать именно в нижнем регистре, поскольку composer проигнорирует строку, если указать PSR-4 в верхнем регистре. После того, как в composer.json добавлена вся необходимая информация нужно выполнить команду: php composer.phar dump-autoload или composer dump-autoload в зависимости от того, глобально или локально у вас установлен composer (более подробно про установку composer можно прочитать здесь)
После того, как в composer.json добавлена вся необходимая информация нужно выполнить команду: php composer.phar dump-autoload или composer dump-autoload в зависимости от того, глобально или локально у вас установлен composer (более подробно про установку composer можно прочитать здесь).
Теперь все, что осталось для того, чтобы использовать наши классы — это добавить следующую строку в файл index.php: require __DIR__ . ‘/vendor/autoload.php’;
Автозагрузка классов с помощью composer завершена, и нам нет необходимости писать собственную автозагрузку. Более того, большинство современных библиотек и PHP фреймворков написаны в соответствии с PSR-4 и с помощью автозагрузчика composer, поэтому если у вас есть необходимость использовать сторонние библиотеки, которые используют composer, то вам достаточно лишь указать нужную библиотеку в секции require файла composer.json, например следующим образом:
Composer сам скачает и подключит указанную библиотеку, а вам останется лишь использовать все ее возможности в вашем проекте.
Шаг 3: Пишем пример использования пакета
Наш пакет готов. Писать пример не обязательно, но крайне желательно
Для начала, давайте выполним консольную команду , которая создаст (обновит) папку vendor в нашем текущем проекте. Это нужно сделать для того, чтобы мы могли подключить автозагрузку композера и пользоваться пространством имен внутри файла examples/example.php.
Следующим шагом будет написание самого файла с примером examples/example.php, который выглядит так, как показано ниже:
Остается только проверить, чтобы все работало так, как мы это и задумали, для этого выполним консольную команду , результатом работы которой будет вывод приветствия на экран.
php examples/example.php
Composer: создание своего проекта
В прошлой статье было рассказано, как пользоваться Composer и как установить желаемые пакеты. В этой статье создадим собственный проект так, чтобы он отвечал требованиям Composer, и чтобы другие разработчики или пользователи могли скачать и установить его.
- Cоздаем папку проекта и ставим в неё Composer (если он не установлен глобально).
-
Выполняем команду инициализации проекта:
php composer.phar init
Вводим запрашиваемые параметры — там ничего критического и сложного. На выходе имеем файл composer.json в корне проекта. Этот файл описывает проект, его будет использовать Composer.
При вводе параметров можно пока не определять зависимости (dependencies, они же пакеты) — это можно сделать позже, вручную отредактировав файл, или командой php composer.phar require / так, как уже делали это при установке пакета. -
Далее нужно установить проект, выполнив:
php composer.phar install
Composer создаст в корне проекта папку vendor, в которой будут находиться файл autoload.php и папка composer — это служебные элементы Composer’а, и менять там ничего не нужно. В дальнейшем файлы в папке vendor/composer могут меняться при установке/удалении зависимостей — это так называемые файлы автозагрузки (см. автозагрузку классов PHP).
Если до этого были указаны зависимости (пакеты), они будут скачаны (вместе со своими зависимостями) и помещены в папку vendor.
В корне проекта будет создан файл composer.lock с информацией об установленных пакетах. -
Теперь уже можно использовать пакеты в своих скриптах так, как научились это делать в прошлой статье:
require __DIR__ . ‘/vendor/autoload.php’;
Файлы *.json при работе проекта не используются, они нужны только Composer’у при установке/обновлении/удалении пакетов.
При написании проекта свои скрипты можно класть куда угодно, создавать любую структуру папок, но не трогать папку vendor.
Имейте ввиду, что карта классов (в vendor/composer) занимает место в памяти при работе скрипта (например, при установке только phpunit с его зависимостями занимается 400 kB), причем это независимо от того, используете вы классы пакетов или нет. Так что злоупотреблять бездумным подключением множества пакетов не следует.
Распространение проекта
Итак, мы создали проект, подключили пакеты, написали желаемые скрипты — проект готов. Как его распространять? Его достаточно залить в Git-хранилище и на Packagist, и это мы уже умеем.
Важно то, что проект нужно передавать без папки vendor — фактически нужны только файл composer.json и собственно файлы (и, разумеется, папки) вашего проекта. Если передаете проект коллеге, желательно передать ещё composer.lock, чтобы в точности совпали версии установленных пакетов у вас и у него, что нужно при совместной разработке.. Полезно перед загрузкой проекта в Git-хранилище проверить composer.json командой:
Полезно перед загрузкой проекта в Git-хранилище проверить composer.json командой:
php composer.phar validate
Установка проекта
При последующем разворачивании проекта на новом месте возможны 2 варианта:
-
Скачать файлы (например, если по какой-то причине вы получили их архивом) и выполнить:
php composer.phar install
Composer скачает все нужные пакеты и настроит автозагрузку.
-
Или выполнить (в пустой папке проекта):
php composer.phar create-project /
В этом случае Composer найдет ваш проект, скачает и установит всё самостоятельно.
Теперь вы умеете создавать свои проекты и распространять их по правилам Composer.
Самое время узнать:Как подключить в автозагрузку свои классы
2018 Richter
Распространение только с разрешения автора
Операторы массивов PHP
Операторы массивов PHP используются для сравнения массивов.
В следующей таблице приведён список операторов, работающих с массивами PHP:
Оператор | название | Синтаксис | Операция |
---|---|---|---|
+ | Объединение | $x + $y | Объединение массива $x и массива $y. |
== | Равно | $x == $y | TRUE в случае, если $x и $y содержат одни и те же элементы. |
!= | Не равно | $x != $y | TRUE если массив $x не равен массиву $y. |
=== | Тождественно равно | $x === $y | TRUE в случае, если $x и $y содержат одни и те же элементы в том же самом порядке. |
!== | Тождественно не равно | $x !== $y | TRUE если массив $x не равен тождественно массиву $y. |
<> | Не равно | $x <> $y | TRUE если массив $x не равен массиву $y. |
Laravel
composer global require «laravel/installer»
1 | composer globalrequire»laravel/installer» |
Описание команд Composer
Команда Composer | Описание команды |
---|---|
Добавляет требуемый пакет в файл и устанавливает его в ваш проект.
Команда изменяет , находящийся в текущей папке. Если пакету требуются зависимости, то они будут установлены или обновлены. А также будет обновлён . |
|
Если файла нет, резолвит зависимости исходя из и создаёт его. Далее, анализирует файл , скачивает и устанавливает указанные в нём версии пакетов. Опция полезна для обхода запуска скриптов, указанных в pre- и post- настройках. |
|
Обновляет ваши зависимости до последних версий и обновляет .
Команда резолвит зависимости чтобы получить самые последние версии зависящих друг от друга пакетов. |
|
Иногда, вы можете получить такое предупреждение: Это может произойти после того, как вы вручную редактировали (добавляли или изменяли , , и т. д.). Даже если ваши изменения незначимы для Composer, он обнаруживает, что md5sum файла изменена, и предупреждает, что эти изменения не учтены в файле . Поэтому, чтобы подавить это предупреждение, вы можете просто запустить команду для обновления lock-файла без обновления самих пакетов. |
|
Если вам нужно обновить загрузчик, т. к. появились новые классы, вы можете выполнить команду чтобы избежать установки или обновления пакетов.
Используйте ключ —optimize для преобразования PSR-0 в автозагрузку как для classmap, чтобы автозагрузчик был наиболее быстрым. Это настоятельно рекомендуется для production (вы можете получить 20% прирост), но может занять немного времени для запуска, так что это на данный момент не сделано по умолчанию. Также вы можете использовать псевдоним. |
|
Краткая информация о Composer. | |
Создать архив для указанного пакета. Команда также может быть использована для архивирования всего проекта без исключенных/игнорируемых файлов. | |
Псевдоним для , открывает URL пакета или его домашнюю страницу в браузере. | |
Псевдоним команды , очищает внутренний кэш пакетов Composer-а. | |
Позволяет редактировать некоторые основные параметры Composer-а либо в локальном файле composer.json, либо в глобальном файле config.json. | |
Создать новый проект из указанного пакета в указанном каталоге. | |
Сообщает вам какие другие пакеты зависят от конкретного (указанного) пакета. Вы можете указать какие типы связей (require, require-dev) должны быть включены в листинг. По умолчанию выводятся оба. | |
Если вы считаете, что нашли ошибку, или что-то ведет себя странно, возможно, вы захотите выполнить команду диагностики для выполнения автоматизированной проверки многих общих проблем. | |
Команда global позволяет другие команды такие, как , или запускать так, как если бы вы запускали их из каталога .
Это может использоваться для того, чтобы установить командные утилиты глобально. Если вы добавите в переменную вашего окружения, то запуск утилит станет совсем простым. |
|
Отображает справки для всех других команд: . | |
Создает базовый вариант файла в текущем каталоге.
При запуске команды, Composer будет интерактивно запрашивать значения полей для заполнения, используя при этом для некоторых полей умные значения по умолчанию. |
|
Показать информацию о лицензиях зависимостей. | |
Выводит список допустимых команд. | |
Удаляет пакет из секций require или require-dev: . | |
Запустить вручную скрипты, объявленные в . Просто передайте название скрипта и при необходимости , чтобы отключить режим dev. | |
Поиск пакетов.
Команда поиска позволяет вам искать в репозиториях текущего проекта (см. секцию «repositories» в ). Обычно это будет только packagist.org. Вам нужно просто передать команде слова для поиска. |
|
Обновление самого до последней версии.
Запуск команды может решить некоторые проблемы и сэкономить ваше время. Также вы можете использовать псевдоним . |
|
Список всех установленных пакетов (). Список всех доступных пакетов (). Инфо об указанном пакете или его специфичной версии (). |
|
Выводит список всех пакетов, предложенных установленными. Опционально вы можете передать одно или несколько имён пакетов в формате чтобы ограничить вывод только теми, что были предложены указанными. | |
Если вам часто приходится модифицировать код своих зависимостей, а они были установленны «из исходников» (см. опцию команды ), то команда позволит вам проверить есть ли у вас локальные изменения в любой из них. |
|
Проверяет файл .
Вы всегда должны запускать команду перед тем, как коммитить ваш и перед установкой релизного тега. Эта команда проверит его на ошибки. |
Загрузка данных
Guzzle предоставляет несколько способов загрузки данных.
Можно отправлять запросы, содержащие поток данных, передавая строку, ресурс возвращается из , или как экземпляр в опцию запроса :
// Предоставляем тело запроса в виде строки $r = $client->request('POST', 'http://httpbin.org/post', ); // Предоставляем fopen ресурс $body = fopen('/path/to/file', 'r'); $r = $client->request('POST', 'http://httpbin.org/post', ); // Используем функцию stream_for() для создания потока PSR-7 $body = \GuzzleHttp\Psr7\stream_for('hello!'); $r = $client->request('POST', 'http://httpbin.org/post', );
Простой способ загрузить данные JSON и установить соответствующий заголовок — использовать опцию запроса :
$r = $client->request('PUT', 'http://httpbin.org/put', ]);
Настройка URL параметров
В прошлом примере путь и параметры запроса мы указали в виде строки. В то же время можем воспользоваться более элегантным решением этой же задачи. Возможно нам понадобится включать какие-то параметры в зависимости от результата проверки.
/** @var $request Request */ $request = $client->createRequest(); $request->setPath('/API/jsonI.php'); $request->getQuery() ->set('length', 10) ->set('type', 'uint8');
Во-первых, создаём пустой запрос, вызвав метод $client->createRequest(). Далее можем воспользоваться методом setPath() или getQuery() для формирования строки запроса и параметров.
В следующей части рассмотрим компонент Monolog, который позволит записывать результаты выполнения запросов в логи.
Установка Composer в Ubuntu
Вы не можете установить программу из официальных репозиториев. Нужно скачать скрипт из официального сайта и поместить его в папку с вашим проектом. Но сначала обновите систему и установите зависимости:
Установка Composer ubuntu может быть выполнена двумя способами. Либо локально в папку проекта, либо же глобально, для всей системы. Сначала рассмотрим как установить программу локально. Перейдите в папку проекта:
Выполните такую команду для загрузки установочного скрипта:
Затем запустите этот скрипт, чтобы создать файл composet.phar, который и будет использоваться для установки пакетов:
Теперь вы можете проверить работает ли Composer:
Теперь рассмотрим как установить программу глобально для всей системы. Вы можете скачивать файл установщика в любую папку, например, домашнюю:
Только команда установки будет отличаться, в ней мы указываем папку, куда нужно установить скрипт:
Для проверки работы, вы можете выполнить команду:
show #
Чтобы вывести список всех доступных пакетов, вы можете использовать команду .
php composer.phar show
Чтобы отфильтровать список, вы можете передать маску пакета с помощью подстановочных знаков.
php composer.phar show monolog/* monolog/monolog 1.19.0 Sends your logs to files, sockets, inboxes, databases and various web services
Если вы хотите увидеть детали определенного пакета, вы можете передать имя пакета.
php composer.phar show monolog/monolog name : monolog/monolog versions : master-dev, 1.0.2, 1.0.1, 1.0.0, 1.0.0-RC1 type : library names : monolog/monolog source : https://github.com/Seldaek/monolog.git 3d4e60d0cbc4b888fe5ad223d77964428b1978da dist : https://github.com/Seldaek/monolog/zipball/3d4e60d0cbc4b888fe5ad223d77964428b1978da 3d4e60d0cbc4b888fe5ad223d77964428b1978da license : MIT autoload psr-0 Monolog : src/ requires php >=5.3.0
Вы даже можете передать версию пакета, в которой будут указаны подробности этой конкретной версии.
php composer.phar show monolog/monolog 1.0.2
Опции
- —all: Перечислить все пакеты, доступные во всех ваших репозиториях.
- —installed (-i): Список установленных пакетов (это включено по умолчанию и устарело).
- —platform (-p): Список только пакетов платформы (php и расширения).
- —available (-a): Список только доступных пакетов.
- —self (-s): Перечислить информацию о корневом пакете.
- —name-only (-N): только имена пакетов.
- —path (-P): Список путей пакетов.
- —tree (-t): Перечислите ваши зависимости как дерево. Если вы передадите имя пакета, оно покажет дерево зависимостей для этого пакета.
- —latest (-l): Список всех установленных пакетов, включая их последнюю версию.
- —outdated (-o): Предполагается , но здесь перечислены только пакеты, которые имеют более новую версию.
- —minor-only (-m): использовать с . Показывает только пакеты с незначительными обновлениями, совместимыми с SemVer.
- —direct (-D): ограничивает список пакетов вашими прямыми зависимостями.
- —strict: возвращает ненулевой код завершения, когда есть устаревшие пакеты.
- —format (-f): позволяет выбрать между текстовым (по умолчанию) или выходным форматом json.
Создание клиента
Можно делать запросы в Guzzle, используя объект :
$client = new Client([ // Базовый URI используется с относительными запросами 'base_uri' => 'http://httpbin.org', // Вы можете установить любое количество параметров запроса по умолчанию. 'timeout' => 2.0, ]);
Клиент является неизменными в Guzzle 6, что означает, что вы не можете изменить значения по умолчанию, используемые клиентом после его создания.
Конструктор клиента принимает ассоциативный массив опций:
(string|UriInterface) Базовый URI клиента, который объединен в относительные URI. Может быть строкой или экземпляром UriInterface. Когда клиенту предоставляется относительный URI,
клиент объединяет базовый URI с относительным URI, используя правила, описанные в .
// Создать клиента с базовым URI $client = new GuzzleHttp\Client(['base_uri' => 'https://foo.com/api/']); // Отправить запрос на https://foo.com/api/test $response = $client->request('GET', 'test'); // Отправить запрос на https://foo.com/root $response = $client->request('GET', '/root');
Не хочется читать ? Вот несколько быстрых примеров того, как разрешается с другим URI:
base_uri | URI | Результат |
---|---|---|
(callable) Функция, которая передает HTTP-запросы по сети. Функция вызывается с и массив опций передачи, и должен возвращать который выполняется с в случае успеха. это опция только для конструктора, которая не может быть переопределена в параметрах .
(mixed) Все остальные параметры, передаваемые конструктору, используются в качестве параметров запроса по умолчанию для каждого запроса, создаваемого клиентом.
Как обновиться до Composer v2?
UPD 24.10.2020г. Если вы запустите
на первой версии композера, то он предупредит вас, что доступна новая стабильная основная версия Composer, и вы можете обновится до 2 версии с помощью
Если у вас есть плагины, которые не работают, их можно временно отключить с помощью
Если у вас возникнут проблемы, вы можете откатиться до первого композера в любое время, используя
Надеюсь, благодаря этому все смогут поэкспериментировать с новым релизом. Если вы обнаружите какие-либо ошибки или у вас есть предложения, создайте issue или pull-запрос .
Наконец, давайте потратим немного времени на то, чтобы поблагодарить Jordi, Nils и других участников за огромные усилия по переводу Composer на PHP. Composer изменил PHP, каким мы его знали в прошлом десятилетии, сделал возможным многое из того, что мы делаем сегодня с PHP. Спасибо!
config #
Команда позволяет вам редактировать настройки и репозитории компоновщика в локальном файле или глобальном файле .
Кроме того, он позволяет редактировать большинство свойств в местном .
php composer.phar config --list
Применение #
— это имя опции конфигурации, а — значение конфигурации. Для параметров, которые могут принимать массив значений (например, ), допускается использование нескольких аргументов параметра.
Вы также можете редактировать значения следующих свойств:
, , , , , , , и .
Для правильных параметров конфигурации см. Главу Конфигурация.
Опции
—global (-g): использовать глобальный конфигурационный файл, расположенный по умолчанию в . Без этой опции эта команда влияет на локальный файл или файл, указанный в файле.
—editor (-e): Откройте локальный файл , используя текстовый редактор, как это определено в переменной env. С параметром открывается глобальный файл конфигурации.
—auth (-a): Влиять на конфигурационный файл auth (используется только для ).
—unset: Удаляет элемент конфигурации с именем .
—list (-l): Показывать список текущих конфигурационных переменных. С опцией здесь указывается только глобальная конфигурация.
—file=»…» (-f): работать с определенным файлом вместо
Обратите внимание, что это нельзя использовать в сочетании с опцией .
—absolute: возвращает абсолютные пути при получении значений конфигурации вместо относительных.
Изменение репозиториев #
В дополнение к изменению раздела конфигурации команда также поддерживает внесение изменений в секцию репозиториев, используя ее следующим образом:
php composer.phar config repositories.foo vcs https://github.com/foo/bar
Если вашему репозиторию требуются дополнительные параметры конфигурации, вы можете вместо этого передать свое представление JSON:
php composer.phar config repositories.foo '{"type": "vcs", "url": "http://svn.example.org/my-project/", "trunk-path": "master"}'
Изменение дополнительных значений #
В дополнение к изменению раздела конфигурации, команда также поддерживает внесение изменений в дополнительный раздел, используя его следующим образом:
php composer.phar config extra.foo.bar value
Точки указывают на вложенность массивов, однако допускается максимальная глубина в 3 уровня. Выше было бы установить .
Почему ошибка?
Это очень частый вопрос, где я с полной уверенностью могу сказать: 60% причин ошибок — это ваш хостинг, 30% — ваша почта, 9% — вы неверно указали данные от почты, а 1% причин —ты, сука, даун, который решил изменить код, а потом начинаешь искренне удивляться, почему ничерта не работает.
Чтобы узнать, в чём причина, нужно раскомментировать вот эту строчку кода (убрать //):
//$mail->SMTPDebug = 2
Теперь в браузере нужно открыть консоль (F12) > вкладка “console” и отправить сообщение. У вас должна появиться новая строчка (список), которую нужно раскрыть:
Причина: Error: authentication failed: Invalid user or password! , то есть неверно указаны данные почты.
Если для вас эти строчки, как иероглифы, и уверены, что ошибки в написании данных почты нет, то отправляете два письма: одно в тех.поддержку вашего хостинга, второе в тех.поддержку вашей почты с таким содержанием:
Привет. Пытаюсь настроить PHPMailer, но в логах у меня ошибка:*СЮДА ВСТАВЛЯЕТЕ ЭТИ СТРОЧКИ ИЗ КОНСОЛИ*
Через некоторое время они ответят и письма начнут нормально уходить.