2010-09-29 22 views
1

在最近的CakePHP 1.3.4版本中,我發現Sanitize :: html返回雙重編碼的html實體 - 因爲新添加了第四個參數htmlentities'double_encode'。cakePHP:重載清理

這裏是CakePHP的相應票:http://cakephp.lighthouseapp.com/projects/42648/tickets/1152-sanitizehtml-needs-double_encode-parameter-in-htmlentities

因爲我需要使用CakePHP 1.3.4 PHP 5.2.14我需要改變double_encode參數。有沒有一種方法來重載蛋糕中的Sanitize :: html方法,所以我不必擺弄內核?

回答

2

您可以在/app/libs目錄繼承它:

App::import('Sanitize'); 

class MySanitize extends Sanitize { 

    public static function html(...) { 
     ... 
    } 

} 

你必須切換到使用MySanitize代替Sanitize,但是這不應該是一個大問題。如果您已經使用了文本查找/替換功能,那麼它可以處理它。

+0

非常感謝 - 子類是:) – 2010-09-29 14:33:52

+0

順便說一句,這是靜態方法調用爲什麼不好的一個很好的例子。通過適當的依賴注入,您不必更換所有實例... Cake真是一團糟。 – deceze 2012-08-07 13:53:22