mantas-done/laravel-sparkles

此包已被废弃且不再维护。作者建议使用mantas-done/laravel-sparkles包。
此包的最新版本(v1.0.1)没有可用的许可证信息。

Laravel辅助工具

v1.0.1 2017-11-25 14:20 UTC

This package is auto-updated.

Last update: 2024-03-12 08:56:24 UTC


README

Laravel Sparkles是我Laravel项目中常用的辅助工具集合。

安装

composer require mantas-done/laravel-sparkles 1.*

使用

获取当前登录用户(与Auth::user()相同)

user();

当前用户IP地址

ip();

delete()

删除集合中的所有模型

delete($user->comments);

// equals to this
foreach ($user->comments as $comment) {
    $comment->delete();
}

删除一个模型

delete($user->profilePicture);

// equals to
if ($user->profilePicture) {
    $user->profilePicture->delete();
}

forceDelete()

与delete()相同,但强制删除记录(用于软删除)。

forceDelete($user->comments);

// equals to this
foreach ($user->comments as $comment) {
    $comment->forceDelete();
}

bustCache()

清除文件缓存:CSS、图片...
它添加了文件的md5哈希值。

echo bustCache('/css/app.css'); // /css/app.css?v=0c39e0bb074f164bc2e7e3e5854927c5

twoDigits()

以两位数字显示货币。

twoDigits(1.2);      // 1.20
twoDigits(1.234);    // 1.23
twoDigits(1, '$');   // $1.00
twoDigits(-1, '$');  // -$1.00

Cookies

简化了与Laravel cookies的交互。您可以在代码的任何地方调用这些函数,而不仅仅是Laravel的cookie实现。

cookieSet('name', 'value', 60);
cookieGet('name');
cookieForget('name');

paginate()

分页集合或数组并返回默认的Laravel分页器。

$users_array = [[
    'email' => 'abc@abc.com',
    'name' => 'Abc',
], [
    'email' => 'bcd@bcd.com',
    'name' => 'Bcd',
]];

$users = paginate($users_array);

return view('users.index', compact('users');

validate()

控制器请求数据验证

// use
UserController extends Controller
{
    public function store() {
        validate([
            'email' => 'required|email',
        ]);
        
        // save user
    }
}

// instead of
UserController extends Controller
{
    public function store(Request $request) {
        $request->validate([
            'email' => 'required|email',
        ]);
        
        // save user
    }
}

函数数据验证

class Comment
{
    public static function saveComment($email, $comment) {
        validate([
            'email' => 'required|email',
            'comment' => 'required|string|between:1,256',
        ], compact('email', 'comment'));
        
        // save comment
    }
}

deleteAllDirectoryFilesExceptGitignore()

当在/storag/app文件夹中创建文件夹时,通常会将.gitignore文件添加到其中。
在开发时迁移和填充数据库时,删除某些文件夹中的所有文件是有益的。

deleteAllDirectoryFilesExceptGitignore('/storage/app/uploads');

faker()

获取faker实例

echo faker()->email;

贡献

当我看到Laravel中实现了类似的概念,如artisan freshnow()时,我决定分享我的辅助工具。
我相信其他开发者也在他们的代码中隐藏了自己的珍宝。如果您想分享其中一个,请向master分支创建pull request。