Я ищу (небольшую) библиотеку, которая помогает мне полностью реализовать front controller для моего pet project и отправляет запросы на отдельные классы контроллеров. Классы переднего контроллера/диспетчера и контроллера должны быть полностью unittestable без отправки HTTP-запросов.
Требования
- PSR-0 совместимый
- устанавливается через собственный канал PEAR
- поддержка модульного тестирования:
- проверка правильности отправки HTTP-заголовков
- выхватывает выход для проверки в модульных тестах
- perferably PHPUnit вспомогательные методы для проверки вывода (для разных типов вывода, то есть HTML, XML, JSON)
- позволяет настраивать входящие HTTP-заголовки, параметры GET и POST и файлы cookie без фактического выполнения HTTP-запросов.
- должен использоваться автономно - без абстракции db, шаблонов и так, чтобы жирные рамки все обеспечивали
Фон
SemanticScuttle, приложение, которое обязательно получит надлежащую поддержку "C", является существующим рабочим приложением. Библиотека должна сочетаться с ней и должна работать с существующей структурой и классами. Я не буду переписывать его, чтобы он соответствовал требуемой структуре каталога.
Приложение уже имеет unittests, но на основе HTTP-запросов, которые делают их медленными. Кроме того, текущий старый способ иметь несколько десятков файлов .php
в каталоге www
не является наиболее управляемым решением, поэтому необходимо ввести правильные классы контроллеров. Всего будет около 20-30 контроллеров.
Предыдущий опыт
В целом, я был очень доволен Zend Framework для некоторых предыдущих проектов, но у него есть несколько недостатков:
- не устанавливается грушами, поэтому я не могу использовать его как зависимость в своих приложениях pear-installble.
- доступен только как одна загрузка, поэтому мне нужно вручную извлечь из него необходимые биты - для каждого отдельного обновления ZF.
- пока существует поддержка unit test для контроллеров ZF, в ней отсутствуют некоторые расширенные функциональные возможности утилиты, такие как утверждения для json, код состояния HTTP и проверки типа содержимого.
В то время как эти точки кажутся нулевыми, они важны для меня. Если я должен сам реализовать их, мне не нужно использовать внешнюю библиотеку, но напишите мои собственные.
То, что я не хочу
У StackOverflow есть миллион "что такое лучшая PHP-фреймворк" (1, 2, 3, 4, 5), но я не ищу их, но для конкретной библиотеки, которая помогает с контроллерами. Если это часть модульной структуры, отлично.
Я также знаю сайт сравнения фреймворков PHP, но это не помогает ответить на мой вопрос, так как мои требования там не указаны.
И я знаю, что я могу построить все это самостоятельно и придумать еще один микрокарт. Но почему? Их уже так много, и нужно просто иметь все, что мне нужно.