PHP frameworks

Как можно уже заметить в моём блоге, я уделяю дотошное внимание используемому языку и смыслу слов, поэтому термин фреймворк мне не нравится, вместо этого по-моему правильней говорить о каркасе или скелете приложения. Выбор современных каркасов для php достаточно широк. Меня всегда интересовала именно внутренняя структура запуска типичного приложения, поэтому постараюсь описать их именно с […]

Стильная почта с картинками на PEAR

PEAR — вполне неплохая php-библиотека, хоть и достаточно тяжёлая. Определённо и в других библиотеках имеются классы работающие с рассылкой почты. А рассылка почты системой должна как правило отличатся от обычной mail() функции. Более того, модули рассылок почты зарегистрированным пользователям обычно самые сложные. И вопрос не столько в том что я […]

Простейший backdoor на php

Backdoor — тайный ход, лазейка. Разумное человечество использовало всегда запасной случай что-бы не попасть впросак. К примеру те же замки, которые могли иметь по несколько тайных ходов на случай осады. В том же Гарри Поттере это придаёт много интриги сюжету, а вместе с ним и больше свободы, силы и возможностей […]

CSV — кодировки, импорт и экспорт

Comma Separated Values — типичный способ экспорта табличных данных, но далеко не стандартный в плане совместимости между Excel, php и другими источниками данных. Надо читать RFC, и пробовать всё на практике Самое наглядное — если вы думали что данные достаточно через запятую перечислить, то если вы сохраните простой текстовый файл с […]

Сортировка матрицы на PHP

Сортировку можно производить на стороне сервера в БД (самое логичное решение), но зачастую система не продумана заранее настолько и получается что данные приходится выдирать из разных таблиц, между которыми нет очевидных связей. Поэтому сортировать приходится через серверные технологии или даже через javascript на стороне клиента.. Средствами PHP насколько мне известно […]

Профилирование PHP проектов

Профилирование это анализ потребления ресурсов при работе программы. Этимология слова видимо связана с тем что профиль это некая граница, отсюда — поиск границ компонентов ПО в ресурсном пространстве. В моём случае программа это исполняемые php-скрипты, а ресурсы это время, память и нагрузка на процессор. Время исполнения не всегда связано с нагрузкой процессора. […]

Погружение в Sphinx. Часть 2

В первой части этой серии статей мы создали скелет приложения на laravel, создали необходимые модели и заполнили базу данными. Настало время перейти непосредственно к установке Sphinx’а и его настройке. Устанавливать Sphinx будем из исходников. Можно конечно для установки использовать пакетный менеджер вашего linux дистрибутива, но не стоит расчитывать на актуальность […]

Испытываем новые JSON возможности в MySQL 5.7

Несколько простых примеров, демонстрирующих работу новых возможностей для работы с JSON в MySQL 5.7. MySQL 5.7 получил новый нативный тип данных JSON и набор SQL функций для работы с ним. Сегодня мы продемонстрируем несколько простых примеров этих возможностей с испльзованием данных SF OpenData.

Типы данных в PHP: self и parent

Разберемся с типами self и parent, которые доступны в PHP с версии 5.0, однако не так широко используемые. В PHP начиная с версии 5.0 мы может указывать типы данных аргументов функций. С выходом новых версий количество возможных тайпхинтов только растет. Краткий ликбез:

Пять полезных инструментов для Composer

Composer — замечательный менеджер пакетов для PHP. Под катом пять пакетов которые пригодятся любому разработчику. Composition — пакет, который в рантайме позволяет получать информацию об установленных пакетах. Может быть полезным если логика вашего приложения зависит от установленных пакетов, различных их несовместимых версий, или же зависит от среды исполнения — например используется […]