首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

10个技巧优化PHP程序Laravel 5框架

性能一直是 Laravel 框架为人诟病一个点,所以Laravel 程序算是一个必学技能。 接下来分享一些开发最佳实践,还有优技巧,大家有别的建议也欢迎留言讨论。...性能一直是 Laravel 框架为人诟病一个点,所以Laravel 程序算是一个必学技能。 接下来分享一些开发最佳实践,还有优技巧,大家有别的建议也欢迎留言讨论。...配置信息缓存 使用以下 Artisan 自带命令,把 config 文件夹里所有配置信息合并到一个文件里,减少运行时文件载入数量: php artisan config:cache 上面命令会生成文件...路由缓存 路由缓存可以有效提高路由器注册效率,在大型应用程序效果越加明显,可以使用以下命令: php artisan route:cache 以上命令会生成 bootstrap/cache/routes.php...注意:此命令要运行在 php artisan config:cache 后,因为 optimize 命令是根据配置信息(如:config/app.php 文件 providers 数组)来生成文件

5.3K20

Laravel5性能优化技巧

分享一些 Laravel 开发最佳实践,还有优技巧,后面陆续整理 1、配置缓存信息 使用laravel自带artisan命令,将所有config里面的配置都缓存到一个文件里。...2、路由信息缓存 当路由越来越多时候,特别是在大型项目中,路由缓存效果很明显。...3、类映射加载优化 optimize 命令把一些常用类缓存到文件里,通过减少文件加载,提升性能: php artisan optimize --force 会生成 bootstrap/cache/...要清除类映射加载优化,请运行以下命令: php artisan clear-compiled 此命令会删除上面 optimize 生成两个文件。...注意:此命令要运行在 php artisan config:cache 后,因为 optimize 命令是根据配置信息(如:config/app.php 文件 providers 数组)来生成文件

74410
您找到你想要的搜索结果了吗?
是的
没有找到

通过 Tinker 实现 Laravel 命令行交互式 Shell

