我目前正在編寫一個小庫,用於檢測內容中的「壞」字(請參閱here),並且在決定特定類的命名空間方式/位置方面遇到一些麻煩。PHP命名空間/設計問題
我的圖書館的使用流程迄今如下,
$dictionary = new Dictionary\Csv('/path/to/file.csv');
$config = new Filter\Config\Standard();
$filter = new Filter($dictionary, $config);
基本上你創建單詞的Dictionary
,一個Filter\Config
定義如何Filter
執行,然後創建一個Filter
從所述對象。
在內部,Filter
使用Filter\Config
將Dictionary
中的Word
轉換爲正則表達式。
現在我的問題是我不知道該叫什麼和/或把這個「轉換器」放在哪裏。
我的當前的想法是,
Word\RegExpConverter
(因爲有一個Word
類來表示一個字)Word\Converter\RegExp
Filter\RegExpConverter
由於Word
正在轉換,它在Word\
命名空間中似乎有意義,但同時它是一些特定於Filter
的東西,並且需要Filter\Config
。
想法?想法?
乾杯,史蒂夫
首先'Filter'檢查是否有正則表達式的緩存。如果沒有,它使用'Dictionary'上的'getWords()'來獲取'Word'對象。這是我不確定的地方。使用'Config','Filter'將'Word'轉換成正則表達式。我可以在Filter內部做到這一點,但它看起來「錯誤」,因爲它不是「Filter」的工作?儘管我明白你的意思,也許我正在設計(?)這個。 – 2011-04-15 19:47:32
這聽起來更糟糕,但我渴望得到別人的意見。你認爲'$ config-> getRegExp($ word)'是什麼意思?由於'Config'的作用是從字面上定義如何構建正則表達式,以及可能有1或2個適用於'Filter'本身的規則。 – 2011-04-15 19:57:05