Hướng dẫn package php

Đã đăng vào thg 12 26, 2019 10:21 SA 2 phút đọc

Gần đây, gần đây tôi đã cố gắng hết sức để tải lên nhiều mã đến các kho lưu trữ nguồn mở như GithubCodepen. Nó làm cho việc khởi động các dự án mới trở nên đơn giản hơn nhiều khi tôi có thể sao chép một bản tóm tắt từ Github của mình hoặc sao chép một đoạn mã CSS / JS từ CodePen. Nhưng điều gì xảy ra khi tôi cần đưa thư viện hoặc mô-đun vào một số dự án? Nhân bản và sao chép dán chỉ không đóng gói nó tại thời điểm đó.

Đóng gói thành NPMComposer [ hoặc Packagist]. NPM là phần mềm quản lý package cho Javascript sử dụng Node, và Composer cũng tương tự nhưng sử dụng bằng PHP.

Hôm nay, chúng ta xem xét submiting một PHP "package" đến Composer thông qua Packagist, vì vậy chúng ta có thể cài đặt package vào project bằng cách sử dụng composer require

Các bước đơn giản: Thực hiện dễ dàng với 4 bước [trừ phần bạn code package trong PHP] . Trước khi bắt đầu, bạn cần tạo 1 repo trên Githib và commit code lên đó. Cũng cần phải có tài khoản trên GithubPackagist.

  • Tạo file composer.json trong project:
{
    "name": "your-brand-name/your-project",
    "type": "library",
    "description": "Your package description goes here",
    "keywords": ["relevant","tags","go","here"],
    "homepage": "//yourcompany.com",
    "license": "MIT",
    "authors": [
        {
             "name": "Nhan Nguyen",
             "email": "",
             "homepage": "//nhannvt.com",
             "role": "Developer"
        }
    ],
}
  • Tạo 1 repo mới trên Github và đẩy code local của bạn lên remote Github repo.
  • Gửi package của bạn đến Packagist
  • Hoàn thành! Package của bạn đã online và Packagist sẽ cung cấp Composer với tên project của bạn. [e.g. composer require username/package-name] Bạn sẽ có thể xem gói của bạn trực tiếp tại: //packagist.org/packages/your-username/package-name

Thật dễ dàng, không có lý do Một trong những nguyên tắc lập trình lớn nhất mà tôi cố gắng áp dụng là DRY, đừng lặp lại chính mình. Khi mã của bạn có thể đã được lưu trữ trên Github, đó chỉ là một quá trình gồm hai bước để đưa mã của bạn vào nơi mà phiên bản của nó được kiểm soát. Thay vì dựa vào git clone hoặc subodules, việc sử dụng một composer dependency sẽ hiệu quả hơn nhiều.

Lấy mã của tôi để chạy thử

composer require nhannguyen09cntt/php-discourse-sdk

Tham khảo: //github.com/nhannguyen09cntt/php-discourse-sdk

Nguồn: //4rum.vn/t/h-ng-d-n-t-o-php-package-cho-composer/3077

All rights reserved

Bài viết được sự cho phép của tác giả Nguyễn Trần Chung

Trước khi Composer ra đời, chúng ta thường khó chịu với hàng tá các thư viện của bên thứ ba cần phải quản lý, rất khó khăn để cập nhật và còn lại các khâu cài đặt lằng quằng. Đó là quá khứ thôi, sự ra đời của Composer đã làm thay đổi hoàn toàn mọi thứ rồi. Trong bài viết này chúng ta sẽ tìm hiểu về Composer thực chất nó là gì.

Tuyển php lương cao, tìm việc mới nhất trong tháng

Composer là gì ?

Composer là một công cụ quản lý sự phụ thuộc trong PHP. Nó cho phép bạn khai báo các thư viện mà dự án của bạn phụ thuộc vào và nó sẽ quản lý [cài đặt / cập nhật] các thư viện cho bạn.

Composer là một mã nguồn mở [OpenSource] nên được cộng đồng hỗ trợ rất nhiều, bạn có thể tham gia phát triển, phát triển lại từ trang Github chính thức của Composer.

Tại sao lại cần Composer ?

Như mình đã nói ở trên Composer ra đời để giải quyết các vấn đề khó khăn như dung lượng project sẽ lơn hơn, việc cập nhật cũng như chèn vào project rất phức tạp và phiền phức. Với composer, bạn sẽ cần khai báo tên và version của các thư viện mà bạn có sử dụng mà không cần phải tự tay chép code của nó vào project, composer sẽ tự động tìm và tải thư viện mà bạn cần trên Server, nếu trong thư viện đó có dùng các thư viện khác thì nó cũng sẽ tải các thư viện khác về, nó đệ quy cho đến khi tải đủ các thư viện, thật tuyệt vời phải không nào.

