public function edit($user, $pass, $id)
 {
     $db = Database::getInstance('app');
     $result = $db->prepare("UPDATE users SET password = ?, username = ? WHERE id = ?");
     $result->execute([md5($pass), $user, $id]);
     return true;
 }
 public function dbUpdate($property, $dataType)
 {
     $db = \ShoppingCart\Core\Database::getInstance('app');
     //var_dump("call addColum(" . "'" .$property . "'" . ", " . "'" .  $dataType . "'" . ")");
     $result = $db->prepare("call addColum2(" . "'" . $property . "'" . ", " . "'" . $dataType . "'" . ")");
     if (!$result->execute()) {
         throw new \InvalidArgumentException("Invalid property definition!");
     }
 }
 public static function isAdminUser($id)
 {
     $db = Database::getInstance(DatabaseConfig::DB_INSTANCE_NAME);
     $result = $db->prepare("SELECT id FROM users u\n                                INNER JOIN users_roles r\n                                ON u.id = r.user_id\n                                WHERE r.role_id = (SELECT id FROM roles WHERE name = 'administrator') AND u.id = ?");
     $result->execute([$id]);
     if ($result->rowCount() > 0) {
         return true;
     }
     return false;
 }
$appParser = new \ShoppingCart\AnnotationsParser();
$appParser->init();
//$request = new \ShoppingCart\Request($_SERVER);
//$request->analyze();
$uri = $_SERVER['REQUEST_URI'];
//var_dump($uri);
$self = $_SERVER['PHP_SELF'];
$directories = str_replace(basename($self), '', $self);
//var_dump($directories);
$requestString = str_replace($directories, '', $uri);
//var_dump($requestString);
$requestParams = explode("/", $requestString);
//var_dump($requestParams);
$router = new \ShoppingCart\Router($requestParams);
$router->init();
\ShoppingCart\Core\Database::setInstance(\ShoppingCart\Config\DatabaseConfig::DB_INSTANCE, \ShoppingCart\Config\DatabaseConfig::DB_DRIVER, \ShoppingCart\Config\DatabaseConfig::DB_USER, \ShoppingCart\Config\DatabaseConfig::DB_PASS, \ShoppingCart\Config\DatabaseConfig::DB_NAME, \ShoppingCart\Config\DatabaseConfig::DB_HOST);
$identity = new \ShoppingCart\IdentitySystem();
$identity->init();
//return;
$requestTypeChecker = new \ShoppingCart\RequestTypeChecker($router->controllerNameSpace, $router->controller, $router->action, $_SERVER['REQUEST_METHOD']);
//var_dump($router->controllerNameSpace);
//var_dump($router->controller);
//var_dump($router->action);
$authorizationAnalyzer = new \ShoppingCart\AuthorizationAnalyzer($router->controllerNameSpace, $router->controller, $router->action);
//var_dump($requestTypeChecker->analise());
//var_dump($authorizationAnalyzer->analise());
//return;
if ($requestTypeChecker->analise() && $authorizationAnalyzer->analise()) {
    $app = new \ShoppingCart\Application($router->controllerNameSpace, $router->controller, $router->action, $router->requestParams);
    $app->start();
}
 public function __construct()
 {
     $this->db = Database::getInstance(DatabaseConfig::DB_INSTANCE_NAME);
     $this->db->setAttribute(\PDO::ATTR_EMULATE_PREPARES, false);
 }