前言 Laravel 队列服务为各种不同的后台队列提供了统一的 API 允许推迟耗时任务(例如发送邮件)的执行,从而大幅提高 web 请求速度 总而言之,队列就是在后台执行一些耗时的任务,从而让前台访问速度加快...比较典型的例子就是发邮件。特别是同一时间发送多个邮件时。 程序员啊,就是折腾的命啊! 步骤 迁移队列需要的表 才开始尝试使用队列,还是简单点,使用数据库就行。...修改配置文件: 在.env文件里默认有: QUEUE_CONNECTION=sync,也即默认使用的是sync驱动,我们这里改为database 【数据库】 ?...所以,laravel完全不适合在虚拟机里面运行,无论从composer包的安装还是其他方面来说。.../logs/laravel-xxx.log 2、处理失败的任务 在任务失败时, 你可以选择 清除失败的任务或者 重新执行失败的任务 查看所有失败的任务, 会将所有失败的任务查询出来输出到命令行
Laravel 中默认使用的时间处理类就是 Carbon。...1 安装 通过 Composer 来安装 Carbon: composer require nesbot/carbon PS:由于 Laravel 项目已默认安装了此包,所以不需要再次执行上面的命令。...2 使用 你需要通过命名空间导入 Carbon 来使用,而不需每次都提供完整的名称。 use Carbon\Carbon; 2.1 获取当前时间 可以同now() 方法获取当前的日期和时间。...如果你不指定参数,它会使用 PHP 配置中的时区: <?php echo Carbon::now(); //2016-10-14 20:21:20 ?...//2016-10-30 14:00:01 echo Carbon::now()->modify('-2 days'); //2016-10-13 14:00:01 2.6 日期比较 在 Carbon中你可以使用下面的方法来比较日期
当使用laravel的日志类记录信息的时候 Log::info("xxxx") 发现Log类里并没有定义info 静态方法,但是仍然可以调通 原因就是__callStatic魔术方法,当静态方法不存在的时候...简单的测试用例 <?
最近,公司接了一个laravel的项目,可惜没有phper,于是开始学习laravel,现在的情况就是还没学会走路就要开始跑了,所以遇到坑会摔得很痛!...C:/php/ext/下去找openssl.dll文件 解决: 他开的是虚拟机,修改extension_dir = "./" 路径为绝对路径 报错: 原因:laravel为了防止跨站脚本攻击(CSRF)...该令牌用于验证经过身份验证的用户是否是向应用程序发出请求的用户。 解决:在app/Http/Middleware/VerifyCsrfToken中放行需要访问的地址。...\App\Http\Middleware\EnableCrossRequestMiddleware::class, ]; ⑥composer安装报错 报错:win7下使用命令行安装的...composer使用时莫名其妙报错 [JsonSchema\Exception\ResourceNotFoundException] file_get_contents(file://): failed
https://blog.csdn.net/u011415782/article/details/78928912 ♩ 背景 其实很久前就接触到了 Layer 的使用,当时只是一位讲师的推荐,并且只应用了简单的弹出框模块功能...♫ 使用步骤 ①. 下载框架源码 个人下载的是 layui.2.2.45 版本,解压后放置于自己的项目 Public 目录下. ? ②. 引入 js , css 文件 ?...依个人习惯,我新建了 layui.blade.php 文件来存放相关的配置数据,如此一来,哪个页面需要,直接使用 @include()命令引入此文件即可 源代码参考如下: /*自定义弹出框格式 (常用的弹出框形式)*/ var dialog = {
Laravel 中默认使用的时间处理类就是 Carbon。 <?...安装 可以通过 Composer 来安装 Carbon: composer require nesbot/carbon PS:由于 Laravel 项目已默认安装了此包,所以不需要再次执行上面的命令。...使用 你需要通过命名空间导入 Carbon 来使用,而不需每次都提供完整的名称。 use CarbonCarbon; 获取当前时间 可以同 now() 方法获取当前的日期和时间。...如果你不指定参数,它会使用 PHP 配置中的时区: <?php echo Carbon::now(); //2016-10-14 20:21:20 ?...> 如果你想使用一个不同的时区,你需要传递一个有效的时区作为参数: // 直接使用字符串 echo Carbon::now('Europe/London'); //2016-10-14 20:21:20
引入redis composer require predis/predis 会在composer.json中引入最新版本的predis composer update 把下载predis 库加入到...vendor,命令执行成功后,如图: 配置redis 说到laravel 中redis 的配置,其实默认项目中已经有了相关配置,只是默认没有使用。...使用redis 做缓存 默认使用的file 做缓存,修改的话,也很简单,直接修改.env 文件中的配置参数就OK。...,把 SESSION_DRIVER=file 改成 SESSION_DRIVER=redis 使用redis 注意:redis 是在app/config/app.php 里添加过aliases 数组中的...我们可以在Redis门面上以静态方法的方式调用Redis客户端提供的任何命令(Redis命令大全),然后Laravel使用魔术方法将命令传递给Redis服务器并返回获取的结果。
一个自动生成API文档的laravel扩展包 手把手教你从零开始写一个laravel扩展包,并发布到packagist,为世界的开源世界做出你自己的贡献 创建基本的目录及结构 创建一个laravel项目...在项目的根目录创建一个目录packages用于存储测试的扩展包,目录结果如下 packages ├── hanyun │ └── swagger │ └── src 复制代码 创建Commands..." href="{{asset('swagger-ui/swagger-ui.css')}}" > <link rel="icon" type="image/png" href="{{<em>asset</em>...项目下<em>的</em>composer.json "Hanyun\\Swagger\\": "packages/hanyun/swagger/src" 让我们的项目可以引入我们的扩展包做测试,测试通过之后我们可以把我们的扩展包发布到...上面 2、发布到ackagist.org 打开ackagist.org 输入你的扩展包的GitHub地址,点击check,就生成了扩展包 ?
vue中组件的样式是有作用域的,默认是全局样式。如果不希望当前组件中的样式影响到别的组件,可以添加作用域。通过给style添加scoped,使它的css只作用于当前组件的元素。...在有作用域的组件中如何给子组件设置样式?...默认只能作用到子组件的根节点(组件的class 默认作用到组件的根节点)使用子组件的根节点本身的class类名如果是第三方组件,不知道它的根节点的类名,那就审查元素查看,或者添加一个类名// APP.vue... //在根组件中设置HelloWorld 组件的样式,给根节点加了个边框,生效。....hello { border: 1px solid #000;}//在其中再设置HelloWorld 组件中h1的样式,没效果。
在 Laravel 中实现用户鉴权也是一个相当容易的事, Laravel 给我们提供了自带的鉴权方法 Gates 和 Policies ,但是相比较复杂的业务场景,自带的满足不了日常开发。...幸运的是,Laravel 这款框架就是扩展多,许多牛人都开发了很多扩展,这些扩展都是开箱即用的(这也是我喜欢 Laravel 的原因)。...那么 Laravel-permission 这个扩展就是多角色用户权限的扩展、作者一直在维护。...here means to use the `default` set in cache.php. */ 'store' => 'default', ], ]; 使用...首先,laravel-permission 提供了 一个 trait —— HasRoles,该 trait 方便我们使用 扩展包提供的权限角色等操作方法。
$message->to($user->email)->subject('新功能发布'); }); } } 三、推送队列任务 手动分发任务 我们可以使用控制器中的...接着直接调用就是了 $user = App\User::findOrFail($id); $this->dispatch(new SendReminderEmail($user)); 四、运行队列监听器 在浏览器中访问...http://laravel.app:8000/mail/sendReminderEmail/1,此时任务被推送到Redis队列中,我们还需要在命令行中运行Artisan命令执行队列中的任务。...能看出来, queue:work --daemon是最高级的,一般推荐使用这个来处理队列监听。...注:使用 queue:work --daemon ,当更新代码的时候,需要停止,然后重新启动,这样才能把修改的代码应用上。
如今在现代网络开发中,比较流行的模式是基于 API 开发,可以通过手机或网站来创建服务。 Laravel 是创建基于 API 的项目的最佳框架之一,它为世界各地的大型社区提供了高速开发。...Laravel debugbar 是一个能让你在开发过程中更加方便快捷地定位到问题的扩展包。...这个扩展包在Laravel 5中封装了 PHP Debug Bar ,它使用了一个 ServiceProvider 去注册并输出 debugbar 的信息 。...Zizaco/entrust ACL(访问控制列表)是一个集合操作,它告诉系统每个用户的访问权限。ACL包含用于管理特定用户的访问的角色和权限。Laravel与缺省的ACL命名为Gate。...当用户访问数据时 UUID 可以保护系统。 Webpatser/laravel-uuid 是一个 Laravel 第三方包,根据 RFC 4122 标准生成 UUID, 你可以在 这里 找到它。
和 CSS 框架一样,Laravel 不强制你使用什么 JavaScript 客户端框架,但是开箱对 Vue.js 提供了良好的支持,如果你更熟悉 React 的话,也可以将默认的脚手架代码替换成 React...既然已经有这么丰富的资源,关于 Vue.js 的介绍和使用,我这里就不赘述了,我们重点来介绍如何在 Laravel 中通过 Vue 组件构建前端页面和功能。... ...组件中的 CSS 代码并将其编译到 app.css 文件中)。...编译完成后,再次访问应用首页,就可以看到新的由 Vue 组件驱动的欢迎页面: ?
Trait是一种在单继承语言(如PHP)中重用代码的机制。Trait旨在通过使开发人员能够在生活在不同类层次结构中的多个独立类中自由地重用方法集来减少单继承的某些限制。...它是对传统继承的补充,可以实现行为的横向组合; 也就是说,类成员的应用程序不需要继承。 什么是PHP Trait? Trait仅仅是您希望包含在另一个类中的一组方法。...从上面的示例中可以看出,尽管没有定义该方法,但是对象Post和Comment对象都具有share()可用的方法。 Trait基本上只是一种在运行时“复制和粘贴”代码的方法。...我经常检查我的代码以及如何构建我的代码,以便可以快速完成未来的功能添加,并且新项目可以轻松扩展以前的想法。 如何在laravel中使用trait ?...我在我的Http目录中创建了一个Trait目录,其中有一个名为的TraitBrandsTrait.php use App\Http\Traits\BrandsTrait; class YourController
在上篇教程中,学院君给大家演示了单页面博客应用前端路由和页面布局的基本构建,不过由于没有应用任何 CSS 样式代码,所以 UI 界面很丑陋,今天,学院君将引入 Tailwind CSS 框架来美化这个博客应用的...基于 Laravel Mix 引入 Tailwind 在 Laravel 项目中,我们可以基于 Lavavel Mix 快速引入 Tailwind CSS 框架,开始之前,先安装 laravel-mix-tailwind...这个前端依赖包: npm install laravel-mix-tailwind --save-dev 安装完成后,需要在项目根目录下的 webpack.mix.js 中引入它: const mix... <body class...推荐一个不错的 Tailwind 组件素材库 —— Tailwind Components,在这里,你可以按需搜索自己想要的组件: 相应的源代码都可以免费拷贝过来使用(不同于 Bootstrap,Tailwind
广播系统概述 前面学院君给大家介绍了 Laravel 底层基于 Redis 列表驱动的消息队列实现原理,以及基于消息队列的事件监听和和处理,今天我们继续来看 Laravel 中另一个可以使用消息队列的场景...接收到事件消息数据,接着在闭包回调中通过 io.emit 按照 Socket.io 约定的格式进行处理后将其广播给 Socket.io 客户端。...还是以 Sail 为例,我们需要将应用容器中的 3000 端口暴露出来,才可以被客户端访问,在 .env 中新增一个 WEBSOCKET_PORT 配置: WEBSOCKET_PORT=3000 然后在...你当然可以使用 Laravel 官方提供的 Laravel Echo 库作为 Websocket 客户端,不过为了和 Websocket 服务端匹配,我们这里使用原生的 socket.io-client...family=Nunito:wght@400;600;700&display=swap" rel="stylesheet"> <link href="{{ <em>asset</em>('<em>css</em>/app.<em>css</em>
env.example里的内容复制到.env文件中 4.生成key,命令行:PHP artisan key:generate 5.配置文件package.json,内容如下: { "private"... Hello <script src="{{ <em>asset</em>...--------------------------------------------- | Elixir <em>Asset</em> Management |--------------------------...') }); 11.命令行(没有gulp,自行下载):gulp watch 关于<em>laravel</em>中<em>使用</em>gulp Elixir编辑前端资源也可以参考:https://onlyke.com/html/665....<em>中</em>有一个更简单<em>的</em>方法,是<em>使用</em>Mix,配置详情请参照 http://laravelacademy.org/post/6798.html
在golang中,所有源文件都属于一个包,golang的包具有以下特性: 包可以被其他包引用 每个golang程序只有一个main包 包的主要用途是提高代码的可复用性 本节,我们将介绍包的相关概念以及使用方法...使用GOPATH时,golang会在以下目录中搜索包: GOROOT/src:该目录保存了Go标准库里代码。 GOPATH/src:该目录保存了应用自身的代码和第三方依赖的代码。 2....(2)包的作用域 包内:在同一个包内定义的函数、变量、常量、结构体,可以被包内的所有其他代码任意访问,它们属于包内公开。...包外:如果函数、变量、常量、结构体位于不同的包下,如果将它们的首字母使用大写标识,表示它们是公开访问的。对于结构体字段。如果想要在包外进行访问,还要让结构体字段变量名使用首字母大写。 二....Go Modules可以轻易地进行一个包的依赖管理和版本控制,go build和go install将自动使用go.mod中的依赖关系,减少了GOPATH管理时的复杂性。
经常在代码中我们需要实现数组排序,或者数组过滤,或者数组查找类似查找数据库一样的用法 可以使用collect $items=[ ["num"=>17,"status
laravel 本身有一个自带的快速分页方法 paginate,只需要传入每页显示多少条数据就可以 了,但是如果想使用自定义从哪里开始呢。
领取专属 10元无门槛券
手把手带您无忧上云