【问题标题】:Is there a simple way to remove composer from an app or a framework有没有一种简单的方法可以从应用程序或框架中删除作曲家
【发布时间】:2014-01-18 23:34:15
【问题描述】:

例如,如果我想从fuelphp 中删除作曲家...有没有什么简单的方法可以删除作曲家? 我的意思是我要求在没有作曲家的情况下使用fuelphp(或其他一些框架)。

【问题讨论】:

  • 你为什么要删除作曲家?
  • 所以检查你是否拥有所有依赖项并确保所有需要的外部库都是你不需要的机制:所以这些使用 composer 的库的开发人员显然是白痴包括它作为让您的生活更轻松的一种方式
  • Composer,或者更具体地说它是自动加载组件,需要加载fuelphp的所有依赖项。 您要做的就像仅仅因为阳光明媚就拆除房屋的屋顶。我对此并不完全确定,但我认为fuelphp至少有一个依赖项(独白)需要预先加载。
  • @Mark Ba​​ker...“所以如果你不需要作曲家,只需删除它....它只是一个小文件”..你是天才。谢谢你:)

标签: php composer-php fuelphp


【解决方案1】:

因为 composer 是框架的一部分。你“确实”需要它。时期。否则你必须听从@Sven 的建议。

话虽如此,您通常只需要在您的开发平台上使用 composer,因为您需要在其中提取新代码或更新。

在没有 composer 和 .git 文件夹的情况下部署您的应用程序(到登台或生产环境)非常好。无论如何,您都不希望在这些环境中引入更新,这些平台上的所有代码都应该在您的版本控制之下。

【讨论】:

    【解决方案2】:

    不,没有“简单”的方法。

    要完成 Composer 的工作,您需要:

    1. 下载所有直接包含的正确版本的库。
    2. 同时下载步骤 1 中任何库所需的所有库。
    3. 在第 2 步中重复下载新库,除非您没有找到任何新库,即您已完全下载了所有这些库。
    4. 然后为每个下载的库创建一个自动加载器,具体取决于每个库的每个配置都必须执行的操作,即注册 PSR-0(或 PSR-4,如果某些库喜欢在边缘运行),或解析类、接口和特征出现的整个源代码树,并创建一个数组,列出每个此类名称和包含的文件名。
    5. 最后但并非最不重要的一点是找到一种方法,将下载和创建的所有内容放置在预期的常规 Composer 结果位置。

    手动执行此操作并非不可能,但这样做很荒谬。

    虽然我承认 Composer 让不知情的业余程序员在尝试下载新库时更难摆弄他的自制脚本,因为他现在必须了解 Composer,但最终它使每个人的生活都变得轻松多了——花在了解 Composer 上的时间是值得的。作曲家不会很快消失。事实上,在很长一段时间内,其他所有语言都有 Composer 之类的东西,没有人抱怨或试图删除那里的这些依赖管理器。

    【讨论】:

      【解决方案3】:

      FuelPHP 1.7+ 版(我认为)需要作曲家,您必须修改自动加载器以防止它尝试使用作曲家的自动加载器。这是可取的,因为这意味着更新维护版本变得更加困难。

      不幸的是,作曲家相当普遍,如果你继续使用框架,你将不得不使用它。 Fuel 附带一个 composer.phar 版本,因此您甚至不必费心在系统上下载/安装它。

      【讨论】:

        【解决方案4】:

        如果没有依赖关系,你总是可以简单地做这样的事情:

        set_include_path(dirname(__FILE__).'/framework_XYZ');
        spl_autoload_extensions(".php");
        spl_autoload_register();
        

        不要忘记通过隐藏核心/系统类的目录更改“framework_XYZ”...;)

        J.

        【讨论】:

          猜你喜欢
          • 2023-04-03
          • 1970-01-01
          • 1970-01-01
          • 2011-04-22
          • 1970-01-01
          • 2011-10-30
          • 2011-02-17
          • 2010-12-03
          相关资源
          最近更新 更多