Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ruphptherightway.pdf
Скачиваний:
20
Добавлен:
11.02.2015
Размер:
325.54 Кб
Скачать

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]