Zend Framework 2 Tool

Создание модулей, контролеров или событий при разработке проекта на базе ZendFramework2 влечет за собой создание кучи файлов. Данную проблему поможет решить ZFTool.

PHP Instragram Api

Наконец то дошли руки до instaliga.com, сейчас разрабатываем вторую версию. Instaliga – это WEB интерфейс для Instagram. Работающий без авторизации в Instagram. Решили переписать проект на ZF2. Для работы с API Instagram не хотелось изобретать велосипед, и нашел готовую либу PHP-Instagram-API. Так же эта либа есть для Composer на packagist.org. Пришлось оптимизировать некоторые запросы к API, добавил кеширование.

Софт который использую каждый день

Самым главным инструментов для меня является PhpStorm от JetBrains:

PhpStrom 7.1

Feedly как отдельное приложение для Mac OS

Что бы использовать WEB приложения как локальные, необходим FluidApp.

PHP + DOCX

DOCX формат это обычный ZIP архив, который можно открыть любым архиватором.

Структура docx

Структура docx

Алгоритм использования кодов HTTP заголовков

Алгоритм использования кодов HTTP заголовков

Карта Яндекс.Денег

Яндекс.ДеньгиПриехал домой и увидел конверт от Яндекс.Денги, с пластиковой картой MasterCard.

Карту можно оформить бесплатно, после получения карты почтой России, карту необходимо активировать на сайте Яндекс.Денги. И последним этапом будет получение ПИН кода. Для того, что бы получить ПИН код необходимо позвонить по номеру 8 (800)-555-25-30, оператор спросит ваше Ф. И. О., четыре последних цифры карты, и кодовое слово указанное при оформлении карты, далее вас переключат на автоматическую систему генерации ПИН кода.

Массовое копирование элементов ИБ в админке 1C Bitrix

Появилась необходимость копировать элементы внутри ИБ в другой раздел. В Битриске можно копировать только по одному элементу, и это не удобно когда надо скопировать более ста элементов в другой раздел.
Для начала нам надо добавить в список действий новое новое действие – «копировать».
Открываем файл — /bitrix/modules/iblock/admin/iblock_element_admin.php, находим строку 1895. Там объявляет массив с событиями:

$arActions = array(
	"delete" => GetMessage("MAIN_ADMIN_LIST_DELETE"),
	"activate" => GetMessage("MAIN_ADMIN_LIST_ACTIVATE"),
	"deactivate" => GetMessage("MAIN_ADMIN_LIST_DEACTIVATE"),
);

Баг в eAccelerator с open_basedir

Вчера настраивая eAccelerator на VPS столкнулся с проблемой связанной с open_basedir.

В лог записывались следующие ошибки:

PHP Warning: require(): open_basedir restriction in effect. File() is not within the allowed path(s);

PHP Warning: Unknown: open_basedir restriction in effect. File() is not within the allowed path(s);

Версия eAccelerator – 0.9.6.1

Решает этот баг исправлением одной строчки кода в исходнике eAccelerator – eaccelerator.c, строка 867:

if (php_check_open_basedir(realfilename TSRMLS_CC)) {

на

if (php_check_open_basedir(p->realfilename TSRMLS_CC)) {

После всего заново компилируем eAccelerator, переустанавливаем.

Удачи! ;-)

Вычисление возраста с помощью Zend_Date

< ?php

class Fr_Date extends Zend_Date
{
    public function getCountYear($date)
    {
        $date = new Fr_Date($date);

        $this->subYear($date->get(Zend_Date::YEAR))
             ->subMonth((int)$date->get(Zend_Date::MONTH) - 1)
             ->subDay((int)$date->get(Zend_Date::DAY) - 1);
 
        return $this->get(Zend_Date::YEAR);
    }
}