На PHP Time доступна авторизация через «Вконтакте»

Отличная новость для людей, недолюбливающих регистрации.

Отныне на нашем сайте доступна авторизация через «Вконтакте».

Скоро добавим и другие социальные сети.

Также плагин авторизации доступен в каталоге расширений LiveStreet «Авторизация через социальные сети Lite».

Тестируем, пользуемся, радуемся!

Ловушки PHP

Оригинал: PHPitfalls

После прочтения статьи Securing PHP, написанной Джеймсом Каннингемом, я подумал, что неплохо бы собрать воедино несколько тезисов об использовании PHP. Имейте в виду, что я не эксперт по вопросам безопасности. Однако эта статья содержит несколько отправных точек по предотвращению заражения экcплоитами, повышению защищенности PHP-приложений и прочим вещам, которые я считаю самыми полезными из своей практики. Ваша оценка может (и, вероятно, будет) колебаться: нормально воспринимать все с недоверием. И это не зависит от того, где вы прочтете такую информацию — здесь или в другом месте. Это не столько контрольный список конкретных действий, сколько набор правил, на которые надо обратить внимание при программировании.

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

Недоступность сайта 28 июня

Многоуважаемое сообщество.

Приносим свои извинения за недоступность сайта 28 июня с 12:28 до 13:24 по МСК. Посещаемость нашего сайта превысило пропускную способность. Верный показатель популярности проекта. Сейчас все восстановлено и работает в штатном режиме.

Надеемся это не причинило Вам неудобств.

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

Getter’ы и Setter’ы — магия, которая должна знать свое место

Оригинал: Getters and Setters — a Magic That Should Know Its Place

Джозеф Кроуфорд, один из моих читателей, прочитал статью о том, как я не люблю писать getter’ы и setter’ы и предположил, что я могу использовать волшебные методы __get и __set.
Я скажу вам, почему это не очень хорошая идея, использовать их обычным способом. Кроме того, я собираюсь поведать вам историю, где они действительно оказались полезными, — речь пойдет о создании статических типов в PHP (динамический язык).
Для тех, кто не знаком с методами __get и __set — это два «магических» метода, которые работают следующим образом:
class Animal {
  function __get($property) {
    //...
  }

  function __set($property, $value) {
    //...
  }
}

$cow = new Animal;
$cow->weight = '1 ton'; // same as $cow->__set('weight', '1 ton')
print $cow->weight;     // same as print $cow->__get('weight');


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

Google Drive on Linux

google driveLinux пользователи — если вам хочется большей целостности в плане софта (google chrome, google docs, google drive, etc), пожалуйста подпишите эту петицию, в которой заявлена просьба для Google на создание приложения Google Drive под Linux.

Узнать подробности и подписать петицию Вы можете здесь: http://www.change.org/en-GB/petitions/google-create-a-native-linux-google-drive-application

Это займет не больше минуты. Но пользу будет приносить ещё очень долго.

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. И для этого мне хватило уикенда. Когда выходные закончились, у меня на руках была почти законченная библиотека, которая требовала лишь внесения небольших изменений. Я многое узнал за эти два дня. Хочу поделиться с вами своим опытом.

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

Отправка email уведомлений в Yii2

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

Сегодня я хотел бы рассказать о новом расширении для отправки различных email уведомлений в yii2. Это простая обертка над PHPmailer. Суть её заключается в работе с двумя объектами — Postman (почтальон) и Letter (письмо).

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