我一直在努力尋找實現我的系統實際上是由一個字符串演出季和劇集數相匹配的好方法,你可以在這裏看到當前工作代碼:https://github.com/huddy/tvfilename這是我的PHP應用程序的正確設計模式?
我目前正在重寫此庫,並想要一個更好的方式來實現匹配如何發生,目前基本上它的工作方式是:
有一個文件夾中有類(稱爲處理程序),每個處理程序是一個類,實現一個接口,以確保方法稱爲match();存在,此匹配方法使用存儲在該處理程序類(其中有很多)的屬性中存儲的正則表達式來嘗試匹配季節和情節。
該類加載所有這些處理程序通過實例化每個存儲在屬性中的數組,當我想嘗試匹配某些字符串時,該方法會遍歷這些調用match()的對象;然後返回true的第一個返回結果集中的季節和它匹配的情節。
我真的不喜歡這樣做,這對我來說有點不好,我希望設計模式能夠幫助,我的最終目標是使用最佳實踐來做到這一點,我想知道我是哪一種應該使用?
存在的其他問題是:
一個以上的處理器可以匹配的字符串,所以他們必須在爲了防止更貪心的孩子第一個匹配的,不知道這是可解因爲一些正則表達式模式必須是貪婪的,但可能是一個評分系統,它顯示了匹配的正確性的百分比,但我不知道如何實際實現這一點。
我不是如果實例化所有這些處理程序是一種很好的方法,速度很重要,但是使用最佳實踐並堅持設計模式來創建良好的,可擴展和可維護的代碼是我的最終優先事項。值得一提的處理器類有時做其他事情不僅僅是正則表達式匹配,他們有時預習的串,除去常用詞等匹配
乾杯任何幫助 比利
您可以結帳[Horde Routes](http://dev.horde.org/routes/)。 –
你在想這個。您的貪婪問題可以通過將數組從最貪婪到最貪婪的順序輕鬆解決,並且您的正則表達式都可以在一個類中。我沒有看到比這更直接或更乾淨的方法。 –