Чем больше я пытаюсь использовать стандарты кодирования PSR-2 и инструменты, такие как GrumPHP (и связанные с ним), тем больше я обнаруживаю, что качество пишущего кода можно значительно улучшить незначительными способами.
И я не хочу показаться противоречивым: я имею в виду, что идея о том, чтобы что-то «значительно» улучшилось «незначительным» образом, не совсем подходит, не так ли?
Но выслушайте меня.
Представьте, что вы можете писать чистый, удобочитаемый, удобный для сопровождения код, используя стандарты кодирования, которые не только современны, но и встроены в PHP, прекрасно взаимодействуют с WordPress и более читабельны, чем некоторые другие способы, которыми мы могли это сделать в прошлого или при использовании других инструментов для стандартов кодирования.
Вам не было бы интересно?
Очистка данных поста
Возьмем, к примеру, идею о необходимости очистки данных записей в WordPress. То есть информация отправляется на сервер через запрос POST, содержится в суперглобальном массиве $_POST и должна быть очищена перед выполнением какой-либо работы.
Конечно, WordPress предоставляет для этого несколько вспомогательных функций, и они полезны, но PHP также предоставляет некоторые из них.
Я предоставлю полную суть информации ниже в функции, которую вы можете повторно использовать в своем коде. Но сначала обратите внимание, что я собираюсь быть агрессивным. Вам может понадобиться не все, что я собираюсь показать.
То есть код, который вы увидите, будет делать следующее:
- извлекает переменную для суперглобальной переменной $_POST,
- проверяет неверную кодировку,
- кодирует различные объекты, удаляет все теги, удаляет разрывы строк, табуляции, пробелы и многое другое,
- цитирует строку в кавычках,
- удаляет теги HTML и теги PHP из строки
Как я уже сказал, не все это может понадобиться, и есть другие способы справиться с некоторыми из них в зависимости от того, как вы хотите управлять своими данными (например, см. wp_kses ).
Однако бывают и другие случаи, когда у вас может быть страница настроек, которой вы хотите управлять, прежде чем агрессивно записывать данные в базу данных.
<?php
public function sanitize(string $data): string
{
return strip_tags(
stripslashes(
sanitize_text_field(
filter_input(INPUT_POST, $data))) );
}
В приведенном выше коде функция используется для передачи информации, найденной в суперглобальном массиве $_POST. Затем он агрессивно очищается с использованием описанной выше стратегии и возвращается настолько очищенным, насколько это возможно.
Как я уже сказал, это можно модифицировать, чтобы оно подходило для любого использования, которое вам нужно, но если вы ищете один из самых простых и агрессивных способов очистки ввода от пользователя, эта функция может оказаться полезной в ваших усилиях.

