【问题标题】:Is there a PHP bundler similar to Node's Webpack是否有类似于 Node 的 Webpack 的 PHP 捆绑器
【发布时间】:2020-10-07 19:52:18
【问题描述】:

我使用 PHP Slim4 框架编写了一个 REST-API 应用程序。但是,现在我想部署应用程序。我似乎找不到像 webpack 这样直观的工具来将我的应用程序捆绑到几个文件中并对任何未使用的代码进行摇树。

是否有人们使用 PHP 进行部署的任何工具?我不习惯部署 PHP 应用程序,所以我不确定将 PHP 应用程序部署到野外的最佳实践是什么?

提前谢谢你!

【问题讨论】:

    标签: php node.js webpack bundler slim


    【解决方案1】:

    你不需要在 PHP 中摇树,你可以使用延迟加载来加载需要的类。为此,您需要autoloading,它可以在需要类时加载类文件。

    您应该使用事实上的标准composer 并使用PSR-4 convention 使您的文件路径与您的命名空间匹配,而不是自己实现逻辑。

    如果你真的想把所有东西都放在一个文件中,你可以使用phar“存档”,你可以手动或使用box之类的工具来完成,但你不需要它来在生产中部署代码,它是通常不需要。

    【讨论】:

    • 是的,我正在使用命名空间和作曲家自动加载器。但是,如何从脚本中删除所有 cmets 和空格?还有一些选项(在入口文件中)我需要在生产时切换。比如显示错误转为false等
    • 您应该使用“dotenv” (12factor.net),例如这个项目github.com/vlucas/phpdotenv 将加载 .env 文件作为环境变量。然后你可以有条件地为 dev 或 prod 做事。
    • 感谢 Box 和 DotEnv 的提及,它们是非常适合该主题的出色工具。是否应该使用 Box 封装应用程序以在 CI/CD 环境中部署,还是一种不好的做法?
    • 为了测试你不需要它,你可以直接在 CI 上测试你的源代码,如果你想创建一个“构建”来共享或部署,使用 box 可能会很方便,但是通常没有必要。与 js 不同,您无需转换即可在生产环境中部署 php 代码,因为它是服务器端。
    【解决方案2】:

    您可以使用 Composer 生成应用程序的优化构建。所有开发依赖项均已删除,并且 Composer 自动加载器已针对性能进行了优化。

    在与项目的 composer.json 文件相同的目录下运行此命令:

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

    您不必在生产服务器上运行 composer。要构建部署“工件”,您可以使用 Apache Ant。

    【讨论】:

      猜你喜欢
      • 2021-04-28
      • 1970-01-01
      • 2019-10-08
      • 1970-01-01
      • 2016-07-02
      • 2020-11-26
      • 2011-03-27
      • 2011-11-14
      • 1970-01-01
      相关资源
      最近更新 更多