ایجاد پکیج های لاراول با Composer لوکال

ایجاد پکیج‌های Composer به صورت لوکال از طریق یک فایل symlink لوکال، فرآیند توسعه ایجاد پکیج‌های لاراول را تا حدود زیادی بهبود بخشیده است. با لیداوب همراه باشید.


پیش از این، جهت ارتقا روش ایجاد پکیج‌های لاراول از زمان ایجاد تا انتشار آن‌ها، می‌توانستیم وابستگی‌ها را از طریق GitHub repo نصب کنیم و پس از آن باید بارها دستور composer update را اجرا می‌کردیم. در این مقاله، نحوه ایجاد سریع یک پکیج‌ composer را از ابتدا و با افزودن یک service provider مورد بررسی قرار می‌دهیم.

ایجاد پکیج های لاراول با Composer لوکال

ابتدا یک پروژه composer به عنوان نمونه ایجاد کرده و یک service provider لاراول را به آن اضافه می‌کنیم. کد خود را با  ~/code  شروع می‌کنیم تا هر چیزی که مورد استفاده قرار می‌گیرد، بروز رسانی شود:

cd ~/code
mkdir example-pkg
cd example-pkg/
mkdir src/
composer init
# Walk through the prompts to init...

پس از ایجاد فایل composer.json، باید چند مورد را برای بارگزاری خودکار service provider اضافه ‌کنیم:

{
    "name": "paul/example-package",
    "authors": [
        {
            "name": "Paul Redmond",
            "email": "[email protected]"
        }
    ],
    "autoload": {
        "psr-4": {
            "ExamplePackage\\": "src/"
        }
    },
    "require": {},
    "extra": {
        "laravel": {
            "providers": [
                "ExamplePackage\\ExamplePackageServiceProvider"
            ]
        }
    }
}

سپس، یک service provider ایجاد می‌کنیم:

<?php

namespace ExamplePackage;

use Illuminate\Support\ServiceProvider;

class ExamplePackageServiceProvider extends ServiceProvider
{
    public function boot()
    {
        # code...
    }

    public function register()
    {
        # code...
    }
}

مطالعه مقاله مرتبط در لیداوب:

لینک کردن پکیج به یک پروژه لاراول

حالا که پروژه composer لوکال خود را ایجاد کردیم و می‌توانیم از آن برای شروع برنامه نویسی یک پکیج لاراول جدید استفاده کنیم، باید یک اپلیکیشن لاراول به صورت دمو ایجاد کرده و پکیج نمونه خود را با استفاده از یک file path لوکال به آن لینک دهیم:

cd ~/code
laravel new laravel-demo
cd laravel-demo

در اینجا، یک دستور استاتیک وجود دارد که برای لینک کردن repository لوکال خود به آن نیاز خواهید داشت:

composer config repositories.local '{"type": "path", "url": "../example-pkg"}' --file composer.json

سپس، باید composer require را اجرا کرده تا repository لوکال را به عنوان یک وابستگی اضافه کند. فراموش نکنید که از کلید “name” که در فایل example-package ایجاد کرده‌اید، استفاده کنید:

composer require paul/example-package

Using version dev-master for paul/example-package
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
Nothing to install or update
Generating optimized autoload files
> Illuminate\Foundation\ComposerScripts::postAutoloadDump
> @php artisan package:discover
Discovered Package: fideloper/proxy
Discovered Package: laravel/tinker
Discovered Package: nunomaduro/collision
Discovered Package: paul/example-package
Package manifest generated successfully.

مشاهده می‌کنید که پکیج ما از طریق کلید “extra” در فایل composer.json پیدا می‌شود. اگر filesystem را چک کنید، متوجه خواهید شد که پکیج symlink شده است، یعنی می‌توانید به صورت لوکال روی پکیج به توسعه ادامه داده و بلافاصله آن را روی یک پروژه دمو امتحان کنید:

cd ~/code/laravel-demo
ls -la vendor/paul
total 0
.
..
example-package -> ../../../example-pkg

فرا بگیرید:

آموزش پایه لاراول ۵,۵

در این مقاله در کتابخانه آنلاین لیداوب، شما یک روش عالی را برای توسعه پکیج‌های لاراول به صورت لوکال فرا گرفتید. می‌توانید از آن استفاده کنید و نتیجه را در قسمت کامنت‌ها در زیر این مقاله با ما به اشتراک بگذارید.