Quay lại

Cách sử dụng composer package trong dự án Laravel locally Chuyên mục PHP và Laravel    2023-08-02    1.4k Lượt xem    12 Lượt thích    comment-3 Created with Sketch Beta. 0 Bình luận

Cách sử dụng composer package trong dự án Laravel locally

Gần đây, nếu bạn đang làm việc với một số chức năng và bạn muốn trích xuất nó dưới dạng một Laravel package, trước tiên bạn muốn thử nghiệm nó locally. Và nếu mọi thứ đều ổn và tốt, thì bạn sẽ publish nó lên packagist.org.

Mình sẽ giải thích cách bạn có thể lấy một local package trong dự án Laravel và test nó ở local trong bài viết này.

Vì vậy, ví dụ, giả sử tôi có package này được gọi là amitmerchant/laravel-greeter bao gồm composer.json sau đây.

{
    "name": "amitmerchant/laravel-greeter",
    "description": "A Laravel Greeter",
    "license": "MIT",
    "authors": [
        {
            "name": "amitmerchant1990",
            "email": "bullredeyes@gmail.com"
        }
    ],
    "minimum-stability": "dev",
    "autoload": {
        "psr-4": {
            "AmitMerchant\\Greeter\\": "src/"
        }
    }
}

Đây là cách cấu trúc thư mục của package’s trông như thế nào.

Như bạn có thể thấy, tất cả những gì package chứa là một class AmitMerchant\Greeter\Greeter bên dưới src/ có một phương thức có tên là greet. Phương thức chấp nhận một tham số $name và dựa vào đó nó sẽ trả về một thông báo chuỗi như này.

<?php

namespace AmitMerchant\Greeter;

class Greeter
{
    public function greet(String $name)
    {
        return 'Hello ' . $name . '! How are you?';
    }
}

Bây giờ, chúng ta muốn đưa package này vào một dự án Laravel. Vì vậy, đây là mẹo! Để làm như vậy, trước tiên bạn cần mở tệp composer.json của dự án mà bạn muốn pull package vào đó và thêm trường repositories như bên đưới.

"repositories": [
    {
        "type": "path",
        "url": "../laravel-greeter"
    }
],

Điều này sẽ cho Composer biết rằng, khi cài đặt, nó sẽ xem xét thư mục ../laravel-greeter (là package của chúng ta), nếu nó được chỉ định làm phần phụ thuộc của dự án. Url là đường dẫn tương đối của gói package thư mục của dự án. Trong trường hợp của chúng ta, cả package và dự án đều nằm trong cùng một thư mục. Và do đó, chúng ta sẽ cần phải đi lên một thư mục.

Bây giờ, chúng ta đã sẵn sàng để pull package của chúng ta vào dự án này. Vì vậy, chúng ta sẽ chạy lệnh sau vào dự án như này.

composer require amitmerchant/laravel-greeter:dev-master

Khi chạy lệnh trên, composer sẽ cố gắng lấy package đã chỉ định vào dự án từ repositories và sẽ tạo một (symlink ) liên kết tượng trưng đến cùng. Và đây là cách cài đặt hoàn chỉnh trông như thế nào.

Như bạn có thể thấy, composer đã pull package của chúng ta và tạo một liên kết tượng trưng với thông báo sau.

- Installing amitmerchant/laravel-greeter (dev-master): Symlinking from ../laravel-greeter

Và package có thể được tìm thấy trong thư mục vendor/ của dự án.

Đó là tất cả! Bây giờ chúng ta đã sẵn sàng sử dụng package ở bất kỳ đâu trong dự án của mình.

Bây giờ chúng ta sẽ tạo một route trong routes/web.php và pull class Greeter của package’s vào như sau.

use AmitMerchant\Greeter\Greeter;

Route::get('/greet/{name}', function($sName) {
    $oGreetr = new Greeter();
    return $oGreetr->greet($sName);
});

Và khi mở route vào trình duyệt, thông báo sẽ được in như mong đợi!

Sau khi hoàn tất, giờ đây bạn có thể đẩy package này lên packagist.org và sẵn sàng sử dụng nó trong tất cả dự án của mình. Cheer !!!

 

Bình luận (0)

Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough

Bài viết liên quan

Learning English Everyday