Розробка пакетів Laravel

Створюємо пакет

1) Створюємо папку в корнівому каталозі packages/<gitGroup>/<projectName>​

де  <gitGroup> - назва групи поектів/ім"я користувача, <projectName> - назва репозіторія для пакета

2) Переходимо в створену папку та створюємо репозиторій кампосера командою composer init

3) В створеному файлі composer.json додаємо

"version": "1.0.0.0",
"autoload": {
    "psr-4": { 
         "<gitGroup>\\<projectName>\\": ""
     }
}, 

Підключаємо пакет до проекта

1) В composer.json файлу проекта перед блокоп require додаємо

"repositories": [ 
      {
           "type": "path", 
			"url": "packages/<gitGroup>/<projectName>"
       }
  ], 

2) В блокі require додаємо

"require": {
   ...
   "<gitGroup>/<projectName>": "*"
}

3) Та виконуємо в консолі команду composer update

4) Наповнюємо пакет кодом

Заліваємо пакет в git

1) В папке пакета створюємо Git репозіторій командою git init --initial-branch=main

2) Створюємо на git"e репозіторій <gitGroup>/<projectName>

3)  Додаємо орідженал до нашого пакета ​git remote add origin https://github.com/<gitGroup>/<projectName>.git

4) Додаємо файли пакету в git

git add . 
git commit -m "init"
 
git push origin master

Региструємо пакет на packagist.org

1) Переходимо на https://packagist.org/ та авторизуємось через GIT

2) Переходимо на вкладку Submit та вводимо посилання на GIT репозіторій

3) Видаляємо блок з composer.json з файлу проекта

"repositories": [ 
      { 

           "type": "path", 

                       "url": "packages/<gitGroup>/<projectName>"
             }
   ],

АБО Налаштовуємо роботу з приватним репозіторіем

1) Видаляємо блок з composer.json з файлу проекта

"repositories": [ 
      {
           "type": "path", 
            "url": "packages/<gitGroup>/<projectName>"
      }
  ], 

2) В composer.json файлу проекта додаємо

"repositories": [
        {
            "type": "vcs",
            "url":  "git@bitbucket.org:vendor/my-private-repo.git"
        } 
    ],

Створення тега git tag -a 1.0.0.0 -m 'version 1.0.0.0'

2015-2026 © SumyNikNet