Cách cài đặt và sử dụng Composer trên Ubuntu 14.04
Composer là một công cụ quản lý phụ thuộc phổ biến cho PHP, được tạo ra chủ yếu để tạo điều kiện thuận lợi cho việc cài đặt và cập nhật cho các phụ thuộc của dự án. Nó sẽ kiểm tra các gói khác mà một dự án cụ thể phụ thuộc vào và cài đặt chúng cho bạn, sử dụng các version phù hợp theo yêu cầu của dự án.Hướng dẫn này sẽ chỉ ra cách cài đặt và bắt đầu với Composer trên server Ubuntu 14.04.
Yêu cầu
Đối với hướng dẫn này, bạn cần :
- Server chạy Ubuntu 14.04
- Truy cập vào server với quyền là regular user với quyền sudo
Bước 1 - Cài đặt Phụ thuộc
Trước khi ta download và cài đặt Composer, ta cần đảm bảo server của ta đã cài đặt tất cả các phần phụ thuộc.
Trước tiên, hãy cập nhật cache ẩn của trình quản lý gói bằng lệnh:
- sudo apt-get update 
Bây giờ, hãy cài đặt các phụ thuộc.  Ta   cần  curl để  download  Composer và php5-cli để cài đặt và chạy nó. git được sử dụng bởi Composer để  download  các phụ thuộc của dự án. Mọi thứ có thể được cài đặt bằng lệnh sau:
- sudo apt-get install curl php5-cli git 
Đến đây bạn có thể tiến hành bước tiếp theo.
Bước 2 - Download và cài đặt composer
Cài đặt composer thực sự đơn giản và có thể được thực hiện bằng một lệnh duy nhất:
- curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer 
Thao tác này sẽ  download  và cài đặt Composer dưới dạng một lệnh trên toàn hệ thống có tên là composer , trong /usr/local/bin . Đầu ra sẽ như thế này:
Output#!/usr/bin/env php All settings correct for using Composer Downloading...  Composer successfully installed to: /usr/local/bin/composer Use it: php /usr/local/bin/composer Để kiểm tra cài đặt của bạn, hãy chạy:
- composer 
Và bạn sẽ nhận được kết quả tương tự như sau:
Output   ______   / ____/___  ____ ___  ____  ____  ________  _____  / /   / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/ / /___/ /_/ / / / / / / /_/ / /_/ (__  )  __/ / \____/\____/_/ /_/ /_/ .___/\____/____/\___/_/                     /_/ Composer version 1.0-dev (9859859f1082d94e546aa75746867df127aa0d9e) 2015-08-17 14:57:00  Usage:  command [options] [arguments]  Options:  --help (-h)           Display this help message  --quiet (-q)          Do not output any message  --verbose (-v|vv|vvv) Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug  --version (-V)        Display this application version  --ansi                Force ANSI output  --no-ansi             Disable ANSI output  --no-interaction (-n) Do not ask any interactive question  --profile             Display timing and memory usage information  --working-dir (-d)    If specified, use the given directory as working directory.  . . . Điều này nghĩa là Composer đã được cài đặt thành công trên hệ thống.
 Nếu bạn muốn có các file  thực thi Composer riêng biệt cho từng dự án mà bạn có thể lưu trữ trên  server  này, bạn có thể chỉ cần cài đặt nó local , trên cơ sở từng dự án. Phương pháp này cũng hữu ích khi  user  hệ thống của bạn không có quyền cài đặt phần mềm trên toàn hệ thống. Trong trường hợp này, cài đặt có thể được thực hiện với curl -sS https://getcomposer.org/installer | php - điều này sẽ tạo file  composer.phar trong folder  hiện tại của bạn, file  này có thể được thực thi bằng php composer.phar [command] .
Bước 3 - Tạo file composer.json
 Để sử dụng Composer trong dự án  của bạn , bạn cần có file  composer.json . Về cơ bản, file  composer.json cho Composer biết những phụ thuộc nào nó cần  download  cho dự án của bạn và version  nào của mỗi gói được phép cài đặt. Điều này cực kỳ quan trọng để giữ cho dự án của bạn nhất quán và tránh cài đặt các version  không ổn định có thể gây ra sự cố tương thích ngược.
 Bạn không cần phải tạo file  này theo cách thủ công - rất dễ gặp lỗi cú pháp khi bạn làm như vậy. Composer tự động tạo ra các composer.json  file  khi bạn thêm một phụ thuộc vào dự án của bạn bằng cách sử dụng require lệnh. Các phần phụ thuộc bổ sung cũng có thể được thêm theo cách tương tự mà không cần phải chỉnh sửa file  này theo cách thủ công.
