Кирилл, автор и преподаватель профессионального курса «PHP. Профессиональная веб-разработка», советует шесть книг, которые помогут улучшить знания в PHP и повысить качество вашей работы.

Изучаем PHP 7

Дэвид Скляр

«Руководство по созданию интерактивных веб-сайтов.»
«Руководство по созданию интерактивных веб-сайтов.»

Книги издательства O’REILL легко узнать по характерной обложке с изображением животного. Они выпускают только очень качественную техническую литературу. Руководство «Изучаем PHP 7» подойдёт тем, кто только начинает изучать язык. Оно даёт не только исчерпывающую и актуальную информацию по PHP, но и содержит множество хороших практик, обзор фреймворков и упражнения, которые помогут закрепить усвоенный материал.

PHP. Объекты, шаблоны и методики программирования

Мэтт Зандстра

«PHP. Объекты, шаблоны и методики программирования.»
«PHP. Объекты, шаблоны и методики программирования.»

В этой книге вы не найдёте описания языка, она предназначена для более продвинутых программистов, которые уже освоились с PHP и готовы двигаться дальше в сторону объектно-ориентированного программирования (ООП). Она станет отличным помощником в изучении этой методологии.

Книга состоит как из теоретической информации — описания постулатов ООП, так и из его практического применения с примерами кода на PHP. Обязательно прочитайте её, когда начнёте изучать ООП.

Шаблоны корпоративных приложений

Мартин Фаулер, Дейвид Райс, Мэттью Фоммел, Эдвард Хайет, Роберт Ми, Рэнди Стаффорд

«Шаблоны корпоративных приложений.»
«Шаблоны корпоративных приложений.»

Это классический и далеко не простой для восприятия труд. Все примеры в книге приводятся на языке Java. Рекомендую ознакомиться с ней через год-два работы с PHP. Она поможет вам улучшить свои навыки в проектировании сложных приложений, организации кода и делении его на отдельные и независимые модули.

Чистый код

Роберт Мартин

«Создание, анализ и рефакторинг»
«Создание, анализ и рефакторинг»

Книга уделяет очень большое внимание написанию качественного кода. Здесь подробно рассматриваются такие аспекты, о которых вы могли даже никогда не задумываться: как именовать переменные и функции, тестировать свой код и делать его максимально простым для поддержки и развития. Все примеры приводятся на языке Java.

Идеальный программист

Роберт Мартин

«Как стать профессионалом разработки ПО.»
«Как стать профессионалом разработки ПО.»

Ваши качества как профессионального разработчика складываются не только из блестящего знания PHP и опыта решения сложных задач. Есть ещё и так называемые soft skills, которые не зависят от конкретной работы, а тесно связаны с вашими личностными качествами и установками: дисциплина, самоменеджмент и так далее.

Книга «Идеальный программист» как раз об этом. Здесь мало примеров кода и больше рассуждений на тему, что профессионал — это не только знаток программирования, но и ответственный и коммуникабельный человек.

Джоэл о программировании

Джоэл Х. Спольски

«Джоэл о программировании.»
«Джоэл о программировании.»

Руководство от бывшего программиста Microsoft, одного из создателей Stack Overflow, понравится в первую очередь уже более-менее опытным программистам. По сути, в книжке собраны множество отдельных постов, которые писал в свой блог Джоэл Спольски. Он затронул очень много различных аспектов создания программного обеспечения: от устройства рабочего места до лучших способов написания кода.

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


«Доктайп» — журнал о фронтенде. Читайте, слушайте и учитесь с нами.

ТелеграмПодкастБесплатные учебники

Читать дальше

Как работает протокол HTTP

Как работает протокол HTTP

HTTP был разработан в 1990-х годах для создания первого интерактивного текстового веб-браузера. За эти годы протокол менялся и совершенствовался, становился более гибким и постепенно превратился в современный интернет. В статье рассмотрим принцип работы протокола и что важно знать о нём разработчику.

Читать дальше
  • 8 февраля 2023
Массивы в PHP

Массивы в PHP

Массив — это ещё один тип данных, вроде числа или строки. Главное отличие массива от остальных типов данных заключается в его способности хранить в переменной больше одного значения. В предыдущих примерах имя переменной всегда ассоциировалось только с одним значением:

  • $name = "Иннокентий"
  • $age = 42

А если мы хотим узнать не только пол, имя и возраст пользователя, но и, допустим, любимые сериалы? Очень непросто назвать один самый любимый сериал, а вот вспомнить несколько — намного легче. Сохранение в переменную-массив нескольких значений выглядит так:

 $fav_shows = ["game of thrones", "american horror story", "walking dead"];

В этом примере мы сохранили в переменной $fav_shows сразу три значения. Но сохранить эти данные — это только половина дела. Как с ними потом работать? Уже знакомый вам способ вывода переменной на экран не будет работать с массивами:

<?php
print("Мои любимые сериалы: " . $fav_shows);

Так увидеть список любимых сериалов не получится. Дело в том, что массив — это не обычная переменная. Массив хранит не простые типы, вроде текста или чисел (их ещё называют «скалярными типами»), а более сложную структуру данных, поэтому здесь нужен особый подход.

