了解Laravel的修补程序

Laravel包括一个强大的REPL,称为Tinker,由Justin Hileman在引擎盖下的PsySH控制台提供动力。tinker控制台允许您在交互式shell中从命令行与Laravel应用程序交互。 tinker过去是laravel/framework包的一部分,但随着Laravel 5.4的发布,它被提取到单独的包中。 REPL是什么? REPL代表Read Eval Print Loop,这是一种交互式shell,接收单用户输入,对其求值,并将结果返回给用户。我首先通过rails控制台了解了交互式控制台的概念,rails控制台是rubyonrails框架的一部分。其他语言,如Ruby,都配备了REPL作为语言特性。交互式shell是一种很好的尝试语言和框架的方法。 PHP有一个交互式shell,可以通过运行php -a(由@lcjury指出)来使用,但是PsySH有更多的特性,所以我将其用于PHP的通用交互式shell和Laravel应用程序的tinker。 在Laravel之外使用PsySH,我强烈建议您全局安装PsySH包。通过运行以下命令,您可以用composer安装psysh命令: 1composer global require psy/psysh:@stable 确保您的全局composer bin/位于您的路径中,以便您可以从任何地方运行psysh: 1export> 要启动交互式会话,请运行psysh命令。下面是一个内置的show命令的示例,它可以向您显示命令的源代码: 1$ psysh2Psy Shell v0.8.11 (PHP 7.1.5 — cli) by Justin Hileman3>>> show array_key_exists4function array_key_exists($key, $search)5Source code unavailable. help命令是您的朋友,这样您就可以看到PsySH的内置功能: 1>>> help2help3ls4dump5doc6show7... 我已经删除了help命令描述,但是,如果您需要参考函数的工作方式,您甚至可以下载PHP核心文档作为一个CLI助手: 1$ mkdir -p ~/.local/share/psysh/2$ wget -O 3~/.local/share/psysh/php_manual.sqlite4http://psysh.org/manual/en/php_manual.sqlite,并安装了PHP手册,您可以阅读文档,然后在CLI中试用它: 1$ psysh 2Psy Shell v0.8.11 (PHP 7.1.5 — cli) by Justin Hileman 3>>> doc array_key_exists 4psysh 5Psy Shell v0.8.11 (PHP 7.1.5 — cli) by Justin Hileman 6>>> doc array_key_exists 7function array_key_exists($key, $search) 8 9Description:10Checks if the given key or index exists in the array1112array_key_exists() returns TRUE if the given $key13is set in the array. $key can be any value14possible for an array index.15...1617>>> array_key_exists(\"car\",> 我一直使用PsySH来验证内置PHP函数是如何工作的,以及如何以交互方式使用PHP。我没有使用REPL,而是创建了一个索引.php使用PHP命令验证语言特性。下次你这么做的时候,试着用PsySH代替!仅history命令就值得使用REPL,这样您就可以回忆起以前的命令。 Laravel Tinker:PsySH on steroid 就像我前面提到的,Tinker命令位于vanilla PsySH之上。把tinker看作是测试Laravel应用程序的最佳方法之一。让我们看看一些很好的特性,这些特性可以通过Laravel来增强您的开发工作流程。 Documentation Commands The**14**。例如,假设您想查看request()助手函数的工作方式: **16*** 或者我想查看request()代码: **18*** 修补程序Shell中的artians命令当您运行php artisan tinker时,该命令启动一个带有Laravel引导的交互式PsySH Shell。在运行shell之前,tinker命令会向shell添加命令。这些命令在TinkerCommand类的$commandWhitelist属性中定义。 1protected>2\"clear-compiled\",3\"down\",4\"env\",5\"inspire\",6\"migrate\",7\"optimize\",8\"up\",9]; 从这个列表中,您可以看到运行up和down可以切换维护模式。您还可以运行migrate来执行任何挂起的迁移。最后,您可以运行clear-compiled来清除已编译的类文件。 测试Laravel代码 可能是Tinker最有用的部分之一,是使用Laravel代码(如模型和服务)的能力。您可以使用控制台创建一个新模型,例如: 1$ php artisan tinker 2>>> use AppUser; 3>>>>>> 6]);>> 9$user->save();11$user->toArray();18] 这是我在Tinker会话中最喜欢的与数据库相关的命令,创建测试用户的简陋的factory()助手: 1$ php artisan tinker2>>> use AppUser;3>>> factory(User::class, 5)->create();4... 下面是如何查询用户模型以从users表中获得10个结果: 1$php artisan tinker 2>>> use AppUser; 3>>> User::limit(10)->get();> 5all: [ 6AppUser {#1072 7id: 1, 8publisher_id: null, 9name: \"John\",10email: \"john@example.com\",11created_at: \"2017-09-12 06:37:13\",12updated_at: \"2017-09-12 06:37:13\",13},14],15}16>>> Tinker是这是一个触发手动作业并尝试服务、作业和事件等操作的好地方。例如,这里我们从容器中获取日志服务并写入日志: 1$ php artisan tinker2>>>>4>>> $log->info(\"test\");了解更多信息 了解更多信息的最佳方法是跳入修补程序会话,如果忘记了可以运行的命令,请使用help命令。官方psysh文档是熟悉底层交互式shell的极好资源。交互式调试器功能和wtf命令是您应该检查的一些特性。如果您想了解更多关于tinker如何工作的信息,请参阅GitHub上的laravel/tinker包。 编辑09/12/2017:@lcjury指出,通过从命令行运行php -a,PHP确实包含了一个交互式shell。

