Рубрика «php» - 188

в 17:51, , рубрики: forms, php, symfony, symfony 2, метки: , ,

Прелюдия

Формы, возможно, один из самых сложных компонентов Symfony2. Но за всей его сложностью скрывается поразительно гибкая архитектура, предоставляющая широкие возможности для расширения. Мы, как разработчики, можем добавлять (и изменять) типы полей форм (Form Type), использовать слушатели (Event Listeners), преобразователи данных (Data Transformers) и расширения типов (Type Extensions). О последних сегодня и поговорим.
Читать полностью »

В жизни даже самого «махрового» IT-шника порой наступает момент, когда нужно не только вылезти из своей берлоги на улицу, но целиком перенести себя на новое место жительства. Обычный человек в таких случаях вооружается Интернетом и прочёсывает сайты недвижимости в поисках подходящих вариантов, которые отмечаются на карте, выписываются или распечатываются, а затем планомерно прозваниваются. Если наступает конец цикла, а задача ещё не выполнена — goto line 1… А на каком-то этапе человеку это надоедает и он идёт в агенство.

Вот и в моей жизни пришло время для переезда, но проведя несколько дней за такой рутинной деятельностью я вспомнил, что незря ношу бороду есть такой чудесный сервис, как Яндекс.Карты, и у них есть не менее чудесное API. Посидев одно утро и скомбинировав всё с простейшим граббером на PHP и XPath я получил такую вот красочную карту, где разными маркерами можно отмечать объекты (квартиры) по любому из критериев, или просто одним взглядом оценить, какие из них ближе к желаемому месту дислокации (в моём случае это было метро):

Снимок экрана

Читать полностью »

в 9:53, , рубрики: php, метки:

Про обработку сигналов в PHP уже было написано несколько статей. Но там эта тема описана лишь косвенно.

Сразу оговорюсь, что я знаю, что уже вышел PHP 5.5 и 5.2 уже морально устарел, но задачу нужно было решать именно на PHP 5.2. Для тех счастливчиков, кто использует более новую версию PHP я тоже напишу, но ближе к концу статьи.

Обработка pcntl-сигналов в PHP делается путем передачи функции-обработчика в функцию pcntl_signal(), при этом на каждый сигнал можно повесить только один обработчик. Каждый следующий обработчик будет заменять предыдущий, при этом никаких нотайсов не будет.Читать полностью »

В проекте, над которым я работаю, мы используем огромное количество сторонних библиотек. Многие из них — адаптеры для различных сервисов. Что их объединяет, это то, что они работают с сетью. Json поверх http, soap поверх http, какие-то свои протоколы поверх http. Т.е. все так или иначе используют http. И как ни удивительно, мало кто из них пользуется преимуществами его последней версии. Я не поленился заглянуть в википедию, прошло ровно 14 лет как была принята спецификация http 1.1. И потому я решил обратиться с призывом:
image

Да, речь пойдет о keep alive. Суть в том, что, начиная с http 1.1, клиент и сервер могут договориться не закрывать установленное tcp-соединение после завершения запроса, а переиспользовать его для следующих запросов. Это нужно потому, что на установку соединения требуется время. Иногда это время больше, чем время самого запроса. И если все серверы уже давным-давно такую возможность поддерживают, а все браузеры и большинство других клиентов её используют, то у разработчиков различных библиотек для популярных языков программирования здесь почему-то пробел.Читать полностью »

Наверное, многие участвовали в играх, где нужно было угадать фильм или сериал по кадру из него. Очень часто такие топики-игры встречаются на форумах. А недавно мне показали сайт, целиком посвящённый угадыванию аниме по кадру. С автоматизированной игрой: с учётом очков, с вариантами ответов.

После нескольких игр мой интерес как анимешника был удовлетворён, и во мне проснулся айтишник. Стало интересно, а какая есть на сайте защита от читерства. В ходе короткого анализа, оказалось, что с защитой от читерства всё печально, взломать игру можно даже с начальными знаниями JS. Тут бы и погаснуть моему айтишному интересу, но нет, я задумался, а что нужно вообще сделать, чтобы защитить от читеров подобную игру. Так и появилась эта статья.
Игра «угадай аниме по кадру» – защита от читерства
(картинка для привлечения внимания)

Дальше я расскажу о найденных в игре слабых местах и о методах защиты от читерства для подобных игр, которые мне удалось придумать.
Читать полностью »

В PHPStorm есть встроенная возможность подключения автодополнения имен таблиц и полей в редакторе кода, однако не все об этом знают.

Автодополнение SQL кода прямо в редакторе PHPStorm

Если у вас код отображается примерно так, то прошу под кат.
Читать полностью »

Вот и вышел финальный релиз PHP 5.5.0. Кратко о новых возможностях можно прочитать в посте на официальном сайте или «Переведенное на русский».

На хабре уже были статьи о некоторых новых возможностях PHP 5.5.0, такие как «Coroutines в PHP и работа с неблокирующими функциями» и «В PHP 5.5 возможно появится Finally»
В данной статье будет затронута одна из новых возможностей PHP 5.5.0 "API хэширования паролей".Предоставляющий застрахованные от ошибок разработчиков и более простые в использовании высокоуровневые функции для генерации и проверки валидности паролей по хэшам. Основное отличие нового API в том, что он берёт на себя генерацию надёжных хэшей, скрывая от разработчика операции ручного указания salt-а и выбора алгоритма хэширования (по умолчанию используется Bcrypt). Создание хэша сведено к выполнению "$hash = password_hash($password, PASSWORD_DEFAULT);", а проверка к вызову «password_verify($password, $hash)». В качестве причины внедрения нового API послужило безалаберное отношение многих разработчиков к генерации salt-ов и повсеместный выбор нестойких к перебору алгоритмов хэширования.

Будут рассмотрены константы, функции и код использующий их.
Читать полностью »

Привет!
Сегодня меня посетила идея об альтернативной авторизации на сайтах при помощи привязанных к аккаунту мобильных девайсов.
Зачем это нужно?
Ну например, если пользователю лень вбивать пароли или для использования в двухфакторной авторизации, или для восстановления пароля и тд.
Собственно о способах применения данного механизма на продакшене я не задумывался. Основная цель — это реализация, а дальше посмотрим.
Читать полностью »

Всё началось с сообщения «Тут?» от моего друга в одной из социальных сетей. «Яндекс нашёл на сайте вирусы. Глянешь?» «Отчего ж не глянуть», подумал я.
Так началось моё трёхдневное исследование скриптов, дабы понять суть взлома и что там вообще происходит.
Читать полностью »

в 9:19, , рубрики: php, php 5.5, метки:

Вчера команда разработки PHP объявила об официальном выходе PHP 5.5.0!

Предыдущий мажерный релиз 5.4 был выпущен чуть больше года назад (1 марта 2012 года), а 5.3 аж в 2009 году (30 июня) — легко заметить, что разработка PHP наращивает темп!

Кратко о новых возможностях можно прочитать в посте на официальном сайте.

Тем кому интересно больше подробностей и на русском прошу под кат.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js