以上命令会为我们生成 app/Listeners/EmailVerified.php 文件,稍作修改:

 

进行事件监听的绑定app/Providers/EventServiceProvider.php

1下载配置包

完成上面的操作后,将项目文件 config/app.php 中的下一行

替换为:

2将语言包发布到项目中

本项目我们将使用 Font Awesome 来作为字体图标库。Font Awesome 提供了可缩放的矢量图标,允许我们使用 CSS 所提供的所有特性对它们进行更改,包括:大小、颜色、阴影或者其它任何支持的效果。

1. 安装

输出:

file

打开 package.json 可以看到新增了这一行依赖:

package.json

2. 载入

我们还需要在样式中载入:

resources/sass/app.scss

3. 编译

运行 mix 编译命令:

能看到类似以下的输出即可:

file

Laravel 项目中使用 Bootstrap 前端框架,需要先执行以下命令:

composer require 是用来安装扩展包使用的命令,参数 --dev 是指定此扩展包只在开发环境中使用。

上面的命令安装完成后,使用以下命令来引入 Bootstrap :

以上命令做了以下事情:

  1. 在 npm 依赖配置文件 package.json 中引入 bootstrapjquerypopper.js 作为依赖;
  2. 修改 resources/js/bootstrap.js ,在此文件中初始化 Bootstrap UI 框架的 JS 部分;
  3. 修改 resources/sass/app.scss 以加载 Bootstrap 的样式文件;
  4. 新增 resources/sass/_variables.scss 样式配置文件。

运行 Laravel Mix

Laravel Mix 一款前端任务自动化管理工具,使用了工作流的模式对制定好的任务依次执行。Mix 提供了简洁流畅的 API,让你能够为你的 Laravel 应用定义 Webpack 编译任务。Mix 支持许多常见的 CSS 与 JavaScript 预处理器,通过简单的调用,你可以轻松地管理前端资源。

使用 Mix 很简单,首先你需要使用以下命令安装 npm 依赖即可。我们将使用 Yarn 来安装依赖,在这之前,因为国内的网络原因,我们还需为 NPM 和 Yarn 配置安装加速:

使用 Yarn 安装依赖:

安装成功后,运行以下命令即可:

watch-poll 会在你的终端里持续运行,监控 resources 文件夹下的资源文件是否有发生改变。在 watch-poll 命令运行的情况下,一旦资源文件发生变化,Webpack 会自动重新编译。

注意:在后面的课程中,我们需要保证 npm run watch-poll 一直处在执行状态中。

正常运行的界面应类似:

 

  • 选项卡 Stack trace —— 是程序调用堆栈,这里看到脚本调用的顺序,包括哪个地方执行错误的;
  • 选项卡 Request —— 是一些运行环境的信息,包括:
    • Request —— 请求简介;
    • Headers —— 请求头信息;
    • Query String —— URL 请求参数,用户提交的 GET 请求,PHP 超级全局变量 $_GET 里的内容
    • Body —— 表单提交的数据,PHP 超级全局变量 $_POST 里的内容
    • Files —— 用户上传文件的数据,PHP 超级全局变量 $_FILES 里的内容
    • Session —— 当前用户会话信息,PHP 超级全局变量 $_SESSION 里的内容
    • Cookies —— 当前用户的 Cookie 信息,PHP 超级全局变量 $_COOKIE 里的内容
  • 选项卡 App —— 应用启动信息,执行逻辑,包括路由调用、中间件调用、控制器调用、模板文件等信息;
  • 选项卡 User —— 登录用户信息,以及浏览器等客户端信息;
  • 选项卡 Context —— 环境信息,项目 .env 里的内容等;
  • 选项卡 Debug —— 将显示异常发生之前发生的事情。比如查询、日志和转储。在转储旁边,我们还显示您将 dump 语句放在何处的文件名等。

上面只是一个简单介绍,请先按照课程思路走下去,后续想要深入学习 Laravel Ignition ,请见 翻译:Laravel Ignition 功能全解析

1使用zh-CN.json 自定义配置文件

这是 Laravel 提供的本地化特性,使用 __() 函数来辅助实现。按照约定,本地化文件存储在 resources/lang 文件夹中,为 JSON 格式。在 config/app.php 文件中,我们设置了:

对应翻译文件就是 resources/lang/zh-CN.json ,需新建此文件:

resources/lang/zh-CN.json

2使用中文语言包

会有很多人会遇到翻译 Laravel 自带模板的问题,所以我们无需自己一个个去翻译,这种通用的问题找找扩展包来处理即可。

我们将使用 Laravel Lang 项目来实现,此项目支持了 52 个国家的语言,使用以下命令安装:

完成上面的操作后,将项目文件 config/app.php 中的下一行

替换为:

Laravel Lang 同自定义语言包一样,都是根据 config/app.php 里 locale 的选项来选择语言的。

值得一提的是,如果你想修改扩展包提供的语言文件,可以使用以下命令发布语言文件到项目里:

 

1.生成命令文件

2.编辑生成文件app/Console/Commands/MakeTransformer.php

3.创建模板文件app/Console/Commands/stubs/transformer

4.使用命令 ,可以没有后缀

文件路径app/Transformers/{name}.php

1.编辑html

2.JavaScript 脚本

3.laravel php config/filesystems.php 编辑配置文件,添加uploads

在controller编辑代码

 

 

『Horizon』是 Laravel 官方推出的一个集成在 Laravel 项目中的 Redis 队列管理工具,包含了一个可视化面板和几个管理命令,可以让我们更加方便地管理异步任务。

我们可以通过 composer 直接安装:

安装完成之后还需要把 Horizon 的配置文件和前端文件放到项目目录中:

现在我们访问 http://shop.test/horizon 看看 Horizon 的管理面板:

默认情况下这个页面只能在 APP_ENV=local 的环境可以看到,所以不用担心线上站点信息泄露。

可以看到状态是 Inactive,我们需要在终端调用 Horizon 的命令来启动:

现在我们到管理后台任意找一个商品进入编辑页面然后保存,使之触发一个异步任务,然后看看终端:

可以看到这个命令和 queue:work 一样能够正常处理异步任务。现在再到 Horizon 的管理页面看看:

 

 

 

 

 

 

Laravel 提供了一个叫做 ViewComposer 的解决方案,ViewComposer 可以在不修改控制器的情况下直接向指定的模板文件注入变量。

1.创建ViewComposer

我们先创建一个 ViewComposer 类,通常放在 app/Http/ViewComposers 目录下:

2.编写创建的CategoryTreeComposer

3注册app/Providers/AppServiceProvider.php

这样就可以变量共享了