Laravel中一些喜欢的细节

作者: icedfish | 来源:发表于2015-06-14 23:59 被阅读2793次

昨天和小伙伴们交流Laravel,讲了他很多好话,Laravel很多的设计非常符合我的程序美学: 提高变成效率的调用方式 + 各种用心的代码提示。

此文会不断更新

updated @ 2015-6-14

1. dd()

dd(); 
// 约等于以下代码  
var_dump();
die();  

把调试时候最常用的两行代码缩减成一行,这实在是个绝妙的主意,很快dd()就成为了我最常用的函数。

由于内部调用了Symfony的VarDumper组件,dd()输出要比vardump()更加直观可读,甚至我觉得比启用了xdebug的vardump()还要好。

2. Cache::remember()

// Laravel 中这么用:
$html = \Cache::remember($cache_key, $ttl, function () use ($url, $default) {
    return (new \HttpClient())->get($url) ? : $default;
});

// 正常需要这么写:
$html = \Cache::get($cache_key);
if ( !$html ) {
    $html = (new \HttpClient())->get($url) ?: $default;
    \Cache::put($key, $cache_key, $ttl);
}
return $html;

虽然看起来没差多少行,但是从代码的内聚性上,我很喜欢Laravel的做法。

3. Redirect with Inputs

针对常见的表单提交验证失败需要用户重填的场景,Laravel提供了一个方便的设计:

Redirect::route('posts.create')
        ->withErrors($post->getErrors())
        ->withInput();

具体解释参见: 官方文档

4. 5.1对config/app.php做的小改动

5.0 => 5.1的更新文档中没提到config/app.php有改动,后来意外发现了这个有趣的变化:

  // 5.0:
  'App' => 'Illuminate\Support\Facades\App',
  // 5.1 changed to:
  'App' => Illuminate\Support\Facades\App::class,

将对IDE无意义的字符串替换为有意义的常量,这个技巧真不错,在其他不少地方都能用上。

5. Model的whereXXX()方法

/*
 * Model \Room
 * @property integer $id
 * @property string $status
 * @property \Carbon\Carbon $updated_at
 * @method static \Illuminate\Database\Query\Builder|\Room whereId($value)
 * @method static \Illuminate\Database\Query\Builder|\Room whereStatus($value)
 * @method static \Illuminate\Database\Query\Builder|\Room whereUpdatedAt($value)
 */

每个属性ide-helper都帮你生成了默认的whereXXX方法,你可方便的使用 \Room::whereStatus(xxx) 来替代通常 \Room::where('status', xxx) 的查询拼装法。
这样写查询的时候就可以享受AutoCompelte啦! 重构属性名的时候也会更容易,比全局查找字符串强多了。

相关文章

  • Laravel中一些喜欢的细节

    昨天和小伙伴们交流Laravel,讲了他很多好话,Laravel很多的设计非常符合我的程序美学: 提高变成效率的调...

  • php excel for laravel

    laravel中excel插件的安装 在composer中引入laravel excel的包 在位于laravel...

  • Laravel 中的一些概念

    laravel 中的一些概念 核心概念 容器:是运行依赖和注入的场所;几乎所有服务容器的绑定都是在服务提供者中进行...

  • laravel自定义服务和服务提供者

    最近看一些laravel资料,有一些关于laravel的理解,下面分享一下。首先先介绍一下laravel服务和服务...

  • 在PhpStorm中添加Laravel的支持

    官方文档详见:Laravel Development using PhpStorm 这里补充些细节:1.安装lar...

  • laravel学习

    最近做项目用到了laravel框架,所以决定从前端的角度对laravel进行了一些学习和总结。 laravel简介...

  • laravel文件目录树

    正在学习laravel框架,整理了下laravel的文件目录树,希望对同样正在学习laravel的童鞋产生一些帮助。

  • Laravel-集合

    Laravel中的数组,源代码位置Illuminate\Support\Arr.php; Laravel中的集合,...

  • 构建一份有价值的 Awesome Laravel 清单

    跟前几年比,现在越来越多的开发者喜欢使用 Laravel,研究 Laravel。但 Laravel 框架的学习曲线...

  • laravel定义全局变量的方法

    laravel定义全局变量的方法我个人比较喜欢,相对于ThinkPHP框架,个人比较喜欢laravel的风格,好了...

网友评论

    本文标题:Laravel中一些喜欢的细节

    本文链接:https://www.haomeiwen.com/subject/zwtsqttx.html