Локализация ошибок работы с формой в 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

Dependency Injection

Википедия:

Инверсия управления (англ. Inversion of Control, IoC) — важный принцип объектно-ориентированного программирования, используемый для уменьшения связанности в компьютерных программах.
Одной из реализаций IoC является внедрение зависимостей (англ. dependency injection). Внедрение зависимости используется во многих фреймворках, которые называются IoC-контейнерами.

Задачи DI:

  1. Ослабить зависимости
  2. Упрощение тестирования

Самое понятный разбор темы я увидел в слайдах:

 

Ссылки по теме:

Logout from «AuthType Basic»

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

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

10 самых распространённых ошибок при программировании на JavaScript

В добавку к записи «6 частых ошибок начинающих JavaScript-программистов» статья «10 самых распространённых ошибок при программировании на JavaScript»