Press This: Загадка обратной совместимости с WP-CLI с участием Алена Шлессера

Опубликовано: 2022-05-17

Добро пожаловать в Press This, подкаст сообщества WordPress от WMR. Здесь ведущий Дэвид Фогельполь беседует с гостями со всего сообщества о самых серьезных проблемах, с которыми сталкиваются разработчики WordPress. Ниже приводится транскрипция оригинальной записи.

Работает на RedCircle

Дэвид Фогельполь: Всем привет и добро пожаловать на подкасты Press This, подкасты сообщества WordPress на WMR. Это ваш ведущий, Дэвид Фогельполь, я поддерживаю сообщество WordPress благодаря своей роли в WP Engine, и мне нравится делиться с вами лучшими из сообщества, которые вы слышите каждую неделю в прессе. Это как напоминание, вы можете найти меня в Твиттере @wpdavidv , или вы можете подписаться на это в iTunes, iHeartRadio, Spotify или загрузить последние выпуски на wmr.fm. В этом выпуске мы поговорим о коннекторе обратной совместимости с WP CLI. К этому разговору к нам присоединился человек, который немного знаком с WP CLI. Мы, участники WP CLI для XMPP, приветствуем Алена Шлессера. Ален, добро пожаловать в Press This.

Ален Шлессер: Дэвид. Привет. Здорово быть здесь.

ДВ: Так рад, что вы есть. Это как минимум ваш второй раз на этом шоу. Мы задавали вам вопросы о WP CLI на протяжении многих лет, и мне очень нравится, что вы с нами. Для тех, кто слушает. WP CLI является важной частью экосистемы WordPress, особенно в отношении автоматизации, рабочих процессов и других аспектов сборки WordPress, и сегодня мы собираемся рассказать о том, что было достигнуто с помощью ИИ BPCL за последний год. Какие изменения обратной совместимости ждут нас впереди. Вы знаете, что обратная совместимость является огромной частью преимущества WordPress, но также и проблемой разработчиков программного обеспечения и, конечно же, тем, как эти проблемы решаются, и львиная доля того, как вы можете внести свой вклад в WP CLI ближе к концу. Так что я очень жду интервью. Итак, я задам вам тот же вопрос, который я задаю каждому гостю, и я задавал вам этот вопрос раньше, но я хочу, чтобы вы повторили его, если можете. Не могли бы вы рассказать мне о своей истории происхождения WordPress? Когда вы впервые использовали WordPress?

АШ: Хм, да, так что моя история происхождения, как и большинство историй WordPress, начинается с небольшого обходного пути. Я работал правительственным агентом в Люксембурге. И в какой-то момент я действительно устал от политики во всем. Я хотел сделать что-то еще со своей жизнью и попробовать другую карьеру. И я решил заняться разработкой на фрилансе, потому что я уже занимался разработкой раньше, но никогда не делал этого как фрилансер. И когда пришло время действительно решить, на чем сосредоточиться, я просто посмотрел на то, что было и что имело наибольшую долю рынка в то время. Как мы все знаем, это был WordPress. И я только начал с разработки WordPress, потому что подумал, что будет проще всего получить клиентов в качестве нового фрилансера, начинающего с нуля.

ДВ: Я выбрал WordPress в качестве предпочтительной платформы по той же причине, по которой я помню отличное сотрудничество между Drupal и WordPress, и я думаю, что в то время Drupal был правильным выбором, но это было не то, что люди называли такими вещами, как О, но это был 2010 год, вы знаете, прямо на пороге пользовательских типов сообщений и мета-полей. И мне просто интересно, когда вы принимали это решение, в каком году примерно слушатели

АШ: гм, это был 2014 год или 2014 год, и я думаю, что WordPress был примерно версии 332 или что-то в этом роде. Я не уверен, если честно.

ДВ: Итак, для вас, как для внештатного разработчика, преимущества настраиваемых почтовых сайтов уже были реализованы. Итак, вы вошли в эту экосистему и увидели эти возможности. Однако до WP CLI оставалось еще два года. Так что я предполагаю, что это не полностью ответило на все, что вам нужно как разработчику, но здорово видеть, что вы сейчас управляете этим проектом. Теперь поймите, что вы работаете с XMPP. И мы расскажем мне, что делает XMPP и что вы там делаете.

