XHP
![]() | В этой статье есть несколько проблем. Пожалуйста, помогите улучшить его или обсудите эти проблемы на странице обсуждения . ( Узнайте, как и когда удалять эти шаблонные сообщения )
|
Оригинальный автор(ы) | Марсель Лаверде |
---|---|
Разработчик(и) | Мета-платформы |
Первоначальный выпуск | февраль 2010 г. |
Стабильная версия | 4.1.0 / 18 ноября 2021 г [1] |
Репозиторий | |
Написано в | PHP , Взлом |
Платформа | Кросс-платформенный |
Тип | PHP-библиотека |
Лицензия | до версии 2.6: Лицензия BSD . Начиная с версии 2.6: Лицензия MIT. |
Веб-сайт | ххвм |
XHP — это расширение PHP и Hack, разработанное в Meta (ранее известное как Facebook), позволяющее использовать синтаксис XML для создания пользовательских и многократно используемых HTML- элементов. Он доступен как проект программного обеспечения с открытым исходным кодом на GitHub и как модуль Homebrew для PHP 5.3, 5.4 и 5.5. Meta также разработала аналогичное расширение для JavaScript , названное JSX .
Происхождение
[ редактировать ]XHP был вдохновлен ECMAScript для XML и создан Марселем Лаверде. Впервые он был разработан для Facebook Lite как новый уровень рендеринга пользовательского интерфейса, но позже был перенесен на стек www и мобильных веб-сайтов Facebook, а также включен в HipHop для PHP . Он был доступен публике в феврале 2010 года. [2] и до 2020 года на него приходилось почти весь HTML-код, генерируемый на стороне сервера приложения Facebook. [ нужна ссылка ]
В 2020 году Facebook обновил свое основное веб-приложение. [3] работать в основном на компонентах React, отображаемых как на стороне сервера, так и на стороне клиента. XHP все еще используется в некоторых частях Facebook, но сейчас эта устаревшая технология постепенно выводится из эксплуатации.
Преимущества
[ редактировать ]XHP предлагает гораздо более чистый интерфейс для программирования пользовательского интерфейса при выводе HTML на PHP, но также имеет некоторые инженерные преимущества.
- Проверка синтаксиса HTML во время анализа
- XHP проверяет синтаксис и структуру всего дерева документа при рендеринге и генерирует исключение, если элемент не был закрыт должным образом, имеет недопустимые дочерние элементы, имеет недопустимый атрибут или отсутствуют необходимые дочерние элементы или атрибуты.
- Автоматическая защита XSS
- Поскольку весь рендеринг страницы выполняется внутри XHP и он знает, что такое HTML, а что такое контент, XHP экранирует весь контент без каких-либо особых усилий со стороны программиста.
- Мутация объекта
- Объекты XHP хранятся как стандартные объекты PHP, поэтому ими можно манипулировать с помощью DOM-подобного API, который включает в себя такие методы, как
setAttribute()
,getAttribute()
,appendChild()
и некоторые другие до или во время рендеринга. - Пользовательский HTML
- Вместо написания функций для генерации HTML или переключения между PHP можно определить пользовательские элементы XHP и смешать их со стандартными элементами HTML, которые будут абстрагировать общие структуры HTML.
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ «Выпуски» . Гитхаб . 03.02.2023.
- ^ Лаверде, Марсель. «XHP: новый способ написания PHP» . Инженерное дело в Мете . Мета Платформы, Inc. Проверено 10 февраля 2023 г.
- ^ Н. Саммерс (29 апреля 2020 г.). «Почему Facebook изменил дизайн Facebook.com» . Engadget .
Внешние ссылки
[ редактировать ]- Официальный сайт
- xhp-lib на GitHub
- Code Before the Horse — информация об установке, использовании и передовом опыте XHP.
- Объявление Facebook о XHP