如何在没有composer的情况下安装供应商bundle(公司网络)



首先,我不能使用composer,因为我在公司网络下。我想尽一切办法让作曲家工作:

  • HTTP_PROXY、HTTPS_PROXY、HTTPS_FULLURI。。。什么都不起作用。Composer diag为http packagist提供OK状态,但为https连接提供FAILS状态。它给我的错误是:

SSL:握手超时。

但这不是我的问题,我花了很多时间试图让作曲家工作(但如果你有一个解决方案,你会让我的一天)

我真正的问题是:如何手动安装捆绑包

我想安装此捆绑包:http://knpbundles.com/pierredup/MenuBundle.

我尝试安装捆绑包的操作:

  • 在appKernel.php中注册捆绑包:

new CSMenuBundleCSMenuBundle()

  • 尝试将其添加到autoload.php中:

$loader->add('CS', __ DIR __.'/../vendor/CS/CSMenuBundle.php');

(不知道如何正确添加php代码…)

但它不起作用,得到了以下错误:

试图从命名空间"CS\MenuBundle"加载类"CSMenuBundle"。您是否忘记了另一个命名空间的"use"语句?

然后,即使这不是一个好的练习,我也尝试将其添加到autoload_namespaces.php中,并在那之后进行了转储自动加载:

'CS\MenuBundle'=>数组($vendorDir.'/CS/')

我仍然有一个错误,但不是完全相同的错误:

试图从命名空间"CS\MenuBundle"加载类"CSMenuBundle"。你忘了"CS\MenuBundle\CSMenuBundle"的"use"语句了吗?

现在我有点沮丧,我看到很多帖子(不是在Stack上),人们尖叫,因为我们必须使用composer来管理依赖关系。我完全同意这一点,但我不能,所以我正在努力寻找另一种方法,因为我找不到任何明确的教程来解释如何在没有composer的情况下安装供应商,所以我来了。

请注意,我直接就您的问题评论了您的方法所遇到的问题。

然而,我查看了您想要使用的软件包,看看是否有可能以某种方式安装它(更喜欢Composer)。我认为这不可能也不可行。

composer require customscripts/menubundle:dev-master-这将是Composer做任何事情的简单命令。但是也存在问题:

  1. 您想要使用的软件包没有在packagist.org上注册,因此无法在正确连接到互联网的机器上简单地使用Composer,抓取软件包,将其压缩并转移到您需要的地方。

  2. 要解决这个问题,您需要手动将存储库添加到composer.json文件中——这实际上可能会起作用(但在我的虚拟机上会花费太多时间)。你最终会得到上一次编辑是在2012年的代码!

  3. 该代码的依赖项可能不再工作。该包的composer.json列出了"require": {"knplabs/knp-menu-bundle": "dev-master", "symfony/framework-bundle": ">=2.0,<2.3-dev", "jms/di-extra-bundle": "1.1.*"}——即使是第一个"knplabs/knp菜单包"也永远不会工作。请记住,这个包的代码来自2012年,现在我们是在2016年,所以"knp菜单捆绑包"已经在master分支上开发了四年。根本没有办法知道这个包使用了哪个提交。你必须对这些丢失的信息进行逆向工程。

  4. 此外,您还可以理解为什么Composer很棒,而手动操作却很糟糕:除了您想要的软件包外,您还必须下载这里提到的三个附加软件包。

  5. 但检测必须添加的包是一项递归任务:knp菜单捆绑包依赖于knp菜单(没有进一步的依赖关系)和symfony/framework捆绑包(已经添加)。symfony/framework捆绑包本身依赖于另外9个symfony包和条令/通用。。。等等。如果你不能使用Composer,你必须检测它的每一个包,并手动下载正确的版本。

跳过您的原始程序包,因为在我键入答案时安装尚未完成,我尝试安装knp菜单捆绑包,以查看将安装多少程序包。Composer安装了20个包,其中一些包在2.8中使用Symfony(它应该与Symfony 2.2兼容,不是吗),我只是运行了composer require knplabs/knp-menu-bundle:1.1.1,从2012年开始获得了一个类似的旧版本的knp菜单包。

使用Composer的优势在于,它支持快速开发,允许快速更新、可靠降级(如果您提交composer.lock文件并始终使用标记版本),并且只允许立即添加新包。作为一名PHP开发人员,不能使用Composer是一个非常严重的限制。与您的老板或团队领导讨论HTTPS代理的公司情况,并找到使用Composer的解决方案。另一种选择是自己从头开始开发一切,或者浪费大量时间尝试手动下载,因为这些下载不容易组合在一起。

相关内容

  • 没有找到相关文章

最新更新