Релиз Yii 1.1.14

Yii frameworkДолгожданный релиз Yii Framework 1.1.14 состоялся! Среди изменений есть много интересного. Например класс для хеширования и проверки пароля или поддержка redis в качестве сервера хранения кеша.

Обзор основных фич на хабре.
Полный changelog.
Забираем на Github.

Неполадки

Добрый день, многоуважаемое сообщество.

Приносим глубочайшие извинения за недоступность сайта phptime.ru в последние несколько дней. Технические проблемы с хостером устранены. Сайт работает в штатном режиме.

С уважением, администрация phptime.ru.

Github ограничил максимальный размер файла 100 мегабайтов

На конуне в блоге github новость о введении ограничения на максимальный размер файла в сто мегабайт.
С 24 июня пуш больших файлов будет отдавать reject для файлов размером больше сотни мегабайт и warning если файл больше пятидесяти мегабайт.

А Вы храните такие большие файлы на гитхабе?

PHP 5.5.0

PHPВ четверг, 20 июня 2013 года, вышел в свет PHP 5.5.0.
Предыдущая версия 5.4.0 вышла чуть более года назад — 1 марта 2012 года.

Что нового и интересного:
  • Zend Optimiser+ включён в состав дистрибутива в виде расширения OPcache extension.
  • Генераторы и coroutines.
  • Безусловная постобрабока после исключения — finally.
  • API для нормального хеширования паролей.
  • Разыменование массивов, сток и констант.
  • array_column. Вместо тысячи слов.
  • Получение полного имени класса (вместе с namespace) через конструкцию "::class".
    namespace app\models;
    class User{ /**/ }
    
    echo User::class; // \app\models\Users
  • В empty можно передавать функции и выражения. Всех давно раздражало отсутствие этой «фичи».
  • Поддержка нескалярных ключей в foreach.
  • foreachlist.
    $data = [[1, 2],[3, 4]];
    foreach ($data as list($a, $b)) {
        echo $a . ' - ' . $b;
    }

И много чего ещё. Полный список изменений можно посмотреть в официальном changelog.

Это отличная новость. Забираем, тестируем и радуемся новым фичам.

Перевод: Начало работы с PHPUnit, Composer и Omniture API

Оригинал: First Serious Attempts with PHPUnit, Composer, and the Omniture API

Мы работаем с системами аналитики веб-приложений от компании Omniture. У меня давно возникло желание запросить текущие данные из дата-центра Omniture для формирования некоторых внутренних отчетов. Omniture при составлении отчетов использует RESTful API, после непродолжительной работы с которым, я решил, что неплохо было бы написать специально для него библиотеку оболочки.

Недавно я прошел курс PHP Testing Bootcamp от Криса Хартджеса, и решил, что хочу написать библиотеку с помощью разработки через тестирование (TDD). Тут я понял, что сталкиваюсь с этим впервые. Кроме того, мне хотелось сделать библиотеку, совместимую с Composer. И для этого мне хватило уикенда. Когда выходные закончились, у меня на руках была почти законченная библиотека, которая требовала лишь внесения небольших изменений. Я многое узнал за эти два дня. Хочу поделиться с вами своим опытом.

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

Шаблонизаторы

Оригинал: On Templating

В последнее время я много работал с различными шаблонизаторами. Для последнего проекта требовалось повторное использование одного и того же набора шаблонов в приложениях JS и PHP (в сочетании с History API обеспечивается бесшовное динамическое поведение, но все еще имеющее сырой вид). На самом деле, сегодня есть только одно решение для такого рода задач — шаблонизатор Mustache. Я многому научился, работая с Mustache, и он действительно изменил мою точку зрения на сложные конструкции кода.

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

Почему я перестал следовать стандартам программирования

Оригинал: Why I Have Given Up on Coding Standards

Каждый разработчик знает, что у него должен быть стандарт программирования, принятый в компании. Каждый разработчик также знает, что нужно постараться, чтобы ваши собственные правила попали в стандарты компании. Каждый разработчик в тайне отчаивается уже в тот момент, когда начинает работу над новым проектом… Он боится тех стандартов, которые мог придумать какой-нибудь сумасшедший архитектор.

Лучше отбросить стандарты программирования и позволить себе пуститься в свободное плавание. Небольшие победы, которые вы получите в результате соответствия требуемым нормам, не сдвинут вас с места. Стандарты программирования являются лишь техническими прикрытием вашей задницы. Я не хочу того, что предлагается в nearForm. Я хочу, чтобы все думали сами.

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

Поведение и события

Оригинал: Behaviors & events

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

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

Каталог расширений yii1 и yii2 - yiigist.com

Приветствуем, уважаемые читатели!

Хорошие новости для тех, кто ждёт каталог расширений для yii2. Не дождавшись официального сайта, наша команда рада представить свой вариант — yiigist.com.

На данный момент каталог поддерживает только пакеты yii 1.* и yii 2.* опубликованные в packagist.org и расположенные на github.com. Это должно покрыть 80% всех потребностей.

Если вам потребуется новый функционал, или вы встретите ошибку на сайте, смело пишите в форму обратной связи или на почту support@yiigist.com

Надеемся, наше решение вам понравится!

С уважением, команда PHPTime. Приятного кодинга!

Ubuntu 14.04, PhpStorm и старый баг горячих клавиш

Приветстсвую, уважаемый читатель!

Сегодня хочу поделиться решением древнего бага, найденым на просторах интернета. Ранее, в ubuntu не работали горячие клавиши в русской раскладке. И вроде какбы этот баг пофиксили, но не везде. В приложениях на яве, например PhpStorm, горячие клавиши в русской расскладке по-прежнему не работали. С чем это связанно — неясно. Кто за это должен отвечать — непонятно.

Но бодрый пользователь гитхаба zheludkovm выпустиль патч, для исправления этого бага.

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