Nhà soạn nhạc json cập nhật phiên bản php
Nếu môi trường phát triển và sản xuất của bạn không phù hợp, bạn có thể dễ dàng gặp khó khăn khi đến lúc triển khai máy chủ trực tiếp. Không có gì lạ khi các nhà phát triển thấy mình làm việc với một phiên bản PHP và sử dụng một phiên bản khác trong đích đến cuối cùng của ứng dụng hoặc trang web. Nếu bạn sử dụng Trình soạn thảo để quản lý các gói PHP, sẽ rất tốt nếu bạn có thể tính đến điều này để tránh mọi bất ngờ khó chịu sau khi triển khai. Rất may Nhà soạn nhạc đã bảo hiểm này Show
Chúng tôi có thể cho Composer biết phiên bản PHP nào chúng tôi đang hỗ trợ với ứng dụng/trang web của mình bằng cách sử dụng cấu hình 5 trong trình soạn thảo của chúng tôi. tập tin json
Trong ví dụ này, chúng tôi đang giả mạo phiên bản PHP thành 5. 6. 1. Điều này có nghĩa là bất cứ khi nào chúng tôi thử và cài đặt hoặc cập nhật một gói với Trình soạn thảo, phiên bản nền tảng giả mạo của PHP sẽ được tính đến thay vì phiên bản PHP đang được sử dụng trên dòng lệnh mà chúng tôi đang chạy Trình soạn thảo từ. Điều này thực sự hữu ích nếu môi trường sản xuất của chúng tôi sử dụng một thiết lập khác với môi trường chúng tôi đang phát triển. Ví dụ: bạn có thể đang sử dụng phiên bản cập nhật của PHP 7 cục bộ, nhưng triển khai tới máy chủ vẫn sử dụng phiên bản 5. 6 Một cách khác để thiết lập điều này là từ dòng lệnh
Điều này sẽ đặt tùy chọn 5 trong trình soạn nhạc. json cho chúng tôi. Trong ví dụ này, nó sẽ thêm PHP 5. 6. 1 vào tệp JSON giống như trong ví dụ trước. Bạn cũng có thể sử dụng cờ 7 để đặt cờ này trên toàn cầuTrên nền tảng gói Trình soạn thảo, các yêu cầu được thêm vào giống như các phụ thuộc gói. Vì vậy, ví dụ: nếu chúng tôi có một gói yêu cầu tối thiểu PHP 7. 1. 0 nhà soạn nhạc. tệp json sẽ trông như thế nào. -
Đây là những gì Trình soạn thảo sẽ sử dụng khi cài đặt và cập nhật các gói khi dự án của chúng tôi có cấu hình nền tảng
Khi nói đến việc cài đặt và cập nhật các gói, đôi khi bạn có thể muốn bỏ qua các yêu cầu nền tảng. Ví dụ: khi thêm hoặc cập nhật phần phụ thuộc của nhà phát triển sẽ không bao giờ được cài đặt trên môi trường sản xuất. Đối với điều này, chúng ta có thể sử dụng cờ 0
Mặc dù sử dụng cấu hình 5 trong composer. json có thể không bắt được tất cả các gói không phù hợp khi sử dụng Trình soạn thảo, hy vọng rằng nó sẽ bắt được hầu hết các mã không tương thích mà có thể đã tìm thấy đường vào môi trường sản xuất của bạn. Đây là một cứu cánh cho tôi trong quá khứ và giúp tôi tránh được nhiều cơn đau đầu Để giới thiệu cách sử dụng cơ bản của chúng tôi, chúng tôi sẽ cài đặt 02, một thư viện ghi nhật ký. Nếu bạn chưa cài đặt Composer, hãy tham khảo chương Giới thiệu
php composer.phar update0. Thiết lập dự án#Để bắt đầu sử dụng Composer trong dự án của bạn, tất cả những gì bạn cần là một tệp 0. Tệp này mô tả các phần phụ thuộc của dự án của bạn và cũng có thể chứa siêu dữ liệu khác. Thông thường, nó sẽ nằm trong thư mục trên cùng của kho lưu trữ dự án/VCS của bạn. Về mặt kỹ thuật, bạn có thể chạy Composer ở bất cứ đâu nhưng nếu bạn muốn xuất bản một gói lên Packagist. org, nó sẽ phải có khả năng tìm thấy tệp ở đầu kho lưu trữ VCS của bạnPhím php composer.phar update2#Điều đầu tiên bạn chỉ định trong 0 là khóa 2. Bạn đang nói với Composer những gói mà dự án của bạn phụ thuộc vào 0Như bạn có thể thấy, 2 lấy một đối tượng ánh xạ các tên gói (e. g. 02) đến các ràng buộc phiên bản (e. g. 7)Composer sử dụng thông tin này để tìm kiếm tập hợp tệp phù hợp trong gói "kho" mà bạn đăng ký bằng khóa 8 hoặc trong Packagist. org, kho gói mặc định. Trong ví dụ trên, do không có kho lưu trữ nào khác được đăng ký trong tệp 0 nên giả định rằng gói 02 đã được đăng ký trên Packagist. tổ chức. (Đọc thêm về Packagist và về kho lưu trữ)Tên gói#Tên gói bao gồm tên nhà cung cấp và tên dự án. Thường thì những thứ này sẽ giống hệt nhau - tên nhà cung cấp chỉ tồn tại để ngăn xung đột đặt tên. Ví dụ, nó sẽ cho phép hai người khác nhau tạo một thư viện tên là 51. Một người có thể được đặt tên là 52 trong khi người kia có thể là 53Đọc thêm về xuất bản các gói và đặt tên gói. (Lưu ý rằng bạn cũng có thể chỉ định "gói nền tảng" làm phần phụ thuộc, cho phép bạn yêu cầu một số phiên bản nhất định của phần mềm máy chủ. Xem các gói nền tảng bên dưới. ) Hạn chế phiên bản gói #Trong ví dụ của chúng tôi, chúng tôi đang yêu cầu gói Monolog với ràng buộc phiên bản 54. Điều này có nghĩa là bất kỳ phiên bản nào trong nhánh phát triển 55 hoặc bất kỳ phiên bản nào lớn hơn hoặc bằng 2. 0 và nhỏ hơn 2. 1 ( 56)Vui lòng đọc các phiên bản để biết thêm thông tin chi tiết về các phiên bản, cách các phiên bản liên quan với nhau và về các ràng buộc của phiên bản
Cài đặt phụ thuộc #Để cài đặt ban đầu các phụ thuộc đã xác định cho dự án của bạn, bạn nên chạy lệnh 0
Điều này sẽ khiến Composer làm hai việc
Cam kết tệp php composer.phar update2 của bạn với kiểm soát phiên bản#Việc ủy thác tệp này cho kiểm soát phiên bản là rất quan trọng vì nó sẽ khiến bất kỳ ai thiết lập dự án sử dụng chính xác các phiên bản phụ thuộc mà bạn đang sử dụng. Máy chủ CI của bạn, các máy sản xuất, các nhà phát triển khác trong nhóm của bạn, mọi thứ và mọi người đều chạy trên cùng một phần phụ thuộc, giúp giảm thiểu khả năng xảy ra lỗi chỉ ảnh hưởng đến một số phần của quá trình triển khai. Ngay cả khi bạn phát triển một mình, trong sáu tháng khi cài đặt lại dự án, bạn có thể cảm thấy tự tin rằng các phụ thuộc được cài đặt vẫn hoạt động ngay cả khi các phụ thuộc của bạn đã phát hành nhiều phiên bản mới kể từ đó. (Xem ghi chú bên dưới về cách sử dụng lệnh 0. )
Cài đặt từ php composer.phar update2#Nếu đã có tệp 2 trong thư mục dự án, điều đó có nghĩa là bạn đã chạy lệnh 0 trước đó hoặc ai đó khác trong dự án đã chạy lệnh 0 và chuyển giao tệp 2 cho dự án (điều này tốt)Dù bằng cách nào, việc chạy 5 khi có tệp 2 sẽ giải quyết và cài đặt tất cả các phụ thuộc mà bạn đã liệt kê trong 0, nhưng Trình soạn thảo sử dụng các phiên bản chính xác được liệt kê trong 2 để đảm bảo rằng các phiên bản gói nhất quán cho mọi người làm việc trong dự án của bạn. Kết quả là bạn sẽ có tất cả các phần phụ thuộc mà tệp 0 của bạn yêu cầu, nhưng chúng có thể không phải là tất cả các phiên bản mới nhất hiện có (một số phần phụ thuộc được liệt kê trong tệp 2 có thể đã phát hành các phiên bản mới hơn kể từ khi tệp được tạo). Điều này là do thiết kế, nó đảm bảo rằng dự án của bạn không bị hỏng do những thay đổi không mong muốn trong các phụ thuộcVì vậy, sau khi tìm nạp các thay đổi mới từ kho lưu trữ VCS của bạn, bạn nên chạy Trình soạn thảo 5 để đảm bảo thư mục nhà cung cấp đồng bộ với tệp 2 của bạn 5Đang cập nhật các phần phụ thuộc lên các phiên bản mới nhất của chúng#Như đã đề cập ở trên, tệp 2 ngăn bạn tự động tải các phiên bản phụ thuộc mới nhất của mình. Để cập nhật lên các phiên bản mới nhất, hãy sử dụng lệnh 0. Thao tác này sẽ tìm nạp các phiên bản phù hợp mới nhất (theo tệp 0 của bạn) và cập nhật tệp khóa với các phiên bản mới
Nếu bạn chỉ muốn cài đặt, nâng cấp hoặc xóa một phần phụ thuộc, bạn có thể liệt kê rõ ràng phần phụ thuộc đó dưới dạng đối số 5người đóng gói#người đóng gói. org là kho lưu trữ Composer chính. Kho lưu trữ Composer về cơ bản là một nguồn gói. một nơi mà bạn có thể nhận được các gói từ. Packagist đặt mục tiêu trở thành kho lưu trữ trung tâm mà mọi người sử dụng. Điều này có nghĩa là bạn có thể tự động 2 bất kỳ gói nào có sẵn ở đó mà không cần chỉ định thêm vị trí Trình soạn thảo sẽ tìm gói đóNếu bạn đến Packagist. org, bạn có thể duyệt và tìm kiếm các gói Bất kỳ dự án nguồn mở nào sử dụng Trình soạn thảo đều được khuyến nghị xuất bản các gói của họ trên Packagist. Thư viện không cần phải có trên Packagist để được Composer sử dụng, nhưng nó cho phép các nhà phát triển khác khám phá và áp dụng nhanh hơn Gói nền tảng #Trình soạn thảo có các gói nền tảng, là các gói ảo dành cho những thứ được cài đặt trên hệ thống nhưng Trình soạn thảo không thực sự cài đặt được. Điều này bao gồm bản thân PHP, phần mở rộng PHP và một số thư viện hệ thống
Bạn có thể sử dụng 82 để nhận danh sách các gói nền tảng có sẵn tại địa phương của mìnhĐang tự động tải #Đối với các thư viện chỉ định thông tin tự động tải, Trình soạn thảo tạo tệp 83. Bạn có thể bao gồm tệp này và bắt đầu sử dụng các lớp mà các thư viện đó cung cấp mà không cần làm gì thêm 2Bạn thậm chí có thể thêm mã của riêng mình vào trình tải tự động bằng cách thêm trường 84 vào 0 3Nhà soạn nhạc sẽ đăng ký trình tải tự động PSR-4 cho không gian tên 86Bạn xác định ánh xạ từ không gian tên đến thư mục. Thư mục 87 sẽ nằm trong thư mục gốc của dự án của bạn, cùng cấp độ với thư mục 6. Tên tệp ví dụ sẽ là 89 chứa lớp 020Sau khi thêm trường 84, bạn phải chạy lại lệnh này 8Lệnh này sẽ tạo lại tệp 83. Xem phần 023 để biết thêm thông tinBao gồm tệp đó cũng sẽ trả về phiên bản trình tải tự động, vì vậy bạn có thể lưu trữ giá trị trả về của lệnh gọi bao gồm trong một biến và thêm nhiều không gian tên hơn. Điều này có thể hữu ích cho các lớp tự động tải trong bộ thử nghiệm, chẳng hạn 8Ngoài tính năng tự động tải PSR-4, Composer còn hỗ trợ tính năng tự động tải PSR-0, sơ đồ lớp và tệp. Xem tài liệu tham khảo 84 để biết thêm thông tinXem thêm tài liệu về tối ưu hóa trình tải tự động
|