CakePHP - заменить символ слова Microsoft - PullRequest
0 голосов
/ 03 мая 2011

Как лучше всего заменить символ слова Microsoft в CakePHP?

Поэтому я пытаюсь запустить следующую функцию перед редактированием или сохранением и т. Д. В каждом текстовом поле.

function convert_ms_chars($string) 
{ 
    $search = array(chr(145), 
                    chr(146), 
                    chr(147), 
                    chr(148), 
                    chr(151)); 

    $replace = array("'", 
                     "'", 
                     '"', 
                     '"', 
                     '-'); 

    return str_replace($search, $replace, $string); 
}

То, как я это делаю, теперь кажется супер гетто.

if (!empty($this->data)) {
    $this->data['field'] = $this->convert_ms_chars($this->data['field']);
    $this->data['field1'] = $this->convert_ms_chars($this->data['field1']);
}

Не говоря уже о том, что мне нужно скопировать это на несколько контроллеров.
Есть ли лучший способ, которым я могу подойти к этому?

Спасибо
Тройник

Ответы [ 2 ]

0 голосов
/ 03 мая 2011

В дополнение к комментарию slifty, лучший способ сделать это в CakePHP - создать компонент, который включает ваш метод convert_ms_chars.

Затем вам просто нужно добавить этот компонент в ваш массив $componentsв каждом контроллере вы хотели бы использовать его.Затем вы можете вызвать его, выполнив $this->YourComponentName->convert_ms_chars(), где это необходимо.

Если вы хотите делать это каждый раз, когда вы делаете save(), вы также можете добавить его к обратному вызову Models beforeSave().Таким образом, CakePHP автоматически очистит ваши данные при сохранении данных модели.

0 голосов
/ 03 мая 2011

Организация кода - если это библиотечный метод (то есть то, что вы собираетесь использовать на множестве контроллеров), вам следует подумать о том, чтобы разместить его где-то еще (файл, на который обычно ссылаются), вместо того, чтобы иметь тот же самый код в нескольких контроллерах.

Функциональная потребность - насколько я знаю, это в значительной степени способ сделать это. Вы можете сжать его в одну строку, но в конечном итоге вы заменяете символы в строке; использование метода замены строк - вот как это делается.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...