PHP

Contents
Мои статьи о PHP
Другие статьи о PHP
О языке PHP
Области применения
Дополнительные возможности
Другие статьи
Блокировка PHP сессий
Установка PHP-фреймворков
Установка Yii
Установка Symfony
Установка Laravel
Профилирование сайтов на PHP
XDebug - дебаг и профилирование кода php (profiling)

О языке PHP

PHP : Hypertext Preprocessor — «PHP: препроцессор гипертекста»; первоначально Personal Home Page Tools — «Инструменты для создания персональных веб-страниц») — скриптовый язык общего назначения, интенсивно применяемый для разработки веб-приложений.

В настоящее время поддерживается подавляющим большинством хостинг-провайдеров и является одним из лидеров среди языков, применяющихся для создания динамических веб-сайтов.

Язык и его интерпретатор (Zend Engine) разрабатываются группой энтузиастов в рамках проекта с открытым кодом.

Проект распространяется под собственной лицензией, несовместимой с GNU GPL.

Области применения

В области веб-программирования, в частности серверной части, PHP — один из популярных сценарных языков (наряду с JSP, 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 месте среди языков программирования[14]. К крупнейшим сайтам, использующим 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

Related Articles
Development with PHP
Arrays in PHP
Date and Time in PHP - basics
How to display time of multiple timezones in PHP
How to add variable to url in PHP
json_decode
How to get screen size with PHP
Call function from another file
Premature end of chunk coded message body: closing chunk expected
Generate unique random numbers with PHP
Check your HTTP_USER_AGENT
Compare two dates
PHP 8 Classes
Comments in PHP
Cookies
PHP sessions
Authentication and Authorization in PHP 8

Search on this site

Subscribe to @aofeed channel for updates

Visit Channel

@aofeed

Feedbak and Questions in Telegram

@aofeedchat