2016-12-07 46 views
0

我正在使用文件轉換docx to pdf的一些項目,我使用共享主機服務器沒有ssh連接,只能使用選項是Ftp如何避免作曲家的PHP軟件包?

因此,是否有任何選項可以將包提取爲庫而不使用作曲者,如phpword,它的便攜性可以基本複製到服務器文件夾中,但轉換器包僅適用於composer。 我試圖從包中提取需要的文件,但似乎他們在覈心需要autoloader.php,只有我看到的選項只是修改源文件的便攜式使用。

有沒有選擇如何做到這一點更容易,如果這是可行的?

我與composer這是新的,這使我很難理解可移植使用提取包的可能性。

有什麼建議嗎? 謝謝!

回答

3

作曲家依賴

是的,我就遇到了這個「作曲家」的問題,以及。許多開發人員似乎都喜歡它,因爲各種原因,但是,如果您想嘗試一個小軟件包,或者您只有FTP訪問權限,它只會引入另一個依賴項。對於大型框架,我可以理解這一點,但對於一小段代碼,只有很少的類,這是沒有意義的。

例子:我想輸出ODS格式的Excel文件,並找到了一個相對簡單的代碼來做到這一點:

https://github.com/Lapinator/odsPhpGenerator

不幸的是,最新的版本取決於作曲家。沒有提供其他方式來使用代碼。開發者可能認爲這是一個優勢?那麼,我不知道。那麼該怎麼辦?被迫走下作曲家的道路,或者破解一些代碼?

後者可能比您想象的要簡單得多。我們所需要的是autoload.php文件的內容。這個文件可能會告訴PHP在哪裏可以找到使用SPL函數的包的類。您可以嘗試編寫自己的自動加載磁帶機,但我的包需要其所有的PHP文件,所以我只是寫了這個:

require_once('../src/ods.php'); 
require_once('../src/odsDraw.php'); 
require_once('../src/odsFontFace.php'); 
require_once('../src/odsStyle.php'); 
require_once('../src/odsTable.php'); 
require_once('../src/odsTableCell.php'); 
require_once('../src/odsTableColumn.php'); 
require_once('../src/odsTableRow.php'); 

並稱作爲autoload.php到封裝,它的工作,而無需使用作曲家。

在我看來,開發人員應該提供一種方法來嘗試這樣一個小包,而無需通過作曲家過程。他們可能不這樣做,因爲他們想以正確的方式做事。當然,一旦你習慣了作曲家,這沒什麼大不了的。

+0

我最近寫了我自己的autoload.php文件,這是使包工作沒有使用作曲家。謝謝你的回答。 – Ingus

0

您可以在計算機上執行composer install並將所有文件複製到服務器。 vendor文件夾包含所有作曲家的依賴關係。

+0

因此我嘗試安裝與作曲家的所有軟件包,我有類的問題,他們無法找到,因爲我包括類路徑它說我有dublicate。作曲家或包裝本身有問題嗎? – Ingus

+0

您應該刪除供應商文件夾,然後執行'composer install'並在代碼中需要'vendor/autoload.php'。 –

0

請注意,Composer不是庫安裝程序。它不應該在生產服務器上運行,而每個人在更新後等待站點恢復。

我認爲只提供FTP訪問的託管公司可能不應該得到您的錢(由於安全原因,您的密碼以明文形式傳輸,供大家閱讀),但是對於Composer而言,您不需要服務器上的SSH,只需要在本地計算機上。

確保您在本地和遠程運行相同的PHP版本,否則您將安裝不能用於遠程PHP版本的庫。

+0

這是大學項目的工作,所以是啊,我不想花錢在服務器上,這是使用了幾個月... – Ingus

相關問題