[扩展推荐] 分享 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

本帖已被设为精华帖!
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 4

应该说明下laravel哪个版本

2个月前
wanghan

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

2个月前
wanghan

没看出来有啥用。

2个月前

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

2个月前

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

社区文档:

将托管在 packagist.org 和 github.com 的扩展包使用国内 CDN 加速
GitHub Laravel 扩展包 TOP 250
速查表方便快速查询框架功能,支持手机访问,支持中英文版本
Laravel 中文文档,由社区用户翻译和维护,将会保持一直更新
此文档的目的,就是为了提高技术团队的凝聚力、一致性和生产效率。
开发环境的部署,开发者工具的选择,适用于 Mac 和 Windows。
浓缩过后的精华
Laravel Nova 后台管理面板文档的中文翻译
Lumen 中文文档,由社区用户翻译和维护,将会保持一直更新
Laravel 下知名扩展包 Dingo API 的中文文档,Laravel API 开发必知必会