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

file

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

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 到 这里


Practice makes perfect.

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

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

本帖已被设为精华帖!
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
讨论数量: 4

应该说明下laravel哪个版本

4天前
wanghan

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

3天前
wanghan

没看出来有啥用。

3天前

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

2天前

请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!