PHP
Мои статьи о PHP | |
Другие статьи о PHP | |
О языке PHP | |
Области применения | |
Дополнительные возможности |
О языке PHP
PHP : Hypertext Preprocessor — «PHP: препроцессор гипертекста»;
первоначально Personal Home Page Tools — «Инструменты для создания
персональных веб-страниц») — скриптовый язык общего назначения,
интенсивно применяемый для разработки веб-приложений.
В настоящее время поддерживается подавляющим большинством хостинг-провайдеров
и является одним из лидеров среди языков, применяющихся для создания
динамических веб-сайтов.
Язык и его интерпретатор (Zend Engine) разрабатываются группой энтузиастов
в рамках проекта с открытым кодом.
Проект распространяется под собственной лицензией, несовместимой с GNU GPL.
Области применения
В области веб-программирования, в частности серверной части,
PHP — один из популярных сценарных языков
(наряду с
JS
, Perl и языками, используемыми в ASP.NET).
Популярность в области построения веб-сайтов определяется наличием большого
набора встроенных средств и дополнительных модулей для разработки веб-приложений.
Основные из них:
автоматическое извлечение
POST
и GET-параметров, а также переменных окружения
веб-сервера в предопределённые
массивы;
взаимодействие с большим количеством различных систем управления
базами данных через дополнительные модули
(MySQL, MySQLi, SQLite,
PostgreSQL
,
Oracle (OCI8), Oracle,
Microsoft SQL Server
,
Sybase, ODBC, mSQL, IBM DB2, Cloudscape и Apache Derby, Informix, Ovrimos SQL,
Lotus Notes, DB++, DBM, dBase, DBX, FrontBase, FilePro, Ingres II, SESAM,
Firebird / InterBase, Paradox File Access, MaxDB, Интерфейс
PDO
), Redis;
автоматизированная отправка HTTP-заголовков;
работа с HTTP-авторизацией;
работа с cookies и сессиями;
работа с локальными и удалёнными файлами, сокетами;
обработка файлов, загружаемых на сервер;
работа с XForms.
В настоящее время PHP используется сотнями тысяч разработчиков. Согласно рейтингу корпорации TIOBE, базирующемся на данных поисковых систем, в мае 2016 года PHP находился на 6 месте среди языков программирования. К крупнейшим сайтам, использующим PHP, относятся Facebook, Wikipedia и др.
Входит в LAMP — распространённый набор программного обеспечения для создания и хостинга веб-сайтов
(Linux, Apache,
MySQL, PHP).
Дополнительные возможности
Язык автоматически поддерживает
HTTP Cookies
, в соответствии с стандартами Netscape. Это позволяет проводить установку и чтение небольших сегментов данных на стороне клиента.
Работа с Cookies организована посредством сеансов (сессий). У сессий есть срок действия (после его истечения, данные удаляются), в сессиях можно хранить и редактировать разные типы данных, в том числе сериализованные - пропущенные через serialize( процесс происходит автоматически ), PHP-объекты.
Создание GUI-Приложений
PHP не ориентирован на создание приложений, но есть потребность в создании интерфейсов для настройки серверов, беспрерывного выполнения, отладки скриптов(сценариев), управления локальными и тестовыми серверами, и т.п. Из-за этого и возникли решения данной проблемы.
Расширения
Основная среди реализаций - использование расширений, которые фактически являются надстройками над UI-библиотеками.
В целом, расширения делятся на три вида: php-расширения, FFI-обёртки (расширения, что используют системные функции через средства FFI) и консольные обёртки (расширения, что общаются с php при помощи командного интерфейса - CLI)
К первым можно отнести: WxPHP
(Windows,
Linux
, Mac OS X), Winbinder (Windows)
Ко вторым относятся: Win32Std, Tk (реализация для
Python
)
К третьим относятся: PHP-UI, PHP-XCB
Также есть расширения, которые представляют из себя двустороннюю обёртку как для использования других языков для написания расширения php, так и наоборот - PSV Component Library, - проект, что состоит из трёх суб-проектов:
PHP4Delphi (основной проект, автор - Сергей Перевознюк):
Реализация соединения php с Delphi-программой, через средства WinAPI
активно разрабатывался с 1999 года, но из-за занятости автора, не обновлялся уже 4 года, из-за чего появились форки (англ. forks) - ответвления, с неофициальными обновлениями, которые можно просмотреть по ссылке https://github.com/perevoznyk/php4delphi/network, одним из таких является PHP4Lazarus.
Проект PHP extensions development framework (второрядный):
Средства для создания php-расширений, VCL-компоненты, хоть этот проект и отстраняет автор, но он является неотъемлемой частью PHP4Delphi, базовые компоненты которого нужны для создания приложений
Проект php4Applications (второрядный) - расширение для легкого использования php в других языках, также базируется на PHP4Delphi (даёт доступ к макросам, что упрощает использование php и избавляет от нужды в написании собственной обёртки).
Среды разработки
Есть место и полноценным средам разработки для GUI PHP:
DevPHP (IDE)
Первопроходцем в этой категории является студия DevPHP-IDE, которая использовала Kylix(Delphi) в качестве основы интерфейса и php-cli для создания пользовательских программ.
Она включала в себя редактор кода, несколько инструментов и визуальный просмотр
HTML-страниц.
Впервые была представлена в 2002 году, сейчас имеет 3 стабильные версии, но разработка не продолжается — остановилась из-за гибели главного разработчика в автокатастрофе.
CodeGear Rad Studio (Extension)
После DevPHP IDE появилось расширение - набор компонентов для CodeGear Rad Studio 2009 на базе php4delphi с некоторыми улучшениями (веб-элементы, инспектор, отладчик), поддержка её длилась в течение четырёх версий, вторая из которых вошла в платное расширение Rad Studio 2010: была возможность использовать скрипты, задавать стиль веб-компонентам, просматривать стили и веб-страницы до сборки программы, запускать локальный сервер, собирать программу, как отдельное приложение и отлаживать код. С выходом Delphi XE, расширение получило название RADPHP Xe. Далее, сама студия стала называться Embarcadero Delphi, и работа над данным расширением была приостановлена на неопределённый срок.
DevelStudio (RAD)
В 2009 году на базе php4delphi началась разработка среды для создания графических PHP-приложений, к разработке которой позже присоединился Ростислав Романов. Среда получила название PHP DevelStudio, первой опубликованной версией стала 0.1.7. DevelStudio имела небольшое количество компонентов в наборе инструментов и работала на устаревшем PHP 4. Во второй версии, DevelStudio получила поддержку PHP 5. Были добавлены потоки, произведены множественные изменения и улучшения. Код сборки программ стал закрытым, предыдущие версии программы и сообщения на форуме были удалены с целью воспрепятствования злоумышленникам.
Вторая версия DevelStudio так же получила набор компонентов AlphaControls, вследствие чего её стали использовать для создания вредоносных программ, в силу её простоты и понятности. Популярные на то время антивирусы (MacAffee, AVG, Avira) стали распознавать любые скомпилированные в DevelStudio программы, как вирусы.
Через некоторое время, автор AlphaControls обратился с жалобой к разработчикам DevelStudio, и набор компонентов был полностью удалён из среды, однако сохранился в уже существовавшей версии, удалить которую с форума в этот раз не представлялось возможным.
На момент 2012 года вышла последняя версия среды - 3.0.2, где появился новый набор компонентов, в том числе браузер Chromium вместо IE, что привлекло внимание веб-разработчиков и пользователей среды «Алгоритм». На тот момент, компиляция программ в «Алгоритме» была платной, поэтому DevelStudio как новая и бесплатная среда разработки, переманила на себя бо́льшую часть аудитории.
В 2014 году начались первые попытки по восстановлению среды, в этот раз со стороны сообщества. В конце 2018 года исходный код был восстановлен и доступен в этом репозитории GitHub.
В 2019 году сообщество обратилось к создателю DevelStudio с целью изменения политики распространения среды, вследствие чего она стала доступной для обновления и редактирования. Из-за жалоб на отсутствие ссылок на использованные библиотеки (DCEF, PHP4Delphi, TSizeCtrl, SynEdit) форум был удалён, а одна из страниц с описанием среды была перенаправлена на главную страницу сайта. С этого момента DevelStudio официально принадлежит сообществу.
PHPQt (IDE)
В 2015 году Александр Казанцев начал изучать алгоритмы разработки интерфейсов и создал расширение php_qml, что давало возможность использовать виджеты из библиотеки QT, но имело поддержку лишь одной платформы - Windows.
С этого началась разработка PHPQt, первые версии не обратили особого внимания со стороны веб-разработчиков, поэтому автор начал углублённо улучшать расширение.
28-го июля 2015 года был опубликован первый вариант компилятора проектов, на тот момент это был простой исполнитель скриптов(сценариев), который прикреплял php-код к стабу (подобно DevelStudio), и имел зависимость от Windows API, на этой стадии поддерживались уже почти все виджеты и многопоточность, была лёгкая оптимизация php-кода. С этого момента движок стали называть PQEngine,
3-го августа 2016 года вышла пятая версия компилятора приложений (PqBuilder), что перешёл на базу PlastiQ, и имел поддержку уже новейшего, на тот момент, php 7, проекты получили более полноценный компилятор и уже не требовали наличия PqEngine.dll вблизи с исполняемым файлом, вместо этого визуальные библиотеки стали добавляться динамично - как файлы, а не вшиваться в PQEngine.dll. Такой шаг был предпринят для совместимости с другими системами и оригинальными библиотеками Qt.
С появлением шестой версии, проект стал дополнением для среды Qt Studio, а компилятор стал всего-навсего оптимизатором кода перед конечной сборкой программы. Появился полноценный редактор интерфейса, подсказки в редакторе кода и начала создаваться документация. С этого момента сделали анонс про создание среды PqStudio, но её разработка не зашла далеко.
DevelNext (IDE)
Паралельно с этим, главный разработчик DevelStudio начал создавать "реинкарнацию" предыдущей среды - DevelNext, студия взяла за основу графическую библиотеку Swing и JavaFX, в результате вышла полностью новая среда, с поддержкой CSS, но без полной поддержки PHP - проект был основан на собственном языке jPHP, также интерпретируемом, и просуществовал в таком виде до 17-й версии (17-RC1), на которой и был заброшен.
В 16-й версии среда DevelNext получила поддержку php 7 и была расширена энтузиастами для разработки под платформу OS Android.
На данный момент автор и энтузиасты трудятся над 19 версией (ранее 17-я).
Подключение PHP к проекту
Также существуют расширения и для геометрично-противоположного применения - подключения PHP к проекту на другом языке программирования:
Phalanger (C#) - php 5.4 по 7, Peachpie (C#) - php 7,
PHP4Delphi(Lazarus, Delphi, C#, C, C++) - php 5.6,
JPHP(Java) - php 7.0,
PHPly(Python) - php 5.6