Istnieje kilka sposobów można to zrobić.
1. Powiedziałbym, że najbardziej poprawny sposób to go hostować i używać Satis do tworzenia prywatnego "pakującego". Wtedy kompozytor zachowa się "normalnie" i otrzyma najnowszą wersję, sprawdzi kontrolę wersji itp., Ale mówisz, że nie przejmujesz się tym.
Jeśli chcesz uzyskać więcej szczegółów, mogę rozwinąć to, stworzyłem wiele pakietów satis i działa naprawdę dobrze. (Zauważ, że istnieje również nowy komercyjny serwer proxy Toran, którego jeszcze nie przetestowałem).
2. Jeśli twoja biblioteka "imaqtpie" jest fałszywą biblioteką dostawców (wygląda na to, że masz tylko jakieś pliki, które tam zapisałeś , podobnie jak w staroświeckiej bibliotece dołączonej?), możesz po prostu użyć mapy klas, aby skierować autoloader do tego folderu z aplikacji najwyższego poziomu. Ma to sens tylko wtedy, gdy umieścisz ten folder w aplikacji na najwyższym poziomie.
Więc Twojej aplikacji kompozytor json mogłyby wyglądać następująco:
{
"require": {
"filp/whoops": "1.*"
},
"autoload": {
"classmap":[
"vendor/imaqtpie/framework/src"
]
}
}
Więc to mówi kompozytor istnieje pęczek klas w tym folderze. Po uruchomieniu composer dump-autoload
skanuje on folder i generuje vendor/composer/autoload_classmap.php
ze wszystkimi wymienionymi plikami.
To nie jest sposób, w jaki powinieneś używać kompozytora, ale nie prosisz o użycie kompozytu do zarządzania paczkami, ale pytasz, jak używać autoloadera kompozytora, co, jak sądzę, jest w porządku! tak długo, jak rozumiesz ryzyko.
3. Jeśli pakiet jest albo PSR0 lub 4 (brzmi to prawdopodobnie z folderu „src”), a następnie w podobny sposób chcesz to zrobić w swojej aplikacji najwyższego poziomu:
{
"require": {
"filp/whoops": "1.*"
},
"autoload": {
"psr-4":{
"Imaqtpie\\Framework\\":"vendor/imaqtpie/framework/src"
]
}
}
Która jest ponownie trochę dziwne, ale powinno działać!
Normalnie, można określić tę ścieżkę w pakiecie za composer.json a kiedy robisz aktualizacji pobiera połączone w swojej composer.lock
a następnie vendor/composer/installed.json
(który jest źródłem wykorzystywane do wywrotki autoload). Ale teoretycznie możesz załadować wszystko, co chcesz, z aplikacji najwyższego poziomu, a zatem możesz "zakodować" pakiet do biblioteki dostawcy i ścieżkę klas do niego.
Najprawdopodobniej polecam nie robiąc to jednak! Folder dostawców jest słabą lokalizacją, którą większość ludzi i programów założy, może zostać zniszczona i przebudowana zgodnie z kaprysem. Jest to więc niebezpieczne miejsce do przechowywania wszystkiego, czego nie ma w pakiecie. Jest to również mylące dla innych programistów, którzy będą zakładać to samo.
Zalecam przeniesienie biblioteki do innej lokalizacji niż folder dostawcy, np. 'lib', a następnie za pomocą powyższej metody classpath, aby włączyć ją do autoloadera.
To jest poprawna odpowiedź. Nie powinieneś kontrolować wersji swojego folderu 'vendor', dlatego najlepiej zrobić repo dla kodu, który chcesz dodać do folderu dostawcy i dodać go przez kompozytora. –