2013-04-24 14 views
9

Khi tôi chạyCác gói PHP Composer đến từ đâu?

$ composer.phar install 

các gói được cài đặt đến từ đâu?

Tôi hiểu rằng Packagist là kho lưu trữ mặc định cho gói PHP và thiếu gói khác trong composer.json, đây là nơi nhà soạn nhạc sẽ tìm kiếm gói.

Tuy nhiên, những gì tôi không rõ ràng là cách Composer và Packagist tương tác.

  • Liệu file Composer tải về trực tiếp từ packagist.org

  • Hoặc không Composer có được một/hg link kho git/svn từ packagist và tải về các tập tin từ các kho lưu trữ trực tiếp?

  • Hoặc cái gì khác?

+3

nhà đóng gói giữ liên kết đến các kho lưu trữ và đó là nơi chúng được tải xuống từ –

Trả lời

10

Tùy thuộc vào nội dung trong tệp composer.json của bạn.

Ví dụ, nếu bạn composer.json chứa đơn giản

{ 
    "require": { 
     "phpunit/phpunit": "3.8.*@dev" 
    } 
} 

sau đó tìm kiếm nhà soạn nhạc packagist, và tìm thấy phpunit đây:

https://packagist.org/packages/phpunit/phpunit

mà nói với nhà soạn nhạc để tải phpunit từ đây:

https://github.com/sebastianbergmann/phpunit.git

Nếu thay composer.json của bạn chứa

{ 
    "repositories": [ 
     { 
      "type": "vcs", 
      "url": "http://github.com/sebastianbergmann/phpunit" 
     } 
    ], 
    "require": { 
     "phpunit/phpunit": "3.8.*@dev" 
    } 
} 

sau đó nhà soạn nhạc sẽ không nhìn đến packagist, nhưng đi thẳng đến github để tải về repo.

Các gói đăng ký trên Packagist là thường phiên bản "có thẩm quyền" của gói (không phải là một ngã ba), nhưng tôi đã tìm thấy một số trường hợp này là KHÔNG trường hợp, vì vậy bạn nên kiểm tra xem nó để chắc chắn bạn đang kéo gói bạn mong đợi.

1

Packagist.org cung cấp cho người dùng đăng ký phần mềm của họ ở đó bằng cách trỏ Packagist để đọc tệp composer.json của họ được xuất bản ở đâu đó trên web.

Trường hợp thông thường sẽ là một số máy chủ nguồn mở phổ biến như github, điều này làm cho nó thực sự dễ dàng bởi vì nhà soạn nhạc có thể xử lý ngay lập tức như vậy. Tuy nhiên, bạn có thể lưu trữ kho lưu trữ git hoặc svn hoặc hg của riêng mình hoặc thậm chí chỉ xuất bản các tệp ZIP hoặc TGZ sẵn sàng cho mỗi phiên bản phần mềm.

Tải xuống trình soạn nhạc trực tiếp từ nguồn, ví dụ: Packagist chỉ biết những nguồn đó và nói cho người sáng tác của bạn về nơi để đi. Nó thực hiện điều này bằng cách tải xuống một loạt các tệp json từ Packagist.org có tất cả các thông tin. Đây là cách dễ dàng hơn để tìm ra nơi mà các thư viện mà bạn muốn được lưu trữ và thêm thông tin này như là một mục nhập kho lưu trữ vào tệp composer.json cục bộ của bạn. :)