Data Components - korobochkin/wp-kit GitHub Wiki
Data Components works with data. WP Kit включает в себя набор классов для Options (+ Settings), Transients and PostMeta. Все они схожи с друг другом, но имеют свои отличительные особенности обусловленные их дизайном и назначением.
- Getting, saving, deleting values
- Validation and Constraints
- Default values
- Data Transformers
- Abstract
- Components
Options, Transients and PostMeta это потрясающие части WordPress, которые дают разработчикам множество возможностей и позволяют хранить большое количество данных не прибегая к созданию новых таблиц в базе данных. Но работа с этими данными достаточно слабо организована и стандартизированна в WordPress. Сталкиваясь с ними при разработке, нередко код становится сложным и непонятным. WP Kit предоставляет дополнительные потрясающие возможности для работы с этими данными, чтобы сделать вашу работу удобнее, а продукты более надежными и дружелюбными для пользователей.
1. Проверка данных (sanitizing). Осуществлять проверки любых данных в WordPress непростая задача. Все что предоставляет нам ядро WordPress это функция is_email()
. WP Kit стандартизирует валидацию данных, генерацию и вывод ошибок. 40+ валидаторов для любых типов данных уже готовы к использованию.
👉 Validation and Constraints
2. Значения по умолчанию. Каждая настройка должна иметь значение по умолчанию. В WordPress вы каждый раз должны указывать значение по умолчанию в десятках мест в своем коде.
👉 Default values
3. Типы данных. После сохранения boolean
и integer
преобразуются в string
. Это обусловлено дизайном базы данных, но при работе ужасно неудобно.
👉 Data Transformers
4. Системность и порядок. Как часто вы видели плагины, которые удаляют за собой все настройки? Это сложно сделать, потому что использование options и других данных разбросано в десятках мест в коде. Нужно постоянно вспоминать, как назывался ключ, для получения данных и писать их вручную — это неудобно.
Options и Settings предназначены для работы с опциями, доступ к которым обычно осуществляется с помощью функций update_option()
, get_option()
и delete_option()
.
Settings
работают в связи с Options
и предназначены для связки Options
с WordPress Settings API. По факту они дают возможность дополнительно задать option group, что делает работу с Options
еще удобнее если вы позволяете изменять их на страницах настроек вашего плагина.
Transients в отличие от Options
работают с транзиентами. Их отличительная особенность от Options
в том, что они имеют время экспирации. Вы могли сталкиваться с временем экспирации при вызове функции update_transient(mixed $value, int $expiration)
. Здесь помимо самого значения мы привыкли передавать время экспирации в качестве второго аргумента. Похожая механика может быть использована и при работе с объектами Transients
.
PostMetas
созданы для работы с дополнительной информацией постов. В отличие от Options
и Transients
, где для сохранения или получения значения достаточно указать название (имя), в PostMeta
необходимо дополнительно задать ID поста, с которым вы работаете.
TermMetas
созданы для хранения дополнительной информации о ваших категориях и тегах. Также как и PostMetas требуют указания ID вашего term object. Работают в WordPress 4.4 и выше (потому что WordPress добавил этот тип данных лишь в этой версии).