使用 Php Artisan Tinker 来调试你的 Laravel

时间 2016-06-19 22:58:13 Laravel学院

原文  http://laravelacademy.org/post/4935.html

主题 Laravel

本文翻译自: Tinker with the Data in Your Laravel Apps with Php Artisan Tinker

今天,我们将通过介绍Laravel 中一个不太为人所知的功能,来展示如何快捷的调试数据库中的数据。通过使用 Laravel artisan 内建的 php artisan tinker , 我们可以很方便的看到数据库中的数据并且执行各种想要的操作。

Laravel artisan 的 tinker 是一个 REPL (read-eval-print-loop) ,REPL 是指 交互式命令行界面,它可以让你输入一段代码去执行,并把执行结果直接打印到命令行界面里。

如何简便快捷的查阅数据库数据?

我想最好的方式应该是输入下面这些熟悉的命令,然后立马能看到结果:


// see the count of all users
App\User::count();// find a specific user and see their attributes
App\User::where('username', 'samuel')->first();// find the relationships of a user
$user = App\User::with('posts')->first();
$user->posts;

使用 php artisan tinker , 其实我们可以轻易的做到这点。 Tinker 是 Laravel 自带的 REPL,基于 PsySH 构建而来。它帮助我们更轻松的和我们的应用交流,而无需再不停地使用 dd()die() 。那种为了调试一段代码,通篇都是 print_r()dd() 的痛苦,我想我们大部分人都能感同身受。

在我们使用 tinker 之前,我们先来创建一个测试项目,暂且就叫它 ScotchTest 吧。如果你的电脑上已经安装好 laravel installer ,那么先执行:

laravel new ScotchTest

没有安装 Laravel installer 的电脑,可以通过 composer 来创建这个项目


composer create-project laravel/laravel ScotchTest --prefer-dist

初始化数据库: Running Migrations

创建完我们的测试项目(ScotchTest)后,我们还需要新建一个测试数据库并且执行数据库迁移(migrations)来初始化数据库。在本文的讲解中,我们直接使用 Laravel 默认的迁移就够了。首先在 .env 文件中配置好数据库连接信息,然后准备执行迁移,默认的迁移会帮我们生成一个 users 表和一个 password_resets 表。

php artisan migrate

当迁移完成的时候,我们应该可以看到类似这样的信息:

填充我们的数据库

通常情况下,我们可以使用 Laravel 的模型工厂( model factory )来快速填充我们的数据库,它可以帮我向数据库插入伪数据方便我们测试。现在让我们开始使用 tinker 吧。

php artisan tinker

这条命令会打开一个 REPL 窗口供我们使用。刚才我们已经执行过 migration, 现在我们可以直接在 REPL 中使用模型工厂来填充数据。


factory(App\User::class, 10)->create();

这个时候,一个包含了 10 条新用户记录的集合将在你的终端上打印出来。现在我们可以检查一下这些记录是否真的已经被创建了。


App\User::all();

使用 count 方法,还可以查看 User 模型在数据库中一共有多少个 user 。


App\User::count();

在执行完 App\User::all()App\User::count() 之后,我的输出是这个样子的,你们的输出应该和我差不多,仅仅是生成的内容不同。

创建一个新用户

通过 REPL,我们还可以创建一个新用户。你应该已经注意到,我们在 REPL 使用的命令跟我们在 laravel 中所写的代码是一样的。所以创建一个新用户的代码:

$user = new App\User;
$user->name = "Wruce Bayne";
$user->email = "iambatman@savegotham.com";
$user->save();

现在输入 $user ,可以看到

删除一个用户

要删除 id 为 1 的用户:

$user = App\User::find(1);
$user->delete();

查阅某个 类/方法 的注释文档

通过 tinker,你可以在 REPL 中查看某个 类/方法 的注释文档。但是文档内容取决于这个 类/方法 是否有一个文档注释块( DocBlocks )。


doc <functionName> # replace <functionName> with function name or class FQN

比如,查阅 dd 的注释文档

查看源码

我们还可以直接在 REPL 中打印出某个 类/方法 的源代码

show <functionName>

比如,查看 dd 的源码

总结

Laravel Tinker 是一款让我们可以更方便调试 laravel 的工具,有了它,没有必要再为了一个简单的调试而开启本地服务(server)。特别是当你想要测试一小段代码的时候,你无需再插入各种 var_dumpdie ,然后还要在调试完后删掉它们,你只需要 php artisan tinker 就够了。

原文地址: https://yii.im/post/tinker-with-the-data-in-your-laravel-apps-with-php-artisan-tinker/