Quá trình sử dụng Composer để cài đặt một gói phụ thuộc trong một dự án thường bao gồm các bước sau:
- Xác định loại thư viện mà ứng dụng cần
- Nghiên cứu một thư viện open-souce phù hợp trên Packagist.org , repository chính thức cho Composer
- Chọn gói bạn muốn phụ thuộc vào
-  Run composer requirebao gồm phần phụ thuộc trong filecomposer.jsonvà cài đặt gói
Ta sẽ xem điều này hoạt động như thế nào trong thực tế với một ứng dụng demo đơn giản.
Mục tiêu của ứng dụng này là chuyển đổi một câu đã cho thành một chuỗi thân thiện với URL - một slug . Điều này thường được sử dụng để chuyển đổi tiêu đề trang thành đường dẫn URL (như phần cuối cùng của URL cho hướng dẫn này).
Hãy bắt đầu bằng cách tạo một folder cho dự án của ta . Ta sẽ gọi nó là slugify :
- cd ~ 
- mkdir slugify 
- cd slugify 
Tìm kiếm các Gói hàng trên Packagist
Bây giờ đã đến lúc tìm kiếm Packagist.org cho một gói có thể giúp ta tạo ra slug . Nếu bạn tìm kiếm cụm từ “slug” trên Packagist, bạn sẽ nhận được kết quả tương tự như sau:
Bạn sẽ thấy hai số ở bên phải của mỗi gói trong danh sách. Số ở trên cùng biểu thị số lần gói được cài đặt và số ở dưới cùng cho biết số lần một gói được gắn dấu sao trên GitHub. Bạn có thể sắp xếp lại thứ tự các kết quả tìm kiếm dựa trên những con số này (tìm hai biểu tượng ở bên phải của thanh tìm kiếm). Nói chung, các gói có nhiều cài đặt hơn và nhiều sao hơn có xu hướng ổn định hơn, vì có rất nhiều người đang sử dụng chúng. Điều quan trọng là kiểm tra mô tả gói để biết mức độ liên quan - đó có thực sự là thứ bạn đang tìm kiếm?
 Những gì  ta  cần là một công cụ chuyển đổi  string-to-slug  đơn giản. Từ kết quả tìm kiếm, gói cocur/slugify có vẻ là một kết hợp tốt, với số lượng cài đặt hợp lý và số sao. (Gói hàng ở phía dưới trang xa hơn một chút so với ảnh chụp màn hình.)
 Bạn sẽ nhận thấy rằng các gói trên Packagist có tên nhà cung cấp và tên gói . Mỗi gói có một định danh duy nhất (một không gian tên) ở cùng một định dạng mà Github sử dụng cho các kho của nó: vendor/package . Thư viện  ta  muốn cài đặt sử dụng không gian tên cocur/slugify Không gian tên là thứ  ta  cần để yêu cầu gói trong dự án của  ta .
Yêu cầu một gói
 Bây giờ  ta  biết chính xác gói nào  ta  muốn cài đặt,  ta  có thể chạy trình composer require để bao gồm nó làm phụ thuộc và cũng tạo file  composer.json cho dự án:
- composer require cocur/slugify 
OutputUsing version ^1.3 for cocur/slugify ./composer.json has been created Loading composer repositories with package information Updating dependencies (including require-dev)   - Installing cocur/slugify (v1.3)     Downloading: 100%           Writing lock file Generating autoload files  Như bạn thấy  từ  kết quả , Composer tự động quyết định version  của gói nên được sử dụng. Nếu bạn kiểm tra folder  của dự án ngay bây giờ, nó sẽ chứa hai file  mới: composer.json và composer.lock , và một folder  vendor :
- ls -l 
Outputtotal 12 -rw-rw-r-- 1 sammy sammy   59 Sep  9 16:22 composer.json -rw-rw-r-- 1 sammy sammy 2835 Sep  9 16:22 composer.lock drwxrwxr-x 4 sammy sammy 4096 Sep  9 16:22 vendor Tệp composer.lock được sử dụng để lưu trữ thông tin về version  nào của mỗi gói được cài đặt và  đảm bảo  các version  tương tự được sử dụng nếu ai đó sao chép dự án của bạn và cài đặt các phần phụ thuộc của nó. Thư mục vendor là nơi chứa các phụ thuộc của dự án. Các vendor folder  không nên được  commit  vào điều khiển version  - bạn chỉ cần bao gồm các  file  composer.json và composer.lock.
 Khi cài đặt một dự án đã chứa file  composer.json , bạn cần chạy composer install để  download  các phụ thuộc của dự án.
Hiểu các ràng buộc về version
 Nếu bạn kiểm tra nội dung của file  composer.json  của bạn , bạn sẽ thấy  thông tin như  sau:
- cat composer.json 
- { 
-     "require": { 
-         "cocur/slugify": "^1.3" 
-     } 
- } 
Bạn có thể nhận thấy ký tự đặc biệt ^ trước số version  trên composer.json . Composer hỗ trợ một số ràng buộc và định dạng khác nhau để xác định version  gói yêu cầu, nhằm cung cấp tính linh hoạt trong khi vẫn giữ cho dự án của bạn ổn định. Toán tử dấu mũ ( ^ ) được sử dụng bởi file  composer.json được tạo tự động là toán tử  được khuyến khích  để có khả năng tương tác tối đa, sau cách lập phiên bản ngữ nghĩa . Trong trường hợp này, nó xác định 1.3 là version  tương thích tối thiểu và cho phép cập nhật lên bất kỳ version  nào trong tương lai dưới 2.0 .
 Nói chung, bạn sẽ không cần phải can thiệp vào các ràng buộc version  trong file  composer.json  của bạn . Tuy nhiên, một số tình huống có thể yêu cầu bạn chỉnh sửa các ràng buộc theo cách thủ công - ví dụ: khi một version  mới chính của thư viện yêu cầu của bạn được phát hành và bạn muốn nâng cấp hoặc khi thư viện bạn muốn sử dụng không tuân theo cách lập version  ngữ nghĩa.
