Написание своего пакета для composer
Описание создания пакета для github и подключения его в свои проекты через composer.
Как пример будет использоваться уже написанный пакет webnitros/readerxlsx для чтения данных из файлов xlsx.
В первую очередь проверяем что composer работает у вас в phpStorm
Создаем файл composer
composer init
Создание папки и классов
Чтобы composer умел читать скрипт по стандарту psr-4 нам нужно создать папку с нашими классов и прописать в нем namespace
для этого создадим папку src и добавим наш первый класс класс ExcelReader.php
src/ExcelReader.php
имя класса должно совпадать с названием файла, иначе composer (psr-4) не поймет какой файл нужно загрузить
<?php
namespace Excel\Xlsx;
class ExcelReader
{
public function get()
{
return 'проверка';
{
{
Теперь добавим namespace нашего пакета в composer.json
"autoload": {
"psr-4": {
"Excel\Xlsx\": "src"
{
{
после подключения выполняем команду чтобы composer нашел наш новый класс
composer dump-autoload -o
Запуск нашего класса
Все приготовления мы написали, теперь наш компонент добавлен в composer
require_once dirname(__FILE__) . '/vendor/autoload.php';
use Excel\Xlsx;
$Reader = new Xlsx\ExcelReader();
echo $Reader->get();
# проверка
Установка пакета из composer
Чтобы пакет можно было устанавливать через composer необходимо создать новый репазиторий на github.
Пример финальной версии структуры можно посмотреть на github.com/webnitros/readerxlsx
Создаем репозиторий на github
Для этого будет использоваться phpstorm
Создаем первый коммит с нашим пакетом
Помечаем коммит тегом 1.0.0-beta
Пушим на github
Если все сделано правильно то у вас появится tags
после чего нужно создать релиз с новым тегом.
Для этого нужно зайти на
https://github.com/ИМЯ РЕПАЗИТОРИЯ/releases
и нажать кнопку Draft a new release
В поле Tag Version указать наш тег 1.0.0-beta
все остальные поля на свое усмотрение
и затем публикуем релиз
Подключение репазитория в свой проект
В репазитории есть пример как подключить в свой проект webnitros/readerxlsx Но продублируе его еще здесь
Для этого нужно создать файл composer.json (или выполнить composer init) и добавить в него соответстствующие разделы:
устанавливаем composer
composer install
добавляем репазиторий
"repositories": [
{
"type": "vcs",
"url": "https://github.com/webnitros/readerxlsx"
{
],
"require": {
"webnitros/readerxlsx": "1.*@beta",
{
обновляем карту классов у composer
composer dump-autoload -o
После чего вы можете обновлять свои пакеты через github. На проектах где установлен компонент, нужно будет нажать только composer update
Вы должны авторизоваться, чтобы оставлять комментарии.
Комментарии ()