使用 Php Artisan Tinker 来调试你的 Laravel 时间 2016-06-19 22:58:13 Laravel学院 原文 http://laravelacademy.org/相关推荐

  1. VisualGDB Crack,节省调试嵌入式过程的时间

    VisualGDB Crack,节省调试嵌入式过程的时间 Visual GDB 被描述为具有将 GCC.GDB 和 GNU Make 无缝集成到 Visual Studio 的能力,并且还允许用户和开 ...

  2. 远程断点调试不需要跟时间赛跑

    大多数时候远程调试采用的方法是启动web服务器后,再在IDE工具中开启debug功能,这类设置debug上篇 有一个描述,不过这个方法有一个缺点:如果应用本身启动比较快,在你启动web服务器后,需要迅 ...

  3. laravel 如何 new php 类,PHP实例:laravel通过创建自定义artisan make命令来新建类文件详解...

    <PHP实例:laravel通过创建自定义artisan make命令来新建类文件详解>要点: 本文介绍了PHP实例:laravel通过创建自定义artisan make命令来新建类文件详 ...

  4. 谷歌调试器调试的js_时辰?? “时间旅行”调试器

    谷歌调试器调试的js Chronon是一个新的"时空旅行"调试器. Chronon包含一个"飞行数据记录器",该记录器记录程序内部执行的代码行,并将其保存到文件 ...

  5. [RK3399][Android7.1] 调试笔记 --- RTC读取时间失败

    Platform: RK3399 OS: Android 7.1 Kernel: v4.4.83 现象: 使用busybox hwclock -r读取rtc时间是提示: hwclock: ioctl ...

  6. VS2017:64位调试操作花费的时间比预期要长,无法运行调试解决办法

    关于这个问题网上搜了好久,参考http://www.yishimei123.com/network/685.html这篇文章,最后终于解决了,在此表示非常感谢! 我的环境是:win10+VS2017 ...

  7. VS:“64位调试操作花费的时间比预期要长“的一解决途径

    关于这个问题网上搜了好久,参考http://www.yishimei123.com/network/685.html这篇文章,最后终于解决了,在此表示非常感谢! 我的环境是:win10+VS2017 ...

  8. laravel中artisan工具(命令)的使用详解

    artisan工具,首先,这个是一个php文件,它放在我们laravel框架的根目录 Artisan工具简介 Artisan 是 Laravel 中自带的命令行工具的名称.它提供了一些对您的应用开发有 ...

  9. Laravel artisan常用命令集锦

    1.控制器 or Model // 5.2版本创建一个空控制器 php artisan make:controller BlogController // 创建Rest风格资源控制器 php arti ...

  10. Laravel 调试利器 —— Laravel Debugbar 扩展包安装及使用教程(转)

    Laravel 调试利器 -- Laravel Debugbar 扩展包安装及使用教程 时间 2015-12-24 09:57:09  Laravel学院 原文  http://laravelacad ...

最新文章

  1. 利用ajax技术 实现用户注册。
  2. aos make 配置环境
  3. 软件岗位在招聘时到底在考察什么?
  4. 四种方式话Equal
  5. Spring 相关jar包详细介绍
  6. 查看docker镜像内部端口号_Docker 安装部署
  7. 特种作业人员题库及答案
  8. FBWF和EWF的对比
  9. 2019年平安夜,祝福大总结
  10. 程序员的奋斗史(三十四)——人在囧途之应聘篇(四)
  11. 搜狗 语音输入法 linux,搜狗输入法Linux1.0企业版发布 全面提升用户输入体验
  12. 电脑系统32位和64位有哪些区别
  13. typescript工程_使用TypeScript构建游戏。 工程图网格2/5
  14. 新至强Mesh架构解析之《西游大灌篮》
  15. 概率论与数理统计-----随机试验与随机事件、样本空间、事件集合表示
  16. ALPU-C防抄板加密芯片
  17. php 5 php.ini中文注释
  18. VS2019 - 动态库的编写和调用
  19. Intel x86_64 LBR BTS功能
  20. 高德地图-删除多个点标记

热门文章

  1. 草图大师插件常用插件_20个草图插件可增强您的生产力
  2. 玛咖新品牌 卡皇玛卡4月上市
  3. 2022年 超详细的Android(安卓)入门编程教程
  4. 电脑鼠标右键菜单太多了怎么办?Windows右键菜单设置删除方法介绍
  5. 【原】使用IPV6,nbsp;10M/s高速BT互传…
  6. ut红种状态解决办法汇总
  7. Android 集成百度人脸采集,实现简单人脸采集module
  8. css3循环播放属性,详细介绍CSS3中animation-direction属性
  9. 金蝶K3系统参数年结不能配置利润科目
  10. HP惠普服务器驱动下载地址