Начата работа по портированию php Symfony 2 validation library на версию 5.2 .
Мне очень понравился фреймворк Symfony 2, пробовал сделать на нем hello world - несколько монструозно, но очень гибко, качественно получается - код слабо связан, api гибок и продуман, есть средства по управлению сцеплением и связанностью кода, тема IoC раскрыта!
Но, к моему сожалению, проект полностью на 5.3 - namespaces, anonymous functions, spl и прочие крайне полезные вещи. Я бы с огромной радостью использовал такие средства в текущем проекте, но он не поддерживает 5.3 - только 5.2. Сидеть и фигачить свой велосипед не хочется, потому решил форкнуть кусочек Symfony 2 и портировать его на 5.2
Библиотека совместима с правилами работы Symfony - конфиг можно перенести без изменений. Разве что, нужно будет добавить неймспейсы, если вы их используете. Нет смысла ее использовать под 5.3, или если не хочется тянуть такой тяжелый фреймворк - он модульный, и использовать конкретный компонент отдельно достаточно просто.
При помощи либы можно валидировать любые сферические обьекты в вакууме - модели, классы, массивы, коллекции, отдельные элементы классов. Не нужно ничего наследовать и реализовывать какой-нибуть интерфейс, нет! Все логично отвязано от вашего кода, и "выпилить" при необходимости не составит проблем. Заложена поддержка интернационализации - messages можно менять хоть в конфигурационном файле, хоть руками писать. Есть поддержка кеширования - вовсе не обязательно каждый раз строить validation graph по конфигу, что может отбирать время у вашего приложения. Расширять библиотеку тоже просто, достаточно будет сделать два класса - Constraint && ConstraintValidator.
Забрать можно на github.com
Excellent post. I hadn’t thought of this. Thanks for the post!
ОтветитьУдалитьExcellent post. I hadn’t thought of this. Thanks for the post!
ОтветитьУдалить