Example #1
0
 /**
  * Calls vidget and return its rendered output
  * @param $vidgetName string name of the vidget to load
  * @return string
  */
 private function getVidgetContent($vidgetName, array $appData)
 {
     $className = VIDGET_NAMESPACE . '\\' . $vidgetName;
     $vidgetTemplateName = $this->vidgetViews[$vidgetName];
     $prefix = \Utility\DependencyInjectionStorage::getInstance()->getPrefix();
     return (new $className())->{$prefix . 'render'}($appData, $vidgetTemplateName);
 }
 public function testSuccessfulCall()
 {
     $obj = new \Helpers\DummyMagic();
     \Utility\DependencyInjectionStorage::getInstance()->setPrefix('DI_');
     \Utility\DependencyInjectionStorage::getInstance()->addInstance($obj);
     $dateObj = (new \DateTime())->setDate(2015, 1, 1)->setTime(10, 01);
     \Utility\DependencyInjectionStorage::getInstance()->addInstance($dateObj);
     \Utility\DependencyInjectionStorage::getInstance()->addInstance(new \Helpers\ObjVarsTest());
     $this->assertEquals($dateObj, $obj->DI_foo(array(1)));
 }
Example #3
0
 public function testDumy()
 {
     $m = new DummyMagic();
     $m->foo(array(1), new \DateTime());
     $inject1 = new \DBMappers\AppointmentItem();
     DependencyInjectionStorage::getInstance()->addInstance($inject1);
     $inject2 = (new \DateTime())->setDate(2010, 1, 1);
     DependencyInjectionStorage::getInstance()->addInstance($inject2);
     $inject3 = (new \DateTime())->setDate(2013, 1, 1);
     DependencyInjectionStorage::getInstance()->addInstance($inject3);
     $inject4 = new \DBMappers\EmpItem();
     DependencyInjectionStorage::getInstance()->addInstance($inject4);
     DependencyInjectionStorage::getInstance()->setPrefix('DII_');
     $m->DII_foo(array(2));
     $m->DII_bar();
     $m->DII_baz();
     print_r(DependencyInjectionStorage::getInstance()->getRegisteredInstance(get_class($inject1)));
 }
Example #4
0
error_reporting(E_ALL);
date_default_timezone_set('Europe/Kiev');
// change if needed
require_once "include/constants.php";
require_once "include/autoload.php";
// state templates: [state] => [template file name]
$templateMap = array(\Core\Application::STATE_LOGIN => "LoginTemplate.html", \Core\Application::STATE_BROWSE => "BrowseTemplate.php", \Core\Application::STATE_EMPLOYEE => "EmployeeTemplate.php", \Core\Application::STATE_EMPLOYEE_LIST => "EmployeeListTemplate.php", \Core\Application::STATE_BOOK => "BookTemplate.php", \Core\Application::STATE_DETAILS => "DetailsTemplate.php", \Core\Application::STATE_DETAILS_RETURN => "DetailsReturnTemplate.html", \Core\Application::STATE_REDIRECT => null);
// vidget templates: [vidget class name (like in data-vidgets attribute)] => [template file name]
$vidgetViews = array('LoginForm' => 'LoginForm.php', 'Navigation' => 'Navigation.php', 'Informer' => 'Informer.php', 'Messages' => 'Messages.php', 'Calendar' => 'Calendar.php', 'SideMenu' => 'SideMenu.php', 'Error' => 'Error.php', 'EmpListMessage' => 'EmpListMessage.php', 'Employee' => 'Employee.php', 'EmployeeList' => 'EmployeeList.php', 'PeriodNavigator' => 'PeriodNavigator.php', 'Book' => 'Book.php', 'DetailsCaption' => 'DetailsCaption.php', 'Details' => 'Details.php');
$registry = new \Core\Registry();
$registry->set(REG_SITE_ROOT, 'http://' . $_SERVER['HTTP_HOST'] . pathinfo($_SERVER['SCRIPT_NAME'], PATHINFO_DIRNAME));
\Utility\DependencyInjectionStorage::getInstance()->setPrefix(DI_PREFIX);
\Utility\DependencyInjectionStorage::getInstance()->addInstance($registry);
$http = new \Core\Http();
\Utility\DependencyInjectionStorage::getInstance()->addInstance($http);
$session = new \Core\Session();
\Utility\DependencyInjectionStorage::getInstance()->addInstance($session);
$app = new Core\Application($registry->get(REG_SITE_ROOT), $session);
\Utility\DependencyInjectionStorage::getInstance()->addInstance($app);
$db = new \Core\Database('mysql:host=' . DB_HOST . ';dbname=' . DB_NAME . ';charset=utf8', DB_USER, DB_PASSWORD, 'appointments', '\\Utility\\DatabaseCreateScript');
\Utility\DependencyInjectionStorage::getInstance()->addInstance($db);
\Utility\DependencyInjectionStorage::getInstance()->addInstance(new \DBMappers\RoomItem('rooms'));
\Utility\DependencyInjectionStorage::getInstance()->addInstance(new \DBMappers\AppointmentItem('appointments'));
$empMapper = new \DBMappers\EmpItem('employees');
\Utility\DependencyInjectionStorage::getInstance()->addInstance($empMapper);
(new \Core\Router())->start($http, $app, $db, $empMapper);
if ($app->getState() == \Core\Application::STATE_REDIRECT) {
    $http->redirect($app->getRedirectUrl(), $registry->get(REG_SITE_ROOT));
} else {
    $http->setResponseBody((new \Core\View($vidgetViews))->renderState($app->getState(), $app->getAppData(), $templateMap, $registry->get(REG_SITE_ROOT)));
}
Example #5
0
 public function start(Http $http, Application $app, Database $db, \DBMappers\EmpItem $empMapper)
 {
     $this->parsePath($http);
     $this->checkAuth($app, $db, $empMapper);
     if ($this->needSetPassword($app, $db, $empMapper)) {
         return;
     }
     $controllerClassName = CONTROLLER_NAMESPACE . "\\" . $this->controllerName;
     try {
         if (!class_exists($controllerClassName)) {
             $controllerClassName = CONTROLLER_NAMESPACE . "\\" . DEFAULT_CONTROLLER;
         }
     } catch (\Exception $e) {
         $controllerClassName = CONTROLLER_NAMESPACE . "\\" . DEFAULT_CONTROLLER;
     }
     $classInstance = new $controllerClassName();
     if (!method_exists($classInstance, $this->actionName)) {
         $this->actionName = DEFAULT_ACTION;
     }
     //error_log("\nmethod" . print_r($this->actionName, true), 3, 'my_errors.txt');
     $di_prefix = \Utility\DependencyInjectionStorage::getInstance()->getPrefix();
     call_user_func(array($classInstance, $di_prefix . $this->actionName), $this->urlParameters, $http);
 }