Hoàng Web

Thiết Kế Website WordPress

  • Kho giao diện
  • Dịch Vụ
    • Thiết kế web giá rẻ
    • Thiết kế website WordPress
    • Hosting Miễn Phí 100GB
    • Tích hợp thanh toán MoMo, ViettelPay, Vietcombank, MB..
    • Tối ưu Google PageSpeed
    • Sửa lỗi nâng cấp website
    • Viết plugin WordPress
    • Code Tool theo yêu cầu
  • Bảng giá
  • Quy trình làm việc
  • Giới thiệu
  • Liên Lạc
Trang chủ » Programming » PHP » Composer – Trình quản lý thư viện cho ứng dụng web PHP

Composer – Trình quản lý thư viện cho ứng dụng web PHP

Thứ Sáu, 03/10/2014 by Hoàng Quách

  • shares
  • Facebook
  • Facebook Messenger
  • Gmail
  • Viber
  • Skype

Composer là gì? giống như vai trò một trình quản lý các thư viện của php bạn sử dụng trong web, các thư viện php nằm trong các ngõ ngách trong thư mục chứa tài nguyên web của bạn, điều này rất khó quản lý. Trong quá trình include thư viện vào file php sẽ bị lỗi bởi các files khác của thư viện có thể cấu hình sai path dẫn đến thư viện không hoạt động được. Giờ đây việc cài thư viện php phải thông qua bộ quản lý composer là một thư viện php chủ bạn cài đặt trên thư mục lưu website.
composer-php

Nhờ đó bạn chèn thư viện ngoài vào ứng dụng web PHP rất đơn giản, không phải lo sợ bước cấu hình thư viện trước khi học cách sử dụng thư viện ngoài nữa rồi.

Cũng giống như ứng dụng node.js, composer có file manifest composer.json chứa các khai báo thư viện sẽ cài đặt.
Việc cài đặt thư viện sử dụng composer được thông qua Node.js và ruby’s bundler

Vai trò của Composer:

  • Bạn có website có sử dụng các thư viện ngoài.
  • Một vài thư viện bị phụ thuộc vào các thư viện khác
  • Những thư viện cần chèn vào ứng dụng web bạn khai báo vào composer
  • Composer sẽ tìm phiên bản của thư viện bạn cần và cài đặt trực tiếp trên folder web

Để cài đặt composer bạn tải file composer.phar tại địa chỉ http://getcomposer.org/composer.phar, sau đó copy file này vào chung thư mục với ứng dụng nodejs. Tại sao lại có ứng dụng nodejs ở đây, cho dù trước đó bạn không cài node.js module trên ứng dụng web thì đến phần cài đặt composer bạn có đã tạo một ứng dụng node.js trên folder web rồi.

Chúng ta sẽ Kiểm tra xem composer có hoạt động không, bằng cách chạy php vào file composer.phar

php composer.phar

Mở lệnh trên bạn sẽ thấy danh sách các lệnh sử dụng trong composer hiển thị tại console.
composer-phar

Lưu ý: ban cần thiết lập biến môi trường windows vào thư mục cài đặt xampp php c:\xampp\php để sử dụng lệnh php ở mọi folder.

Như mình nói ở trên, để bắt đầu sử dụng composer trong project, tất cả những gì bạn cần là file composer.json
Ví dụ, chúng ta cài đặt thư viện Monolog, khai báo các thư viện sẽ cài đặt vào key “require” , thay cho nodejs là “dependencies”.
Nội dung composer.json

{
    "require": {
        "monolog/monolog": "1.0.*"
    }
}

Sau khi khai báo xong dependencies, bạn gõ lệnh cài đặt thông qua composer.phar.

php composer.phar install

Cách làm việc giống node.js đúng không. Lệnh trên sẽ tìm phiên bản monolog mới nhất 1.0.x và download về thư mục vendor. Thư mục này chứa các code thư viện “third party”, trường hợp monolog được đặt tại vendor/monolog/monolog.
Tham số cuối cùng install là để tạo file composer.lock vào thư mục gốc chứa composer
composer-installs

Các thư viện được cài đặt thông qua khai báo vào trường “require” tức package dependencies, phải tồn tại trên danh sách packages của getcomposer.org