Khi bạn sử dụng VCS, bạn sẽ chỉ cần commit tên version, tên thư viện ở file cấu hình composer.json mà không cần phải commit những thay đổi trong code của các thư viện như trước. Mặt khác, khi trong project của bạn có các thư viện mà các thư viện ấy lại dùng thư viện khác và khi đó chỉ cần một trong những cái đó có update thì composer sẽ tự động update giùm bạn luôn.

Các framework PHP hiện giờ đều sử dụng composer để quản lý thư viện cần thiết.

Yêu cầu để cài Composer

Để cài được composer vào máy bạn cần phải cài đặt sẵn PHP 5.3.2+, và nên cài sẵn Git để hỗ trợ tốt hơn với các gói thư viện. Composer hỗ trợ tốt trên ba nền tảng OS X, Windows và cả Linux.

Composer Trên Linux / Unix / OSX

bạn mở Terminal lên và nhập lần lượt từng dòng lệnh sau:

sudo php -r "readfile['//getcomposer.org/installer'];" > composer-setup.php
sudo php composer-setup.php --install-dir=bin
sudo php -r "unlink['composer-setup.php'];"

Hoặc bạn có thể download composer.phar từ //getcomposer.org/ [ở cuối trang] sau đó duy chuyển nó vào trong thư mục bin bằng lệnh

sudo mv composer.phar /usr/local/bin/composer

Composer Trên Windows

Dùng bộ cài tự động

Đây là cách cài dễ dàng nhất, bạn chỉ việc tải về Composer-Setup.exe sau đó cài như một phần mềm bình thường [nhớ trỏ đến php.exe đã cài sẵn trên máy tính đúng chỗ]. Composer Installer sẽ tự động cài và thêm vào PATH sẵn cho bạn để bạn có thể dùng lệnh composer trên CMD.

Cài Thủ Công

Như ở trên, bạn tải về composer.phar từ //getcomposer.org/ [ở cuối trang] sau đó duy chuyển nó vào trong thư mục bất kỳ bạn muốn, ở đây tớ ví dụ là C:\bin nhé.

Bạn tạo tập tin có tên là composer.bat với nội dung như sau:

echo @php "%~dp0composer.phar" %*>composer.bat

Để dùng được lệnh composer trên CMD bạn cần phải thêm thư mục Composer vào PATH environment variable. Bạn có thể xem cách thực hiện dưới đây hoặc bằng Google

Vào File Exploder, chọn chuột phải vào This PC ⇒ Properties  ⇒ Advanced System Settings, ở cửa sổ Pop-up chọn Envaironment Variables…

Sau đó ở mục System Variables chọn vào mục Path và bấm vào nút Edit

Bấm vào New sau đó thêm vào C:\bin [thư mục cài composer như trên] sau đó bấm OK thế là hoàn tất và bây giờ bạn có thể mở CMD và đánh vào câu lệnh sau để kiểm tra: composer -v

Hướng dẫn sử dụng Composer

Cách dùng cơ bản

Có hai phần riêng biệt để quản lý dependencies bằng Composer. Đầu tiên là command line tool của Composer cho việc nắm giữ và quản lý các dependencies. Thứ hai là Packagist – Đây là nơi lưu trữ các package mà bạn muốn sử dụng.

Khi sử dụng Composer trong thư mục gốc chúng ta có một tập tin JSON là composer.json có nội dung:

{
    "name": "dinhquochan/my_project",
    "description": "My New Project",
    "authors": [
    {
        "name": "Dinh Quoc Han",
        "email": ""
    }],
    "require": {
        "monolog/monolog": "1.12.0"
    }
}

Trong tập tên trên có các phần như sau:

  • name tên dự án có dạng vendor_name/package_name.
  • description mô tả gói của bạn.
  • authors tác giả của dự án.
  • require đây chính là danh sách các package thư viện cần thiết, nó sẽ lấy từ server về. sẽ có 2 phần là tên vendor/ tên gói cùng với chỉ định version hay không.

Trong trường hợp trên mình đã yêu cầu Monolog, một framework phổ biến dùng để logging. Chỉ vì tôi có một file JSON với thông tin này không có nghĩa là chúng ta sử dụng được có thể sử dụng Monolog. Chúng ta phải vào Terminal tại thư mục hiện tại với câu lệnh:

composer install

Nó sẽ đưa tất cả dependencies của dự án vào thư mục mang tên vendor và thực hiện các công việc cần thiết khác. Cùng lúc đó nó sẽ tạo ra file composer.lock để biết là composer đã được thiết lặp tại thư mục mình sẽ nói cái này ở dưới. và các bạn hãy kiểm tra thử thư mục vendor xem ắt hẳn các thư viện đã được tải về và một file autoload.php.

Ngay lúc này, để sử dụng được các thư viện đó bạn chỉ viện chèn autoload.php vào file cần thiết:

require "vendor/autoload.php";

Sau đó làm theo hướng dẫn sử dụng của Package đó là xong, ở đây tớ ví dụ monolog nhé:

Chủ Đề