Разработка WordPress: обход кода
Если вы до сих пор следили за этой серией, то вы, вероятно, заметили, насколько полезной может быть правильная отладка, особенно при работе с WordPress.
То есть вы можете не только получить ценную информацию о своих проектах, но и увидеть, как работает ядро WordPress.
Однако на данный момент мы мало что сделали. Как вы, возможно, помните из предыдущего поста (или, если вы еще не смотрели скринкаст, сейчас самое время это сделать), вы можете увидеть, как много предлагает отладка.
Правда в том, что мы едва поцарапали поверхность. Как я упоминал в прошлый раз, этот пост и этот скринкаст будут сосредоточены конкретно на следующем:
В следующем посте мы рассмотрим более продвинутые вещи, которые мы можем сделать, такие как пошаговое выполнение функций, выход из функций и обход функций.
Мы еще не на том этапе, когда будем беспокоиться об изменении значений переменных на лету, но мы определенно увидим, как мы можем стратегически использовать отладчик для перехода к определенным функциям, обхода определенных функций., и выйти из определенных функций.
Обходим код
Прежде чем поделиться скринкастом, я хочу определить, что значит обход кода в проекте. Это похоже на то, что мы делаем всякий раз, когда перемещаемся по кодовой базе.
Но это неверно в контексте отладки.
Помните, что для целей этой конкретной серии я использую последнюю версию WordPress от Subversion. Вы можете просмотреть, как настроить это, прочитав этот пост.
Слово о шагах
Прежде чем определить следующие термины, обратите внимание, что идея «этапа» при отладке аналогична пошаговому просмотру базы кода.
Как мы видели в предыдущем посте, выполнение программы остановится, как только будет достигнута точка останова. Оттуда результат того, как программа работает, остается за нами. И на этом фоне мы определим несколько терминов.
- Вход в функцию — это действие, которое, когда вы нажмете вызов функции, перенесет вас внутрь функции. Иногда это полезно, например, если вы хотите увидеть, что делает функция, или посмотреть, как устанавливаются значения; в других случаях в этом нет необходимости, если вы заботитесь только о выполнении функции или вас заботит только то, что она возвращает.
- Обход вызова функции позволит вам обойти выполнение функции в том смысле, что она все еще работает, мы просто не видим, как она на самом деле работает. Вместо этого управление перейдет к следующей строке после завершения выполнения функции.
- Выход из функции используется, когда вы вошли в функцию, достигли точки, в которой вы закончили оценку кода, а затем готовы вернуться к тому, что кодовая база собирается делать дальше. Это полезно, если вы хотите найти, где может лежать ошибка, и заподозрить ее в какой-то части кода (где она может быть, а может и не быть).
Вот и все. Если это совершенно новое, это может звучать странно или вам может быть трудно понять это. Если это так, то все в порядке. Вот как это происходит со всем новым, верно?
С другой стороны, если вы знаете эти термины или легко понимаете их определения, то рассмотрите предыдущие пункты как переподготовку.
А теперь скринкаст
В этом скринкасте я собираюсь выполнить все вышеперечисленные действия, используя один из моих собственных плагинов — Easier Excerpts. Однако это не означает, что это какой-либо тип саморекламы. Вместо этого я знаю кодовую базу, и мне не нужно беспокоиться о демонстрации работы, которая выполняется для кого-то другого.
Теперь, когда вы видели скринкаст и знаете, что это исключительно мой код, вы можете загрузить код и выполнить все те же действия самостоятельно, чтобы получить представление о том, как выполнять действия, описанные в этом посте.
Это обеспечит еще больше практики для ваших навыков отладки и должно облегчить дальнейшее совершенствование наших навыков отладки по мере того, как мы продвигаемся вперед в следующем посте.
Следующий
Это немного длинный пост, и я постарался убедиться, что все объяснения были даны перед просмотром скринкаста. В конце концов, гораздо проще прочитать абзацы текста о содержании, а затем увидеть его воспроизведение в коротком видео, чем смотреть 15-минутное видео, не так ли?
Как бы это ни было полезно, в этом есть еще кое-что. И это то, что мы рассмотрим в следующем посте. В частности, мы собираемся посмотреть, как проверять значения переменных, проверять, что содержит массив, а затем как мы можем изменять переменные на лету.
Это мощный материал, но убедитесь, что вы ознакомились с первым фрагментом контента, тщательно просмотрели этот пост и немного попрактиковались, прежде чем двигаться дальше.