Laravel Tinker 就是基于 PsySH 实现,与 Artisan 主要用于编写和执行 Artisan 命令不同,通过 Tinker,我们可以在命令实现与 Laravel 应用各种交互...在命令通过 php artisan tinker 即可进入 Laravel Tinker 交互式 Shell。...查看帮助文档 在 Laravel Tinker ,doc 命令可用于查看某个函数或方法帮助文档,例如,我们想查看辅助函数 config() 如何使用,可以这么做: 就会将 config() 函数文档信息打印出来...运行 Artisan 命令 此外,每次我们运行 php artisan tinker 就相当于从控制台启动了 Laravel 应用,在运行交互式命令前,tinker 命令会添加一些命令 Shell,这些命令定义在...比如模型和服务,你可以使用控制台来创建一个新模型,将其保存到数据库,然后查询这条记录(如果之前没有运行过 php artisan migrate 命令创建 users 表,先运行 migrate 命令创建

1.8K30

Redis 分布式锁在 Laravel 任务调度底层实现应用

,类型包括 Artisan 命令、回函数或者 Shell 脚本等: protected function schedule(Schedule $schedule) { // 每小时调度一个 Artisan.../app/artisan schedule:run >> /dev/null 2>&1 该任务每分钟调度一次,执行是上述定义调度任务 Laravel 项目提供 Artisan 命令 schedule...:run,并且将标准输出和错误都重定向空设备文件(即丢掉意思,如果你想将输出记录下来,可以将 /dev/null 调整为对应日志文件路径,或者你还可以为每个 Laravel 调度任务设置单独日志输出...调度任务是如何执行 以上调度任务注册是在控制台应用启动时完成,当我们运行 Artisan 命令就会启动控制台应用,比如 schedule:run,并且会注册所有的调度任务 Schedule 对象...关于 Laravel 调度任务底层实现和 Redis 分布式锁在这里应用,学院君就介绍这里,下篇教程,我们一起来探索如何通过 Redis 实现应用限流功能。

6.1K21

基于 Redis 发布订阅 + Socket.io 实现事件消息广播功能

首先我们创建一个 Artisan 命令类: php artisan make:command RedisPublish 用于通过 Redis PUBLISH 指令在 test-channel 频道发布一条用户注册事件消息...接收到事件消息数据,接着在闭包回通过 io.emit 按照 Socket.io 约定格式进行处理后将其广播给 Socket.io 客户端。...你可以通过如下命令启动这个 Websocket 服务器: sail node websocket.js 学院君这里使用了 Laravel Sail 作为本地开发环境,对应其他环境,在相应环境通过...然后运行如下 Artisan 命令基于 Redis 发布消息: sail artisan redis:publish 在 Websocket 服务端日志输出,可以看到 Redis 订阅客户端已经接收到服务端发布消息...: 再看两个浏览器窗口,在 Websocket 消息流,可以看到 Websocket 服务端广播事件消息客户端记录: 再看浏览器 Console 标签页,两个浏览器窗口都打印出了「学院君」,说明客户端已经成功接收到服务端广播消息

4.4K20

Laravel 编写第一个 Artisan 命令

,在 Laravel ,我们可以通过三种工具实现命令行交互: ArtisanLaravel 内置命令行操作工具集,支持自定义命令; Tinker:一个由 PsySH 扩展包驱动 REPL,允许你通过命令行与整个...Artisan 命令时可以传入选项参数: -q:禁止所有输出 -v、-vv、-vvv:命令执行输出三个级别,分别代表正常、详细、调试 --no-interaction:不会问任何交互问题,所以适用于运行无人值守自动处理命令...--env:允许你指定命令运行环境 --version:打印当前 Laravel 版本 上述选项可以单独运行,也可以和具体命令一起运行。...编写一个简单示例 由于我们命令类还没有实现任何实际功能,下面我们来编写一个简单示例,打开 app/Console/Commands/WelcomeMessage.php,Artisan 命令具体业务逻辑要定义...handle 方法,这里我们先简单打印一条欢迎信息: public function handle() { $this->info('欢迎访问 Laravel 学院!')

3.1K20

Laravel源码解析之Console内核

Laravel为了能让应用满足这些场景设计了 artisan工具,通过 artisan工具定义各种命令来满足非HTTP请求各种场景, artisan命令通过LaravelConsole内核来完成对应用核心组件调度来完成任务...shell脚本里可以通过 $0获取脚本文件名, $1 $2这些依次获取后面传递给shell脚本参数选项)索引0对应是脚本文件名,接下来依次是命令行里传递给脚本所有参数选项,所以在命令行里通过 artisan...脚本执行命令,在 artisan脚本 $_SERVER['argv']数组里索引0对应永远是 artisan这个字符串,命令行里后面的参数会依次对应到 $_SERVER['argv']数组后续元素里...因为 artisan命令语法可以指定命令参数选项、有的选项还可以指定实参,为了减少命令行输入参数解析复杂度,Laravel使用了 Symfony\Component\Console\Input对象来解析命令行里这些参数选项...Laravel定义各种命令类程序,然后在命令类里面我们就可以写其他程序一样自由地使用Laravel各个组件和注册服务容器里服务了。

1.7K20

Laravel 编写高级 Artisan 命令

在上一篇教程,学院君向大家介绍了什么是 Artisan 命令,系统内置 Artisan 命令,以及如何编写一个简单 Artisan 命令。...我们完全可以将命令行看作与 Web 应用同等控制台应用(实际上,Laravel 底层也是这么做),它具备自己路由、Kernel、输入、控制器(命令类)、输出。...因此,在这篇教程,我们将更进一步,一起来看下如何编写更加高级 Artisan 命令,比如带输入参数、选项,以及能够与用户互动,输出图表/进度条 Artisan 命令。...参数和选项 通过上一篇教程,我们已经知道 $signature 属性可以配置命令名称,除此之外,还可以将 Artisan 命令参数和选项定义在里面,添加参数和选项 Artisan 命令非常简单,我们以系统自带...Laravel Artisan 提供了很多方法支持用户输入不同类型数据。

8.2K20

Laravel利用redis和定时任务实现活跃用户统计

最近在SummerLaravel教程-Web开发实战进阶》学到很多东西,以前只会看文档,大概了解Laravel内容而在实际运用确不知道该怎样做,碰到一个需求不会立马联想到“这个东西可以用...实现... 我们要通过定时任务来实现用户活跃统计,所以我们通过命令执行ActiveUserHelper逻辑。...是linux定时任务写法 参照下图 图为我们要执行 >>表示附加 linux dev/null表示程序黑洞英文。 >表示覆盖内容。 1 stdout 标准输出。...所以表示 2>&1 将所有错误信息覆盖标准输出。...(不予预显示),不过为了方便调试,你可以将其运行输出文件 * * * * *php artisan schedule:run >> /home/user/output.txt 我们注册调度任务 在app

88920

通过 Laravel 创建一个 Vue 单页面应用(三)

--seed 如果你愿意,你也可以使用单独artisan db:seed命令!...我们在命令同时创建控制器和 User API 资源类: php artisan make:controller Api/UsersController php artisan make:resource...UserResource 第一命令是在  app/Http/Controllers/Api 目录创建一个 User 控制器,第二个命令在 app/Http/Resources 目录创建 UserResource...到现在,你应该有一个 /api/users 接口可以用在单页应用,如果你继续学看下去,你会注意返回已经不满足当前组件。...回传递两个参数:一个错误和来自API调用响应。 我们 getUsers() 方法接受一个 page 变量,该变量最终作为查询字符串参数出现在请求

5.1K10

Laravel系列2.3】Laravel运行命令行脚本

Laravel运行命令行脚本 在上篇文章,我们看到了 Laravel 中有个专门单独目录,也就是 Console 目录,它是用于存放脚本文件。...这个脚本文件一般指就是我们通过 php 命令来执行命令行脚本,在许多框架中都有这样功能。...默认提供脚本 在当前框架目录,我们在根目录执行 php artisan ,就可以看到命令帮助信息,这里就列出了所有已经存在命令行脚本。第一篇文章,我们就接触过这其中两个命令。...首先通过 artisan 文件调用到 laravel/framework/src/Illuminate/Foundation/Console/Kernel.php 文件,在这个 Kernel.php ...执行 execute() 方法,通过回方式调用我们自定义那个 handle() 方法。

1.6K20

Laravel框架关键技术解析

conposer.json文件:composer项目依赖管理文件 3.app目录 Console:主要包含所有的artisan命令 Events:用来放置与事件相关类 Http:主要包含路由文件、控制器文件...$deferredServices数组属性,在使用服务容器进行解析时,如果发现这个服务在延时服务数组,则会注册 D.响应发送与程序终止 八、服务容器与服务提供者 A.服务容器 1.Laravel中服务容器相当于大脑...2.迁移文件命令Laravel/database/migrations下 php artisan make:migration 文件名 —create=表名 php artisan migrate...php artisan migrate:rollback 3.数据库填充文件命令Laravel/database/seeds下 php artisan make:seeder XXXXSeeder...,可以将数据以对象形式封装使用,程序编写将变得高效而且结构清晰 3.对于多个表而且表间存在不同关系时,如果使用不好会严重影响程序性能 4.创建命令:php artisan make:model

11.9K20

基于Laravel Task-Scheduler定时发送邮件小程序

说明:本文主要学习LaravelArtisan Command、Task Scheduler和Mail相关知识。做一个简单小demo,用来定时发邮件。。走完整个流程最多只需一小时。...同时,会将开发过程一些截图和代码黏上去,提高阅读效率。 开发环境是本机MAMP集成软件,PHP7.0,Laravel5.2.*。...LaravelArtisan Command内容可以参看:服务 —— Artisan Console,Mail邮件服务内容可以参看:服务 —— 邮件,以及Task-Scheduler任务定时器可以参看... 一切准备OK,在项目根目录运行邮件发送命令吧,然后会收到邮件发送成功打印: 然后接收邮箱会收到邮件: It is working!!!...schedule:run 1>> /dev/null 2>&1 然后程序每隔一分钟发个邮件过来: 总结:本文主要以LaravelArtisan Command、Mail和Task-Scheduler

1.9K51

cell-blog 开发记录

php artisan vendor:publish --provider="Encore\Admin\AdminServiceProvider" 在该命令会生成配置文件config/admin.php...然后运行下面的命令完成安装: 1 php artisan admin:install 运行这个命令时候,如果遇到了下面的错误: SQLSTATE[42000]: Syntax error or access...然后运行下面的命令来发布资源: 1 php artisan admin:publish 在该命令会生成配置文件config/admin.php,可以在里面修改安装地址、数据库连接、以及表名,建议都是用默认配置不修改...然后运行下面的命令完成安装: 1 php artisan admin:install 迁移文件创建表 1 2 3 4 5 6 7 8 9 php artisan make:migration create_articles_table...事件允许你在一个指定模型类每次保存或更新时候执行代码。 retrieved 事件会在从数据库获取已存在模型时触发。当一个新模型被首次保存时候,creating 和 created 事件会被触发。

86040
领券