Локализация ошибок работы с формой в ZF2

Локализация ошибок работы с  формой в ZF2

Перевод ошибок в ZF2 делается так:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
//Application/Module.php
//...
use Zend\I18n\Translator\Translator;
use Zend\Validator\AbstractValidator;

class Module
{
    public function onBootstrap(MvcEvent $e)
        //...
        $translator = new Translator();
        $translator->addTranslationFile(
            'phpArray',
            'vendor/zendframework/zendframework/resources/languages/ru/Zend_Validate.php',
            'default',
            'ru_RU'
        );
        AbstractValidator::setDefaultTranslator(
            new \Zend\Mvc\I18n\Translator($translator)
        );

        //...

Файл vendor/zendframework/zendframework/resources/languages/ru/Zend_Validate.php содержит перевод ошибок. По необходимости, недостающие переводы пишу сюда.

Если в проекте используется captcha, то аналогично подключается файл Zend_Captcha.php, который лежит рядом.

Локализации всего приложения делается так:

1
2
3
4
5
6
7
8
9
//config/autoload/global.php
//...
return array(
//...
    'translator' => array(
        'locale' => 'ru_RU'
    ),
//...
);

update: например можно сразу добавить

1
2
3
  ...
  "Captcha value is wrong" => "Неверный код с картинки"
  ...

Логирование в php проектах

Логирование в php проектах

Начинаю выкладывать на github инструменты, который использую в своих проектах.

Первым выложил sLog — простой способ добавить логирование в свой php-проект.

Возможности

  • несколько способов логирования(syslog, file, mail);
  • несколько уровней важностей сообщений(Alert, Error, Debug, …);
  • логеры настраиваются независимо друг от друга
  • возможность быстро добавить свой логер

Логеры доступные «из коробки»

  • syslog — запись сообщения в syslog
  • file — запись сообщения в текстовый файл
  • mail — отправка сообщения по эл. почте

Подробнее смотрите на GitHub

Logout from «AuthType Basic»

Закон Янга:
Все великие открытия делаются по ошибке.

upd: это решение имеет большой недостаток — после выхода придется несколько раз ввести пароль. Правильное решение использовать ajax-запрос. Вот работающее решение. Плюс к этому я зачищаю сессию.

Руководство по кроссдоменному AJAX`у

Это вольный перевод статьи Cross Domain AJAX Guide
Ни для кого не секрет, что AJAX-запросы возможны только если совпадают порты, протоколы и домены отправителя запроса и его получателя. Это означает, что следующие запросы не будут работать:

  • запрос к https://foo.bar/target.php от http://foo.bar/source.php
  • запрос к http://sub.foo.bar от http://foo.bar
  • запрос к http://foo.bar:5000 от http://foo.bar


Попробуем обойти эти ограничения.

Писать меньше кода

В одноименном посте Mike Grouchy призывает к максимальному уменьшению объемов кодирования. Многие заблуждаются, приравнивая программирование к кодированию. А ведь это не так. Задача программиста решить какую то проблему. И чем элегантнее и проще будет решение тем лучше. Куча инструментов и фреймворков призваны уменьшить кол-во кода. Пользуйтесь этим. Еще одна великая штука — это рефакторинг, позволяющий делать код чище.

Технологии

  • Ухты, ухты, ухты. Выбор из списка с подсказками на чистом HTML5
  • JavaScript Garden — это постоянно пополняемая коллекции документации о самых необычных частях JavaScript. Здесь собраны советы, как избежать распространенных ошибок, а также проблем с производительностью.
  • Принято считать, что php — отстой. Почему? Ну просто принято и все. Посмотрите на современное состояние PHP. Сейчас это самый развивающийся язык программирования. Посмотрите на версию 5.4. Сколько там нововведений и вкусностей. В статье «PHP is much better than you think» приведено много доводов в поддержку PHP
  • Хорошо разжеванный способ защиты формы с помощью проверочного параметра(на PHP)
  • MVC is dead, it’s time to MOVE on. MOVE: Models, Operations, Views, and Events. Сравнение этих двух методологий, с перекосом в сторону MOVE
  • 5 простых мер для повышения безопасности в PHP-скриптах:управляйте сценариями установки(установили, удалили/закрыли доступ), инклюдьте только файлы с расширением «php»(не «inc»,…), обязательно шифруйте пароли и другую «интимную» информацию, отключите глобальные переменные, обязательно инициализируйте переменные и их значения.
  • Google JavaScript Style Guide — вроде бы и так все понятно

Разное

Как развить глубокие познания в программировании?

Сначала хотел написать о методах, которые описаны в многочисленных статьях. Но пожалуй остановлюсь на интерпретации мудрейшего изречения Йоги Бхаджан: «Если вы хотите чему-то научиться, прочитайте об этом, если вы хотите что-то понять, напишите об этом, если вы хотите освоить что-то, запрограммируйте это».

Технологии

  • 79 вещей которые должен знать любой программист — этакая «Энциклопедия Юных Сурков» для программистов. Пока собирался написать этот пост, оригинальная ссылка перестала работать. Вот тут есть часть статей из списка
  • Очередная статья про Вебсокеты. Приводится сравнение с Comet-технологией
  • Офигительная js-библиотка SlickGrid для работы с гридами(табличками)
  • Использование Traits в PHP 5.4
  • Storing Date/Times in Databases — как правильно хранить временные метки

Разное

  • Не умеешь кодировать? Воспользуйся Scroll Kit для создания своего сайта
  • Главного дизайнера Apple посвятили в рыцари