承接 l0n3ly/laravel-dynamic-helpers 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

l0n3ly/laravel-dynamic-helpers

最新稳定版本:v1.1.0

Composer 安装命令:

composer require l0n3ly/laravel-dynamic-helpers

包简介

Laravel Dynamic Helpers is a package that dynamically resolves helper classes and provides an Artisan command to generate custom helpers in your app/Helpers directory, making helper management effortless and fully automated.

README 文档

README

Latest Version Total Downloads License

A powerful Laravel package that provides a dynamic helper management system with an Artisan command generator. Create, organize, and access your custom helper classes effortlessly.

✨ Features

  • 🚀 Dynamic Helper Resolution - Automatically resolves helper classes on-demand
  • 🎯 Artisan Command Generator - Create helpers with php artisan make:helper
  • 📁 Nested Helper Support - Organize helpers in subdirectories (e.g., Store/CreateHelper)
  • 🔄 Singleton Pattern - Efficient instance caching for better performance
  • 🎨 Laravel-Style Output - Beautiful command output matching Laravel's conventions
  • 🔌 Auto-Discovery - Service provider automatically registered
  • 💡 Dual Access Patterns - Use moneyHelper() or helpers()->moneyHelper()

📋 Requirements

  • PHP >= 8.1
  • Laravel >= 10.0

📦 Installation

Install the package via Composer:

composer require l0n3ly/laravel-dynamic-helpers

The service provider will be automatically discovered by Laravel.

🚀 Quick Start

1. Create a Helper

php artisan make:helper MoneyHelper

This creates app/Helpers/MoneyHelper.php:

<?php

namespace App\Helpers;

use L0n3ly\LaravelDynamicHelpers\Helper;

class MoneyHelper extends Helper
{
    public function format($amount)
    {
        return number_format($amount, 2);
    }

    public function toMinor($amount)
    {
        return $amount * 100;
    }
}

2. Use Your Helper

You can access your helper in two ways:

// Direct global function (recommended)
moneyHelper()->format(1000); // "1,000.00"
moneyHelper()->toMinor(1500); // 150000

// Via helpers() function
helpers()->moneyHelper()->format(2000); // "2,000.00"

📚 Usage Examples

Basic Helper

php artisan make:helper PermissionHelper
<?php

namespace App\Helpers;

use L0n3ly\LaravelDynamicHelpers\Helper;

class PermissionHelper extends Helper
{
    public function can($permission)
    {
        return auth()->user()->hasPermission($permission);
    }
}

Usage:

if (permissionHelper()->can('edit-posts')) {
    // User can edit posts
}

Nested Helpers

Create organized helper structures:

php artisan make:helper Store/CreateHelper
php artisan make:helper Store/Product/UpdateHelper

This creates:

  • app/Helpers/Store/CreateHelper.php
  • app/Helpers/Store/Product/UpdateHelper.php

Access them using flattened camelCase:

// Store/CreateHelper -> storeCreateHelper()
storeCreateHelper()->create($data);

// Store/Product/UpdateHelper -> storeProductUpdateHelper()
storeProductUpdateHelper()->update($id, $data);

In Controllers

<?php

namespace App\Http\Controllers;

use App\Http\Controllers\Controller;

class OrderController extends Controller
{
    public function store(Request $request)
    {
        $amount = moneyHelper()->toMinor($request->amount);

        if (permissionHelper()->can('create-orders')) {
            // Create order
        }
    }
}

In Blade Templates

@if(permissionHelper()->can('view-reports'))
    <div class="reports">
        {{ moneyHelper()->format($total) }}
    </div>
@endif

🎯 Advanced Features

Instance Caching

Helpers are automatically cached as singletons:

$helper1 = moneyHelper();
$helper2 = moneyHelper();

// $helper1 and $helper2 are the same instance

Callable Helpers

Helpers can be callable:

class CalculatorHelper extends Helper
{
    public function __invoke($a, $b)
    {
        return $a + $b;
    }
}

Usage:

$result = calculatorHelper(5, 10); // 15

Custom Helper Methods

Add any methods you need:

class ApiHelper extends Helper
{
    public function get($url)
    {
        return Http::get($url);
    }

    public function post($url, $data)
    {
        return Http::post($url, $data);
    }
}

📖 Command Reference

Create a Helper

php artisan make:helper HelperName

Create Nested Helper

php artisan make:helper Category/ProductHelper
php artisan make:helper Admin/User/PermissionHelper

Helper Name Normalization

The command automatically normalizes names:

# All of these create "MoneyHelper"
php artisan make:helper MoneyHelper
php artisan make:helper money-helper
php artisan make:helper money_helper

🧪 Testing

Run the test suite:

composer test

Or with PHPUnit:

vendor/bin/phpunit

📝 Code Style

This package uses Laravel Pint for code style. Format code:

./vendor/bin/pint

🤝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

📄 License

The MIT License (MIT). Please see the License File for more information.

👤 Author

Divine Idehen

🙏 Acknowledgments

  • Inspired by Laravel's elegant architecture
  • Built with the Laravel community in mind

Made with ❤️ for the Laravel community

统计信息

  • 总下载量: 49
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 4
  • 点击次数: 2
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 4
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2025-11-23