Написание своего пакета для 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

Img

Создаем первый коммит с нашим пакетом

Помечаем коммит тегом 1.0.0-beta

Img

Пушим на github

Если все сделано правильно то у вас появится tags Img

после чего нужно создать релиз с новым тегом.

Для этого нужно зайти на

https://github.com/ИМЯ РЕПАЗИТОРИЯ/releases

и нажать кнопку Draft a new release

В поле Tag Version указать наш тег 1.0.0-beta

все остальные поля на свое усмотрение

и затем публикуем релиз

Img

Подключение репазитория в свой проект

В репазитории есть пример как подключить в свой проект 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

Как подключить composer в modx

0    7

Комментарии ()

    Вы должны авторизоваться, чтобы оставлять комментарии.

    Наверх