А.С .: So X Delta P — это агентство, специализирующееся на высокопроизводительных проектах WordPress корпоративного уровня. Основное внимание уделяется производительности, но не только с точки зрения скорости загрузки сайта, но и того, насколько хорошо он соответствует вашему бизнесу. Я работаю с XWP примерно два с половиной года. И в течение этого времени я работал над плагином amfa для WordPress, а затем вместе работал над страницей для плагина WordPress.

ДВ: они звучат как MIDI-проекты. Я определенно знаком с ними, но не для WordPress, я еще не играл на странице, и я знаю, что вы знаете XMPP, у нас было несколько человек из XMPP на самом деле в прессе. Они делают действительно крутые проекты. Похоже, вам предстоит поработать над одними из самых крутых. И это потрясающе. Относительно нашей темы для шоу, сегодня, WP CLI с высокого уровня, предполагая, что будут некоторые слушатели, которые понятия не имеют, что такое WP CLI. Мне было интересно, не могли бы вы сформулировать это, чтобы они могли понять, что такое WP CLI является.

АС: Да, конечно. Таким образом, WordPress имеет свою административную часть, где вы выполняете все обслуживание сайта, вносите изменения и настраиваете параметры. А WP CLI — это другой интерфейс для управления вашим сайтом WordPress. Это интерфейс, который вы можете использовать из командной строки. Итак, вы вводите команды в текстовом виде, чтобы управлять своим сайтом. Это позволяет вам делать все, что делает серверная часть администратора, и даже больше. И с помощью командной строки, которая оказывается гораздо более выразительным интерфейсом, чем панель администратора, вы можете решить множество проблем, которые очень специфичны для ваших случаев использования, когда в панели администратора нет предварительно созданного элемента пользовательского интерфейса. конец. Вы можете просто смешивать и сочетать команды WP CLI, чтобы решать эти проблемы где угодно. И затем, как шаг вперед, все, что вы можете сделать с WP CLI, вы также можете поместить в скрипт и, в конечном итоге, так что вы можете автоматизировать все свои процессы управления и даже выполнять их удаленно. Таким образом, переход к текстовому интерфейсу дает много возможностей, и WP CLI позволяет вам сделать это с WordPress.

ДВ: Вау, это было действительно элегантно. Я думаю, у вас есть еще одна карьера в маркетинге. Это был очень хороший способ кадрирования VCI, и не забудьте его описать, хотя он очень хорош. Итак, на мой взгляд, и у меня есть небольшая шпаргалка для временной шкалы ключевых моментов в истории WordPress, которую я использую, когда слышу истории происхождения людей, чтобы спросить их о том, когда они вошли и что происходило в время. И WP CLI на самом деле является одним из ключевых моментов в истории WordPress, на который я здесь обращаю внимание. Еще в 2016 году в представлении временной шкалы я сохраняю его, поэтому я думаю, что это очень важно. И я знаю, что вы знаете, что есть толчок к тому, чтобы выпускать все больше и больше функций и возможностей, но мне просто любопытно относительно, например, сказать, что последняя партия выпусков связана с функциями или рефакторингом или чем-то еще, что вас больше всего взволновало в последних выпусках. ?

