توسعه پکیج های لاراول با Dependency های Composer داخلی (Local)

گردآوری و تالیف : عرفان کاکایی
تاریخ انتشار : 18 خرداد 1397
دسته بندی ها : لاراول

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

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

فکر کردم که بهتر است جریان کاری خودم برای توسعه پکیج های لاراول و استفاده از آنها، آن هم کاملا به طور داخلی را سندنگاری کنم.

راه اندازی پکیج

می خواهم شما را در طی ساخت یک پکیج Composer و اضافه کردن یک Service Provider از صفر راهنمایی کنم. تعدادی از توسعه دهندگان پکیج را می شناسم که از یک Boilerplate Repository به عنوان یک نقطه شروع برای PHP و پکیج های لاراول استفاده میکنند.در ابتدا، بیایید یک پروژه کامپوزر به عنوان مثال بسازیم و یک 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": "paul@example.com"
        }
    ],
    "autoload": {
        "psr-4": {
            "ExamplePackage\\": "src/"
        }
    },
    "require": {},
    "extra": {
        "laravel": {
            "providers": [
                "ExamplePackage\\ExamplePackageServiceProvider"
            ]
        }
    }
}

در آخر، بیایید یک Skeleton Service Provider بسازیم:

<?php

namespace ExamplePackage;

use Illuminate\Support\ServiceProvider;

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

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

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

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

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 محلی را به عنوان یک Dependency اضافه کنیم. به یاد داشته باشید که از کلید “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

حال یک راه عالی برای توسعه پکیج های لاراول در کنار یک برنامه لاراول داریم.

منبع

برچسب :
این مطلب را با دیگران به اشتراک بگذارید :

مقالات پیشنهادی

بهترین پکیج های لاراولی – سری اول

پکیج ها قابلیت عملیاتی لاراول را افزایش می‌دهند و عملکرد آنرا بهبود می‌بخشند. پکیج ها میتوانند یک راه مناسب برای کار با تاریخ در پروژه باشد مثل پکیج C...

کمکی های جدید لاراول در نسخه 5.4 و 5.5

کمکی های جدید String دارند راهشون رو به سمت لاراول از طریق ریلیز بزرگ 5.5 پیدا می کنند. که قراره در حین Laracon EU 2017 منتشر بشه.

متدهای کمکی لاراول برای URL ها

Jacob Bennett یک نظرسنجی در توئیتر گذاشت تا ببینه جامعه ی توسعه دهندگان از چه روشی برای صدا زدن آدرس های URL در اپلیکیشن لاراولی خود استفاده می کنند

بهترین پکیج های لاراولی - سری دوم

در سری قبل چند پکیج فوق العاده کارآمد برای لاراول معرفی کردیم در این مقاله هم یک سری پکیج شگفت انگیز بهتون پیشنهاد میدیم