2016-02-24 36 views
1

這是我目前project.hxml:如何分解PHP導出的「主類」結構?

-cp Source 
-main Login 
-php Export/Server 
-v 

這樣做是採取類(Login.hx)之一,並把它作爲整個PHP服務器的主類。
這對PHP並不是很有用,因爲PHP並不真正支持「main」類的概念,相反,您需要爲每個要從Web調用服務器的函數提供一個.php腳本,主要彼此獨立工作。

這裏最大的問題顯然是haxe將所有內容輸出到指定文件夾中的「主」類,但將Login.hx重命名爲index.php。
但是,我不希望它成爲index.php。
我要的是一個login.php中,logout.php,morestuff.php,基本上所有我haXe的班,成爲可調用的PHP腳本,能夠調用它們像這樣:

/appname/login 
/appname/logout 
/appname/morestuff 
etc. 

的唯一途徑爲了實現這一點,我現在可以想到的不是很好的解決方法。

  1. 創建一個更大的project.hxml文件,輸出每個班級分成使用---接着自己的文件夾(所以導出/服務器/登錄,導出/服務器/註銷等)。這將工作,但也將炸燬的大小爲所有.php文件haxe輸出(標準等)將在這些文件夾中重複。
  2. 有一個實際的Main類,它使用參數將不同的調用轉發給實際的類。所以基本上這些電話會變成/appname/Main?function = login,/ appname/Main?function =註銷
    這樣會更容易接受,但仍然感覺有點麻煩。
  3. 我不是PHP專家,但可能有一種方法可以在PHP內部進行一些配置。我寧願不。

當然,肯定有更好的辦法嗎?

回答

2

我與你遇到的同樣的問題摔跤,這是我能做的最好的。 可以使用修改PHP入口文件的文件名中hxml文件或命令行選項:

--php-front newfilename.php  

您也可能會發現它有用的改變,其中lib目錄位於:

--php-lib ../lib 

在hxml文件,所以該完整的設置(生成多個PHP入口點)看起來可能是這樣:

-cp src 
-main Main 
--php-front joomlahaxe.php 
-php bin/com_joomlahaxe/site 
-debug 

--next 
-cp src 
-main JoomlahaxeViewJoomlahaxe 
--php-front view.html.php 
--php-lib ../../lib 
-php bin/com_joomlahaxe/site/views/joomlahaxe 
+0

好了,所以基本上像我的第一個解決辦法,但具有更好的hxml魔術。聽起來不是太糟糕,太糟糕了 - 腳本中的下一個問題會自動完成如此糟糕。謝天謝地,我也知道這個解決方法;) – TheSHEEEP

+0

我會接受這一點,應該在幾天內不會彈出一個類似於解決方法的答案。 – TheSHEEEP

+0

我發現了一個重要的問題:每個 - 下一個目標將覆蓋上一個目標的「lib」文件夾。例如,如果目標B不使用前一個腳本A使用的函數,則它不會出現在生成的lib文件夾中,因此會破壞腳本A.所以這確實需要每個php類的奇怪的解決方法,它必須使用每個需要的Lib函數或者風險是函數在最終結果中消失。啊! – TheSHEEEP