Laravel 工匠优化最佳实践

     2023-03-05     215

关键词:

【中文标题】Laravel 工匠优化最佳实践【英文标题】:Laravel artisan optimize Best Practices 【发布时间】:2015-10-31 23:14:23 【问题描述】:

我正在尝试完全理解 Laravel (5.1) artisan optimize 命令和最佳实践,但似乎缺少文档。我没有在生产服务器上安装 Composer,所以具体来说,我想知道在必须推送到生产环境的开发中运行 artisan optimize --force 时修改或创建了哪些文件。目标是不要在生产中炸毁应用程序!运行命令后,我看到以下文件已被修改:

\bootstrap\cache\compiled.php
\vendor\composer\ - the entire directory
\vendor\autoload.php

我是不是想多了,还是我只是将这些文件推送到生产环境就可以了?此外,关于何时运行 artisan optimize 的最佳做法是什么?每次创建新模型时?那么控制器、路由和辅助类呢?

最后,我看到\bootstrap\cache\compiled.php 文件高达 548KB 和将近 17K 行!这真的被认为是最优的吗?

【问题讨论】:

您当然可以简单地将compiled.php 和vendor 文件夹推送到生产环境以便部署。实际上,与使用 composer/artisan 相比,这样做有一些优势,例如不依赖额外的 3rd 方服务器来部署您的应用程序。但我从未听说有人这样做,所以我不敢称其为“最佳实践”。 【参考方案1】:

[编辑 - 正如@crishoj 所说,从 Laravel 5.5 开始,不再需要 php artisan optimize]

正常的 Laravel 实践在你的生产服务器上安装 composer。

这些是Envoyer(由 Laravel 的创建者制作)在生产环境中部署应用程序的步骤——我在下面对它们进行了注释:

# Install application dependencies, such as the Laravel framework itself.
#
# If you run composer update in development and commit the `composer.lock`
# file to your repository, then `composer install` will install the exact
# same versions in production.
composer install --no-interaction

# Clear the old boostrap/cache/compiled.php
php artisan clear-compiled

# Recreate boostrap/cache/compiled.php
php artisan optimize

# Migrate any database changes
php artisan migrate

【讨论】:

composer install --no-interaction --no-dev 用于生产优化。 提供比数百个小文件更好的性能。在使用 APC 时,您有任何证据或基准吗?我不清楚它为什么会有所帮助。跨度> @Yehosef 只是个人经验;不过,这是一个微不足道的测试。只需在有和没有bootstrap\cache\compiled.php 的情况下为您的网站计时。请务必向我们提供您的新证据!我是基准测试的忠实拥护者——请参阅我的 Laravel 基准测试github.com/claar/laravel-benchmarks 现在我们还可以添加php artisan config:cachephp artisan route:cache,但是它们必须在服务器上运行,因为配置值链接到绝对路径,因此如果您在您的服务器上生成配置缓存,它们将无法工作dev 机器,然后复制到生产服务器。 不需要运行php artisan clear-compiled,因为php artisan optimize 会覆盖compiled.php。【参考方案2】:

从Laravel 5.5 开始,不再需要php artisan optimize

【讨论】:

php artisan optimize:clear 用于清除缓存仍然运行良好【参考方案3】:

您还可以利用 laravel 包通过缓存页面部分来轻松优化您的应用程序

https://github.com/imanghafoori1/laravel-widgetize

【讨论】:

在 laravel 中添加常量的最佳实践是啥? (长名单)

】在laravel中添加常量的最佳实践是啥?(长名单)【英文标题】:Whatisthebestpracticeforaddingconstantsinlaravel?(LongList)在laravel中添加常量的最佳实践是什么?(长名单)【发布时间】:2017-06-2813:47:21【问题描述】:我对laravel比较陌生... 查看详情

Laravel 迁移 - 永远保留它们?啥是最佳实践?

】Laravel迁移-永远保留它们?啥是最佳实践?【英文标题】:LaravelMigrations-keepthemforever?Whatisbestpractice?Laravel迁移-永远保留它们?什么是最佳实践?【发布时间】:2015-04-2503:05:58【问题描述】:我已经与Laravel合作了大约几个月-喜... 查看详情

Laravel 形式的最佳实践?隐藏输入或路由参数?

】Laravel形式的最佳实践?隐藏输入或路由参数?【英文标题】:Laravelformbestpractice?HiddeninputORRouteparameter?【发布时间】:2017-02-2117:33:19【问题描述】:我想知道在通过Laravel中的路由参数或隐藏输入或一般情况下发送数据之间的最... 查看详情

Laravel 异步请求的最佳实践

】Laravel异步请求的最佳实践【英文标题】:BestPracticeforLaravelAsynchronousRequests【发布时间】:2018-02-2214:04:00【问题描述】:我有一个Laravel应用程序。当我在控制器中每页只创建3-10个API时,应用程序加载得非常好。现在,当我开始... 查看详情

laravel 5.* - 包驱动开发 - 最佳实践