admin_action_{$_REQUEST[‘action’]}

do_action( "admin_action_{$_REQUEST[‘action’]}" )动作钩子::在发送“Action”请求变量时激发。Action Hook: Fires when an ‘action’ request variable is sent.目录锚点:#说明#源码说明(Description)钩子名称的动态部分$_REQUEST['action']引用从GET或POST请求派生的操作。源码(Source)更新版本源码位置使用被使用2.6.0 wp-admin/admin.php:...

日期:2020-09-02 17:44:16 浏览:1162

admin_footer-{$GLOBALS[‘hook_suffix’]}

do_action( "admin_footer-{$GLOBALS[‘hook_suffix’]}", string $hook_suffix )操作挂钩:在默认页脚脚本之后打印脚本或数据。Action Hook: Print scripts or data after the default footer scripts.目录锚点:#说明#参数#源码说明(Description)钩子名的动态部分,$GLOBALS['hook_suffix']引用当前页的全局钩子后缀。参数(Parameters)参数类...

日期:2020-09-02 17:44:20 浏览:1065

customize_save_{$this->id_data[‘base’]}

do_action( "customize_save_{$this->id_data[‘base’]}", WP_Customize_Setting $this )动作钩子::在调用WP_Customize_Setting::save()方法时激发。Action Hook: Fires when the WP_Customize_Setting::save() method is called.目录锚点:#说明#参数#源码说明(Description)钩子名称的动态部分,$this->id_data...

日期:2020-08-15 15:47:24 浏览:802

customize_value_{$this->id_data[‘base’]}

apply_filters( "customize_value_{$this->id_data[‘base’]}", mixed $default )过滤器::过滤未作为主题模式或选项处理的自定义设置值。Filter Hook: Filter a Customize setting value not handled as a theme_mod or option.目录锚点:#说明#参数#源码说明(Description)钩子名称的动态部分,$this->id_date['base'],指的是设置...

日期:2020-08-15 15:47:24 浏览:892

get_comment_author_url

过滤钩子:过滤评论作者的URL。Filter Hook: Filters the comment author’s URL.目录锚点:#源码源码(Source)更新版本源码位置使用被使用 wp-includes/comment-template.php:32610...

日期:2020-08-10 23:06:14 浏览:927

network_admin_edit_{$_GET[‘action’]}

do_action( "network_admin_edit_{$_GET[‘action’]}" )操作挂钩:启动请求的处理程序操作。Action Hook: Fires the requested handler action.目录锚点:#说明#源码说明(Description)钩子名称的动态部分$u GET['action']引用请求的操作的名称。源码(Source)更新版本源码位置使用被使用3.1.0 wp-admin/network/edit.php:3600...

日期:2020-08-02 09:56:09 浏览:874

network_sites_updated_message_{$_GET[‘updated’]}

apply_filters( "network_sites_updated_message_{$_GET[‘updated’]}", string $msg )筛选器挂钩:在网络管理中筛选特定的非默认站点更新消息。Filter Hook: Filters a specific, non-default site-updated message in the Network admin.目录锚点:#说明#参数#源码说明(Description)钩子名称的动态部分$_GET['updated']引用了非默认的...

日期:2020-08-02 09:56:03 浏览:858

pre_wp_is_site_initialized

过滤器::过滤在访问数据库之前是否初始化站点的检查。Filter Hook: Filters the check for whether a site is initialized before the database is accessed.目录锚点:#源码源码(Source)更新版本源码位置使用被使用 wp-includes/ms-site.php:93910...

日期:2020-07-29 10:15:38 浏览:828

WordPress 的SEO 教学:如何在网站中加入关键字(Meta Keywords)与Meta 描述(Meta Description)?

你想在WordPress 中添加关键字和meta 描述吗?关键字和meta 描述使你能够提高网站的SEO。在本文中,我们将向你展示如何在WordPress 中正确添加关键字和meta 描述。为什么要在WordPress 中添加关键字和Meta 描述?关键字和说明让搜寻引擎更了解您的帖子和页面的内容。关键词是人们寻找您发布的内容时,可能会搜索的重要词语或片语。而Meta Description则是对你的页面和文章的简要描述。如果你想要了解更多关于中继标签的资讯,可以参考Google的说明。Meta 关键字和描...

日期:2020-10-03 21:18:25 浏览:1708

谷歌的SEO是什么

SEO (Search Engine Optimization)中文是搜寻引擎最佳化,意思近于「关键字自然排序」、「网站排名优化」。简言之,SEO是以搜索引擎(如Google、Bing)为曝光媒体的行销手法。例如搜寻「wordpress教学」,会看到本站的「WordPress教学:12个课程…」排行Google第一:关键字:wordpress教学、wordpress课程…若搜寻「网站架设」,则会看到另一个网页排名第1:关键字:网站架设、架站…以上两个网页,每月从搜寻引擎导入自然流量,达2万4千:每月「有机搜...

日期:2020-10-30 17:23:57 浏览:1303