PHP

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

О языке 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

Похожие статьи
Программирование на PHP
Массивы в PHP
Циклы в PHP
Дата и время в PHP - основы
Как отобразить время различных часовых поясов PHP
Как вставить переменную в ссылку PHP
gettype(): определить тип переменной PHP
json_decode
Как получить ширину экрана с помощью PHP
Вызов функции из другого файла
Premature end of chunk coded message body: closing chunk expected
Сгенерировать неповторяющиеся случайные числа PHP
Узнать свой HTTP_USER_AGENT
Сравнить две даты
Классы в PHP 8
Комментарии в PHP
substr: обрезать строку
Запросы к REST API на PHP
$_SERVER['REQUEST_URI']: текущая url
Работа с базами данных
Работа с cookies
PHP sessions
Аутентификация и авторизация в PHP 8
Тернарный оператор
try catch
PHP_errors.log Beget
Разбор ошибок

Поиск по сайту

Подпишитесь на Telegram канал @aofeed чтобы следить за выходом новых статей и обновлением старых

Перейти на канал

@aofeed

Задать вопрос в Телеграм-группе

@aofeedchat

Контакты и сотрудничество:
Рекомендую наш хостинг beget.ru
Пишите на info@urn.su если Вы:
1. Хотите написать статью для нашего сайта или перевести статью на свой родной язык.
2. Хотите разместить на сайте рекламу, подходящую по тематике.
3. Реклама на моём сайте имеет максимальный уровень цензуры. Если Вы увидели рекламный блок недопустимый для просмотра детьми школьного возраста, вызывающий шок или вводящий в заблуждение - пожалуйста свяжитесь с нами по электронной почте
4. Нашли на сайте ошибку, неточности, баг и т.д. ... .......
5. Статьи можно расшарить в соцсетях, нажав на иконку сети: