Как быть с большими сайтами на Word press
-
Upload
vovasik -
Category
Presentations & Public Speaking
-
view
207 -
download
2
Transcript of Как быть с большими сайтами на Word press
![Page 1: Как быть с большими сайтами на Word press](https://reader031.fdocument.pub/reader031/viewer/2022021919/5872bb071a28ab523c8b795d/html5/thumbnails/1.jpg)
Как быть с большими сайтами на
WordPress
Petrozavodsky
Интернет журнал BroDude
![Page 2: Как быть с большими сайтами на Word press](https://reader031.fdocument.pub/reader031/viewer/2022021919/5872bb071a28ab523c8b795d/html5/thumbnails/2.jpg)
Владимир
Twitter @petrozavodsky
https://alkoweb.ru
Руководитель отдела разработки BroDude
![Page 3: Как быть с большими сайтами на Word press](https://reader031.fdocument.pub/reader031/viewer/2022021919/5872bb071a28ab523c8b795d/html5/thumbnails/3.jpg)
WordPress не религия !
Это всего лишь CMS
![Page 5: Как быть с большими сайтами на Word press](https://reader031.fdocument.pub/reader031/viewer/2022021919/5872bb071a28ab523c8b795d/html5/thumbnails/5.jpg)
И это только РоссияВ мире популярность WordPressтрадиционно выше
![Page 6: Как быть с большими сайтами на Word press](https://reader031.fdocument.pub/reader031/viewer/2022021919/5872bb071a28ab523c8b795d/html5/thumbnails/6.jpg)
Достаточно графика
P.S. Drupal красный, остальные популярные CMS тоже есть на этом графике.
https://goo.gl/CH8sZY
![Page 7: Как быть с большими сайтами на Word press](https://reader031.fdocument.pub/reader031/viewer/2022021919/5872bb071a28ab523c8b795d/html5/thumbnails/7.jpg)
Большой ли у меняСайт ?
![Page 8: Как быть с большими сайтами на Word press](https://reader031.fdocument.pub/reader031/viewer/2022021919/5872bb071a28ab523c8b795d/html5/thumbnails/8.jpg)
Высокая посещаемость с чего начать ?
![Page 9: Как быть с большими сайтами на Word press](https://reader031.fdocument.pub/reader031/viewer/2022021919/5872bb071a28ab523c8b795d/html5/thumbnails/9.jpg)
Этот путь пройден до нас1. Nginx + php5-fpm.2. Object cache, memcached.3. wordpress pages cache4. Многосерверные и распределённые архитектуры
![Page 10: Как быть с большими сайтами на Word press](https://reader031.fdocument.pub/reader031/viewer/2022021919/5872bb071a28ab523c8b795d/html5/thumbnails/10.jpg)
Оптимизировать код
1. autoload в add_option()2. orderby => rand в SQL3. режимы wp-cron4. wp_remote_get , curl запросы
![Page 11: Как быть с большими сайтами на Word press](https://reader031.fdocument.pub/reader031/viewer/2022021919/5872bb071a28ab523c8b795d/html5/thumbnails/11.jpg)
В чем интрига доклада???
![Page 12: Как быть с большими сайтами на Word press](https://reader031.fdocument.pub/reader031/viewer/2022021919/5872bb071a28ab523c8b795d/html5/thumbnails/12.jpg)
Большой или
посещаемый ?
![Page 13: Как быть с большими сайтами на Word press](https://reader031.fdocument.pub/reader031/viewer/2022021919/5872bb071a28ab523c8b795d/html5/thumbnails/13.jpg)
Поддержка больших сайтов
Проблемы:
- Баги;- Отсутствие обновлений;- Legacy code; - Уязвимости.
![Page 14: Как быть с большими сайтами на Word press](https://reader031.fdocument.pub/reader031/viewer/2022021919/5872bb071a28ab523c8b795d/html5/thumbnails/14.jpg)
Безопасный деплоймент
![Page 15: Как быть с большими сайтами на Word press](https://reader031.fdocument.pub/reader031/viewer/2022021919/5872bb071a28ab523c8b795d/html5/thumbnails/15.jpg)
Откажитесь от FTPПочему ?
- Открытый трафик, снифферы, перехват пароля по сети
- Кража паролей из FTP клиента- Забытые пароли- Медленная скорость - Проблемы с параллельной правкой - Ошибки в продакшене
![Page 16: Как быть с большими сайтами на Word press](https://reader031.fdocument.pub/reader031/viewer/2022021919/5872bb071a28ab523c8b795d/html5/thumbnails/16.jpg)
На этом о деплое всё!
![Page 17: Как быть с большими сайтами на Word press](https://reader031.fdocument.pub/reader031/viewer/2022021919/5872bb071a28ab523c8b795d/html5/thumbnails/17.jpg)
WP-CLI
- php в bash - обработка больших данных - автоматизация - лёгкая разработка с WP-CLI
http://wp-cli.org/
Аналог drush в Drupal
![Page 18: Как быть с большими сайтами на Word press](https://reader031.fdocument.pub/reader031/viewer/2022021919/5872bb071a28ab523c8b795d/html5/thumbnails/18.jpg)
Переписываем частями● Шаблон, (в 90% случаев это необходимо). ● Самописные и «хакнутые» плагины.● Делаем так, чтобы обновления до последней версии не ломали сайт.● Тестируем на копии сайта с реальными данными. ● Обновляем, «вендорные» плагины, шаблоны до последней версии.● Сравниваем код ядра с соответствующей версией из архива релизов
https://ru.wordpress.org/releases/ если различий нет, то обновляемся до последней версии; если есть, убираем «хаки» из кода ядра и обновляемся до актуальной версии.
![Page 19: Как быть с большими сайтами на Word press](https://reader031.fdocument.pub/reader031/viewer/2022021919/5872bb071a28ab523c8b795d/html5/thumbnails/19.jpg)
Объектно-ориентированное программирование
- инкапсуляция; - переиспользование;- скорость разработки выше;- безопасность.
![Page 20: Как быть с большими сайтами на Word press](https://reader031.fdocument.pub/reader031/viewer/2022021919/5872bb071a28ab523c8b795d/html5/thumbnails/20.jpg)
ПлагиныОчень просто начать писать плагины
Можно уложиться менее чем в 20 строк
![Page 21: Как быть с большими сайтами на Word press](https://reader031.fdocument.pub/reader031/viewer/2022021919/5872bb071a28ab523c8b795d/html5/thumbnails/21.jpg)
Структура проектатакже простая, может состоять из одного файла
![Page 22: Как быть с большими сайтами на Word press](https://reader031.fdocument.pub/reader031/viewer/2022021919/5872bb071a28ab523c8b795d/html5/thumbnails/22.jpg)
Почему нужно писать именно так?Проблема именования функций Область видимости класса позволяет
решить проблему, инкапсулируя код.
Инициализация кода в момент хука plugins_loaded
Почти весь любой функционал можно реализовать в момент этого хука либо позже.
ООП наследование, переиспользование и т.д.
Писать в объектно-ориентированном стиле приятно и легко.
Одинаковая структура проектов делает возможной оптимизацию
Стандартная структура плагинов облегчает обслуживание, деплой, сборку ресурсов и т.д.
Повышается скорость разработки Факт :)
![Page 23: Как быть с большими сайтами на Word press](https://reader031.fdocument.pub/reader031/viewer/2022021919/5872bb071a28ab523c8b795d/html5/thumbnails/23.jpg)
mu-plugins- Находятся в ~/wp-content/mu-plugins / ;
- Хорошее место для сниппетов, которые в google предлагают вставить в
functions.php акивного шаблона ;
- Плагины, помещенные в этом каталоге, невозможно выключить из админ.
панели, также как и включить;
- Позволяют легко и надёжно отредактировать функционал ядра.
P.S. плагины вызываются в алфавитном порядке, в зависимости от имени файла, это может вызвать проблемы, но только в том случае, если не используете для инициализации события хуков и фильтры.
![Page 24: Как быть с большими сайтами на Word press](https://reader031.fdocument.pub/reader031/viewer/2022021919/5872bb071a28ab523c8b795d/html5/thumbnails/24.jpg)
Зачем нужно писать плагины ?
1. Модульность.2. Переиспользование в других проектах.3. Разработка мелкими релизами.4. Легко организоваь работу команды.
![Page 25: Как быть с большими сайтами на Word press](https://reader031.fdocument.pub/reader031/viewer/2022021919/5872bb071a28ab523c8b795d/html5/thumbnails/25.jpg)
Дебагеры1. XDebug2. DBG 3. ZendDebug4. XHprof5. А так же многие другие..
Всем известно о пользе дебагеров, их нужно использовать,так как они наши друзья :)
![Page 26: Как быть с большими сайтами на Word press](https://reader031.fdocument.pub/reader031/viewer/2022021919/5872bb071a28ab523c8b795d/html5/thumbnails/26.jpg)
Встроенные дебагеры и
плагины1. Включите режим дебага в wp-cinfig.php define('WP_DEBUG', true);.2. Просто используйте встроенный дебагер.Самые необходимые плагины.1.Debug Bar2.Kint Debugger3.Debug Bar Actions and Filters Addon4.Debug Bar Console
![Page 27: Как быть с большими сайтами на Word press](https://reader031.fdocument.pub/reader031/viewer/2022021919/5872bb071a28ab523c8b795d/html5/thumbnails/27.jpg)
Debug BarВыводит:1.Notices/Warnings.2.Информацию о выполненных запросах в базу данных.3.Все аргументы WP Query.4.Все deprecated функции/методы во всем коде, включая ядро.5.Регулярное выражение WP_Rewrite, 6.текущего URL7.Object Cache, состояние кеша объектов 8.например Memcached
https://wordpress.org/plugins/debug-bar/
![Page 28: Как быть с большими сайтами на Word press](https://reader031.fdocument.pub/reader031/viewer/2022021919/5872bb071a28ab523c8b795d/html5/thumbnails/28.jpg)
Debug Bar
![Page 29: Как быть с большими сайтами на Word press](https://reader031.fdocument.pub/reader031/viewer/2022021919/5872bb071a28ab523c8b795d/html5/thumbnails/29.jpg)
Kint Debugger 1. Вывод d($variable), это лучше чем var_dum();2. Трасирует Kint::trace()3. Умеет выводить в интерфейс debug bar;4. Понравится любителям Drupal и Devel.
https://wordpress.org/plugins/kint-debugger/
![Page 30: Как быть с большими сайтами на Word press](https://reader031.fdocument.pub/reader031/viewer/2022021919/5872bb071a28ab523c8b795d/html5/thumbnails/30.jpg)
Kint Debugger
![Page 31: Как быть с большими сайтами на Word press](https://reader031.fdocument.pub/reader031/viewer/2022021919/5872bb071a28ab523c8b795d/html5/thumbnails/31.jpg)
Debug Bar Actions and Filters Addon
https://ru.wordpress.org/plugins/debug-bar-actions-and-filters-addon
Выводит все хуки и фильтры, использованные внутри запроса, списком, а также в виде дерева внутри интерфейса Debugbar
![Page 32: Как быть с большими сайтами на Word press](https://reader031.fdocument.pub/reader031/viewer/2022021919/5872bb071a28ab523c8b795d/html5/thumbnails/32.jpg)
Debug Bar Actions and Filters Addon
![Page 33: Как быть с большими сайтами на Word press](https://reader031.fdocument.pub/reader031/viewer/2022021919/5872bb071a28ab523c8b795d/html5/thumbnails/33.jpg)
Debug Bar Actions and Filters Addon
![Page 34: Как быть с большими сайтами на Word press](https://reader031.fdocument.pub/reader031/viewer/2022021919/5872bb071a28ab523c8b795d/html5/thumbnails/34.jpg)
Debug Bar Console
https://wordpress.org/plugins/debug-bar-console/
Простая консоль, позволяющая написать и запустить кусочек php или SQL запрос прямо в окружение текущей конфигурации WordPress, и сразу увидеть результат выполнения в нижней части экрана.Доступны все функции ядра плагинов и шаблона.
![Page 35: Как быть с большими сайтами на Word press](https://reader031.fdocument.pub/reader031/viewer/2022021919/5872bb071a28ab523c8b795d/html5/thumbnails/35.jpg)
Debug Bar Console
![Page 36: Как быть с большими сайтами на Word press](https://reader031.fdocument.pub/reader031/viewer/2022021919/5872bb071a28ab523c8b795d/html5/thumbnails/36.jpg)
Минутка уличного дебага
Gist Github - https://goo.gl/m4Pzaa
![Page 37: Как быть с большими сайтами на Word press](https://reader031.fdocument.pub/reader031/viewer/2022021919/5872bb071a28ab523c8b795d/html5/thumbnails/37.jpg)
![Page 38: Как быть с большими сайтами на Word press](https://reader031.fdocument.pub/reader031/viewer/2022021919/5872bb071a28ab523c8b795d/html5/thumbnails/38.jpg)
Обезопаситься от внешнего мира
1. Применяем код ревью внутри команды. 2. Обязательное автообновление и использование
актуальных версий.3. Обязательное ревью «вендорных» плагинов и тем.
![Page 39: Как быть с большими сайтами на Word press](https://reader031.fdocument.pub/reader031/viewer/2022021919/5872bb071a28ab523c8b795d/html5/thumbnails/39.jpg)
Популярные уязвимости своими руками
● Неавторизованный доступ● XSS● Sql injection ● Race conditions
![Page 40: Как быть с большими сайтами на Word press](https://reader031.fdocument.pub/reader031/viewer/2022021919/5872bb071a28ab523c8b795d/html5/thumbnails/40.jpg)
IDE
В phpstorm и NetBeans уже есть
поддержка WordPress
![Page 41: Как быть с большими сайтами на Word press](https://reader031.fdocument.pub/reader031/viewer/2022021919/5872bb071a28ab523c8b795d/html5/thumbnails/41.jpg)
Изучите PHPНайдите время максимально подробно изучить язык, на
котором программируете.
![Page 42: Как быть с большими сайтами на Word press](https://reader031.fdocument.pub/reader031/viewer/2022021919/5872bb071a28ab523c8b795d/html5/thumbnails/42.jpg)
Конец
Спасибо за внимание