Основы PHP изучение серверного языка PHP
PHP программирование с нуля
Синтаксис языка лежит в основе его изучения. Очень важно разобраться с типами данных, переменными, операторами, классами, функциями и другими составляющими.
Когда вы продвинетесь в базовом синтаксисе, переходите к более сложным темам. Сфокусируйтесь на том, что будете использовать большую часть своего времени. Сюда относится стандартная библиотека PHP, трейты, пул рабочих процессов и многое другое.
HTTP
PHP это в первую очередь серверный язык программирования, и важно понимать принцип работы клиент-серверного протокола HTTP, который лежит в основе обмена данными в сети интернет. Грубо говоря, происходит обмен сообщений между веб-браузером и сервером по принципу запрос-ответ (request-response). Как правило, между клиентом и сервером находятся посредники, такие как модемы, маршрутизаторы и прочие сетевые узлы.
HTTP-запросы состоят из:
- метода (ознакомиться со всеми методами можно здесь);
- версии HTTP-протокола;
- пути к ресурсу.
Опциональными для запроса являются заголовок для отправки дополнительной информации и тело запроса, необходимое в том случае, если отправляются какие-то данные, как с операциями POST и PUT.
Для работы с HTTP используйте веб-сервер и почтовый прокси-сервер Nginx, REST, изучите принцип работы веб-сессий и «печенек».
Встроенные интерфейсы и классы
- Traversable определяет, является ли класс обходимым с использованием
foreach
. - Iterator для внешних итераторов или объектов, которые могут повторять себя изнутри.
- IteratorAggregate для создания внешнего итератора.
- Throwable родительский интерфейс для объектов, которые выбрасываются с помощью
throw
. - ArrayAccess обеспечивает доступ к объектам в виде массивов.
- Serializable для индивидуальной сериализации.
- Closure класс для создания анонимных функций.
- Generator полезны для создания больших коллекций для последующего перебора. Сравнение генераторов и итераторов.
- WeakReference класс, который предоставляет способ доступа к объекту, при этом не влияя на количество ссылок на этот объект.
- WeakMap коллекция, которая принимает в качестве ключей объекты.
- Stringable обозначает класс, реализующий метод
__toString()
.
Базы данных
Сегодня существует множество инструментов для работы с базами данных. Однако есть несколько основных, которые лучше других подойдут бэкенд-разработчикам.
Для реляционных баз данных это PostgreSQL, а для NoSQL MongoDB. PDO будет полезен для понимания того, как происходит взаимодействие между кодом на PHP и вашими данными, а ORM повысит эффективность и безопасность этого взаимодействия.
Фреймворки
Когда изучено множество инструментов, самое время объединить их в целостную систему. Чтобы не изобретать велосипед, обратите внимание на популярные фреймворки для разработки на PHP. В них вы найдете лучшие современные практики, а также выработаете привычку к созданию качественной архитектуры.
Для языка PHP существует два наиболее популярных варианта:
- Symfony это свободный фреймворк, который чаще всего используется для разработки сложных веб-приложений. У Symfony продуманная архитектура и мощная функциональность, хотя при этом он также достаточно требователен. Работает только с PHP 5 и выше.
- Laravel наиболее распространённый и популярный PHP-фреймворк с открытым исходным кодом. Используется для разработки с применением архитектурной модели MVC (Модель-Представление-Контроллер). Выпущен под лицензией MIT.
Но и это не всё. Изучение PHP с нуля можно дополнить такими инструментами, как Yii и Composer.
Первый основан на парадигме MVC. Позволяет кэшировать как отдельные фрагменты, так и целые страницы. Для работы с базами данных предусмотрены такие интерфейсы, как DAO и ActiveRecord.
API
Для работы с серверной частью веб-приложений необходимо освоить API как средство интеграции приложений для импорта данных, подключения сторонних сервисов и использования готовых решений в своём проекте.
В рамках разработки на PHP рекомендуется освоить JSON, REST (SOAP опционально), получить навык работы с инструментами для тестирования API Postman, а также Swagger или API Blueprint для описания RESTful API.
Кэширование
Скорость ответа веб-приложения обусловлена не только серверами, но и качественным кодом. Иногда для его увеличения достаточно уменьшить количество запросов к базе данных или запомнить результат «тяжеловесных» вычислений.
И здесь приходят на помощь механизмы кэширования. Вы найдёте интерфейсы для их организации в стандартах PSR-6 и PSR-16. Также следует научиться использовать одно из хранилищ данных типа «ключ‑значение» Redis либо Memcached.
Фоновое выполнение
Другой распространённый метод ускорения веб-приложения — это выполнение обработки в фоновом режиме (background execution). Вам пригодятся:
- Cron программа, что выполняет задания по расписанию, и Crontab текстовый файл со списком команд, которые должны выполняться в заданное время.
- RabbitMQ брокер сообщений, принимающий, хранящий и пересылающий сообщения своим клиентам.
- Kafka высокопроизводительный распределённый брокер сообщений с открытым исходным кодом.
Git
Освойте работу с системой контроля версий Git и выберите удобный сервис для хостинга проектов. Вы, вероятно, будете использовать его ежедневно, независимо от выбранного вами языка программирования.
Если вы впервые сталкиваетесь с Git, то в двух словах — это удобный инструмент для работы над проектом в команде, который позволяет сохранять состояния кода на разных этапах его «жизни».