PHP — это открытый, мультипарадигмальный, динамически типизированный и интерпретируемый язык сценариев, изначально разработанный для веб-разработки на стороне сервера. Используйте этот тег для вопросов о программировании на языке PHP.
PHP– это широко используемый язык сценариев общего назначения с открытым исходным кодом, мультипарадигменный, динамически типизируемый и интерпретируемый, изначально разработанный для веб-разработки на стороне сервера. .
Оригинальный PHP-проект, изобретенный Расмусом Лердорфом, обозначал «Личная домашняя страница». Сегодня это означает рекурсивную аббревиатуру PHP: Hypertext Preprocessor.
Последний стабильный выпуск, изменения в разработке и ветки разработки можно найти на веб-сайте PHP, а исходный код, написанный на C, доступен по адресу репозиторий GitHub в PHP.
Чтобы создать среду для обучения и экспериментов с PHP, несколько пакетов приложений включают, среди прочих компонентов, веб-сервер и PHP:
- AMPPS
- XAMPP (для Windows, Mac OS X и Linux)
- DEB.SURY.ORG(PHP для Debian в целом и пакет дистрибутивов Linux на основе Ubuntu и PPA)
- MAMP(для Mac OS)
- WampServer(для Windows)
- easyPHP(для Windows)
- WPN-XM(для Windows)
- Laragon(для Windows)
Есть такие варианты, как Cygwin (Linux на Windows), в которых вы можете установить PHP так же, как и любой другой Linux.
- Cygwin(Linux на Windows)
PHP предоставляет встроенный веб-сервер для целей тестирования и развития. Можно запустить следующую команду:
php -S localhost:8000
После выполнения вышеуказанной команды сервер будет прослушивать порт 8000
, используя текущий рабочий каталог в качестве корневого каталога документа. См. руководство по PHPдля получения дополнительной информации.
Примечание. Чтобы создать онлайн-демонстрацию для вашего вопроса, вы можете использоватькодовую панель,3v4l.или песочница PHP. Однако ваш вопрос или ответ должны по-прежнему включать все соответствующие коды.
Версии PHP
Рекомендуется использовать текущую стабильную выпущенную версию. Все версии ниже 8.0 официально не поддерживаются и объявлены прекращенными. Список поддерживаемых ветвей и статус их обслуживания можно найтиздесь.
Для получения дополнительной информации о новых функциях и необходимых изменениях в новой версии см. Официальные документы по миграции:
Пример PHP-скрипта
Этот сценарий отображает Hello World!
на вашем экране.
<?php
echo 'Hello World!';
Чтобы запустить этот скрипт в консоли, сохраните его в текущем рабочем каталоге в файл с именем hello.php
и выполните команду: php hello.php
.
Сообщество
PHP имеет много активных форумов сообщества, в том числе:
Дополнительная информация
- Википедия на PHP
- Официальная страница PHP
- Добро пожаловать в PHP Список ресурсов для начинающих PHP
Интернет документация
руководство по PHPявляется официальной документацией для синтаксиса языка с функцией поиска и ярлыками URL (например, https://php.net/explode). API хорошо документировандля связанных и дополнительных расширений. Большинство дополнительных расширений можно найти в PECL. В PEARхранилище содержится множество классов, предоставляемых сообществом. Также можно загрузить автономную версию документации здесь.
PHP Framework Interop Group (PHP-FIG) также создала стандарты, касающиеся стилей и стандартов кодирования PHP. Эти стандартные рекомендации PHP (PSR) можно найтиздесь.
Учебники по PHP
Информация, связанная с безопасностью PHP
Бесплатные книги по программированию на PHP
Поддержка базы данных
PHP поддерживает широкий спектр баз данных, как реляционных, так и нереляционных.
PHP часто используется в паре с реляционной базой данных MySQL. PHP также включает отличную поддержку баз данных для PostgreSQL, SQLite, Microsoft SQL Server(Справочник по API), Oracle, IBM DB2 & Cloudscape, Apache Derbyи даже ODBC < / а>.
Все современные версии PHP включают в себя PDO: встроенный библиотека абстракций доступа к даннымс широкими возможностями подключения. Совсем недавно появились расширения PECL, которые предлагают поддержку базы данных «NoSQL», включая Apache Thrift(для Apache Cassandra), MongoDB , Redis и другие.
Полезный сторонний код и инструменты
В дополнение к обширной функциональности, предоставляемой в PHP Core и через PEAR и PECL, есть несколько заслуживающих внимания сторонних вкладов в мир PHP, некоторые из которых перечислены ниже:
Управление пакетами с помощью Composer
Composer- это инструмент управления пакетами для PHP, созданный на основе npm для Node.js и Bundler для Ruby. Это позволяет указывать зависимости для каждого проекта в файле JSON.
Composer использует пакеты из Packagist, которые быстро расширяются и содержат многие из самых популярных библиотек PHP.
Композитор решает следующие проблемы:
- У вас есть проект, который зависит от нескольких библиотек.
- Некоторые из этих библиотек зависят от других библиотек.
- Вы объявляете вещи, от которых зависит.
- Composer определяет, какие версии каких пакетов необходимо установить, и загружает их в каталог (обычно
vendor
) в вашем проекте.
Ничего не приходит бесплатно. Программное обеспечение, загруженное с помощью Composer, может содержать ошибки, как и любое другое, включая уязвимости в системе безопасности. Вы несете ответственность за то, чтобы знать, что вы устанавливаете и обновляете, когда это необходимо для получения исправлений безопасности.
Инструменты обеспечения качества
- PHPUnit
- Behat (тестовая среда для разработки на основе поведения)
- Груша CodeSniffer
- SimpleTest
- Xdebug
- PHPStan
- Больше …
Стандарты и соглашения по кодированию
Несколько стандартов кодирования были предложены и приняты Группой взаимодействия PHP Framework (PHP-FIG). Они известны как Рекомендации по стандартам PHP (PSR). По состоянию на 2 июля 2017 года действуют следующие рекомендации:
- PSR-1 - Базовый стандарт кодирования
- PSR-3 - интерфейс логгера
- PSR-4 - стандарт автозагрузки (это устаревшее PSR-0)
- PSR-6 - интерфейс кеширования
- PSR-7 - интерфейсы сообщений HTTP
- PSR-12 - расширенный стиль кодирования
- PSR-13 - Интерфейсы определения ссылок
- PSR-16 - общий интерфейс для кеширования библиотек
Полный список всех рекомендаций вместе с их статусом можно найти на странице рекомендаций PHP-FIG
Справка
Официальный логотип: