Работа с Git

Инициализация проекта

git init

Клонирование проекта

git clone <url>

Добавление в индекс новых файлов или измененных файлов

git add *.txt
git add readme.txt

Показ состояния

git status

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

Лог медленных запросов в mysql

Иногда нам нужно, определить почему SQL обрабатывается медленно. Конечно, это может зависеть от конфигурации, от железа, от неправильной схемы и от неправильного SQL запроса. Один из инструментов определения это лог медленных запросов.

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

Профайлинг xDebug

Думаю многие программисты занимаются профайлингом. Это заметка для новичков как установить профайлер xDebug. 

Предполагается, что у вас:
- Операционная системы Ubuntu 12.04
- Установлен Apache2.
- Установлен PHP 5.3 или выше.
- Установлен xDebug.

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

HTTP протокол

HTTP (англ. HyperText Transfer Protocol — «протокол передачи гипертекста») — протокол прикладного уровня передачи данных.

В Википедии все об этом протоколе подробно расписано. Тут я коротко опишу основные моменты, чтобы время от времени обращаться как к шпаргалке.

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

Принципы SOLID

SOLID это аббревиатура пяти основных принципов дизайна классов в объектно-ориентированном проектировании — Single responsibility, Open-closed, Liskov substitution, Interface segregation и Dependency inversion.

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

Шаблон проектирования Стратегия

Есть компания, которая разрабатывает имитаторы машин. В игре представлен город, в котором ездят разные виды машин. Проектировщики создали один суперкласс, на основе которого объявляются конкретные виды машин.

Другими словами, у нас есть суперкласс Car и много дочерних класса, которые реализуют конкретные типы машин.

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

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

Отключаем "волшебные кавычки"

В настройках php, т.е в файле php.ini надо отключить следующее:
magic_quotes_gpc
magic_quotes_runtime

Если у вас нет доступа файлу php.ini отключить их можно в файле .htaccess:

php_flag magic_quotes_gpc 0
php_flag magic_quotes_runtime 0

Нам нужно их отключить, потому что они могут нам мешать. Начиная с версии 5.3.0 она считается устаревшей, а в 5.4.0 и вовсе удалена.

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

На заметку PHP программисту

1. Все элементы массива $_SERVER, начинающиеся со слова "HTTP_" - это HTTP заголовки. HTTP заголовки присылает клиент и верить им нельзя, так как их легко подделать. Их можно использовать дополнительно в справочных целях, которая, возможно, даст полезную информацию. 

2. Для логирования IP адреса пользователя использовать только REMOTE_ADDR, а всякие HTTP_X_FORWARDED_FOR, X_REAL_IP, VIA использовать только для дополнительной информации.

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

Источники PHP

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

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

Основы PHP

Отличие веб приложения от обычной программы

Начиная писать программу для веба, многие начинающие программисты сталкиваются с такой ошибкой.

Они рассматривают систему браузер-сервер, как обычное интерактивное приложение. Они думают, что вся информация которая доступна клиенту - доступна и программе, что программа все время находится в памяти.

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

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