/** * */ public function setUp() { $di = new DI(); $_SERVER['HTTP_HOST'] = 'example.com'; $_SERVER['REQUEST_METHOD'] = 'GET'; $_SERVER['REQUEST_URI'] = '/path?foo=aaa&bar=bbb'; $_GET = array('_url' => '/path', 'foo' => 'aaa', 'bar' => 'bbb'); $request = new Request(); $request->setDI($di); $this->request = $request; $response = new Response(); $response->setDI($di); $dispatcher = new Dispatcher(); $dispatcher->setDI($di); $this->dispatcher = $dispatcher; $cache = new BackendCache(new FrontendCache()); $di->set('viewCache', $cache); $config = new Config(array('cache' => array('enable' => true))); $di->set('config', $config); $eventsManager = new Manager(); $di->set('request', $request, true); $di->set('response', $response, true); $di->set('dispatcher', $dispatcher, true); $di->set('eventsManager', $eventsManager); $this->di = $di; $application = new Application(); $application->setDI($di); $application->setEventsManager($eventsManager); $this->application = $application; }
public function onBoot() { // TODO: Implement onBoot() method. $this->getDI()->setShared('dispatcher', function () { $di = $this->getDI(); $em = $di->getEventsManager(); $em->attach('dispatch', new DispatchListener()); $dispatcher = new Dispatcher(); $dispatcher->setDI($di); $dispatcher->setEventsManager($em); return $dispatcher; }); }
public function testModelBinding(IntegrationTester $I) { $dispatcher = new Dispatcher(); $dispatcher->setModelBinding(true); $dispatcher->setDI(Di::getDefault()); $I->assertInstanceOf('Phalcon\\Di', $dispatcher->getDI()); $I->haveServiceInDi('dispatcher', $dispatcher); // Model to test with $model = People::findFirst(); $dispatcher->setControllerName('test10'); $dispatcher->setActionName('view'); $dispatcher->setParams([$model->cedula]); $dispatcher->dispatch(); $I->assertInstanceOf('Phalcon\\Test\\Models\\People', $dispatcher->getReturnedValue()); $I->assertEquals($model->cedula, $dispatcher->getReturnedValue()->cedula); // Reset dispatcher $dispatcher = new Dispatcher(); $dispatcher->setDI(Di::getDefault()); $I->assertInstanceOf('Phalcon\\Di', $dispatcher->getDI()); $I->haveServiceInDi('dispatcher', $dispatcher); $dispatcher->setControllerName('test9'); $dispatcher->setActionName('view'); $dispatcher->setParams([$model->cedula]); try { $dispatcher->dispatch(); $I->assertTrue(false, 'Here must be the exception about passing non model to the controller action'); } catch (\Exception $e) { // PHP 5.x $I->assertEquals('Argument 1 passed to Test9Controller::viewAction() must be an instance of Phalcon\\Mvc\\Model, string given', $e->getMessage()); } catch (\TypeError $e) { // PHP 7.x $I->assertEquals('Argument 1 passed to Test9Controller::viewAction() must be an instance of Phalcon\\Mvc\\Model, string given', $e->getMessage()); } $dispatcher->setModelBinding(true); $dispatcher->dispatch(); $I->assertInstanceOf('Phalcon\\Test\\Models\\People', $dispatcher->getReturnedValue()); $I->assertEquals($dispatcher->getReturnedValue()->cedula, $model->cedula); }
<?php /** * Created by PhpStorm. * User: rcmonitor * Date: 07.07.15 * Time: 15:46 */ use Phalcon\Di; use Phalcon\Events\Manager; use Phalcon\Mvc\Dispatcher; use Phalcon\Mvc\Router; use Phalcon\Version; $di = new Di\FactoryDefault(); $oRouter = new Router(false); $oRouter->setDI($di); $oRouter->add('/:controller', array('controller' => 1, 'action' => 'index')); $oEventManager = new Manager(); $oEventManager->attach('dispatch:beforeDispatch', function () { return false; }); $oDispatcher = new Dispatcher(); $oDispatcher->setDI($di); $oDispatcher->setEventsManager($oEventManager); $oRouter->handle('/test'); $oDispatcher->setControllerName($oRouter->getControllerName()); $oDispatcher->setActionName($oRouter->getActionName()); $oDispatcher->dispatch(); echo $oDispatcher->getControllerClass() . PHP_EOL; echo Version::get() . PHP_EOL;
public function testLastController() { $this->specify("Dispatcher doesn't store the last controller", function () { $di = new Di(); $dispatcher = new Dispatcher(); $dispatcher->setDI($di); $di->set("dispatcher", $dispatcher); $dispatcher->setControllerName("failure"); $dispatcher->setActionName("exception"); $dispatcher->setParams([]); try { $dispatcher->dispatch(); expect(false)->true(); } catch (\Exception $e) { expect($e->getMessage())->equals("failure by exception"); expect($dispatcher->getLastController())->isInstanceOf("FailureController"); } }); }