Thủ thuật Web development

Làm thế nào để cài đặt và sử dụng Composer

composer-big

Giới thiệu

Một trong số các vấn đề lớn mà lập trình viên web thường phải đối mặt là làm việc với dependency. Chúng ta đã gặp rất nhiều tình huống tích hợp các package mới vào dự án của chúng ta gây nhiều rắc rối hơn là ích lợi của nó.

Vấn đề thường đặc biệt xảy ra với PHP developers. Thông thường lập trình viên thường build modules như là data persistence từ đầu. Kết quả là rất nhiều tài nguyên bị lãng phí trên những tác vụ lỗi thời – nhưng tác vụ mà có thể được xử lý rồi bởi những giải pháp có sẵn.

Composer – một trình quản lý dependecy hữu dụng và đơn giản cho PHP. Một vài trong số các bạn có thể đã làm quen với dependency manager rồi như là PIP cho Python hoặc NPM cho Node.js.  Nó sẽ sắp xếp hợp lý các dependicies của dự án vào một nơi duy nhất.

Một tính năng quan trọng của Composer tách nó khỏi các giải pháp quản lý khác như PEAR là khả năng xử lý dependencies theo một dự án. Nó quản lý dependencies của mỗi dự án riêng biệt. Có nghĩa là bạn không cần phải có thư viện của dự án mà không xài – một ưu điểm để tối ưu kích thước dự án.

Hơn thế nữa, bạn có thể cài packaged được dùng rộng khắp bằng Composer. Việc này có thể được làm bằng cách lệnh global đặc biệt, nhưng chúng sẽ không thóa khỏi yêu cầu ban đầu là đơn giản và dễ dùng.

Trong bài hướng dẫn này, bạn sẽ học cách cài và sử dụng trong PHP projects. Chỉ cần làm các bước sau, bạn sẽ sẳn sàng cho việc đó.

Bạn cần gì?

Trước khi bắt đầu, bạn cần chuẩn bị:

  • Truy cập vào giao diện dòng lệnh

Bước 1 – Cài đặt Composer

Đầu tiên và dễ nhất là cài đặt trên máy của bạn. Có nhiều cách để cài đặt trên linux và windows theo hướng dẫn trên mạng, và còn có thể tìm ra hướng dẫn cài trên Hostinger’s shared hosting. Người dùng Mac không phải lo lắn, chỉ cần mở terminal của bạn và làm theo hướng dẫn của Linux. Có ba cách khác nhau để cài đặt là:

Lựa chọn 1 – Cài Composer trên Hostinger Shared Hosting

QUAN TRỌNG: Composer đã được cài sẵn trên gói Hostinger Premium và Business. Nếu bạn đang dùng Hostinger shared hosting,bạn có thể bỏ qua bước này và tiếp tục bước Generating and Understanding composer.json

Bạn có thể cài và chạy từ Hostinger Premium và Business dễ dàng! Chúng tôi sử dụng một script để tự động download và cài đặt phiên bản mới nhất:

  1. Đầu tiên bạn kết nối tới tài khoản Hosting qua SSL. Cách để làm việc này có thể xem tại đây: here.
  2. Bây giờ tạo file sử dụng nano text editor và đặt tên nó là create a new file using nano composer-installer.sh:
nano composer-installer.sh

Lệnh trên sẽ mở nano text editor. Dán dòng bên dưới vào:

#!/bin/sh

 