АШ: Одна очень захватывающая функция — это добавление глобальных контекстов, которые у нас есть, поскольку с тех пор, как был создан YouTube, всегда обсуждался контекст, в котором должен выполняться инструмент, должен ли он выполняться как внешний процесс, административный процесс или что-то в этом роде. между. И все подходы всегда сопровождались собственным набором проблем. Так что никогда не было действительно чистого решения. И то, как CLI выполняется по умолчанию, представляет собой странную смесь, которая не является ни административным, ни интерфейсным процессом. По историческим причинам, но это означает, что некоторые процессы, проверяющие, например, является ли текущий запрос запросом администратора, затем автоматически завершатся ошибкой. Это чаще всего происходит с премиальными плагинами и темами, когда вы запускаете обновления. Поэтому обычно вы увидите те обновления, которые они работают, в админке. Но с WP CLI администраторы не видят обновлений или работают не так, как ожидалось. Это связано с тем, что пользовательская логика, которая управляет этими обновлениями для каждого плагина, проверяет процесс администрирования, чтобы, конечно, не замедлять внешний интерфейс, и автоматически запускает WP CLI. Итак, теперь с этим новым флагом контекста мы можем выбрать контекст, в котором будем работать, и это позволит вам переключить контекст в контекст администратора. Например, когда вы обновляете плагин, а затем внезапно все премиум-интеграции работают так, как и ожидалось. Это очень интересно. Извините, это не очень захватывающая новая функция. Он был создан в сотрудничестве с Cloudways, и в настоящее время мы тестируем его на этапе, когда он не включен по умолчанию. Поэтому вам нужно вручную настроить это автоматическое предоставление по умолчанию в следующей итерации.

ДВ: Отлично, отлично. Я понимаю, почему вы были бы взволнованы этим. И я думаю, что это действительно умно, что вы подумали: «Хорошо, будет интерфейс или администратор, но на самом деле, предоставляя разработчику выбор, вы даете возможность решать или, по крайней мере, разработчику решать». для нескольких вариантов использования одновременно. Я понимаю, почему вы были бы взволнованы этим. особенно думая об этом случае использования героя и невозможности отображать обновления для премиальных плагинов. Это довольно распространенный вариант использования. И представьте, что многие другие каскадом вытекают из этого. Однако у меня есть некоторые вопросы, вроде того, как, знаете ли, что-то вроде взлома дорожной карты и размышлений о соображениях обратной совместимости. Но мы собираемся сделать наш первый перерыв. Мы сейчас вернемся. Пора включить рекламную паузу. Оставайтесь с нами, чтобы узнать больше об этом через мгновение. Добро пожаловать обратно, чтобы опубликовать этот подкаст сообщества WordPress, который я даю Омару, вашему ведущему Дэвиду Фогелю. Павел. Я сейчас беру интервью у арендодателя о WP CLI и некоторых коннекторах обратной совместимости. В одиночку прямо перед перерывом вы рассказывали о своей любимой функции, или недавно о WP CLI, который был глобальным контекстом, переключающим флаг для того, будет ли это внешний интерфейс или процесс администрирования. И я подумал, что это было очень умно. Все, что вы хотели добавить к этому, прежде чем я перейду к плану будущего и обратной совместимости.

А.С.: Да, я хотел добавить, что очень жду этого, потому что это, вероятно, один из самых частых запросов в службу поддержки, которые получает WP CLI. Почему обновления работают в WP CLI, когда они работают в корзине администратора?

ДВ: Да, эта штука с репозиторием плагинов премиум-класса поднимает голову и много разных мест, которые я нахожу в WordPress, но да, я вижу, где это является основной возможностью, когда люди такие: «Почему, черт возьми, это не делает этого». ? Это так просто для WordPress. Это восхитительно. Когда вы думаете о будущем WP CLI, я хочу, чтобы я хотел представить соображения обратной совместимости через секунду, но что нам нравится, две или три основные функции, которые вас интересуют в будущем.

А.С.: Итак, я давно планировал полностью пересмотреть структуру WP CLI. Команда scaffolding — это команда, которая использует шаблоны, чтобы вы могли генерировать код, например, генерировать пустую тему, генерировать пустой плагин. И я хотел завершить Суперкубок, чтобы он был не столько инструментом для начала работы, сколько постоянной помощью в разработке, как в пространстве Laravel с командой autism, где каждая концепция, используемая в разработке WordPress, будет иметь свою собственную команду для создать каноническую версию. И это не только резко ускорит разработку, но и станет отличным инструментом обучения и поможет сформировать общее качество в пространстве WordPress.

