Персональный сайт Олега Барабанова

Почему для начала изучения PHP нет необходимости ставить веб-сервер и базу данных ?

Заметил, что когда люди начинают изучать язык PHP, они начинают возиться с LAMP (Linux, Apache, Mysql, PHP) , WAMP(W - Windows) и пр. стеком технологий. При этом забывается, что люди хотят изучать новые технологии постепенно. Лично я сторонник того, чтобы в связке LAMP изучать по отдельности каждый компонент в обратном порядке. А именно, вначале изучаем только PHP (со встроенным веб-сервером, о чем описано ниже), потом MySQL|MariaDB , потом Apache, ну и на последок Linux. Естественно, вместо PHP можно выбрать Python, вместо MariaDB - PostgreSQL, вместо Linux - Windows.

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

Нужно ли ставить отдельно веб-сервер при изучении PHP ?

Нет необходимости. Начиная с PHP 5.4 в составе идет веб-сервер для помощи в разработке. Конечно, он не является какой-либо серьезной заменой Apache, NGINX   и пр. , т.к. однопоточный. Тем не менее для знакомства с языком программирования его вполне достаточно.

Запустить встроенный веб-сервер можно следующим следующим образом:
*nix: php -S localhost:8000 router.php
Win: php.exe -S localhost:8000 router.php


Преимуществом такого подхода является то, что вам нет необходимости лезть в настройки полноценного веб-сервера, для того, чтобы запустить веб-сервер на другом порту. Другими словами, вам достаточно просто будет запустить два сервера:

Пример запуска двух серверов:
php -S localhost:8000 router.php #веб-сервер для разработки
php -S 127.0.0.1:8090 router.php #веб-сервер для демонстрации

Sqlite3 вместо Mysql ?

А почему бы и нет? Это прекрасная база данных для изучения разработки и проектирования баз. Даже простой аналог phpMyAdmin есть - phpLiteAdmin . Sqlite поставляется в виде единственной, компактной библиотеки libsqlite.

А в случае с PHP особенность состоит в том, что библиотека уже идет вместе с PHP начиная c версии 5.3 (ранее был sqlite2) !

Т.е. для того, чтобы нам сделать учебное простое приложение, нам нет необходимости разворачивать набор из веб-сервера, базы данных, PHP, а потом еще и настраивать это все. Достаточно просто скачать PHP с php.net , распаковать и запускать с описанными выше параметрами. И эта возможность есть еще со времен PHP 5.4 который вышел в 2012 году !

А есть ли простой пример ?

Да конечно. Накидал пример для изучения в виде простейшего телефонного справочника. Никаких премудростей, всего пару строк php и небольшой шаблон в одном файле. Самое то, чтобы просто запустить и проверить, что для учебных примеров хватит и простого PHP.