】laravel5.*-包驱动开发-最佳实践【英文标题】:laravel5.*-packagedrivendevelopment-bestpractices【发布时间】:2017-02-0723:56:58【问题描述】:这不是关于laravel5.*的代码问题,它更想知道你们是否使用包开发应用程序(“包驱动开发”?不... 查看详情

Laravel 数据库日志 - 最佳实践是啥

】Laravel数据库日志-最佳实践是啥【英文标题】:LaravelDatabaseLog-whatisthebestpracticeLaravel数据库日志-最佳实践是什么【发布时间】:2014-11-1215:25:59【问题描述】:我认为我有一个很常见的问题,但我找不到任何“最佳实践”的答案... 查看详情

Laravel 中批量更新关系的最佳实践

】Laravel中批量更新关系的最佳实践【英文标题】:BestpracticeofmassupdaterelationsinLaravel【发布时间】:2019-06-2902:11:43【问题描述】:大规模更新关系的最佳实践是什么?例如,我有Post模型,它具有这样的关系:Lists(多对多)、Tags... 查看详情

Laravel Sanctum - 登录用户最佳实践

】LaravelSanctum-登录用户最佳实践【英文标题】:LaravelSanctum-Loggedinuserbestpractise【发布时间】:2020-11-1205:35:09【问题描述】:我想知道检查用户是否仍在客户端登录的最佳做法是什么。假设用户登录。如果成功,它将保存在状态中... 查看详情

使用 Laravel API 的最佳实践

】使用LaravelAPI的最佳实践【英文标题】:BestpracticeinusingtheLaravelAPI【发布时间】:2018-10-0304:40:10【问题描述】:我对LaravelAPI的使用有疑问。我有一个简单的应用程序,登录用户可以使用VueJS和LaravelAPI发布消息。最好的做法是什... 查看详情

Laravel 后端、Vue 前端、api 最佳实践?

】Laravel后端、Vue前端、api最佳实践?【英文标题】:Laravelbackend,Vuefrontend,apibestpractises?【发布时间】:2021-06-1909:28:31【问题描述】:我构建了简单的SPA。我在后端使用laravel,在前端使用带有vuex的Vuex和路由器。假设我有端点:/us... 查看详情

Laravel + Vue 路由器 - 蛞蝓的最佳实践

】Laravel+Vue路由器-蛞蝓的最佳实践【英文标题】:Laravel+Vuerouter-Bestpracticeforslugs【发布时间】:2018-11-3005:33:47【问题描述】:我有一个laravel+vue应用程序。我为一个名为shop的特定页面创建了一个vuespa应用程序。在这家店里,我有3... 查看详情

在 Laravel 中使用 VS Code 中的语法检查的常量的最佳实践是啥?

】在Laravel中使用VSCode中的语法检查的常量的最佳实践是啥?【英文标题】:WhatisthebestpracticetouseConstantsinLaravelthatleveragesyntaxcheckinginVSCode?在Laravel中使用VSCode中的语法检查的常量的最佳实践是什么?【发布时间】:2021-06-0115:37:51【... 查看详情

Angular、Laravel 4 和 MySQL 数据库最佳实践

】Angular、Laravel4和MySQL数据库最佳实践【英文标题】:Angular,Laravel4andMySQLdatabasebestpractices【发布时间】:2013-10-3016:44:30【问题描述】:我对Angular很陌生,并且对Laravel4有一些经验。我正在构建一个应用程序,用户可以在其中“即... 查看详情

jQuery 优化/最佳实践

】jQuery优化/最佳实践【英文标题】:jQueryOptimization/BestPractices【发布时间】:2011-03-1422:18:36【问题描述】:好的,给牛仔装上鞍,因为这将是一个很长的时间。我整个上午都在浏览我的一些旧代码,我想知道最佳实践和优化。为... 查看详情

Laravel 4 中相关模型验证的最佳实践?

】Laravel4中相关模型验证的最佳实践?【英文标题】:BestPracticeforRelatedModelValidationinLaravel4?【发布时间】:2014-02-0700:41:33【问题描述】:我希望能够在开始保存之前验证具有相关模型的创建表单。我正在保存一个拥有许多相关模... 查看详情

将数据从 Laravel 传递到 Vue 组件的最佳实践

】将数据从Laravel传递到Vue组件的最佳实践【英文标题】:BestpracticetopassdatafromLaraveltoVuecomponent【发布时间】:2018-12-2406:33:57【问题描述】:这是我的刀片代码<divid="app"><Testcomponentbam-wam="ham"/></div>这是我的VueJS组件代... 查看详情

Laravel 5.x 数据库触发器和可能的最佳实践

】Laravel5.x数据库触发器和可能的最佳实践【英文标题】:Laravel5.xDatabaseTriggersandpossiblebestpractices【发布时间】:2017-01-0318:37:33【问题描述】:这篇文章是为了通知和提问。大家好,我正在开发一个可以很好地使用触发器的大型系... 查看详情

一触即发——app启动优化最佳实践

一触即发App启动优化最佳实践文中的很多图都是Google性能优化指南第六季中的一些截图Google给出的优化指南来镇楼https://developer.android.com/topic/performance/launch-time.html闪屏定义Android官方的性能优化典范,从第六季开始,发起了一系... 查看详情