[扩展推荐] 分享 11 个辅助函数

file

本文分享一些我认为很棒的辅助函数,已经集成到扩展里 https://github.com/calebporzio/awesome-hel... ,接下来一个个讲解。

ok()

在某些情况下,你可能只想从控制器中返回操作成功,而不带任何数据。 如果用 'return response()' 返回,视觉上不好看, 而且语义也不对(因为这个函数默认返回状态码 200,而事实上状态码 204(无内容)才是更准确的)。

Route::get('/', function () {
    return ok();
);

非常感谢 Logan Henson 的建议。

str_wrap()

str_wrap('pigs', '-blanket-');
// returns: "-blanket-pigs-blanket-"

str_between()

str_between('--two-ferns--', '--');
// returns "two-ferns"
str_between('[two-ferns]', '[', ']');
// returns "two-ferns"

str_match()

如果使用 'preg_match' 函数, 我每次都得写 '$matches[1]',这让我很崩溃。

str_match('persianwifefinder.com', '/(.*)\.com/');
// returns "persianwifefinder"

str_validate()

利用 Laravel 的验证系统,使字符串验证更加简单便捷。

str_validate('calebporzio@aol.com', 'regex:/\.net$/|email|max:10');
// returns: ["Format is invalid.", "May not be greater than 10 characters."]

carbon()

有了这个函数, 麻麻再也不用担心我忘记引入 'Carbon\Carbon' 包了。

carbon('1 year ago');
// Same as:
Carbon::parse('1 year ago');

user()

在每个 user() 之前写 auth()-> 可是我应用中的8个字符,我再也不退回来了。

user();
// 等同于:
auth()->user();

money()

如果你们每个人都曾碰巧发现 PHP 的 money_format 函数,他的方法和思想,让你找到一个简单好用的工具来转换整数,转成美元符合,然后再次被愚弄?这个是专为你准备的:

money(12); // 返回 "$12.00"
money(12.75); // 返回 "$12.75"
money(12.75, $withCents = false); // 返回 "$13"

stopwatch()

用于调试和分析随机的东西,而不是查看堆栈溢出以找出如何从 microtime() 中取得合理的东西。stopwatch() 是一个简单的方法来计算在回调中运行的任何代码(秒为单位)。

stopwatch(function () {
    sleep(4);
});
// 返回 4.000....

chain()

chain() 函数支持 PHP 对象方法的链式调用(也就是说你可以一气呵成地调用对象的方法)。这个函数里还有一个彩蛋( "{carry}" 关键字,它可以把当前方法的返回值传递给下一个方法)。

chain(new Str)
    ->singular('cars')
    ->upper('{carry}')
    // 如果你觉得写 "{carry}" 还不够简单,Taylor 貌似也有此意,因此他提出了更极致的建议,即在方法调用的同时,生成一个承载返回值的 "carry"  实例,用于传递到下一个方法(用法见下两行代码)。 所以是有两种方法供你选择。 
    ->start(carry, 'the ')
  ->finish(carry, ' life!')();

// returns "the CAR life"
// 注意:在最后加一个 "()" 就可以获取最后一个方法的返回值。而且如果最后返回的数据类型是字符串,你甚至可以直接将其与其他字符串结合。

tinker()

现在其中最 ? 的帮助函数 (这个  可以证明我说的). 一个特别有用的帮助函数, 他可能和臭名昭著的 dd() 一样. 我给你...

$user = User::find($id);

tinker($user);
    // 将会打开带有 `$user` 可操作对象的  `artisan tinker` 会话
// Note: 只能运行在控制台(console)中,最常见的是在 PHPUnit 测试中。

结语

好了,全在这里了。开始用这11个超级好用的辅助函数来提升你的 Laravel 开发工作流吧。

如果你有一些自己的想法想贡献到这个仓库。你可以提交 PRs 到 这里

本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。

原文地址:http://calebporzio.com/11-awesome-larave...

译文地址:https://learnku.com/laravel/t/25244

本帖已被设为精华帖!
本文为协同翻译文章,如您发现瑕疵请点击「改进」按钮提交优化建议
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 4

应该说明下laravel哪个版本

5年前 评论
wanghan

@lovecn 不是laravel版本,这是一个外国大哥自己写的包

5年前 评论
wanghan

没看出来有啥用。

5年前 评论

吓到我,我以为是自带的函数介绍,我说怎么找不到。

5年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!