- •Оглавление
- •Начало
- •Использование стабильной версии (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)
Основы |
52 |
12/**
13* Вывод:
14*
15* Example of string
16* spanning multiple lines
17* using heredoc syntax.
18* Variables are parsed.
19*/
•Heredoc² ³
Тернарный оператор
Тернарный оператор (‘(expr1) ? (expr2) : (expr3)’) используется для удобства объединения кода в одну строку, но часто избыточен. Хоть он может быть вложенным, рекомендуется его использовать один на строку.
1<?php
2$a = 5;
3 |
echo ($a == 5) ? 'yay' : 'nay'; |
4 |
|
5 |
vs. |
6 |
|
7 |
//Вложения |
8$b = 10;
9 |
echo ($a) ? ($a == 5) ? 'yay' : 'nay' : ($b == 10) ? 'excessive' : ':('; |
// Вл\ |
10 |
ожения трудно читаемы. |
|
Используя ‘return’ будьте внимательны:.
1<?php
2$a = 5;
3 |
echo ($a == 5) ? return true : return false; |
// этот пример будет выдавать соо\ |
|
4 |
бщение об ошибке |
|
|
5 |
|
|
|
6 |
vs. |
|
|
7 |
|
|
|
8 |
$a = 5; |
|
|
9 |
return ($a == 5) ? 'yay' : 'nope'; |
// этот пример вернёт 'yay' |
|
• Тернарный оператор²
² ³http://www.php.net/manual/ru/language.types.string.php#language.types.string.syntax.heredoc ²http://php.net/manual/ru/language.operators.comparison.php
Основы |
53 |
Объявление переменных
Время от времени разработчики пытаются сделать свой код “чище” использую предопределённые переменные. Обычно это только ведёт к увеличению используемой памяти. Для примера сообщите какой-нибудь переменной строку размером 1мб, в результате вы скопируете это дважды.
1<?php
2 |
$about = 'Очень большой текст'; |
// будет использоваться 2MB памяти |
3 |
echo $about; |
|
4 |
|
|
5 |
vs. |
|
6 |
|
|
7 |
echo 'Очень большой текст'; |
// а тут всего лишь 1MB |
• Советы по оптимизации (en)²
²https://developers.google.com/speed/articles/optimizing-php
