簡體   English   中英

如何在沒有作曲家的情況下安裝供應商包(公司網絡)

[英]How to install vendor bundle WITHOUT composer (corporate network)

首先,我不能使用作曲家因為我在公司網絡下。 我嘗試了一切讓作曲家工作:

  • HTTP_PROXY,HTTPS_PROXY,HTTPS_FULLURI ......沒有任何效果。 Composer diag為http packagist提供OK狀態,但為FAIL連接提供FAILS。 它給我的錯誤是:

SSL:握手超時。

但這不是我的問題,我花了很多時間試圖讓作曲家工作(但如果你有一個解決方案,你會讓我的一天)

我真正的問題如下:如何手動安裝捆綁包

我想安裝這個軟件包: http//knpbundles.com/pierredup/MenuBundle

我嘗試安裝捆綁包做了什么:

  • 在appKernel.php中注冊bundle:

new \\CS\\MenuBundle\\CSMenuBundle()

  • 試圖在autoload.php中添加它:

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

(不知道如何正確添加PHP代碼......)

但它不起作用,得到以下錯誤:

嘗試從命名空間“CS \\ MenuBundle”加載類“CSMenuBundle”。 您是否忘記了另一個命名空間的“use”語句?

然后,即使這不是一個好習慣,我也嘗試將其添加到autoload_namespaces.php並在此之后執行dump-autoload:

'CS \\ MenuBundle'=> array($ vendorDir。'/ CS /')

我仍然有錯誤,但不完全相同:

嘗試從命名空間“CS \\ MenuBundle”加載類“CSMenuBundle”。 您是否忘記了“CS \\ MenuBundle \\ CSMenuBundle”的“使用”聲明?

現在我有點沮喪,我看到很多帖子(不在Stack上)人們尖叫,因為我們必須使用composer來管理依賴項。 我完全同意這一點,但我不能,所以我試圖找到另一種方式,因為我找不到任何明確的教程解釋如何安裝沒有作曲家的供應商,我在這里。

請注意,我直接評論了您在問題上看到的問題。

但是,我查看了您要使用的軟件包,看看是否有機會以某種方式安裝它(更喜歡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.*"} - 即使是第一個”knplabs / knp-menu-bundle“也無法使用。 請記住,這個軟件包的代碼是從2012年開始的 - 現在我們在2016年,所以“knp-menu-bundle”已經在master分支上進行了四年的開發。 根本不知道對這個包使用了哪個提交。 您必須對這些丟失的信息進行逆向工程。

  4. 另外,你明白為什么Composer很棒並且手動操作很糟糕:除了你想要的包之外,你還必須下載這里提到的三個附加包。

  5. 但是檢測必須添加的包是一個遞歸任務:knp-menu-bundle依賴於knp-menu(沒有進一步的依賴)和symfony / framework-bundle(已經添加)。 symfony / framework-bundle本身依賴於9個Symfony包和doctrine / common ...等等。 如果您不能使用Composer,則必須檢測每個包的這個並手動下載正確的版本。

在我輸入答案時,由於安裝沒有完成,因此我跳過原始軟件包,我嘗試安裝knp-menu-bundle以查看將安裝多少軟件包。 Composer安裝了20個軟件包,其中一些在2.8中使用Symfony(它應該與Symfony 2.2的東西兼容,不應該) - 而我只是運行composer require knplabs/knp-menu-bundle:1.1.1來抓住類似的舊2012年的knp-menu-bundle版本。

使用Composer的優勢在於它支持快速開發,允許快速更新,可靠地降級(如果您提交composer.lock文件並始終使用標記版本),並且只是允許立即添加新包。 作為PHP開發人員,無法使用Composer是一個非常嚴重的限制。 通過HTTPS代理與您的老板或團隊負責人討論貴公司的情況,並找到使用Composer的解決方案。 另一種方法是自己開發所有東西,或浪費大量時間試圖擺弄不易組合的手動下載。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM