abdullah-mateen / laravel-helping-metarial
Laravel 辅助函数和通用帮助材料
Requires
- php: ^8.1
- ext-curl: *
- ext-fileinfo: *
- ext-intl: *
- ext-json: *
- ext-simplexml: *
- intervention/image: ^3.3
Requires (Dev)
- laravel/framework: ^8.37|^9.0|^10.0
- phpunit/phpunit: ^10.5
README
Laravel 帮助材料
本包收集了Laravel开发人员有用的工具。它包括常见任务的辅助函数、用于定义常量的枚举、对模型和控制器有帮助的特质、用于自定义验证的Laravel验证规则以及用于处理文件上传的简单媒体上传库。本包旨在使Laravel开发更加容易和快速。
目录
入门
本包提供各种功能,以增强您的Web开发体验。其中一些功能包括
- 枚举:在您的代码中定义和使用枚举类型以提高可读性和一致性。
- 辅助函数:使用方便的函数和宏来简化常见任务和操作。
- 颜色接口:颜色类和RGBA代码列表。
- 授权中间件:使用可定制的授权逻辑保护您的路由和控制器。
- 通用模型:使用提供常见功能和特质的基模型类。
- 有用的CSS:为您的元素应用一些有用的CSS类(如果您不使用Tailwind)。
- 验证规则:使用自定义规则和消息验证您的数据。
- 一些有用的特质:使用特质向枚举、类和控制器添加行为和功能。
- 简单媒体库:轻松管理您的媒体文件和附件。
本包旨在帮助您处理Web开发项目。我们希望您觉得它有用且愉快。
先决条件
本项目需要PHP (版本8.1或更高)
,您可以使用xampp、wamp、laragon或任何其他适合您的选项,它们安装起来非常简单。要确保它们可在您的机器上使用,请尝试运行以下命令。
$ php -v 8.1.6
安装
使用以下命令通过composer安装此包
composer require abdullah-mateen/laravel-helping-metarial
发布
您可以使用发布命令发布所有文件。这将允许您根据需要修改文件。要发布您的文件,您需要在PowerShell
、cmd
或任何其他终端
中执行此命令。
php artisan lhm:publish
运行上述命令后,将显示要发布的文件菜单。您可以通过输入文件编号(用逗号分隔)来选择一个或多个文件,如下所示
使用方法
枚举
本包使用php
默认枚举,从(PHP 8 >= 8.1.0)
开始可用。
示例
use \AbdullahMateen\LaravelHelpingMaterial\Enums\User\AccountStatusEnum; use \AbdullahMateen\LaravelHelpingMaterial\Enums\User\GenderEnum; use \AbdullahMateen\LaravelHelpingMaterial\Enums\User\RoleEnum; class User extends Authenticatable { protected $casts = [ 'role' => RoleEnum::class, 'gender' => GenderEnum::class, 'status' => AccountStatusEnum::class, ]; // ... } User::create([ 'name' => 'John Doe', 'email' => 'example@example.com', 'password' => Hash::male('password'), 'role' => RoleEnum::Customer, // or you can use its value RoleEnum::Customer->value 'gender' => GenderEnum::Male, // or you can use its value GenderEnum::Male->value 'status' => AccountStatusEnum::Unverified, // or you can use its value AccountStatusEnum::Unverified->value ]);
注意:如果您打算将这些枚举用作值,则无需将它们转换为枚举。
辅助函数
辅助函数列表将很快提供。 目前您可以查看可用的函数这里
辅助函数默认情况下不会自动注册。要使用这些辅助函数,您必须首先使用命令 php artisan lhm:publish
发布它们,并选择辅助函数选项。之后,转到您的 composer.json
文件,并执行以下步骤
{ "autoload": { "files": [ "src/Helpers/helpers.php" ] } }
最后,在当前目录的终端中运行命令 composer dump-autoload
或其缩写 composer du
。
示例
$user = auth_user(); $routeName = route_url_to_name('https://example.com') // will return 'index' if (is_current_route('dashboard')) { // do something } // and much more ...
接口
示例
use \AbdullahMateen\LaravelHelpingMaterial\Interfaces\ColorsInterface; use \AbdullahMateen\LaravelHelpingMaterial\Enums\User\AccountStatusEnum; class Example implements ColorsInterface { protected $casts = [ 'status' => AccountStatusEnum::class, ]; public function getColorClass() { return 'bg-' . self::SUCCESS_CLASS // bg-success: for background colors // return self::SUCCESS_CLASS // success: for text colors } public function getColorCode() { return self::SUCCESS // #28a745 } public function getStatusColor() { return $this->status->color(); // Using Enum 'color' function } }
您可以在枚举中查看另一个使用示例 这里
中间件
中间件已经预先注册,但如果您已使用命令 php artisan lhm:publish
发布并选择了中间件选项,您将收到相同中间件的覆盖文件。在这种情况下,需要手动注册中间件。为此,请在 app\Http\Kernel.php
文件中按照以下步骤操作
// ... protected $routeMiddleware = [ // ... 'custom-authorize' => \App\Http\Middleware\Custom\AuthorizationMiddleware::class, ];
示例
// web.php File use \AbdullahMateen\LaravelHelpingMaterial\Enums\User\RoleEnum; Route::get('/dashboard', [DashboardController::class, 'index'])->middleware('authorize:1001,3001') Route::get('/dashboard', [DashboardController::class, 'index'])->middleware('authorize:' . RoleEnum::column('value', 'admins', true)) // if you have published it Route::get('/dashboard', [DashboardController::class, 'index'])->middleware('custom-authorize:1001,3001')
查看授权中间件 这里
模型
资源
规则
简单媒体库
作者
许可协议
MIT许可证 (MIT) 2024 - Abdullah Mateen。请参阅 LICENSE.md 了解更多详细信息。