ДВ: Это звучит очень хорошо, и я также могу представить, где обратная совместимость может играть роль трения. Существуют ли какие-либо другие функции, подобные дорожной карте? Это было довольно хорошо. Любое другое Хотите добавить?

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

ДВ: Еще один хороший. Итак, у вас есть два пикантных пункта дорожной карты. Я уверен, что не только это, конечно, это то, что вы думаете о будущем, и другие участники думают о будущем. Но очевидно, что обратная совместимость имеет большое значение в WordPress. Итак, какие соображения беспокоят вас, когда вы думаете о своей способности выполнить эту дорожную карту?

А.С.: Да, WP CLI так работает, его внутренняя работа напрямую связана с политикой обратной совместимости ядра WordPress. Прямо сейчас WordPress Core по-прежнему поддерживает как минимум PHP 5.6, WP CLI также поддерживает. И есть политика для WP CLI, что какой бы ни был минимум WordPress, всякий раз, когда он меняется. WP CLI отложит это изменение как минимум на год, чтобы дать всем возможность использовать WP CLI для миграции со старых сайтов. На новые сайты. И поскольку WP CLI обычно является инструментом, который используется для миграции со старых сайтов, он все еще должен работать над экспортом. Таким образом, WP CLI никогда не сможет стать лидером в поддержке новых версий PHP и тому подобного. Потому что тогда не получится выполнить свою основную задачу — получить доступ к старым сайтам и позволить поставить их на переезд. Так что в этом отношении действительно сложно выполнять разработку в WP CLI таким образом, чтобы код оставался свежим и удобным для сопровождения, но при этом придерживался этого очень низкого минимального требования PHP с ядром WordPress, что вызывает все больше и больше проблем.

ДВ: когда они будут или вы знаете, когда ядро ​​повысит минимальную версию 5.6. Затем у вас есть AB, это потому, что 5.6 - это довольно много прошлых версий, и трудно поддерживать это так далеко, есть ли у вас бусинка, когда более поздние версии были бы минимумом?

А.С.: Честно говоря, я не могу сказать, что вложил много труда в проект sub happy, где у меня есть много механизмов, позволяющих сделать код WordPress технически возможным для быстрого перехода к более новым версиям PHP. На данный момент все технические предпосылки выполнены. там. Это просто вопрос принятия решения. И я не могу сказать, когда это произойдет. Потому что это было запланировано уже довольно давно, но пока ничего еще не произошло.

ДВ: И так с того момента, как это произойдет, хотя у вас есть год после этого, когда WP CLI сможет поднять минимальную поддерживаемую версию PHP. Есть ли другие части стека программного обеспечения или языки или что-то еще, что также отягощает вас, когда вы думаете о своей способности выполнить дорожную карту, или это в основном PHP?

AS: это с точки зрения обратной совместимости? В основном это php. Интерфейс командной строки WP построен на PHP, корнишоне и сценариях оболочки. Таким образом, корнишон — это язык тестирования, который на самом деле не является проблемой, а сценарии оболочки не менялись в течение 20 лет. Не думаю, что в ближайшее время будут проблемы.

ДВ: Каково влияние, например, поддерживать совместимость программного обеспечения с очень старыми версиями PHP сложно, но, пожалуйста, помогите мне понять, как это сложно? На какие компромиссы вы должны пойти из-за того, что придерживаетесь поддержки 5.6

АШ: Поддержка пять на шесть сама по себе не такая уж большая проблема. Это всего лишь одна из версий языка, и это был еще более уродливый язык. В то время, но все еще очень полезный. Проблема в том, что вы также хотите иметь возможность работать на новейшей версии PHP. Так что вам нужно охватить весь спектр. И пока мы не поднимаем минимальную версию, мы просто добавляем все больше и больше версий, которые вам нужно поддерживать, и с PHP, но теперь ритм таков, что каждый год выходит новая основная версия, поэтому они звонят Это второстепенные версии, но с точки зрения возможностей они являются основными версиями, а последние несколько выпусков претерпели более крупные и радикальные изменения в языке. И сейчас очень сложно строить более низкоуровневые, более низкоуровневые постройки таким образом, чтобы они работали и на пяти, и на шести, и на восьми, и на двоих одновременно, и со временем это будет только ухудшаться. И что еще добавляет к этому, так это то, что инструменты, которые вам нужны для работы в PHP, вам нужно запускать модульные тесты, вам нужно запускать функциональные тесты и так далее и тому подобное. Все эти инструменты, они придерживаются ритма PHP для чего-то с модулем PHP. Например, сейчас очень сложно написать свои тесты таким образом, чтобы сами тесты работали во всех версиях модуля PHP. Вам нужно использовать для покрытия всех этих версий PHP.

