Хак лицензии продукта "Interspire"

Написана 28 Апреля, 2012 в 10:42. Автор: borN_free   |   Теги: interspire, hack Комментарии 7

Heading/Alt Text Данная статья является лишь примером, а не толчком к действию. Все что здесь делается, противоречит условиям лицензии. Компания Interspire была заранее уведомлена о данном способе обхода лицензии (Ticked Id: QHQ-802-70551)

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

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

Ubuntu. Notify-send сообщения + PHP

Написана 14 Августа, 2012 в 21:00. Автор: borN_free   |   Теги: ubuntu, php, gritter, notify-send Комментарии 1

Ubuntu PHP




Скажу сразу, статья навеяна данной и является ee продолжением/расширением, так что автор идеи вовсе не я.

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

Вот как они выглядят:

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

Операторы для работы с массивами в PHP

Написана 30 Июня, 2013 в 21:25. Автор: borN_free   |   Теги: php, array, operator Комментарии 1

PHP Array Operators

Вольный перевод статьи Array Operators in PHP: Interesting but Less Spoken




Операторы в PHP можно разбить на следующие категории:

  • арифметические
  • присваивания
  • битовые
  • сравнения
  • контроля ошибок
  • выполнения
  • инкремента/декремента
  • логические
  • строковые
  • массивов
  • операторы типов

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

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

Автозагрузка классов в PHP и PSR-0 Standard

Написана 11 Февраля, 2012 в 12:39. Автор: borN_free   |   Теги: autoloading, spl, psr-0 Комментарии 0

PHP AutoloadingДавайте условимся, что имеется файл Rectangle.php, содержащий определение класса Rectangle. Перед тем, как создать объект класса в любом месте проекта, вам необходимо подключить файл Rectangle.php, примерно так:





require "Rectangle.php";
$rect = new Rectangle(42, 25)

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

В этой статье мы пройдем через "историю" автозагрузки, со старых стандартов до PSR-0, который используется в таких PHP фреймворках как Lithium, Symfony, Zend и т.д. Читать полностью →

JMSSerializer. Пишем свой обработчик

Написана 22 Августа, 2013 в 16:44. Автор: borN_free   |   Теги: symfony, jmsserializer, handler Комментарии 8

  • Задача: написать API, отдающее продукты с вложенными картинками (URLs на них) в виде JSON
  • Используется: Symfony2, FOSRestBundle + NelmioApiDocBundle
  • Сериализация через JMSSerializer. В ответе сериализуются сущности (Doctrine Entity).

Необходимость в написании своего обработчика появилась из-за использования Sonata Media Bundle, а именно:

при сериализации сущности, вложенная в продукт сущность картинки (Sonata\Media) сериализуется без URL. Кто сталкивался с этим бандлом, тому известно, что сущность не имеет метода получения URL, а необходимо использовать MediaManager.

Код примерно такой:

$mediaService = $this->container->get('sonata.media.pool');
$provider = $mediaService->getProvider($media->getProviderName());
$format = $provider->getFormatName($media, 'small');
$url = $provider->generatePublicUrl($media, $format);

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