【发布时间】:2016-04-26 00:12:51
【问题描述】:
首先,我不能使用composer,因为我在公司网络下。我尽一切努力让作曲家工作:
- HTTP_PROXY、HTTPS_PROXY、HTTPS_FULLURI ... 没有任何效果。 Composer diag 为 http packagist 提供了 OK 状态,但为 https 连接提供了失败。它给我的错误是:
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”。 您是否忘记了另一个命名空间的“使用”语句?
然后,即使这不是一个好习惯,我也尝试将其添加到 autoload_namespaces.php 并在此之后进行了转储自动加载:
'CS\MenuBundle' => 数组($vendorDir.'/CS/')
我仍然有一个错误,但不完全相同:
尝试从命名空间“CS\MenuBundle”加载类“CSMenuBundle”。 您是否忘记了“CS\MenuBundle\CSMenuBundle”的“使用”语句?
现在我有点沮丧,我看到很多帖子(不是在 Stack 上)人们尖叫,因为我们必须使用 composer 来管理依赖项。我完全同意这一点,但我不能,所以我试图找到另一种方法,因为我找不到任何明确的教程来解释如何在没有 composer 的情况下安装供应商,所以我来了。
【问题讨论】:
-
您是否下载了捆绑包的源代码并将其放在所需的文件夹中?也许您最好在本地使用 Composer 安装依赖项,然后将
vendor目录与生产系统同步。 -
我认为你问错了问题。虽然通常可以将所有需要的包及其依赖项下载到正确的版本中,将它们放入一个文件夹,然后添加一些自动加载功能,但这是一项繁琐的任务,实际上需要自动化。问题是:如果 Composer 无法使用 HTTPS,那么您的自动化脚本也无法使用。您最终无法不断更新您的依赖关系,并且会避免这样做。正确的解决方案是找到正确使用 Composer 的方法。问问你的同事和老板如何到达那里。别无选择。
-
我必须说您的评论和下面给出的答案很棒。我成功安装了包,我只需要创建文件夹 MenuBundle,然后 autoload_namespaces 运行良好。我为 Evehiy 在 gitHUB 上提供的 symfony 的 MaterializeBundle 做了同样的事情。我完全知道没有作曲家的工作是行不通的......我想对于这种捆绑(我的意思是像物化这样的前端捆绑)这并不是一个大问题。但正如你所说,对于 CS 或任何其他捆绑包,我会一次又一次地撞到墙上……顺便说一句,这不是我的错。感谢您的宝贵时间
标签: symfony composer-php vendors