Dưới đây là một số ví dụ để bạn hiểu rõ hơn về cách hoạt động của các ràng buộc version Composer:
| Hạn chế | Ý nghĩa | Các version mẫu được phép | 
|---|---|---|
| ^ 1,0 | > = 1,0 <2,0 | 1.0, 1.2.3, 1.9.9 | 
| ^ 1.1.0 | > = 1.1.0 <2.0 | 1.1.0, 1.5.6, 1.9.9 | 
| ~ 1.0 | > = 1,0 <2,0,0 | 1.0, 1.4.1, 1.9.9 | 
| ~ 1.0.0 | > = 1.0.0 <1.1 | 1.0.0, 1.0.4, 1.0.9 | 
| 1.2.1 | 1.2.1 | 1.2.1 | 
| 1. * | > = 1,0 <2,0 | 1.0.0, 1.4.5, 1.9.9 | 
| 1.2. * | > = 1,2 <1,3 | 1.2.0, 1.2.3, 1.2.9 | 
Để có cái nhìn chuyên sâu hơn về các ràng buộc của version Composer, hãy xem tài liệu chính thức của chúng.
Bước 4 - Bao gồm Tập lệnh Tự động tải
Composer cũng cung cấp tập lệnh tự động tải mà bạn có thể đưa vào dự án của bạn để tự động tải miễn phí. Điều này làm cho việc làm việc với các phụ thuộc và xác định không gian tên của bạn dễ dàng hơn nhiều.
 Điều duy nhất bạn cần làm là đưa file  vendor/autoload.php vào các tập lệnh PHP của bạn, trước khi khởi tạo bất kỳ lớp nào.
 Hãy quay lại ứng dụng ví dụ slugify .  Ta  sẽ tạo một tập lệnh test.php trong đó  ta  sẽ sử dụng thư viện cocur / slugify :
- vim test.php 
- <?php 
- require __DIR__ . '/vendor/autoload.php'; 
-  
- use Cocur\Slugify\Slugify; 
-  
- $slugify = new Slugify(); 
-  
- echo $slugify->slugify('Hello World, this is a long sentence and I need to make a slug from it!'); 
Bạn có thể chạy tập lệnh trong dòng lệnh với:
- php test.php 
Điều này sẽ tạo ra  kết quả  hello-world-this-is-a-long-sentence-and-i-need-to-make-a-slug-from-it .
Bước 5 - Cập nhật các phụ thuộc của dự án
  Khi  nào bạn muốn cập nhật các phụ thuộc dự án  của bạn , bạn chỉ cần chạy lệnh update :
- composer update 
Điều này sẽ kiểm tra các version  mới hơn của các thư viện mà bạn yêu cầu trong dự án  của bạn . Nếu tìm thấy version  mới hơn và nó tương thích với giới hạn version  được xác định trong file  composer.json , version  đó sẽ thay thế version  đã cài đặt trước đó. Tệp composer.lock sẽ được cập nhật  để áp dụng thay đổi  này.
Bạn cũng có thể cập nhật một hoặc nhiều thư viện cụ thể bằng lệnh:
- composer update vendor/package vendor2/package2 
Kết luận
Composer là một công cụ mạnh mẽ mà mọi nhà phát triển PHP nên có trong vành đai tiện ích của họ.
Ngoài việc cung cấp một cách dễ dàng và tin cậy để quản lý các phụ thuộc của dự án, nó còn cài đặt một tiêu chuẩn thực tế mới để chia sẻ và khám phá các gói PHP do cộng đồng tạo ra.
Hướng dẫn này bao gồm những điều cần thiết để bắt đầu với Composer trên Ubuntu 14.04.
Các tin liên quan
Cách tối ưu hóa cài đặt Tomcat của bạn trên Ubuntu 14.042015-09-08
Cách cài đặt Mailpile trên Ubuntu 14.04
2015-08-21
Cách cài đặt CouchDB và Futon trên Ubuntu 14.04
2015-08-10
Cách thiết lập firewall với UFW trên Ubuntu 14.04
2015-08-05
Cách đánh giá độ trễ HTTP theo chuẩn với wrk trên Ubuntu 14.04
2015-07-21
Cách cài đặt và sử dụng Command Line Cheat Sheets trên Ubuntu 14.04
2015-07-21
Cách cài đặt và sử dụng CFEngine Community Edition trên Ubuntu 14.04
2015-07-17
Cách cài đặt Solr 5.2.1 trên Ubuntu 14.04
2015-07-14
Cách cài đặt và cấu hình Riak2 với Python3 trên Ubuntu 14.04
2015-07-14
Cách thiết lập R trên Ubuntu 14.04
2015-07-13
 

