2014-09-26 18 views
1

我有一個使用apache thrift和*.thrift文件創建的服務,該文件可用於生成客戶端庫。Thrift客戶端庫的Composer版本控制

服務和*.thrift文件有它自己的版本(例如2.3.0)。

現在我想預先生成PHP的客戶端,使其可以加載作曲家,但節儉本身有自己的版本生成不同的文件(例如0.9.1)。

我的想法是預先生成具有不同節儉版本和標籤,像以下服務:

<CLIENT-MAJOR>.<CLIENT-MINOR>.<CLIENT-PATCH>.<THRIFT-MAJOR>.<THRIFT-MINOR>.<THRIFT-PATCH> 

但作曲家不喜歡這個版本:

[UnexpectedValueException]                
Could not parse version constraint 2.3.0.0.9.1: Invalid version string "2.3.0.0.9.1" 

我能做?思考?

回答

0

即使生成的代碼在不同版本之間有所不同,服務本身也是向後兼容的 - 這就是重中之重。所以不需要包含Thrift版本。否則,你也可以考慮包含你的PHP版本號。

+0

生成的代碼在所有情況下都不兼容!例如,在0.8和0.9之間的PHP名稱空間被添加,這是一個很大的API更改。順便說一句。生成的代碼需要PHP thrift庫在相同的版本!請參閱https://github.com/apache/thrift/tree/0.8.0/lib/php&https://github.com/apache/thrift/tree/0.9.1/lib/php – 2014-09-27 18:32:04

+0

該服務的外部行爲是向後兼容,不一定是PHP相關的東西。而且,這又是重中之重。沒有人會處理你的代碼,但暴露的服務。 – JensG 2014-09-27 21:09:14

+0

我喜歡標記生成的PHP客戶端庫。該服務本身有它的版本,並沒有問題。如果你喜歡在PHP中使用這個服務,你需要生成的客戶端庫,如果你使用不同的版本生成客戶端庫,它會有很大的區別 - PHP客戶端API是不同的,依賴關係是不同的,順便說一句。彼此不兼容(你不能同時使用0.9和0.8的PHP thrift庫)。你的意思是服務/ thirft客戶本身,但沒有額外的工作/知識,這是不可用。 – 2014-09-28 20:08:59