SQL Between columns clause

ZF2: Восполняем недостаток стандартных классов по работе с базой данных

Во время создания первого приложения на ZF2 понадобилось сделать запрос в базу с условием

WHERE 123 BETWEEN column1 AND column2

но увы стандартный класс Zend\Db\Sql\Predicate\Between умеет искать только по колонке между значениями. Мне это показалось странным потому что все базы данных поддерживают синтаксис between одинаковый, и все они умеют искать между колонками, по крайней мере я не нашел обратного утверждения. Так вот эту досаду нужно исправлять.

Для этого мне пришлось узнать что такое автозагрузка по PSR. Вот не очень хотел я это знать. Совсем-совсем не хотел. Но в целом его задачи вполне понятны, хотя решение больше похоже на костыль, потому что зачем использовать лишний класс когда есть require? Но раз уж так повелось то и пусть, задачей было добавить другую фичу. Свой класс решил унаследовать от стандартного Between и немного изменить важную часть и вот что получилось:

Кинул я этот класс в папку vendor/HTMLandCMS/library/HTMLandCMS/Db/Sql/Predicate и добавил в автолоадер в init_autoloader.php в корне проекта, что возможно не правильно, а правильно было добавить куда-нибудь еще.


Zend\Loader\AutoloaderFactory::factory(array(
    'Zend\Loader\StandardAutoloader' => array(
        'autoregister_zf' => true,
        'namespaces' => array(
            'HTMLandCMS' => __DIR__ . '/vendor/HTMLandCMS/library/HTMLandCMS',
        ),
    )
));

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *