ฉันกำลังพยายามสร้างแพ็คเกจ Hello world ด้วยผู้แต่งจากบทช่วยสอนนี้
http://grossi.io/2013/creating-your-first-composer-packagist-package/
ฉันสามารถสร้างมันขึ้นมาและทดสอบได้เมื่อครึ่งวันก่อน แต่ตอนนี้ฉันได้ลองอีกครั้งในไดเร็กทอรีอื่นไม่กี่ครั้ง - ไม่สามารถใช้งานได้และไม่เข้าใจว่าทำไมฉันถึงได้รับข้อผิดพลาดซึ่งฉันจะแสดงในภายหลัง
นี่คือสิ่งที่ฉันทำ:
ในไดเร็กทอรี HelloWorld ฉันสร้างไดเร็กทอรี src ในไดเร็กทอรี src ฉันใส่ไฟล์ SayHello.php
namespace HelloWorld;
class SayHello
{
public static function world()
{
return 'Hello World, Composer!';
}
}
วิ่ง
composer init
หลังจากที่มันสร้างไฟล์ composer.json ฉันก็แก้ไข และสุดท้ายมันก็เป็นเช่นนั้น:
{
"name": "vagrant/hello-world",
"description": "test",
"license": "no",
"authors": [
{
"name": "darius",
"email": "[email protected]"
}
],
"minimum-stability": "dev",
"require": {
"php": ">=5.3.0"
},
"autoload": {
"psr-0": {
"HelloWorld": "src/"
}
}
}
จากนั้นฉันก็วิ่ง
composer install
ฉันได้รับผลลัพธ์:
Loading composer repositories with package information
Installing dependencies (including require-dev)
Nothing to install or update
Generating autoload files
บทช่วยสอนกล่าวว่า
นักแต่งเพลงที่ติดตั้งสร้างไดเร็กทอรี "tests" ภายใน root dir ของคุณ
แต่ฉันไม่เห็นไดเร็กทอรีดังกล่าว ดังนั้นฉันจึงสร้างมันขึ้นมาเองในไดเร็กทอรี HelloWorld บางทีผู้เขียนอาจพลาดที่จะเพิ่มบางสิ่งบางอย่าง
จากนั้นฉันก็สร้างไฟล์ test.php
require_once __DIR__ . '/../vendor/autoload.php'; // Autoload files using Composer autoload
use HelloWorld\SayHello;
echo SayHello::world();
วิ่ง:
php tests/test.php
และรับ:
ข้อผิดพลาดร้ายแรงของ PHP: ไม่พบคลาส 'HelloWorld \ SayHello' ใน /home/vagrant/package_dev/workbench/oitlabs/HelloWorld/tests/test.php ออนไลน์ 7
ตอนนี้มันเห็นได้ยังไง? ฉันพยายามเพิ่มไปที่ test.php
require_once __DIR__ . '/../src/SayHello.php';
จากนั้นมันก็เห็นและใช้งานได้ หมายความว่ามันควรจะเห็นไฟล์ ดังนั้นผู้แต่งเพลงประเภทนี้จึงสร้างไฟล์โหลดอัตโนมัติผิดหรืออะไรสักอย่าง ฉันจะแก้ไขข้อบกพร่องนี้ได้อย่างไร
ลองขั้นตอนเดียวกันในไดเร็กทอรีอื่นใกล้กับไดเร็กทอรีที่ฉันทำสำเร็จครั้งแรก เพียงใช้เนมสเปซ Hello ข้อผิดพลาดเดียวกัน
นี่คือไฟล์ด้วย - แพ็คเกจของฉันมีลักษณะอย่างไร สิ่งที่สร้างโดยผู้แต่ง: http://www58.zippyshare.com/v/Hsfg4pVf/file.html