Не в моих правилах давать советы не зная задачи. Могу только в общем описать свою ситуацию и рассказать почему нам не подходят известные мне готовые решения. У нас за многие годы сложились свои наработки, которые кочуют из проекта в проект. В основном это адаптеры и врапперы под недружественное ООП-окружение, которое PHP предоставляет as is. Сюда же относятся достаточно устойчивые интерфейсы типа фронт-контроллера, контроллеров, acl, различных фабрик, валидаторов, request/response, типовых реестров, базы persistent и тп. Все это у нас за устойчивыми интерфесами, нам без этого никак - мы их мокаем при тестах логики более высокого уровня иначе слишком тяжелые фикстуры получаются. У нас очень мало классов предметной области кочуют из проекта в проект. Во-первых это завязано на специфику наших проектов. Во-вторых, так как у нас TDD, нам все примочки в виде кодогенерации по базе или масса конфигов, увеличивающие порядок неподконтрольных инвариантов и все это без тестов просто не приемлимо. По одной простой причине - это трудно контролировать и все равно нуждается в тестировании. А охватить все инварианты тестами это ~ 80% от кода, так что нам любая кодогенерация - просто тьфу, по сравнению с надежным тестом. Последнее и самое весомое - все что я видел работает по принципу протокола. То есть, нам пытаются навязывать как делать, вместо того, что бы дать возможность выбирать где делать. Из-за этого практически все исследованные мною фв просто не поддаются тестированию прикладного уровня. На самом деле хороший фв - это просто набор реализаций паттернов и ничего большего не требуется. У нас так и получается на практике. Все остальное - частности, которые никакой фв не в силах удовлетворить.