/** * @param $requestUri * @param string $method * @param array $post * @return Application */ public function run($requestUri, $method = 'GET', array $post = []) { $_SERVER['REQUEST_URI'] = $requestUri; $_SERVER['REQUEST_METHOD'] = $method; $_POST = $post; if ($this->getCwd()) { $cwd = getcwd(); chdir($this->getCwd()); } $puppy = new Application(new Config($this->getEnv()), Request::createFromGlobals()); $puppy->initModules((new ModuleFactory())->createFromApplication($puppy)); $puppy->run(); unset($_SERVER['REQUEST_URI']); unset($_SERVER['REQUEST_METHOD']); $_POST = []; if (isset($cwd)) { chdir($cwd); } return $puppy; }
<?php use Puppy\Application; use Puppy\Config\Config; use Puppy\Module\ModuleFactory; use Symfony\Component\HttpFoundation\Request; require_once '../vendor/autoload.php'; /** * Puppy runs for you with happiness! * * @author Raphaël Lefebvre <*****@*****.**> * @doc https://github.com/Raphhh/puppy */ chdir(dirname(__DIR__)); $puppy = new Application(new Config(getenv('APP_ENV')), Request::createFromGlobals()); $puppy->initModules((new ModuleFactory())->createFromApplication($puppy)); $puppy->run(); //good dog! :)
public function testInitModulesWithProxy() { $this->assertTrue(empty($GLOBALS['module_mock_init_1'])); $this->assertTrue(empty($GLOBALS['module_mock_init_2'])); $application = new Application(new \ArrayObject(), new Request()); $application->initModules(new ModulesLoaderProxy(new ModulesLoader(), new Pool())); $this->assertFalse(empty($GLOBALS['module_mock_init_1'])); $this->assertFalse(empty($GLOBALS['module_mock_init_2'])); unset($GLOBALS['module_mock_init_1']); $this->assertTrue(empty($GLOBALS['module_mock_init_1'])); unset($GLOBALS['module_mock_init_2']); $this->assertTrue(empty($GLOBALS['module_mock_init_2'])); }