![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 1 844 Pomógł: 227 Dołączył: 20.03.2005 Skąd: Będzin Ostrzeżenie: (0%) ![]() ![]() |
Nie wiem jak użyć jeden katalog vendor dla wielu projektów do których potrzebuję te same wersje pakietów. Jednak jedyne wyjście - najpewniejsze to inicjacja composera w katalogu projektu, ale gdy jest dużo większych bibliotek to nie ma sensu duplikowania bibliotek.
Przedstawię układ katalogów dla mojego projektu: Kod - \projekt ---- \vendor ---- \dev -------- \libs -------- composer.json ---- \public -------- \libs -------- composer.json W katalogu ./dev i ./public zainicjowałem composer.json z następującymi danymi: Kod { "require": { "phpmailer/phpmailer": "^6.0", "mpdf/mpdf": "^7.1" }, "autoload": { "psr-4": { "":"libs" } }, "config": { "bin-dir":"libs", "vendor-dir": "../vendor" } } Niby działa, ale zawsze tylko dla jednego, czyli dla tego który ostatni otrzymał wywołanie: composer dump-autoload Kod dla autoload_psr4.php mam taki:
Zmienia się jedynie wartość zmiennej $baseDir czyli albo /dev albo /public. Czy jest jakaś recepta aby móc korzystać z wewnętrznych klas projektu osobno, a vendora wspólnie? Ten post edytował Tomplus 5.12.2018, 16:29:10 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
Po co robisz sobie problemy? Na prawdę aż tak biedujesz transfer i sotrage?
Jak już tak chcesz to zrób Kod -| composer.json ./vendor \__ dev \_ public Czyli composer wraz z json i lock katalog niżej i dołącz autoloader w każdym. Dodatkowo jak chcesz miec autoloading w projektach to dodatkowo tam załóż composer jako autoload plików samego projektu. |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 1 844 Pomógł: 227 Dołączył: 20.03.2005 Skąd: Będzin Ostrzeżenie: (0%) ![]() ![]() |
Może nie bieduje, ale chodzi mi o pewną wygodę, i pewność że stabilne biblioteki są takie same w obydwu wersjach projektu.
W poście głównym zrobiłem korektę schematu katalogu, dopisałem tam gdzie obecnie mam pliki composer.json/lock Ale wg Twojego zamysłu, na moich schemacie, ma być tak: ![]() Kod - \projekt ---- composer.json ---- \vendor ---- \dev -------- \libs ---- \public -------- \libs |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 6 366 Pomógł: 1115 Dołączył: 30.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
Przecież composer właśnie do tego służy żebyś miał wersję konkretnie jaką chcesz.
-------------------- |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 1 844 Pomógł: 227 Dołączył: 20.03.2005 Skąd: Będzin Ostrzeżenie: (0%) ![]() ![]() |
Nie przeczę, dlatego chce wersję bibliotek taką samą do dwóch wersji tego samego projektu.
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
Raczej coś takiego:
Kod o |-- vendor |-- composer.json |-- dev | |-- vendor | `-- composer.json `-- prod |-- vendor `-- composer.json W takim układzie w `dev` załączasz 2x autoload (1-szy z root dir gdzie masz main libs, a 2-gi ze swojego katalogu) Nie powiem Ci czy to zadziała na 100% ale powinno ![]() |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 1 844 Pomógł: 227 Dołączył: 20.03.2005 Skąd: Będzin Ostrzeżenie: (0%) ![]() ![]() |
Nie udało mi się poprawnie skonfigurować. Więc po prostu zrobiłem to inaczej.
Zainstalowałem bibliotekę: https://packagist.org/packages/nette/robot-loader i wdrożyłem ją do projektu. Teraz wszystko działa tak jak powinno. |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 1 045 Pomógł: 141 Dołączył: 19.09.2006 Skąd: B-tów Ostrzeżenie: (0%) ![]() ![]() |
skoro chcesz dokładnie to samo to nie możesz zwykłego symlinka zrobić?
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 19.06.2024 - 16:30 |