Làm thế nào để cài đặt và sử dụng Composer
Trong bài này, chúng tôi sẽ chỉ bạn cách làm thế nào để cài đặt và sử dụng Composer trên nhiều nền tảng khác nhau. Composer là một dependency manager cho PHP. Nó là công cụ đơn giản và đáng tin cậy mà nhiều developer sử dụng để quản lý và tích hợp các package hay thư viện bên ngoài vào dự án PHP. Nhờ vậy, họ không phải sxa6y dựng webpage hoặc web application từ đầu.
Để giúp bạn biết dùng tool này, bạn sẽ cần học thêm cách tạo một dự án PHP cơ bản.
Trước khi học cách cài đặt Composer, hãy chắc rằng bạn có quyền truy cập vào command line interface trên hệ thống hoặc server của bạn.
Cài đặt và sử dụng Composer trên một giải pháp web hosting mạnh mẽ!
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 đó.
Cài đặt Composer
Mục này chúng tôi sẽ hướng dẫn bạn cài đặt Composer trên shared hosting và các hệ điều hành như Linux, macOS và Windows.
1. Cài đặt Composer trên Shared Hosting, Linux hoặc macOS
Lệnh để cài đặt Composer trên shared hosting, Linux (PC hoặc server), và macOS là giống nhau.
Lưu ý: Composer đã được cài sẵn trên gói TINET.VN Premium và Business. Bạn có thể bỏ qua bước này nếu bạn đang dùng một gói rồi. Tuy nhiên, nếu bạn phát hiện Composer bị lỗi thời, bạn có thể cập nhật nó bằng lệnh sau:
php composer.phar self-update
Hãy làm theo hướng dẫn này để biết cách cài Composer trên hệ thống của bạn:
- Kết nối tới tài khoản hosting bằng SSH. Cách kết nối có thể tham khảo bài hướng dẫn SSH này.
- Tải Composer từ trang web chính thức bằng lệnh sau:
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
- Xác nhận là lại chữ ký của bộ cài (SHA-384) để đảm bảo installer file không bị hỏng:
php -r "if (hash_file('sha384', 'composer-setup.php') === 'e0012edf3e80b6978849f5eff0d4b4e4c79ff1609dd1e613307e16318854d24ae64f26d17af3ef0bf7cfb710ca74755a') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
Chuỗi ký tự dài ở trên (‘e0012edf…’) là installer’s signature. Nó thay đổi mỗi khi có phiên bản Composer mới. Vì vậy, hãy chắc chắn bạn dùng bản SHA-384 mới nhất từ trang này.
- Khi hoàn tất, bạn có thể cài đặt Composer local hoặc global. Local installation nghĩa là dependency manager sẽ lưu vào trong thư mục hiện hành. Bạn phải xác định đường dẫn trước khi thực thi lệnh. Còn global installation giúp bạn chạy Composer từ bất kỳ đâu trong hệ thống của bạn bằng cách lưu nó vào trong thư mục /usr/local/bin. Đây là phương pháp cài cho cả 2:
- Local installation:
php composer-setup.php
- Global installation:
php composer-setup.php --install-dir=/usr/local/bin --filename=composer
Bạn sẽ nhận được kết quả:
All settings correct for using Composer Downloading... Composer (version 1.10.5) successfully installed to: /usr/local/bin/composer
- Local installation:
- Sau khi hoàn tất, xóa installer:
php -r "unlink('composer-setup.php');"
- Kiểm tra lại Composer installation:
composer
Lệnh sẽ trả về kết quả:
______ / ____/___ ____ ___ ____ ____ ________ _____ / / / __ / __ `__ / __ / __ / ___/ _ / ___/ / /___/ /_/ / / / / / / /_/ / /_/ (__ ) __/ / ____/____/_/ /_/ /_/ .___/____/____/___/_/ /_/ Composer version 1.10.5 2020-02-12 16:20:11
2. Cài đặt Composer trên 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:
- Chúng tôi khuyên dùng XAMPP cho mục đích này, quá trình cài trực quan và chỉ tốn vài phút.
- Tải về phiên bản mới nhất tại đây
- Khi tải, chỉ cần mở wizard và cài đặt Composer. Quá trình không mất tới vài phút. Bạn có thể bỏ qua developer mode trong quá trình và nhấn nút Next
- Một cửa sổ hiện lên và hỏi vị trí PHP command line. Mặc định nó là trong C:/xampp/php/php.exe. Sau khi xác định vị trí, nhấn nút Next.
- Bạn sẽ được hỏi Proxy Settings. Để ô này mặc định không check và nhấn Next. Rồi nhấn Install.
- Sau khi hoàn tất cài đặt, mở command prompt, nhấn CTRL + R trong cmd và nhấn OK
- Trong command prompt, điền code sau:
composer
Rồi! 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.
Tạo và hiểu về 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ệc 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 composer.json. Nhưng đây là là bài hướng dẫn tạo các tác vụ tự động, nên chúng tôi không khuyên làm theo hướng thủ công.
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:
- 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
- Truy cập thư mục vừa được tạo:
cd phptimer
- 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 trong thư viện. Để làm việc này chỉ cần gõ timer trong thanh tìm kiếm, như sau:
- Như bạn thấy, có cơ số timers cho lập trình viên. Xác định package bạn thích để Composer có thể thêm nó vào dự án:
composer require phpunit/php-timer
The output will show the version of phpunit/php-timer:
Using version ^1.0 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ẽ không tương thích. Hãy tìm hiểu thêm về phiên bản Composer trong trang tài liệu chính thức của nó.
Sau khi thực thi lệnh trên, dự án thư mục sẽ có 2 files mới – composer.json và composer.lock — và một thư mục có tên vendor. Đây là thư mục nơi Composer lưu toàn bộ packages và dependencies.
Sử dụng script tự upload
Dự án đã gần như sẵn sàng, và chỉ còn 1 điều cần làm nữa là tải dependcy vào PHP script. May mắn là, Composer’s autoload file sẽ giúp bạn hoàn tất process này nhanh hơn.
Để dùng autoloading, viết đoạn code sau trước khi khai báo và thiết lập biến mới trong script của bạn:require ‘/vendor/autoload.php’
require '/vendor/autoload.php'
Chúng tôi sẽ cho bạn thêm ví dụ
Ví dụ như chúng tôi muốn kiểm thử dự án phptimer:
- Mở nano text editor để tạo script có tên demo.php:
nano demo.php
- Rồi dán những dòng code sau vào:
<?php require __DIR__ . '/vendor/autoload.php' Timer::start(); // your code $time = Timer::stop(); var_dump($time); print Timer::secondsToTimeString($time);
- Chạy script.
php demo.php
Khi thực thi, nó sẽ cho kết quả tương tự sau:
double(1.0893424438611E-5) 0 ms
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ế vendor/package 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
Composer giúp developers quản lý dependencies của PHP projects. Nhờ vào phần mềm này, chúng ta có thể dễ dàng tích hợp và quản lý package mã nguồn mở trở trong cùng 1 nơi.
Điều tuyêt vời là Composer có thể resolve dependencies trên từng project một. Vì vậy, developer có thể kiểm soát package của mỗi project và giữ cho kích thước dự án được như ý.
Trong bài này, bạn đã học cách cài đặt Composer và cách dùng Composer hiệu quả. Tóm lại, hãy cùng xem lại từng bước mà bạn đã biết nhé:
- Cài đặt Composer trên shared hosting, Linux, macOS, hoặc Windows system.
- Tạo và hiểu về file composer.json.
- Sử dụng Autoload script để tải dependencies vào file PHP.
- Cập nhật project dependencies.
Chúng tôi hy vọng qua bài này, bạn đã hiểu rõ cơ bản cách dùng Composer, thiết lập được dự án mạnh mẽ trên PHP. Chúc bạn may mắn và tự nhiên hỏi mọi thứ bạn cần biết trong phần bình luận nhé.
Write a Comment
You must be logged in to post a comment.