Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. WordPress

Как определиться с разработкой фреймворка в WordPress

by
Difficulty:AdvancedLength:ShortLanguages:
This post is part of a series called How Theme Frameworks Actually Work.
How Theme Frameworks Actually Work
Creating the Starting Files for Your WordPress Theme Framework

Russian (Pусский) translation by Igor Podgarov (you can also view the original English article)

В первой части этой серии, Я описал как фреймворки работают и какие различные виды фреймворков существуют.

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

В этом руководстве, Я объясню определенные факторы которые необходимо учесть, в том числе, будет ли ваш фреймворк общедоступным или индивидуальным, или он будет использоваться не-разработчиками, и какие дополнительные методы вы хотите добавить.

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

Как ваш Фреймворк будет работать?

Способ, которым ваш фреймворк будет эксплуатироваться, будет зависеть от того что вы добавляете в него и как вы это структурируете.

Рассмотрим следующее:

  • Ваш фреймворк только для вас или для других разработчиков?
  • Ваш фреймворк будет эксплуатироваться разработчиками или пользователями без или с небольшими знаниями кода?
  • Ваш фреймворк будет для общих или индивидуальных целях?

Только для вас или для других?

Если ваш фреймворк только для вашего личного пользования, тогда достаточно только подумать о ваших собственных потребностях когда вы разрабатываете его; тем не менее, имеет смысл оставить его для будущих целей и сделать как можно надежнее, поэтому вам нужно:

  • использовать Стандарты программирования WordPress
  • принять принцип DRY (не повторяйся)
  • использовать код который можно утвердить с помощью W3C's validation checker. Вам также нужно сделать код доступным
  • добавляйте комментарии - даже если никто не будет смотреть на ваш код, вы будете удивлены, как легко забывается, что часть кода делает, когда вы возвращаетесь к нему, чтобы изменить, много месяцев спустя
  • используйте контроль версий для обновлений вашего фреймворка
Валидатор разметки W3C

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

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

Для Разработчиков или Пользователей?

Некоторые фреймворки нацелены на пользователей, которые могут настраивать его без знаний кода, в то время как другие нацелены на разработчиков, предоставляя хуки и функции которые они могут использовать для кастомизации и расширения фреймворка. Остальные подходят для обоих, с исчерпывающим пользовательским интерфейсом и API.

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

Если ваш фреймворк для обычных пользователей, вам нужно будет добавить:

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

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

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

Общий или Личный?

Если вы планируете сделать свой фреймворк общим, тогда нужно включить несколько дополнительных аспектов:

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

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

Что должен ваш фреймворк включать в себя?

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

Этот список будет включать в себя (но не следует ограничиваться) подборку из следующих вещей:

  • файлы шаблона (в том числе части шаблона и добавленные файлы)
  • Функции
  • хуки(action hooks и filter hooks)
  • области виджетов
  • меню
  • экраны параметров и опций
  • поддержку отладчика тем
  • документацию
  • дочерние темы

Для этого, определите:

  • что представляют из себя эти вещи
  • что они будут делать
  • где их код будет находиться

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

  • Будет ли ваш фреймворк иметь встроенную верстку, будет ли эта верстка настраиваемой или это будет программироваться с помощью дочерней темы?
  • Сколько из этого вы будете включать в свою родительскую тему? Некоторые фреймворки имеют весьма минимальные стили, в то время как остальные (такие как мой) разработаны используя Объектно Ориентированный CSS (OOCSS) для более простого создания стилей в дочерних темах.
  • Будет ли ваш фреймворк адаптивным или это будет создано в дочерних темах? Если ваша родительская тема адаптивна, вам нужно будет обеспечить то, что она не будет перезаписана другими стилями в дочерней теме, что является одной областью где использовать OOCSS очень удобно.
  • Добавите ли вы дополнительные SEO функции, сверх того, что предоставляет WordPress, или пользователи добавят их с помощью дополнительного плагина?
  • Добавите ли вы такие вещи как слайдеры, галереи, задний фон и т.д. в ваш фреймворк или добавите их через дочерние темы, если они включены?

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

Итог

Разработка собственного фреймворка является крупным делом. Это то что сохранит вам много часов от времени разработки, в долгосрочной перспективе, но которое занимает значительный объем работы, чтобы разобраться.

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

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.