Изучите современный PHP
Кураторский список ресурсов для PHP
Оглавление
- Обязательно прочтите
- Учебники
- Книги
- Онлайн-курс
- Ссылка
- Основы
- Основы PHP
- Стек LAMP
- HTML / HTML 5
- CSS
- JavaScript
- Протоколы
- Локальные среды разработки
- Инструменты
- Иды
- Фреймворки и библиотеки
- Рамки
- Микрофреймворки
- Библиотеки
- Шаблоны
- ООП
- Объектно-ориентированное программирование
- Шаблоны проектирования
- ТВЕРДЫЙ
- Внедрение зависимостей
- Лучшие практики
- Модель-Представление-Контроллер
- База данных
- Основы базы данных
- Книги базы данных
- Реляционная система управления базами данных (СУБД)
- Нормализация базы данных
- Подготовленные заявления
- NoSQL
- Библиотеки баз данных
- Инструменты базы данных
- Стандарты
- Ошибки и обработка исключений
- Отладка
- Модульное тестирование
- Документация
- Сессии
- Текстовые переводы
- Регулярные выражения
- XML
- API
- Контроль версий
- Безопасность
- Архитектура
- Проектирование, управляемое предметной областью (DDD)
- Шестиугольная архитектура
- Функциональное программирование
- Непрерывная интеграция и непрерывная доставка
- Журналы
- Товары
- Сообщество и новости
Обязательно прочтите
- PHP правильный путь
- Дорожная карта веб-разработчика
Учебники
- Полное руководство по PHP 8 — правильно изучайте PHP в 2022 году
- PHP спереди назад (видео)
- Learn-php.org
- Изучите PHP для опытных разработчиков
- PHP для начинающих
- PHP Панды
- Изучите PHP за Y минут
- PHP-ученик
- PHP на примере
Книги
- Расширенная архитектура веб-приложений
- Создание современных приложений с помощью PHP 8.
- Современный PHP: новые возможности и лучшие практики
- Руководство по стилю проектирования объектов
- Изучение PHP 7
- Учебное пособие по сертификации PHP 7 Zend
- Изучите PHP 8: использование MySQL, JavaScript, CSS3 и HTML5.
- Краткое руководство по написанию сценариев на PHP 8: Карманное руководство по веб-скриптам на PHP
- Программирование PHP (O'Reilly Media)
- Искусство современного PHP 8
Онлайн-курс
- CodeAcademy — Изучите PHP
- Кодкурс
- Упражнения – PHP (практика написания кода и наставничество)
- SymfonyCasts — создайте что-то потрясающее с помощью PHP
- Домик на дереве — Изучите PHP
- Удеми — PHP
- DevProjects + Codementor (бесплатные PHP-проекты и дополнительное платное наставничество)
- Бесплатные курсы PHP
Ссылка
- Справочник по языкам
- Шпаргалка по современному PHP
- Руководство по PHP
- Шпаргалка по PHP
Основы
Основы PHP
- Дорожная карта разработчика PHP — как стать разработчиком PHP
- Начало работы с PHP
- Типы данных PHP
- PHP-циклы
- Основы массивов
- Работа с массивами
- PHP GET и POST
- PHP для начинающих (издание 2023 г.)
Стек LAMP
- Стек LAMP (Linux, Apache, MySql, PHP)
- Линукс
- HTTP-сервер Apache
- MySQL
- PHP
- Что такое стек LAMP? (Видео)
HTML / HTML 5
- HTML и HTML5
- Учебник по HTML
- Введение в HTML
- Базовый шаблон HTML5
- ДОМ
- Изучите HTML
CSS
- Каскадные таблицы стилей
- Учебник по CSS
- Введение в CSS
- Введение в CSS-селекторы
- Изучите CSS
JavaScript
- JavaScript (он же ECMAScript)
- Базовый JavaScript
- Учебник по JavaScript
- Красноречивый JavaScript
- Вы не знаете JS (серия книг)
- Потрясающее изучение JavaScript
- Изучите JavaScript
Протоколы
- HTTP и HTTPS
- HTTP-запрос/ответ, GET и POST
- Введение в основы HTTP
- FTP
- SSH
- SMTP
- POP3
- IMAP
- Аякс
Локальные среды разработки
- ддев
- EasyPHP Devserver и веб-сервер
- Усадьба
- Ларагон
- МАМП
- WAMP-сервер
- ХАМПП
Инструменты
- Веб-браузер (Chrome, Firefox)
- Композитор (управление зависимостями)
- WinSCP (бесплатный клиент SFTP, SCP и FTP)
- Putty (бесплатный клиент SSH и Telnet)
- PoEdit (редактор переводов gettext)
- Notepad++ (текстовый редактор)
- 7-ZIP (архиватор файлов)
Иды
- PHPШторм ($)
- Код Visual Studio
Фреймворки и библиотеки
Рамки
- Laravel (очень популярный фреймворк)
- пластинки
- Symfony (модульная корпоративная среда)
Микрофреймворки
- Slim Framework (микрофреймворк PHP, который помогает быстро писать простые, но мощные веб-приложения и API)
- Slim Framework 4 — Учебное пособие
- Slim Framework 4 — электронная книга
Библиотеки
- Потрясающие PHP-библиотеки
- Упаковщик
Шаблоны
- Таблички (собственная система шаблонов PHP)
- Twig (гибкий, быстрый и безопасный механизм шаблонов для PHP)
- Twig — самый популярный автономный движок шаблонов PHP
- Twig против плоского PHP
ООП
Объектно-ориентированное программирование
«Напиши застенчивый код –
модули, которые не раскрывают ничего лишнего другим
модули и которые не зависят от реализаций других модулей».
- Объектно-ориентированные принципы в PHP
- Классы и объекты
- Освоение объектно-ориентированного PHP (электронная книга)
- Objektorientierte Programmierung (немецкий)
- Объектно-ориентированный учебный курс
- Изучение ООП в PHP
Шаблоны проектирования
- Шаблоны проектирования в PHP (Laracasts)
- Шаблоны проектирования в PHP
- Банда четырех паттернов проектирования (книга)
- Шаблоны проектирования для людей™
- ДизайнШаблоныPHP
- Несколько шаблонов проектирования в PHP
- Курс «Шаблоны проектирования в PHP» (видео)
ТВЕРДЫЙ
SOLID — это мнемоническая аббревиатура пяти принципов проектирования, призванных сделать разработку программного обеспечения более понятной, гибкой и удобной в сопровождении.
- ТВЕРДЫЙ
- Первые 5 принципов объектно-ориентированного проектирования
Внедрение зависимостей
- Введение во внедрение зависимостей
- Что такое внедрение зависимостей?
- Разговоры о чистом коде: не ищите вещей! (Видео)
- PSR-11: Интерфейс контейнера
- Демистификация контейнеров внедрения зависимостей, Кай Сассновски (Видео)
Лучшие практики
ЦЕЛОВАТЬ
Простота – необходимое условие надежности.
- Эдсгер В. Дейкстра
- ПОЦЕЛУЙ - Будь проще, глупый
- ПОЦЕЛУЙ принцип
ЯГНИ
Тебе это не понадобится
- ЯГНИ
- Тебе это не понадобится
- ПОЦЕЛУЙ и ЯГНИ
- ЯГНИ, Культ Карго и Оверинжиниринг
СУХОЙ
«СУХОЙ – не повторяйся»
Каждое знание должно иметь единственное,
однозначное, авторитетное представительство внутри системы».
Суть DRY заключается в наличии одного источника истины. Речь идет не о лихорадочном искоренении дублирования в вашей кодовой базе.
Другой
- Лучшие практики TheCodingMachine
- Возвращайтесь раньше, возвращайтесь чаще
- Глобальные переменные — это плохо
- Тонкие контроллеры и толстые модели
- Что нужно и чего нельзя делать в PHP или «Программисты, которые мне не нравятся»
- Композиция важнее наследования
- Чистый код PHP
- Объектная художественная гимнастика
Модель-Представление-Контроллер
Большинство фреймворков PHP следуют той или иной структуре MVC. Теория проста:
Пользовательский интерфейс взаимодействует с представлением, которое передает информацию контроллеру. Затем контроллер передает эту информацию модели (слою), а модель передает информацию обратно контроллеру. Контроллер фактически стоит между представлением и моделью. (Брэндон Джеймс Сэвидж)
- MVC Википедия
- MVC проще или структура современного веб-приложения
- Обзор MVC
- MVC для новичков
- Лучшее понимание MVC
- Тонкие контроллеры, толстые модели
- MVC для продвинутых разработчиков PHP
- Лучшее понимание MVC
- MVC-модель 2
- Ответчик домена действия (ADR)
База данных
Основы базы данных
- База данных
- Модель базы данных
- 12 правил Кодда *
- Единственное правильное руководство по PDO
- Учебник по SQL
- Datenbank Grundlagen (немецкий)
- ERM
- Учебное пособие Datenbank-Grundlagen (немецкий)
- Учебное пособие Datenbank-Grundlagen: Primärschlüssel (немецкий)
Реляционная система управления базами данных (СУБД)
- MySQL
- МарияДБ
- Microsoft SQL-сервер
- Оракул
- SQLite
Книги базы данных
- Бесплатная книга по MySQL
- Высокопроизводительный MySQL: оптимизация, резервное копирование и репликация
Нормализация базы данных
Плохие программисты беспокоятся о коде. Хорошие программисты беспокоятся о структурах данных и их отношениях.
- Нормализация базы данных
- Первая нормальная форма (1НФ)
- Вторая нормальная форма (2НФ)
- Третья нормальная форма (3NF)
- Описание основ нормализации базы данных
- Der Königsweg: Normalisierung (немецкий)
- Normalisierung (немецкий)
- MySQL — Normalisierung (немецкий)
Подготовленные заявления
- Подготовленное заявление
- Подготовленные операторы - Защита от SQL-инъекций
- Подготовленные операторы PHP
Библиотеки баз данных
- CakePHP QueryBuilder
- Illuminate (Laravel) Построитель запросов
- Построитель запросов Laminas DB
- Phinx — миграция баз данных
Инструменты базы данных
- SQLyog Community Edition
- SQLyog — наиболее полный и простой в использовании графический интерфейс MySQL ($)
- MySQL рабочая среда
- ХайдиSQL
- СиквелПро
- Навикат ($)
- ДБивер
NoSQL
- NoSQL
- Redis (хранилище структур данных в памяти, используемое в качестве базы данных, кеша и брокера сообщений)
- MongoDB (документно-ориентированная база данных)
Стандарты
Следуйте общим соглашениям PHP для объектно-ориентированного кода и признанным лучшим отраслевым практикам: PSR-1, PSR-12, PSR-4.
- Группа взаимодействия PHP Framework
- Базовый стандарт кодирования PSR-1
- Руководство по стилю кодирования PSR-12
- Интерфейс регистратора PSR-3
- Автозагрузчик ПСР-4
- Стандартный скелет пакета PHP
- Скелетный репозиторий для пакетов Лиги.
- Семантическое управление версиями 2.0.0
- Ведите журнал изменений
Ошибки и обработка исключений
- Ошибки и исключения
- Рекомендации по обработке ошибок PHP
- Исключения
- Предопределенные исключения
- Исключения SPL
- Ошибки и обработка ошибок
Отладка
- Xdebug (отладчик)
- XAMPP — настройка XDebug для PHP 7
- XAMPP — настройка XDebug для PHP 8
Модульное тестирование
«Тестировщики программного обеспечения не создают программное обеспечение; они только делают их лучше». – Аноним
- PHPUnit — среда тестирования
- Юнит-тест, Интеграционный тест, Дым-тест, Регрессионный тест
- Модульное тестирование, интеграционное тестирование и функциональное тестирование
- Тестовая пирамида
- Путь Тестивуса (pdf)
- Тестирование базы данных
- Лучшие практики тестирования баз данных с помощью PHPUnit
- Тестирование базы данных с помощью PHPUnit
- Настройка базы данных в PHPUnit
- Правильный способ использования интеграционных тестов
- 100% покрытие кода с помощью автоматических тестов в приложениях Symfony.
- Электронная книга «Создание разработчиков через тестирование»
- Пишите тесты. Не слишком много. В основном интеграция
- Модульное тестирование переоценено
Документация
Не комментировать свой код, если вы программист, должно быть незаконно - @RiaCorpeno
PHPdoc предназначен для документирования вашего кода. Цель состоит в том, чтобы вы всегда добавляли комментарии к своим параметрам и возвращаемым типам в блоках документации, которые описывают, что они делают. Существует программное обеспечение, которое может читать ваш код и создавать документацию в формате pdf или HTML, описывающую все ваши классы и функции, а также то, что они делают и как их использовать. Как следует из названия, это система встроенной документации.
- Введение в PhpDoc
- Стандарт PHPDoc (PSR-5) для комментариев.
- PHPDoc вики
- Основной синтаксис PHPDoc
- Анатомия докблока
- Ваш первый комплект документации
Сессии
- PHP-сессии
- Обработка сеанса
- печенье
- Управление сеансами
- Подробности о PHP-сессиях
Текстовые переводы
- Интернационализация и локализация (i18n)
- Symfony: компонент перевода
- PoEdit Редактор переводов Gettext
Регулярные выражения
- Регулярное выражение
- Функции PCRE
- PHP Live Regex (живой тестер регулярных выражений для PHP)
- PHPrex (визуальный тестер регулярных выражений для PHP)
XML
- XML (расширяемый язык разметки)
- XSD (определение схемы XML)
API
RESTful API
- REST, RESTful, REST-подобные ресурсы API
- REST, Краткий справочник по RESTful API
- Рекомендации API
- 7 правил проектирования URI REST API
Мыло API
- SOAP (простой протокол доступа к объектам)
- Расширение SOAP Расширение SOAP можно использовать для написания серверов и клиентов SOAP.
- Веб-сервис
- WSDL (язык описания веб-служб)
- Реализация SOAP API с помощью PHP
Контроль версий
- Что такое контроль версий
- Гитхаб
- Ресурсы для изучения Git
- Введение в Git
- Git — простое руководство
- Книга о Git
Безопасность
Хороший программист смотрит в обе стороны, прежде чем перейти улицу с односторонним движением.
- Основы веб-безопасности: ускоренный курс
- Памятка по безопасности PHP
- PHP: правильный путь — безопасность
- XSS
- Самая последняя информация о безопасном программном обеспечении PHP
- Советы по безопасности для PHP-приложения
- Полный контрольный список безопасности PHP
- Лучшие практики безопасности PHP
Архитектура
- «Чистая архитектура» дяди Боба (книга)
- Чистая архитектура
- Шаблоны архитектуры корпоративных приложений - Мартин Фаулер
- Луковая архитектура. Часть 1.
- Путешествие к чистому коду и получению удовольствия — гибкость, TDD, шаблоны ООП, MVC, развязка фреймворка
Проектирование, управляемое предметной областью (DDD)
- ДДД для новичков
- Доменно-ориентированное проектирование: решение проблем в самом сердце программного обеспечения (Синяя книга)
- Реализация предметно-ориентированного проектирования (Красная книга)
- Разработка микросервиса, ориентированного на DDD
- Справочник по доменно-ориентированному проектированию (сводка шаблонов и определений DDD, PDF)
- Услуги в области предметно-ориентированного проектирования
- Создание услуг, которые вы не будете ненавидеть
- Проектирование, управляемое предметной областью (синяя книга DDD)
- Реализация доменно-ориентированного проектирования (Красная книга DDD)
Шестиугольная архитектура
- Архитектура портов и адаптеров
- Шестиугольная архитектура раскрыта
- Шестиугольная архитектура
- Алистер в «Шестиугольнике»
- Руководство по стилю проектирования объектов
- Расширенная архитектура веб-приложений
Функциональное программирование
- Функциональная архитектура – Ямы успеха – Марк Зееманн (Видео)
Непрерывная интеграция (CI) и непрерывная доставка (CD)
- Непрерывная доставка (книга)
- Непрерывная реализация PHP-проектов (Видео)
- Непрерывная интеграция, непрерывная доставка и непрерывное развертывание
- Что такое непрерывное развертывание?
- PHP и непрерывная интеграция с Travis CI
- Докер для PHP-разработчиков
Журналы
- PHP-архитектор (английский)
- PHPмагазин (немецкий)
- веб- и мобильный разработчик (немецкий)
Товары
- Официальный магазин слонов - Бутик elePHPant
- Товары PHPUnit
- PHP-стикеры
Сообщество / Новости
- @official_php
- р/PHP
- г/PHPhelp
- PHP на dev.to
- Хэшнод/php
- Переполнение стека
- Еженедельный бюллетень PHP
- Информационный бюллетень Freek.dev
- Сшиватель Почты
- Потрясающий информационный бюллетень по PHP
- JetBrains — ежемесячные аннотации PHP
- Внутреннее устройство PHP
- PHP-дайджест Романа Пронского (русский)
- Список блогов PHP
- PHP-конференции по всему миру
- Чат PHP на StackOverflow
- Когда состоится следующая встреча PHP?