- •Оглавление
- •Начало
- •Использование стабильной версии (5.5)
- •Встроенный веб-сервер
- •Установка на Mac
- •Установка в Windows
- •Vagrant
- •Стандарты написания кода
- •Основные моменты языка
- •Парадигмы программирования
- •Пространства имен
- •Стандартная Библиотека PHP (SPL)
- •Интерфейс командной строки
- •XDebug
- •Менеджер зависимостей
- •Composer и Packagist
- •PEAR
- •Практики написания кода
- •Основы
- •Дата и время
- •Design Patterns
- •Исключения
- •Уровни абстракции
- •Безопасность
- •Безопасность веб-приложений
- •Хэширование паролей
- •Фильтрация данных
- •Конфигурационные файлы
- •Использование глобальных переменных
- •Сообщения об ошибках
- •Тестирование
- •Тесто-ориентированная разработка
- •Поведенческо-ориентированная разработка
- •Дополнительные инструменты тестирования
- •Сервера и развертывание
- •Платформа, как сервис (PaaS)
- •Виртуальный или выделенный сервер
- •Виртуальный хостинг
- •Кэширование
- •Кэширование байткода
- •Кэширование объектов
- •Ресурсы
- •Из источника
- •Их следует читать в твиттере
- •Наставничество
- •PHP PaaS поставщики
- •Фреймворки
- •Компоненты
- •Сообщество
- •Пользовательские группы PHP
- •Конференции PHP
- •Советы по повышению эффективности PHP
- •Профилируйте ваш код для обнаружения узких мест
- •Обновите ваш PHP
- •Кэширование
- •Использование буферизации вывода
- •Не копируйте переменные без причины
- •Избегайте SQL запросов в цикле
- •Дополнительные руководства
- •Основы
- •Операторы сравнения
- •Условные операторы
- •Глобальное пространство имён
- •Строки
- •Тернарный оператор
- •Объявление переменных
- •Функциональное программирование в PHP
- •Шаблоны проектирования
- •Фабрика (англ. Factory)
- •Одиночка (англ. Singleton)
- •Фронт-контролер (англ. Front Controller)
- •Модель-представление-контроллер (англ. Model-View-Controller)
PHP: Правильный путь
Pavel Savinov
PHP: Правильный путь
Pavel Savinov
This book is for sale at http://leanpub.com/ruphptherightway
This version was published on 2014-02-03
This is a Leanpub book. Leanpub empowers authors and publishers with the Lean Publishing process. Lean Publishing is the act of publishing an in-progress ebook using lightweight tools and many iterations to get reader feedback, pivot until you have the right book and build traction once you do.
©2014 by Phil Sturgeon and Josh Lockhart
Tweet This Book!
Please help Pavel Savinov by spreading the word about this book on Twitter! The suggested hashtag for this book is #ruphptherightway.
Find out what other people are saying about the book by clicking on this link to search for this hashtag on Twitter:
https://twitter.com/search?q=#ruphptherightway
Оглавление
Начало . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
1 |
Использование стабильной версии (5.5) . . . . . . . . . . . . . . . . . . . . . . . . . . |
1 |
Встроенный веб-сервер . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
1 |
Установка на Mac . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
1 |
Установка в Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
2 |
Vagrant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
2 |
Стандарты написания кода . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
4 |
Основные моменты языка . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
6 |
Парадигмы программирования . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
6 |
Пространства имен . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
7 |
Стандартная Библиотека PHP (SPL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
8 |
Интерфейс командной строки . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
8 |
XDebug . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
9 |
Менеджер зависимостей . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
11 |
Composer и Packagist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
11 |
PEAR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
14 |
Практики написания кода . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
16 |
Основы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
16 |
Дата и время . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
16 |
Design Patterns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
17 |
Исключения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
18 |
Уровни абстракции . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
20 |
Безопасность . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
21 |
Безопасность веб-приложений . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
21 |
Хэширование паролей . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
21 |
Фильтрация данных . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
22 |
Конфигурационные файлы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
24 |
Использование глобальных переменных . . . . . . . . . . . . . . . . . . . . . . . . . . |
24 |
Сообщения об ошибках . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
25 |
ОГЛАВЛЕНИЕ |
|
Тестирование . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
27 |
Тесто-ориентированная разработка . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
27 |
Поведенческо-ориентированная разработка . . . . . . . . . . . . . . . . . . . . . . . . |
29 |
Дополнительные инструменты тестирования . . . . . . . . . . . . . . . . . . . . . . . |
30 |
Сервера и развертывание . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
31 |
Платформа, как сервис (PaaS) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
31 |
Виртуальный или выделенный сервер . . . . . . . . . . . . . . . . . . . . . . . . . . . |
31 |
Виртуальный хостинг . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
32 |
Кэширование . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
34 |
Кэширование байткода . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
34 |
Кэширование объектов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
34 |
Ресурсы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
37 |
Из источника . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
37 |
Их следует читать в твиттере . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
37 |
Наставничество . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
37 |
PHP PaaS поставщики . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
38 |
Фреймворки . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
38 |
Компоненты . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
39 |
Сообщество . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
40 |
Пользовательские группы PHP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
40 |
Конференции PHP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
40 |
Советы по повышению эффективности PHP . . . . . . . . . . . . . . . . . . . . . . . |
41 |
Профилируйте ваш код для обнаружения узких мест . . . . . . . . . . . . . . . . . . |
41 |
Обновите ваш PHP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
41 |
Кэширование . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
42 |
Использование буферизации вывода . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
42 |
Избегайте написания наивных геттеров и сеттеров . . . . . . . . . . . . . . . . . . . . |
42 |
Не копируйте переменные без причины . . . . . . . . . . . . . . . . . . . . . . . . . . |
43 |
Избегайте SQL запросов в цикле . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
44 |
Дополнительные руководства . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
44 |
Основы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
45 |
Операторы сравнения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
45 |
Условные операторы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
46 |
Глобальное пространство имён . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
47 |
Строки . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
48 |
Тернарный оператор . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
52 |
Объявление переменных . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
53 |
Функциональное программирование в PHP . . . . . . . . . . . . . . . . . . . . . . . . |
54 |
ОГЛАВЛЕНИЕ |
|
Шаблоны проектирования . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
57 |
Фабрика (англ. Factory) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
57 |
Одиночка (англ. Singleton) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
58 |
Фронт-контролер (англ. Front Controller) . . . . . . . . . . . . . . . . . . . . . . . . . . |
61 |
Модель-представление-контроллер (англ. Model-View-Controller) . . . . . . . . . . . . |
61 |