مارک پلاس

تکنولوژی نوین اینترنتی

نحوه ایجاد و انتشار پکیج در لاراول

دسته‌بندی‌ها

نحوه ایجاد و انتشار پکیج در لاراول
نحوه ایجاد و انتشار پکیج در لاراول

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



📦 ایجاد و انتشار پکیج در لاراول



1. ساخت پکیج در لاراول

1.1. ساخت ساختار دایرکتوری پکیج

پکیج‌ها معمولاً در پوشه packages در دایرکتوری پروژه لاراول قرار می‌گیرند. برای شروع، یک دایرکتوری جدید برای پکیج خود بسازید.

به عنوان مثال، ساختار زیر را در نظر بگیرید:

css
your-laravel-project/ ├── app/ ├── packages/ │ └── your-vendor/ │ └── your-package/ │ ├── src/ │ ├── composer.json │ └── README.md ├── routes/ └── ...

در اینجا:

  • your-vendor نام نام تجاری شما یا گروهی است که پکیج را می‌سازد.

  • your-package نام پکیج شما است.

  • src دایرکتوری است که کد اصلی پکیج در آن قرار می‌گیرد.

  • composer.json برای مدیریت وابستگی‌ها و اطلاعات پکیج استفاده می‌شود.


1.2. ساخت composer.json برای پکیج

در دایرکتوری your-package، یک فایل composer.json بسازید که اطلاعات پکیج شما را مشخص کند.

json
{ "name": "your-vendor/your-package", "description": "A description of your package", "type": "library", "autoload": { "psr-4": { "YourVendor\\YourPackage\\": "src/" } }, "require": { "php": "^7.3|^8.0", "illuminate/support": "^8.0" }, "extra": { "laravel": { "providers": [ "YourVendor\\YourPackage\\YourPackageServiceProvider" ], "aliases": { "YourPackage": "YourVendor\\YourPackage\\Facades\\YourPackage" } } } }

در این فایل:

  • name: نام پکیج شما با فرمت vendor/package است.

  • autoload: نحوه بارگذاری کلاس‌ها با استفاده از استاندارد PSR-4.

  • require: وابستگی‌های پکیج (مثلاً لاراول).

  • extra: تنظیمات خاص لاراول برای ثبت سرویس پرووایدها و فاسیادها.


1.3. ساخت سرویس پرووایدر

در دایرکتوری src، یک کلاس سرویس پرووایدر بسازید. این سرویس پرووایدر مسئول بارگذاری پکیج در لاراول خواهد بود.

مثلاً در src/YourPackageServiceProvider.php:

php
namespace YourVendor\YourPackage; use Illuminate\Support\ServiceProvider; class YourPackageServiceProvider extends ServiceProvider { public function register() { // ثبت وابستگی‌ها یا خدمات در اینجا } public function boot() { // بارگذاری منابع (مثلاً فایل‌های استایل، ویوها، مهاجرت‌ها و غیره) } }

1.4. ساخت فاسیاد (Facade)

برای راحت‌تر کردن دسترسی به ویژگی‌های پکیج، می‌توانید یک فاسیاد بسازید.

در src/Facades/YourPackage.php:

php
namespace YourVendor\YourPackage\Facades; use Illuminate\Support\Facades\Facade; class YourPackage extends Facade { protected static function getFacadeAccessor() { return 'your-package'; // نامی که در سرویس پرووایدر ثبت کرده‌اید } }

1.5. اضافه کردن منطق پکیج

در داخل دایرکتوری src، منطق اصلی پکیج خود را بنویسید. مثلاً یک کلاس برای انجام کاری خاص:

php
namespace YourVendor\YourPackage; class YourPackageClass { public function doSomething() { return "This is your package working!"; } }

در سرویس پرووایدر، می‌توانید این کلاس را ثبت کنید:

php
public function register() { $this->app->singleton('your-package', function ($app) { return new YourPackageClass(); }); }

2. استفاده از پکیج در پروژه لاراول

برای استفاده از پکیج، باید آن را به پروژه لاراول اضافه کنید. شما می‌توانید پکیج را به دو روش به پروژه خود اضافه کنید: به صورت لوکال (در محیط توسعه) یا از طریق مخزن بسته مانند Packagist.

2.1. استفاده از پکیج به صورت لوکال

برای استفاده از پکیج به صورت لوکال، در فایل composer.json پروژه اصلی خود، پکیج را به صورت زیر اضافه کنید:

json
"repositories": [ { "type": "path", "url": "packages/your-vendor/your-package" } ], "require": { "your-vendor/your-package": "*" }

سپس دستور زیر را برای نصب پکیج اجرا کنید:

bash
composer update

2.2. استفاده از پکیج از طریق Packagist

اگر می‌خواهید پکیج را از طریق Packagist منتشر کنید، باید پکیج را به آن ارسال کنید. اما قبل از این کار، باید مطمئن شوید که composer.json شما به درستی تنظیم شده است و تمام اطلاعات پکیج به درستی در آن قرار دارد.


3. انتشار پکیج به Packagist

برای انتشار پکیج در Packagist (مخزن پیش‌فرض برای پکیج‌های Composer)، باید مراحل زیر را انجام دهید:

3.1. ساخت حساب کاربری در Packagist

ابتدا به سایت Packagist بروید و یک حساب کاربری بسازید.

3.2. ارسال پکیج به Packagist

برای ارسال پکیج، باید مخزن پکیج خود را در GitHub یا GitLab ایجاد کنید. پس از ایجاد مخزن، به سایت Packagist بروید و پکیج خود را با وارد کردن آدرس مخزن ارسال کنید.

مثلاً:

perl
https://github.com/your-vendor/your-package

پس از ارسال پکیج، Packagist به طور خودکار آن را پردازش کرده و در مخزن خود قرار می‌دهد.


4. به‌روزرسانی پکیج

برای به‌روزرسانی پکیج منتشر شده، کافیست تغییرات خود را در مخزن GitHub انجام دهید و نسخه جدید را در composer.json اعلام کنید. سپس با اجرای دستور زیر، نسخه جدید را منتشر کنید:

bash
composer update your-vendor/your-package

💡 جمع‌بندی

  • پکیج‌های لاراول یک راه قدرتمند برای به اشتراک‌گذاری قابلیت‌ها با سایر پروژه‌ها هستند.

  • شما می‌توانید پکیج‌ها را با استفاده از دستور php artisan make:controller و ساختار دایرکتوری مناسب ایجاد کنید.

  • با استفاده از سرویس پرووایدر، فاسیاد و کلاس‌ها، می‌توانید منطق پکیج خود را به راحتی مدیریت کنید.

  • پس از ساخت پکیج، می‌توانید آن را در Packagist منتشر کنید و از آن در پروژه‌های مختلف استفاده کنید.

اگر سوال یا مشکلی دارید یا نیاز به کمک بیشتر دارید، خوشحال می‌شوم که کمک کنم!

محتوای مرتبط

پست‌های مرتبط