Installation

📝 Quick Setup Guide for Laravel Extensions package

This guide covers installing and configuring the Laravel Extensions package in a Laravel 12+ application.

📋 Requirements

  • 🐘 PHP: 8.3 or later
  • 🎆 Laravel: 12.0+
  • 🎨 Composer: Latest version recommended

1️⃣ Package Installation

Install the package via Composer:

composer require gigabait93/laravel-extensions

Optional: Composer Merge Plugin

For extensions with their own composer.json, install the merge plugin:

composer require wikimedia/composer-merge-plugin

2️⃣ Composer Merge Configuration (Optional)

If using extensions with dependencies, configure the merge plugin in your composer.json:

{
  "extra": {
    "merge-plugin": {
      "include": ["extensions/*/*/composer.json"]
    }
  },
  "config": {
    "allow-plugins": {
      "wikimedia/composer-merge-plugin": true
    }
  }
}

Or enable via CLI:

composer config --no-plugins allow-plugins.wikimedia/composer-merge-plugin true

💡 Note: Only needed if your extensions have their own Composer dependencies.

3️⃣ Publish Configuration

Publish the configuration file:

php artisan extensions:publish --tag=extensions-config

📦 Available Publication Tags

Tag Description Command
extensions-config Configuration file --tag=extensions-config
extensions-migrations Database tables --tag=extensions-migrations
extensions-lang Translation files --tag=extensions-lang
extensions-stubs Code templates --tag=extensions-stubs

🛠️ Examples

# Publish specific resources
php artisan extensions:publish --tag=extensions-migrations

# Overwrite existing files
php artisan extensions:publish --tag=extensions-stubs --force

# Interactive selection (shows menu)
php artisan extensions:publish

# Publish everything
php artisan extensions:publish --tag=extensions

4️⃣ Configure Extension Paths

Edit config/extensions.php to set up your extension directories:

'paths' => [
    'Modules' => base_path('extensions/Modules'),
    'Themes'  => base_path('extensions/Themes'),
    'Plugins' => base_path('extensions/Plugins'),
],

🗺️ Directory Structure: Create these directories in your project root:

extensions/
├── Modules/
├── Themes/
└── Plugins/

5️⃣ Discover Extensions

Scan configured paths for extensions:

php artisan extensions:discover

6️⃣ Verify Installation

List all discovered extensions:

php artisan extensions:list

✅ Installation Complete!

🎉 Congratulations! Your Laravel Extensions package is now ready to use.

Next Steps: