【问题标题】:Laravel optimizationLaravel 优化
【发布时间】:2014-12-28 23:07:41
【问题描述】:

所以我听说,因为 Laravel 易于开发,它会加载一大堆可能需要也可能不需要的依赖项。我想优化 Laravel 以获得更好的性能,我想知道是否有任何插件可以用来找出并删除不需要的 Laravel 类/服务以满足我自己的需求?

【问题讨论】:

  • 添加插件以提高性能......这是否有意义?
  • 您是否正在尝试解决特定的性能问题?
  • 不是真的,只是觉得 Laravel 应该做得更好,但现在我猜这对我来说不再重要了,因为我在所有新项目中都使用了 nodejs

标签: performance laravel


【解决方案1】:

自动加载器优化: 部署到生产环境时,请确保您正在优化 Composer 的类自动加载器映射,以便 Composer 可以快速找到要为给定类加载的正确文件:

composer install --optimize-autoloader --no-dev

优化配置加载: 将应用程序部署到生产环境时,应确保在部署过程中运行 config:cache Artisan 命令:

php artisan config:cache

此命令会将 Laravel 的所有配置文件合并到一个缓存文件中,这大大减少了框架在加载配置值时必须对文件系统进行的访问次数。

优化路由加载: 如果您正在构建具有许多路由的大型应用程序,则应确保在部署过程中运行 route:cache Artisan 命令:

php artisan route:cache

此命令将您所有的路由注册减少到缓存文件中的单个方法调用中,从而在注册数百条路由时提高路由注册的性能。

服务器配置: Nginx 如果您将应用程序部署到运行 Nginx 的服务器上,您可以使用以下配置文件作为配置 Web 服务器的起点。很可能,需要根据您的服务器配置自定义此文件。如果您在管理服务器方面需要帮助,请考虑使用 Laravel Forge 等服务:

  server {
    listen 80;
    server_name example.com;
    root /example.com/public;

    add_header X-Frame-Options "SAMEORIGIN";
    add_header X-XSS-Protection "1; mode=block";
    add_header X-Content-Type-Options "nosniff";

    index index.html index.htm index.php;

    charset utf-8;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location = /favicon.ico { access_log off; log_not_found off; }
    location = /robots.txt  { access_log off; log_not_found off; }

    error_page 404 /index.php;

    location ~ \.php$ {
        fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
        include fastcgi_params;
    }

    location ~ /\.(?!well-known).* {
        deny all;
    }
}

【讨论】:

    【解决方案2】:

    我对 laravel 5 使用以下命令:

    php artisan 优化 --force -n

    php 工匠配置:缓存

    php 工匠路线:缓存

    还让用户使用生产环境。

    您还可以禁用/注释掉 config/app.php 中未使用的提供程序和别名

    【讨论】:

      【解决方案3】:

      Laravel的最新版本,即将发布,它会去掉所有不必要的元素,并有很大的改进。我建议使用这个即将发布的版本,而不是尝试简化当前版本,他们已经为您完成了这一切。

      【讨论】:

      • 很高兴听到这个消息!你说的是Laravel 5吗?发布日期是什么时候有确定的消息吗?
      【解决方案4】:

      看一下 Lumen 并比较依赖关系,它基本上是 Laravel 的精简版。

      除了依赖项之外,您还会注意到它使用$app->get() 而不是Route::get(),如果您有很多路线,这会更快

      【讨论】:

        【解决方案5】:

        在终端中使用这些命令-

        composer dump-autoload -o
        php artisan optimize
        

        -o 标志创建优化的自动加载文件。

        【讨论】:

          【解决方案6】:

          你可以使用Lumen,这是 Laravel 的一个了不起的微框架。

          【讨论】:

            【解决方案7】:

            如果您处于调试模式:: 在你的 laravel 项目目录上

            运行

            php artisan optimize --force
            

            否则

            运行

            php artisan optimize on you project folder
            

            (它将尽可能优化 Laravel 框架以获得更好的性能)

            【讨论】:

              猜你喜欢
              • 2020-12-05
              • 2018-05-09
              • 2016-06-28
              • 1970-01-01
              • 1970-01-01
              • 2018-12-25
              • 2018-05-27
              • 2021-07-22
              相关资源
              最近更新 更多