✅ Новости WEB и WordPress, темы, плагины. Здесь мы делимся советами и лучшими решениями для веб-сайтов.

Организация экранов настроек WordPress

12

Поскольку многие из нас продолжают продвигаться вперед с PHP7+, мы можем продолжать использовать множество новых функций, которые предлагает язык.

Организация экранов настроек WordPress

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

Организация экранов настроек WordPress

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

Однако в этом посте я хочу поговорить о способе организации экранов настроек WordPress как из логической — то есть их местоположения в файловой системе — так и из виртуальной — то есть их пространств имен — организационных структур.

Организация экранов настроек WordPress

Первое, что я хочу сделать, это следующее: хотя я говорю об организации экранов настроек WordPress, я ничего не говорю об API. Вместо этого предположим, что в этом посте я говорю о следующем:

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

Я не буду говорить о процессе очистки, сериализации, извлечения, проверки и отображения. Это чисто организационно.

Продумывая процесс

Учитывая, что мы собираемся организовывать наши файлы через каталоги, которые также сопоставляются 1:1 с пространствами имен, давайте продумаем, что именно нам нужно. Я подхожу к этому так:

  1. Мы создаем что-то специально для контекстного приложения WordPress. Это указывает на пространство имен.
  2. Мы собираемся создать административное меню, что означает, что мы оба работаем в области администрирования WordPress, то есть в другом пространстве имен, и с меню, которое является другим пространством имен.
  3. Далее нам нужны файлы для отображения стандартного экрана для WordPress, поэтому нам понадобится пространство имен Views,
  4. Затем нам понадобится доменно-зависимый код, чтобы попасть в представление, поэтому в конечном итоге нам потребуется каталог Partials (и, следовательно, пространство имен).

Таким образом, окончательная логическая организация данных будет выглядеть примерно так:

Организация экранов настроек WordPress

Возможно, самое важное, что следует отметить в отношении этой конкретной организации файлов, это то, что класс AdminMenu является базовым классом, от которого могут наследоваться все конкретные (или более конкретные) классы.

Это означает, что класс AcmeAdminMenu наследует от него определенные свойства и функции, а затем реализует его логику или также добавляет свою логику.

Пространство имен каждого файла

Когда вы организуете свои файлы таким образом, пространства имен становятся почти самоочевидными, не так ли? Вот пространство имен для каждого из файлов:

  • WordPressAdminMenuAdminMenu
  • WordPressAdminMenuAcmeAdminMenu
  • WordPressAdminMenuViewsSettings
  • WordPressAdminMenuViewsSettingsPartials

Обратите внимание, что поскольку файл acme-settings.php технически представляет собой просто разметку для параметров рендеринга, он не обязательно должен иметь пространство имен, потому что он включен в представление, которое его рендерит.

В любом случае, если вы предпочитаете держать вещи как можно более организованными, имеет смысл вкладывать партиал только в каталог с таким именем.

Что насчет кода?

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

Опять же, если это поможет вам выбрать правильное направление для текущего или будущего проекта, то этого может быть достаточно.

Так почему бы не сообщить мне через Твиттер ваши мысли, и я пойду оттуда. Если вам нравится видеть какой-то код, круто; в противном случае не беспокойтесь. Этого поста будет достаточно.

Источник записи: tommcfarlin.com

Этот веб-сайт использует файлы cookie для улучшения вашего опыта. Мы предполагаем, что вы согласны с этим, но вы можете отказаться, если хотите. Принимаю Подробнее