Архитектура проекта: как зависят папка vendor от Composer и GIT?
==================================================================

 Мне удобна система composer, что в ней прописаны все зависимости проекта, что через нее все автоматом ставится, потом можно через "use" подключать нужные классы и т.д... И все хранится в одном месте - в папке vendor.   

Но вот мне понадобилось добавить свою библиотеку в проект, и я не добавлял ее на git.   

  

Как правильно это сделать?  

Варианты:   

1. Самое простое и очевидное - добавить ее в свой закрытый репозиторий, прописать доступ в репозиторий, загрузить через composer. Но рассмотрим вариант без добавления на github, чтобы не возиться с доступом в закрытый репозиторий (с этим я еще не сталкивался).   

2. Просто создать новую папку в папке "vendor", но что тогда писать в composer.json? Ничего не напишешь. Получается, что эту локальную библиотеку надо в голове держать. А это плохо. Или папка vendor (та что в корне проекта) вообще зависит и должна управляется только через composer?  

3. Создать в другом месте папку с библиотекой, например в папке самого проекта. Но что-то тут не так.   

  

Какой-то еще вариант? Как правильно? 

 3 вариант 

 3 вариант. Но для встраивания мы используем [git submodule](https://git-scm.com/book/en/v2/Git-Tools-Submodules). Т.е либа хранится в отдельном репозитории. Она же будет использоваться и в других проектах.