EXPECTED_SIGNATURE=$(wget -q -O - https://composer.github.io/installer.sig)

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"

ACTUAL_SIGNATURE=$(php -r "echo hash_file('SHA384', 'composer-setup.php');")

 

if [ "$EXPECTED_SIGNATURE" != "$ACTUAL_SIGNATURE" ]

then

    >&2 echo 'ERROR: Invalid installer signature'

    rm composer-setup.php

    exit 1

fi

 

php composer-setup.php --quiet

RESULT=$?

rm composer-setup.php

Script này sẽ tải bản mới nhấ của ứng dụng, kiểm tra chữ ký và tiến hành cài đặt nếu chữ ký hợp lệ.

Lưu thay đổi và thoát nano text editor bằng phím CTRL(CMD for MacOS) + X, rồi nhấn Y và Eneter.

Bây giờ thực thi script sau với lệnh:

sh composer-install.sh

Nếu cài đặt thành công, bạn sẽ không thấy output. Để xác nhận cài đặt thành công, gõ:

composer

Kết quả tương tự như sau:

   ______

  / ____/___  ____ ___  ____  ____  ________  _____

/ /   / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/

/ /___/ /_/ / / / / / / /_/ / /_/ (__  )  __/ /

\____/\____/_/ /_/ /_/ .___/\____/____/\___/_/

                    /_/

Composer version 1.3.2 2017-01-27 18:23:41

Như bạn thấy, nó đã được cài thành công.

Lựa chọn 2 – Cài Composer trên Linux/MacOS

Hầu hết các lập trình viên PHP sử dụng Macs hoặc là hệ điều hành nền Linux, nên phần này liên quan đến hầu hết người đọc. Quá trình này cũng tương tự trên cả hai OS. Ban chạy lệnh tương tự như trong terminal để lấy composer:

Ghi chú: Vì mục đích học tập, phần này sẽ dụng một lệnh kahc1 để cài thay vì script. Một phần của những commands này có thể sẽ thay đổi phụ thuộc vào phiên bản được cài. Hãy xem qua trang này this page trước khi tạo bất kỳ thay đổi nào.

Có 2 tùy chọn cho Linux/Mac users khi cài:

Cài đặt trên máy tính local.

Không phải là cách phổ biến nhất, nhưng bạn có thể cài vào máy ở nhà. Có nghĩa là hệ điều hành của bạn sẽ không phải chạy Composer từ bất kỳ nơi nào khác, bạn sẽ xác định được đường dẫn của nó. Để làm việc này, hãy làm theo các bước:

  1. Mở terminal và kết nối tới server qua [SSH]
  2. Chay lệnh sau:
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"

php -r "if (hash_file('SHA384', 'composer-setup.php') === '669656bab3166a7aff8a7506b8cb2d1c292f042046c5a994c43155c0be6190fa0355160742ab2e1c88d40d5be660b410') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"

Command sẽ lấy installer và đặt là file PHAP (PHP archive), khi lệnh 2 là bảo vệ khỏi lỗi của phần mềm. Sau khi thực thi những lệnh này, bạn đã có bản cài mới nhất của ứng dụngtrên máy tính .

Cài đặt qua lệnh sau:

php composer-setup.php --install-dir=bin --filename=composer

Bạn có thể đổi thư mục cài đặt và tên file qua các biến install-dir và filename. Tại đây bạn có thể thấy thư mục được đặt tên thành bin, và được thi chỉ được bởi composer.

Bây giờ bạn đã cài đặt xong, chỉ cần chạy lại nó và gõ lệnh

php bin/composer

Cài đặt global.

Sau khi cài trên máy tính của bạn, chúng tôi khuyên nên cài đặt global để web được truy cập trên toàn thế giới. Việc này đảm bảo bạn có thể thực thi bất kỳ nơi đâu trên thế giới, Bất kể đường dẫn. Chúng tôi làm viêc này bằng thêm Path.

Để làm việc này bạn phải

  1. Làm theo hướng dẫn của phần Cài đặt trên máy tính local.
  2. Chạy lệnh:
sudo mv composer.phar /usr/local/bin/composer

Bây giờ bạn chạy Composer từ đường dẫn hiện hành trên terminal. Để chạy composer, thực thi lệnh sau:

composer

Chúc mừng. Bạn đã cài đặt thành công trên hệ thống.

Lựa chọn 3 – Cài Composer lên máy Windows

So với các cài đặt trước thì lần này cài dễ hơn nhiều khi cài qua máy Windows. Không bình luận về cài đặt nữa, bạn chỉ cần làm theo các bước sau:

  1. Tải về phiên bản mới nhất tại đây: here.
  2. Khi tải, chỉ cần mở wizard và cài đặt. Quá trình không mất tới vài phút.
    Composer Install Wizard Windows
  3. Sau khi hoàn tất cài đặt, mở command prompt, đê mở nó, hãy CTRL, nhấn CTRL + R trong cmd và nhấn OK
    Windows Run
  4. Trong command prompt, điền code sau:
composer

Voila!  Vậy là bạn đã cài đặt thành công trên máy windows. Quá trình cài đặt sẽ bao gồm việc quản lý Composer tới biến PATH. Bạn có thể mở command prompt và bạn có thể chạy  từ khắp mọi nơi.

Bước 2 – Kích hoạt và hiểu composer.json

Bây giờ, tới phần thú vị, sử dụng Composer cho dự án PHP đầu tiên. Để làm việ này, bạn cần tạo một file composer.json cho dự án. File này có thể được xem như là chỉ mục và chỉ tải các packages (dependencies) cho dự án bạn đề cập tới trong file này.

Hãy lưu ý là nó cũng kiểm tra sự tương thích của các packages cho dự án của bạn. Có nghĩa là nếu bạn dùng một package cũ cho dự án, file composer.json sẽ cho bạn biết để tránh những bất tiện về sau.

Bạn có tùy chọn tạo và cập nhật file tự mình làm. Nhưng đây là là bài hướng dẫn tạo các tác vụ tự động, làm thủ công thì hơi kỳ.

Hãy thử độ hữu dụng của composer.json qua một dự án mẫu. Dự án của chúng tôi là một bộ đếm PHP đơn giản, lập trình viên muốn tìm coi mất bao nhiêu thời gian để mỗi tác vụ được thực thi. Rất hữu dụng trong việc debeg và tối ưu. Để làm việc này, hãy làm theo các bước:

  1. Tạo một thư mục mới cho dự án. Vì dự án của chúng tôi là timer,m chúng tôi sẽ đặt tên là phptimer. Để làm việc này, mở terminal và gõ vào dòng lệnh sau:
mkdir phptimer

2. Truy cập thư mục vừa được tạo:

cd phptimer

3. Bây giờ bạn có thể cần một package hoặc thư viện đã triển khai một timer trong php. Tốt nhất là tìm package composer trong Packgist  Packagist – một package chính thức được xây dựng cho Composer. Sau đây là thư viện package để gánh bớt sự phức tạp của phát triển sự án. Vì mục đích của bài hướng dẫn, chúng tôi sẽ cần một timer package/libary. Để làm việc này chỉ cần gõ timer trong thanh tìm kiếm, như sau:

Packagist Search

4. Như bạn thấy, có cơ số timers cho lập trình viên. Mỗi package có một tên và mô tả nhỏ. Trước mỗi package là số lượt donwload và đánh giá của nó. Hãy bắt đầu với  phpunit/php-timer (entry 7 của danh sách) có nhiều lược download và nhiều sao nhất. Hãy lưu ý là mỗi package có dạng

vendor/package [phpunit/php-timer]

Đây là một tin về namespace. Namespace độc nhất cho mỗi package của Packagist, như nó được dùng để xác định các package khác nhau. This is also called the namespace. The namespace has to be unique for each package on Packagist, as it is used to identify different packages.

5. Sau khi xác định package nào muốn cài đặt, bạn chỉ cần thông báo Composer bạn muốn chọn, chúng ta sẽ quay lại dự án này. Để làm vậy, bạn cần gõ vào command sau, sau đó bị xóa trong terminal .

composer require phpunit/php-timer

Sau khi thực thi lệnh trên, máy sẽ tạo 2 file (composer.json và composer.lock) trong thư mục của dự án, hơn nữa là bạn dùng một vendor khác New York.

Directory này sẽ sưu tập tất cả thức ăn và dependencies. Nó hữu ích với vài người, nếu bạn muốn copy tất cả các package của một hệ thống tới hệ thống khác mà không phải tải lại. Nhưng chúng tôi không khuyên dùng, vì di chuyể files có nghĩa là bạn cần tự cập nhật file composer.json thủ công – không có gì phải nó, nó có thể lộn xộn. Chỉ cần để nó xử lý các dependecies. Và một điều nữa: ai sử dụng Git hoặc các Version Control System không được thêm thư mục vendor vào repo.

Nói đến package version, bạn cũng thấy dòng đầu tiên của output là kết quả của lệnh trên và phiên bản phpunit/php-timer, được tải bởi Composer. Trong trường hợp này, nó là:

Using version ^1.0.9 for phpunit/php-timer

Dấu mũ (^) được định nghĩa bởi Composer là tùy chọn để tối ưu những hoạt động nội bộ. Nó có nghĩa đơn giản là bất kỳ dấu hiệu nào hiện lên trên một phiên bản, nó sẽ cập nhật dữ liệu của package trừ khi nó bị lỗi. Trong trường hợp của chúng tôi, nó sẽ cập nhật package trong khoảng  >=1.0.9 <2.0.0, vì 2.0.0 sẽ phá vỡ tương thich1. Hãy tìm hiểu thêm về phiên bản. Chuyển tới trang tài liệu phiên bản,

Bước 3 – Sử dụng script tự upload

Nếu bạn đã đi xa đến vậy, phần còn lại chỉ là trình diễn. Dependencies đã được cài đặt, dự án đã sãn sàng. Vâng, hầu hết.

Bây giờ bạn cần tải những dependices này vào PHP script. Có thể mất rất nhiều thời gian vô ích nếu không có sự trợ giúp của file autoload. File này đặt trong thư mục vendor của mỗi dự án. Điền một dòng vào PHP script đảm bảo mọi package được cài trên project cũng là để cho mọi người biết.

Để làm được autoload, chỉ cần viết dòng bên dưới trước khi bạn declar hoặc instatiate bất kỳ biến nào trong đoạn script:

require ‘vendor/autoload.php’

Một script mẫu được đưa ra để bạn có ý tưởng tốt hơn:

require 'vendor/autoload.php'

PHP_Timer::start();

// your code

$time = PHP_Timer::stop();

var_dump($time);

print PHP_Timer::secondsToTimeString($time);

Chay script. Khi thưc thi, nó sẽ cho kết quả tương tự sau:

double(1.0967254638672E-5)

0 ms

Bước 4 – Cập nhật Dependencies cho dự án

Tất cả những gì còn lại là bạn cập nhật package cần thiết. Nó có thể được làm qua 2 cách:

  • Universal Update

Để kiểm tra, cài đặt updates từ các gói hosting cũ và dependencies một lần cho tất cả các packages hoặc dependencies. Gõ lệnh sau vào terminal: composer update

  • Cập nhật một package được chỉ định
  • Đôi khi bạn chỉ muốn kiểm tra dữ liệu được liên kết bởi bạn của bạn. Chỉ cần thực thi lệnh sau: composer update vendor/package vendor2/package2

Hãy nhớ thay thế package/vendor với tên của bạn package bạn muốn cập nhật.

Bằng cách chạy lệnh update, composer sẽ cập nhật tất cả, từ composer.json đến composer.lock để phù hợp với tình trạng hiện tại của project dependencies.

Kết luận

Lập trình viên không phải quản lý dependency của riêng họa hoặc lập trình giải pháp cho vấn đề đã được sửa hàng triệu lần trước. Chúng ta sẽ có thể chọn giải pháp hiện tại mã nguồn mở để kết hợp chúng thành những dự án của chúng ta dễ dàng.

Đây là lý do vì sao Composer trở thành thứ vũ khí mạnh mẽ cho việc lập trình web. Bạn sẽ không mất nhiều giờ để sửa lỗi cho dependencies. Thay vào đó bạn có thể tận dụng thời gian và năng lượng lên những vấn đề khác của dự án.

Hai G.

Hải G. là chuyên gia quản lý, vận hành các dịch vụ website. Anh có nhiều năm kinh nghiệm về VPS, Hosting, technical SEO, CMS. Đặc biệt yêu thích WordPress và đã dùng nó hơn 5 năm nay. Sở thích của anh là đọc, viết blog, đi du lịch và tư vấn cho các bạn trẻ khởi nghiệp.

Thêm bình luận

Click vào đây để bình luận

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Hãy gia nhập cùng hàng trăm subscriber của Hostinger trên thế giới

để nhận các bài hướng dẫn mới nhất tới email của bạn.

Please wait...

Cảm ơn đã đăng ký!

Tiết kiệm ngay thôi!

Mua hosting & tên miền miễn phí, tất cả trong một chỉ từ

VNĐ52.000
00
/th