如何安装供应商捆绑包WITHOUT composer(公司网络)

时间:2016-01-20 08:38:27

标签: symfony composer-php vendors

首先,我不能使用作曲家因为我在公司网络下。我尝试了一切让作曲家工作:

  • HTTP_PROXY,HTTPS_PROXY,HTTPS_FULLURI ......没有任何效果。 Composer diag为http packagist提供OK状态,但为FAIL连接提供FAILS。它给我的错误是:
  

SSL:握手超时。

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

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

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

我尝试安装捆绑包的方法:

  • 在appKernel.php中注册包:

new \CS\MenuBundle\CSMenuBundle()

  • 试图在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”的“使用”声明?

现在我有点沮丧,我看到很多帖子(不在Stack上)人们尖叫,因为我们必须使用composer来管理依赖项。我完全同意这一点,但我不能,所以我试图找到另一种方式,因为我找不到任何明确的教程解释如何安装没有作曲家的供应商,我在这里。

1 个答案:

答案 0 :(得分:1)

请注意,我直接评论了您在问题上看到的问题。

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

composer require customscripts/menubundle:dev-master - 这将是Composer完成所有操作的简单命令。但是有问题:

  1. 您要使用的软件包未在packagist.org上注册,因此无法在正确连接到Internet的计算机上使用Composer,抓取软件包,将其压缩并传输到该位置你需要它。

  2. 要解决此问题,您需要手动将存储库添加到composer.json文件中 - 这可能实际上有效(但在我的VM上需要花费太多时间)。您最终会得到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.*"} - 即使是第一个&#34; knplabs / knp-menu-bundle&#34;永远不会工作。请记住,这个包的代码是从2012年开始的 - 现在我们是在2016年,所以&#34; knp-menu-bundle&#34;已经在主分公司看到了四年的发展。根本不知道对这个包使用了哪个提交。您必须对丢失的信息进行逆向工程。

  4. 此外,您还可以看到为什么Composer很棒并且手动操作很糟糕:除了您希望的包之外,您还必须下载此处提到的三个附加包。

  5. 但是检测必须添加的包是一个递归任务:knp-menu-bundle依赖于knp-menu(没有进一步的依赖)和symfony / framework-bundle(已经添加)。 symfony / framework-bundle本身依赖于9个Symfony包和doctrine / common ...等等。如果您不能使用Composer,则必须检测每个包的这个并手动下载正确的版本。

  6. 在我输入答案时,由于安装没有完成,因此我正在跳过原始软件包,我尝试安装knp-menu-bundle以查看将安装多少软件包。 Composer安装了20个软件包,其中一些在2.8中使用Symfony(它应该与Symfony 2.2兼容,不应该这样) - 我只是运行composer require knplabs/knp-menu-bundle:1.1.1来获取类似旧版本的knp-menu-从2012年开始捆绑。

    使用Composer的优势在于它支持快速开发,允许快速更新,可靠地降级(如果您提交composer.lock文件并始终使用标记版本),并且只是允许立即添加新包。作为PHP开发人员,无法使用Composer是一个非常严重的限制。通过HTTPS代理与您的老板或团队负责人讨论您公司的情况,并找到使用Composer的解决方案。另一种方法是自己开发所有东西,或浪费大量时间试图摆弄不易搭配的手动下载。