ДВ: Хорошо , так что это вес всех этих множественных когорт, если хотите, типов PHP, единиц TA, и тогда я предполагаю, что вы также, вероятно, боретесь с тем, что знаете, как вы используете функции в разных версиях как новые функции. становятся доступными и устаревают. И похоже, что сбор всей этой дополнительной работы — это разногласия, которые снижают вашу способность предоставлять новые функции. Это звучит справедливо?

А.С.: Да, гм, PHP становится все более и более строгим. Итак, где раньше, когда вам нужно было сопоставить несколько версий PHP, вы могли просто сделать свой код неопределенным, чтобы он не сталкивался ни с одной из проблем той или иной версии. Сейчас это становится все труднее и труднее, потому что HP выдает множество уведомлений, предупреждений и проблем с устареванием для большинства. К настоящему моменту мельчайшие детали, и иногда это означает, что вы создаете функцию, которую вам нужно запустить несколько раз, и у вас есть механизм для извлечения правильной версии этой функции, в зависимости от того, какую версию PHP вы ее запускаете, какой экспоненциальное увеличение усилий по обслуживанию всего.

ДВ: Да, в этом есть смысл. Хорошо, хорошо, я хочу начать немного исследовать, знаете ли, как вы его одеваете и, может быть, даже ваши мысли о том, как WordPress в целом может быть лучше, и, вы знаете, одеть обратную совместимость, но мы' Мы собираемся сделать наш последний перерыв, и мы скоро вернемся. Пора включить рекламную паузу. Оставайтесь с нами, чтобы узнать больше об этом через мгновение. Что ж, добро пожаловать обратно, чтобы поделиться подкастами сообщества WordPress на W EMR. Мы как раз разговариваем с арендодателем запуска о загадке обратной возможности обитаемости с WP CLI. Я должен был выбрать менее язык скороговорки название для этого шоу. Но вот мы здесь. Длинная хорошая книга. Да, как это, я должен сказать три раза быстро, прежде чем это закончится. Но ладно, перед перерывом вы говорили об этой экспоненциальной проблеме обслуживания, когда вы начинаете иметь дело с несколькими версиями PHP, и я не знаю, заставляет ли это вас чувствовать себя лучше в одиночку, но, как и 100% движков WP. клиенты используют патчи в современных версиях PHP, мы навязали эти обновления, но, очевидно, не все это делают. Верно? Не каждый хост не каждый, кто размещает веб-сайт, делает это, и поэтому это создает только несколько отложенных и устаревших, программных версий PHP или даже плагинов WordPress. Итак, эта природа WordPress, которую вы знаете, в этой идее обратной совместимости является частью WordPress, сила в его популярности имеет значение, если я настрою ее самостоятельно. WP CLI должен отставать, потому что он выполняет работу для людей, которым необходимо обновление. И это хорошо, не так ли? Это хорошая часть этой динамики. Но мне просто интересно, что вы думаете о том, как WP CLI или WordPress в целом могли бы улучшить сохранение этих хороших частей и, возможно, избежать большего количества плохих частей, таких как экспоненциальные требования к обслуживанию обратной совместимости. Что вы думаете об этом крупном письме?

