wdalmut / frankie
0.0.6
2017-07-16 10:28 UTC
Requires
Requires (Dev)
This package is not auto-updated.
Last update: 2024-09-14 16:34:41 UTC
README
特性
Frankie是一个专注于注解的微型框架。目标是使用注解来完成框架中的几乎所有操作。
- 注解路由(路由)
- 注解注入(依赖项)
- 注解请求流程(应用流程)
Frankie主要是一个用于创建RESTful应用和微服务的框架。
更多详情请访问文档
动手实践!
目标是专注于操作,并使用注解来附加操作前和操作事件
<?php /** * @Before(targetClass="HttpAuth", targetMethod="basic") * @After(targetClass="Serializer", targetMethod="toJson") */ class MyController { /** * @Inject * @var Zend\EventManager\EventManager */ private $eventManager; /** * @Route("/my/path/{id}", methods={"GET"}) * @Before(targetClass="MyHook\ThisOne", targetMethod="count") * @Before(targetClass="Stopwatch", targetMethod="start") * @After(targetClass="Stopwatch", targetMethod="stop") */ public function get(Request $request, Response $response, $id) { // ... $this->eventManager->trigger("mark-it", $element); // ... } }
使用SpecBDD - PHPSpec进行测试
<?php namespace spec; use PhpSpec\ObjectBehavior; use Prophecy\Argument; use Zend\EventManager\EventManager; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; class MyControllerSpec extends ObjectBehavior { function let(EventManager $em) { $this->setEventManager($em); } function it_is_initializable() { $this->shouldHaveType('MyController'); } function it_should_trigger_the_mark_event( Request $request, Response $response, EventManager $em ) { $em->trigger("mark-it", Argument::Any())->shouldBeCalledTimes(1); $this->get($request, $response); } }