ฉันมีห้องสมุด [Foo and Bar] สองแห่งที่ฉันกำลังพัฒนาในคอนเสิร์ต แต่ก็ยังแยกกันอยู่ในทางเทคนิค ก่อนหน้านี้ฉันเพิ่งกำหนดตัวโหลดอัตโนมัติใหม่ให้ชอบ"Foo\\": "../Foo/src"
แต่ตอนนี้ฉันได้เพิ่มการพึ่งพา Guzzle ให้กับ Foo แล้ว Bar ก็พลิกฝาเพราะมันไม่ใช่การพึ่งพาอย่างใดอย่างหนึ่ง
โครงสร้างไดเรกทอรี:
/home/user/src/
Foo/
src/
FooClient.php
composer.json
Bar/
src/
BarClient.php
composer.json
คำชี้แจง Autoload เชิงทฤษฎี: [ใน Bar / composer.json]
"require": {
"local": "../Foo/composer.json"
}
รหัสตัวอย่าง:
require('vendor/autoload.php');
$f = new \Bar\BarClient(new \Foo\FooClient());
ฉันจะแก้ไขปัญหานี้ได้อย่างไรโดยไม่ต้องตั้งค่า repo นักแต่งเพลงในเครื่อง ฉันต้องการรักษาสิ่งเหล่านี้เป็นแพ็กเกจแยกต่างหากเพียงแค่ที่ต้องการอีกแพ็กเกจและเพื่อประมวลผลการอ้างอิงของอีกฝ่าย
แก้ไขหลังคำตอบ:
ขอบคุณ infomaniac ฉันได้ทำสิ่งต่อไปนี้:
เริ่มต้น git repo:
cd ~/src/Foo && git init && echo -e "vendor\ncomposer.lock" > .gitignore && git add ./ && git commit -m "Initial Commit"
เพิ่มการกำหนดค่าผู้แต่ง:
"require": {
"sammitch/foo": "dev-master"
},
"repositories": [{
"type": "vcs",
"url": "/home/sammitch/src/Foo"
}],
แล้วcomposer update
!