Внутри массива у каждого значения есть адрес, по которому к нему можно обратиться. Такой адрес называется индексом. Индекс — это просто порядковый номер значения внутри массива. Индексация начинается с нуля, так что первый элемент получает индекс — 0, второй — 1, и так далее.

Чтобы получить определенный элемент массива, необходимо знать его индекс (ключ). Напечатаем названия всех сериалов из массива через запятую:

<?php
print("Мои любимые сериалы: " . $fav_shows[0] . ", " . $fav_shows[1] . ", " . $fav_shows[2]);?>

Теперь можно дать определение массива: Массив — это совокупность множества элементов вида «ключ: значение».

Массивы позволяют перезаписывать существующие значения и добавлять новые. Добавить новое значение в массив можно так:

$fav_shows[] = "the big bang theory";

Новый элемент автоматически получит индекс равный максимальному индексу из существующих + 1. «Теория большого взрыва» сохранится в массиве под индексом 3.

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

$fav_shows[4] = "fargo";

Для полного удаления (без замены на другое) значения по его индексу существует функция unset:

unset($fav_shows[4]);
Читать дальше
  • 10 ноября 2022
Синтаксис PHP

Синтаксис PHP

Разберёмся, из чего состоит любой язык программирования.

У каждого языка есть правила и конструкции, следуя которым мы выражаем мысли и делаем их понятными для другого человека. В программировании всё точно так же. Но вместо человеческого языка мы используем язык программирования PHP, а в роли нашего собеседника выступает PHP-интерпретатор. Поэтому, чтобы выразить свою мысль, мы должны сделать её понятной для интерпретатора.

Читать дальше
  • 27 октября 2022
Массивы $_POST и $_GET в PHP. Обработка форм

Массивы $_POST и $_GET в PHP. Обработка форм

Формы — это часть языка HTML. Формы нужны для передачи данных от клиента на сервер. Чаще всего формы используются для регистрации пользователей, заполнения анкет, оформления заказа в интернет магазине, и так далее.

Через формы можно отправлять как простую текстовую информацию, так и файлы.

Большую часть времени программирования на PHP вы будете так или иначе работать с формами и данными из них.

HTML описывает то, из каких элементов состоит форма, и как она выглядит. Но без принимающей стороны, то есть сервера, который принимает эти данные и обрабатывает их нужным образом, создавать формы нет никакого смысла.

PHP содержит множество средств для работы с формами. Это позволяет очень просто решать типичные задачи, которые часто возникают в веб-программировании:

  • Регистрация и аутентификация пользователя;
  • Отправка комментариев на форумах и социальных сетях;
  • Оформление заказов.

Практически любой современный сайт содержит как минимум несколько разных HTML-форм.

Читать дальше
  • 20 октября 2022
Учебник по PHP

Учебник по PHP

  1. Знакомство с языком
  2. Шаблонизация и подключение файлов
  3. Протокол HTTP и формы
  4. Идентификация пользователя на сайте
  5. Базы данных
  6. Объекты и использование библиотек
  • 10 сентября 2022
Защита от SQL-инъекций

Защита от SQL-инъекций

Внедрение SQL-кода (SQL инъекция) — один из распространённых способов взлома сайтов, работающих с базами данных. Способ основан на внедрении в запрос произвольного SQL-кода. Внедрение SQL позволяет хакеру выполнить произвольный запрос к базе данных (прочитать содержимое любых таблиц, удалить, изменить или добавить данные).

Атака этого типа возможна, когда недостаточно фильтруются входные данные при использовании в SQL-запросах.

Читать дальше
  • 10 сентября 2022
Объекты и классы в PHP

Объекты и классы в PHP

Объекты в PHP — это просто ещё один тип данных. Объект позволяет хранить в переменной набор из свойств и их значений, а также встроенные функции. Это делает объекты похожими по своей структуре на ассоциативные массивы. Но отличие от массивов всё-таки есть, и при этом достаточно важное — объекты могут иметь внутреннее состояние.

Читать дальше
  • 10 сентября 2022
Циклы в PHP. Краткое руководство

Циклы в PHP. Краткое руководство

Цикл — это конструкция языка, которая выполняет блок кода больше одного раза.

Мы привыкли, что сценарии выполняются линейно: сверху вниз, строчка за строчкой. Но что делать, если надо повторить какую-нибудь инструкцию несколько раз? Например, как вывести на экран натуральные числа от 1 до 9?

Есть очевидный способ:

<?php
print(1);
print(2);
print(3);
// и так далее...

Но он заставляет писать много кода. И что если требуется вывести последовательность из миллиона чисел? Ещё бывают ситуации, когда заранее неизвестно сколько раз нужно выполнить определённую инструкцию.

Использование циклов значительно упрощает и укорачивает код. Циклы незаменимы в ситуациях, когда заранее неизвестно сколько раз должен выполниться блок кода. Такое число зависит от множества условий и вычисляется в момент выполнения сценария.

Так выглядит цикл в PHP:

<?php
while (<условие цикла>) {
<тело цикла>
}
Читать дальше
  • 10 сентября 2022