2010-05-31 34 views
12

沒有人知道的PHP的軟件包管理器庫(如例如易於或蔭爲Linux發行版)從PEAR?我正在開發一個應該包含用於模塊管理的包管理系統的系統。我設法使用PEAR獲得了一個可行的解決方案,但是使用PEAR客戶端來管理PEAR安裝並不是真正的最佳解決方案,因爲它不是爲此設計的。我將不得不修改/擴展它(例如,爲了實施安裝/升級操作或將PEAR特定文件(如lockfiles)移出系統根目錄),特別是CLI客戶端代碼非常混亂且PHP4。因此,也許有人有一些建議PHP包管理

  • 一種替代PEAR客戶端庫,易於使用和擴展(服務器端有一些不錯的實現比如Pirum和pearhub)
  • 爲用PHP編寫的完全不同的包管理系統(理想情況下,包括依賴性跟蹤和不同頻道)
  • 一些總體思路如何實現這樣的PM系統

我知道(是的,我仍然在實現這樣一個從無到有系統的想法擺弄)那個大系統ems像Magento和symfony使用PEAR作爲他們的PM。 Magento使用原始PEAR客戶端的黑客版本(我想避免),symfony的實現似乎與框架非常集成,但是至少從頭開始編寫客戶端是一個很好的起點。無論如何,如果任何人有建議:請:)

+1

我不建議你自己寫的軟件包管理器,除非它是學習的目的。例如,依賴管理並不容易。 – Artefacto 2010-05-31 18:40:01

+0

如果你發現一些有趣的東西,或者真的開始一個新的項目,讓我們更新! ;)順便說一句,我最近在這裏看到一個關於「gnope」的問題(參見sourceforge)。沒有對它進行測試,但似乎是一個圖形包安裝程序的種類,可能與PEAR相關,但具有可重定位的包。但還沒有檢查出來。 – mario 2010-05-31 23:27:35

+0

除了以下建議之外,我還看了symfony對PEAR安裝程序的實現,這是一組擴展原始PEAR安裝程序的類。看起來很簡單,在庫的頂部寫一個自己的客戶端實現。 – maff 2010-06-01 14:22:34

回答

11

Composer也。

+0

謝謝,現在肯定是現在的路,但當時並不存在:) – maff 2012-10-17 09:29:28

+0

只是爲了評論這個 - 每個作曲家的網站,「作曲家不是一個包管理者,是的,它處理」包「或庫,但是它可以在每個項目的基礎上管理它們,並將它們安裝到項目中的目錄(例如供應商)中。默認情況下,它不會在全局安裝任何東西,因此它是依賴項管理器。它很微妙,但不同。 (不過,作曲家是偉大的。) – JasCav 2014-02-14 18:55:11

+1

@JasCav嗯,這是一個項目級包管理器;) – 2014-02-16 07:30:11

3

你檢查Maven for PHP?我只用Maven的在Java應用程序的情況下,但它肯定:

  • 易於擴展 - 它真的很容易實現的Maven插件
  • 管理依賴 - 區別編譯,測試和運行時依賴(雖然編譯/運行時區分在PHP中沒有意義)。
  • 庫是微不足道忍受 - Apache的mod_dav的會給你一個工作寫庫,但是你也有Nexus
  • 區分快照和穩定工件;允許針對何時檢查新的快照構件以及哪些存儲庫獲取每種類型的策略。

而且很多 - 很多 - 更多的事情。

+0

我只知道Maven與持續集成相結合,但它看起來非常強大 - 感謝這個建議,我一定會嘗試一下。 – maff 2010-06-01 14:17:56

2

PEAR2 /梨爲任意應用程序包管理構建。我相信它是在apt/yum架構之後建模的。

海爾吉 - 核心PEAR成員 - 介紹了一些在這裏 - http://www.slideshare.net/helgith/pear2-pyrus-the-look-ahead但文檔是非常穩固太:http://pear.php.net/manual/en/pyrus.extending.installation.php

+0

PEAR2似乎遭受命名空間炎症。而不是那個好的。 – mario 2010-05-31 21:18:43

+0

我知道Pyrus並想過使用它,但不知何故,我沒有設法找到你鏈接到的文檔...對使用PEAR2系統有很大的幫助,謝謝。 – maff 2010-06-01 14:19:32

+0

@Mathias我期待在web2project中使用它來處理我們所有的模塊管理問題。我喜歡事物的依賴管理方面。 – CaseySoftware 2010-06-02 16:31:10