Библиотека фронт-контроллера PHP с поддержкой модульного тестирования

Я ищу (небольшую) библиотеку, которая поможет мне безупречно реализовать фронт-контроллер для моего любимого проекта и отправляет запросы на один классы контроллеров. Классы фронтального контроллера / диспетчера и контроллера должны быть полностью тестируемыми без отправки HTTP-запросов.

Требования

  • PSR-0 совместимость
  • возможность установки через собственный канал PEAR
  • для модуля тестирование:
    • проверка правильности отправки заголовков HTTP.
    • захват вывода для проверки в модульных тестах
    • предпочтительно вспомогательные методы PHPUnit для помощи в проверке вывода (для различных типов вывода, например HTML, XML, JSON)
    • позволяет настраивать входящие HTTP-заголовки, параметры GET и POST и файлы cookie без фактического выполнения HTTP-запросов
  • необходимо использовать автономно - без абстракции db, шаблонов и так, чтобы все фреймворки Fat обеспечивали

Background

SemanticScuttle, приложение, которое обязательно получит надлежащую поддержку "C", является существующим, работающим приложением. Библиотека должна сливаться с ней и работать с существующей структурой и классами. Я не буду переписывать его, чтобы он соответствовал требуемому макету директории для конкретной платформы.

В приложении уже есть модульные тесты, но они основаны на HTTP-запросах, которые замедляют их. Кроме того, текущий старый способ размещения нескольких десятков файлов .php в каталоге www не является самым управляемым решением, поэтому необходимо ввести соответствующие классы контроллеров. Всего будет около 20-30 контроллеров.

Предыдущий опыт

В целом, я был очень доволен Zend Framework для некоторых предыдущих проектов, но у него есть несколько недостатков:

  • не устанавливается в грушу, поэтому Я не могу использовать его в качестве зависимости в моих приложениях, устанавливаемых на грушу
  • , которые доступны только в виде одной полной загрузки, поэтому мне нужно вручную извлечь из него необходимые биты - для каждого отдельного обновления ZF.
  • в то время как для ZF существует поддержка модульных тестов. контроллеры, в нем отсутствуют некоторые дополнительные служебные функции, такие как утверждения для json, кода состояния HTTP и проверки типов содержимого.

Хотя эти моменты кажутся придирками, они важны для меня. Если мне придется реализовать их сам, мне не нужно использовать внешнюю библиотеку, а писать свою.

Чего я не хочу

В StackOverflow есть миллион вопросов «какая инфраструктура PHP лучшая» ( 1 , 2 , 3 , 4 , 5 ), но я ищу не те, а специальная библиотека, которая помогает с контроллерами. Если это часть модульной структуры, хорошо.

Я также знаю веб-сайт сравнения PHP-фреймворков , но это не помогает ответить на мой вопрос, поскольку мои требования там не перечислены.

И я знаю, что я могу построить все это самостоятельно и изобрести другую микрофреймворк. Но почему? Их уже так много, и у одного просто должно быть все, что мне нужно.

Вопросы по теме

12
задан Community 23 May 2017 в 12:09
поделиться