2011-04-04 19 views
1

背景:我們經常工作在PHP(Zend Framework)開發並託管在Linux服務器上的Web應用程序。編程團隊可能由可能將Linux或Windows用於其本地開發平臺的個人組成。Zend框架類的文件名在Windows與Linux

因爲Zend模型名稱映射到文件名,所以案件很重要。 程序員可以編寫$ this-> something,其中「something」是在「Something.php」的linux服務器上有一個文件名的模型。

他的代碼可以在他的Windows開發PC上正常工作,因爲「某些東西」會正確映射到Windows上的「Something.php」。但是,當上傳到Linux服務器時,代碼將會中斷,因爲文件名在Linux上區分大小寫。他應該把代碼寫成「$ this-> Something」。

因此,最後我的問題是,如果系統檢測到代碼中的模型名稱大小寫與文件系統中實際文件名的大小寫不匹配,那麼Zend Framework配置是否會在Windows中產生錯誤?

+0

重新標記。 Zend!= Zend Framework。 – Layke 2011-04-04 20:35:15

+0

底線是,不,沒有,堅持命名約定! – markus 2011-04-05 05:54:26

+0

@Laykes - 謝謝 – royappa 2011-04-05 19:40:24

回答

1

ZF命名約定

Zend Framework編碼約定規定您應該使用大寫名稱。 一些約定與API自身一樣重要。

http://framework.zend.com/manual/en/coding-standard.naming-conventions.html

如果一個類名包含多個 超過一個字的 第一個字母每一個新單詞必須大寫。 連續的大寫字母不是 ,例如一個類「Zend_PDF」是 不允許,而「Zend_Pdf」是 可以接受。

類名可能只包含 字母數字字符。在類名中允許使用數字 ,但在大多數情況下不鼓勵使用 。下劃線 只允許代替 路徑分隔符;文件名 「Zend/Db/Table.php」必須映射到 類名稱「Zend_Db_Table」。

請注意,您提供的示例是錯誤的。 但無論如何,請保持模型名稱全部爲大寫,並且模型的路徑也使用ZF命名約定大寫內聯。

+1

在定義類和創建文件時,我們理解約定並遵循它們。這個問題(如果不清楚的話)是關於如何在Windows上檢測錯誤的時候,當類被INVOID(用小寫字母而不是大寫字母)來檢測時。 – royappa 2011-04-05 19:43:59

2

所以最後我的問題,是有 Zend框架的配置,它將 產生,即使在Windows的故障,如果 系統檢測到的 的情況下,代碼型號名稱不匹配 的情況下在 文件系統中的實際文件名?

不是我所知道的,但在開發服務器/工作站上添加一些ZF副本會很容易。 ZF使用spl_autoload_register加載類,所有將類名轉換爲文件系統位置的邏輯位於Loader名稱空間中。

HTH。

+0

謝謝!我希望框架本身可能有一個這樣的環境,但如果沒有,這是一個很好的建議,可以在哪裏實現。 – royappa 2011-04-05 19:42:44

0

也許像PHP_CodeSniffer可能會幫助你。

從來沒有嘗試過,但從我的理解,你可以定義規則來驗證你的代碼,從而定義基於你的問題的文件名大小寫的規則。

從我閱讀的內容中已經定義了Zend規則集,也許它已經包含了這種規則(或者也可能是PEAR規則集)。

+0

謝謝,我會調查。 – royappa 2011-04-19 17:11:30