/** * Process all the models attached to a controller * and generate a fixture list. * * @param \Cake\Controller\Controller $subject A controller to pull model names off of. * @return void */ protected function _processController($subject) { $subject->constructClasses(); $models = [$subject->modelClass]; foreach ($models as $model) { list(, $model) = pluginSplit($model); $this->_processModel($subject->{$model}); } }
/** * test that paginate uses modelClass property. * * @return void */ public function testPaginateUsesModelClass() { $request = new Request('controller_posts/index'); $request->params['pass'] = array(); $response = $this->getMock('Cake\\Network\\Response', ['httpCodes']); $Controller = new Controller($request, $response); $Controller->request->query['url'] = []; $Controller->constructClasses(); $Controller->modelClass = 'Posts'; $results = $Controller->paginate(); $this->assertInstanceOf('Cake\\ORM\\ResultSet', $results); }
/** * Initializes the components and models a controller will be using. * Triggers the controller action and invokes the rendering if Controller::$autoRender * is true. If a response object is returned by controller action that is returned * else controller's $response property is returned. * * @param Controller $controller Controller to invoke * @return \Cake\Network\Response The resulting response object * @throws \Cake\Error\Exception If data returned by controller action is not an * instance of Response */ protected function _invoke(Controller $controller) { $controller->constructClasses(); $result = $controller->startupProcess(); if ($result instanceof Response) { return $result; } $response = $controller->invokeAction(); if ($response !== null && !$response instanceof Response) { throw new Exception('Controller action can only return an instance of Response'); } if (!$response && $controller->autoRender) { $response = $controller->render(); } elseif (!$response) { $response = $controller->response; } $result = $controller->shutdownProcess(); if ($result instanceof Response) { return $result; } return $response; }