А.С.: Да, я думаю, что сейчас мы находимся в той точке, когда WordPress оказывает своей пользовательской базе медвежью услугу, придерживаясь того крайнего подхода к обратной совместимости, который он сейчас использует в отношении PHP, потому что все признаки, кажется, указывают на этот факт. что мы постепенно войдем в фазу, когда мы больше не сможем поддерживать работу WordPress на последних версиях PHP, что является реальной проблемой. И нам потребуется много времени, чтобы поработать над совместимостью, потому что в настоящее время в PHP происходит гораздо больше изменений. И единственный способ решить эту проблему - иметь непрерывный подход к адаптации к циклу PHP, он может отставать от PHP, но он не может иметь более низкую скорость, чем PHP, что только усугубит проблему. Поэтому он должен соответствовать скорости PHP, даже если он не отстает от него на все два года. И затем нам нужно убедиться, что мы можем поддерживать все инструменты, тестирование, инструменты и т. д. в актуальном состоянии, чтобы мы всегда могли работать над поддержкой последней версии PHP, потому что, как это выглядит прямо сейчас , PHP 9, вероятно, будет первой версией, так как теперь кажется, что WordPress невозможно будет адаптировать, если мы не изменим подход. Надеюсь, хорошо, да.

ДВ: Я хотел сказать, что эта экспоненциальная проблема, с которой вы имеете дело в WP CLI, является своего рода усугублением, если хотите, во всем WordPress, и она как бы поднимает голову, если хотите, с такими проблемами, как вы упомянули для PHP девять. И поэтому это имеет смысл с точки зрения этого, такая сила, которая заставляет WordPress улучшать обслуживание, соответствует этой скорости, поэтому они не слишком сильно отстают от сервисов и слишком сильно отстают в версиях PHP. За последние пару минут я знаю, что есть много проблем с обратной совместимостью. Я знаю, что вы предоставляете отличные функции, и вы хотите предоставить больше. И, как я видел наплыв участников в Gutenberg, и мне просто кажется, что я не стал бы оказывать услугу, если бы мы не проявили немного любви к WP CLI в этом подкасте для участников. Как люди могут внести свой вклад в WP CLI, чтобы помочь сохранить эту действительно важную часть WordPress живой и активной?

АШ: Итак, прежде всего, у нас есть основная команда wordpress.org Slack. У нас есть канал CLI. Так что вы можете просто зайти на этот канал, поздороваться и задать вопросы. И если вы хотите начать, всегда найдутся люди, которые будут рады помочь вам в работе над вкладами WP CLI. Также есть веб-сайт make wordpress.org/cli, который является отправной точкой для всей документации и ссылок на хорошие первые выпуски и так далее и тому подобное. И тогда в идеале вы присоединились бы к одному из дней участников веб-камеры, которые сейчас снова происходят. Я очень рад этому. Потому что в эти дни участников люди действительно могут помочь вам настроить вашу собственную машину для правильной локальной разработки. Это остановит работу, потому что иногда онбординг — самое сложное препятствие, которое люди должны установить.

ДВ: Да, я могу это подтвердить. Несколько друзей, которые внесли свой вклад, и то, что они преодолели. Я знаю, что есть довольно много людей, у которых есть небольшие курсы и инструкции, и, конечно, сделать так, чтобы в WordPress тоже было что-то подобное с точки зрения документации, но это действительно хороший момент, и дни участников помогают с этим аспектом этого. Мне также понравилось, как вы призвали присоединиться к каналу Slack. Это напоминает мне о том, как Майк Лидделл был связан с WordPress, отвечая на то, что я комментирую в блогах Mac Mullenweg, но это понятие участия в социальном контексте ведет к чему-то большему. Ну, это было очень круто. Спасибо, что присоединились к нам сегодня.

АШ: Спасибо, что пригласили меня.

ДВ: Так рад, что ты здесь. Если вы хотите узнать больше о том, что делает Алон, это тоже. Пожалуйста, посетите make wordpress.org и найдите сайт WP CLI или найдите его в slack wordpress.org и на канале WP CLI. Спасибо всем за внимание к этому подкасту сообщества WordPress на WMR. Опять же, это был ваш ведущий Дэвид Фогельпол. Я поддерживаю сообщество WordPress через свою роль в WP Engine. И я люблю приносить вам лучшее из сообщества каждую неделю на Press This.