Laravel工匠优化最佳实践

sun*_*kid 16 php optimization laravel artisan laravel-5.1

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

\bootstrap\cache\compiled.php
\vendor\composer\ - the entire directory
\vendor\autoload.php
Run Code Online (Sandbox Code Playgroud)

我是否在思考这个问题,或者我只是将这些文件推向生产状态并且我很乐意去做?此外,什么是何时运行的最佳做法artisan optimize?每次创建新模型?控制器,路由和帮助程序类怎么样?

最后,我看到\bootstrap\cache\compiled.php文件高达548KB,差不多17K!这真的被认为是最佳的吗?

Ben*_*aar 15

[编辑 - 正如@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
Run Code Online (Sandbox Code Playgroud)

  • composer install --no-interaction --no-dev用于生产优化. (6认同)
  • 现在我们还可以添加`php artisan config:cache`和`php artisan route:cache`,但它们必须在服务器上运行,因为配置值链接到绝对路径,因此如果您在您的服务器上生成配置缓存将无法工作dev机器然后复制到生产服务器. (3认同)
  • 运行`php artisan clear-compiled`不是必需的,因为`php artisan optimize`会覆盖compiled.php. (2认同)

cri*_*hoj 13

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

  • 用于清除缓存的“php artisan optimize:clear”仍然运行良好 (7认同)