Ngoài ra, nếu thư viện đã tải về máy cũng có thể khai báo vào composer không bắt buộc phải cài thông qua composer. Bằng cách thêm vào key “autoload”.
Các thư viện có namespace được khai báo vào key psr-x (với x từ 0-4 theo chuẩn autoload. Xem tại đây).
Copy những thư viện bạn tải ngoài được cùng cấu trúc folder namespace vào trong thư mục src, nằm trung level với folder vendor. Đường dẫn namepace chính chứa code các thư viện (ie: src) lưu ở value + namespace của thư viện tạo ở key của đối tượng json liệt kê ở autoload. Giống thế này:

{
    "autoload": {
        "psr-4": {"Acme\\": "src/"}
    }
}
"autoload": {
        "psr-0": {
            "DNode": "src"
        }
    }

Chú ý: folder hay namespace chính lưu code thư viện có thể tùy ý, tên folder thường để dễ nhận biết dùng cho nhiều ngông ngữ lập trình để chứa các files mã nguồn là thư mục “src”. Tuy nhiên bạn có thể đổi với tên khác, thậm trí một namespace có nhiều thư mục con. Ví dụ:

"autoload":{
    "psr-0":{
       "DNode":"mycode/code1"
    }
}

Ví dụ trên, chuẩn autoload psr-0 có thư viện DNode nằm trong folder nguồn “src”, như vậy namespace của thư viện có file chính trùng tên với namepspace. Ở đây, ta có file đầu vào src/DNode/DNode.php

Sau khi tạo trường autoload trong file manifest composer.json, chúng ta cần cập nhật lại thông tin thư viện mới thêm để tạo lại file vendor/autoload.php. Bằng cách chạy lệnh install một lần nữa.

$ php composer.phar install

Ngoài ra, còn có cách khác nếu không sử dụng cách nạp lại thông tin thư viện như ở trên, bạn có thể thêm thư viện mới bằng khai báo trực tiếp vào trong code, sử dụng đối tượng trả về của autoload.

$loader = require 'vendor/autoload.php';
$loader->add('Acme\\Test\\', __DIR__);

psr-0 trong khai báo namespace thì không có ký tự “\” so với chuẩn psr-4 như bạn thấy ở trên. Xem thêm cách cài đặt thư viện DNode cho node.js.

Cách sử dụng thư viện

Các thư viện được cài đặt bằng composer đều lưu thông tin trong file autoload.php , composer sinh ra file vendor/autoload.php. Bạn chỉ cần include file này vào dự án trước khi chèn các thư viện khác để sử dụng.

require 'vendor/autoload.php';

autoload chính là một package bạn khai báo cho các thư viện sẵn sàng sử dụng. Điều này giúp dễ dàng nhúng thư viện vào web, ví dụ trong ví dụ trên, chúng ta cài đặt Monolog thư viện tạo log cho ứng dụng php, bạn có thể bắt đầu tạo instance class Monolog\Logger nhờ vào autoload.

$log = new Monolog\Logger('name');
$log->pushHandler(new Monolog\Handler\StreamHandler('app.log', Monolog\Logger::WARNING));

$log->addWarning('Foo');

Chúc bạn thành công! tác giả: hoangweb.com

Nếu bạn thấy bài viết này hữu ích, hãy chia sẻ với bạn bè bằng cách nhấn nút chia sẻ ở bên dưới. Theo dõi chúng tôi trên Twitter và Facebook

  • shares
  • Facebook
  • Facebook Messenger
  • Gmail
  • Viber
  • Skype

Chuyên mục: PHP Tìm kiếm: composer, php

Tôi giúp gì cho bạn?

HOÀNG WEB

Địa chỉ: Tây Sơn, Phường Quang Trung, Quận Đống Đa, Hà Nội

Hotline: 0987 342 124 – 0868 292 303 (8h:00 – 21h:00)

Email: [email protected]

Website: www.hoangweb.com

KẾT NỐI VỚI TÔI

  • Facebook
  • GitHub
  • YouTube

SẢN PHẨM

  • Plugin Thanh Toán Quét Mã QR Code Tự Động
  • WP2Speed – Tối ưu Google Speed
  • 23WebHost – Hosting Miễn Phí 100GB

LIÊN KẾT

  • Có nên thuê thiết kế website giá rẻ?
  • Hướng dẫn thanh toán
  • Chính sách hoàn tiền
  • Trung tâm hỗ trợ

Copyright © 2023 | All rights reserved | HOANG WEB
Mọi hình thức sao chép nội dung trên website này mà chưa được sự đồng ý đều là trái phép.