Пример #1
0
 function __construct($token)
 {
     $db = $this->db = \StarterKit\DB::getInstance();
     $this->details = $db->fetchRecoverDetails($token);
     if (empty($this->details)) {
         throw new \exception('Invalid Recovery Token');
     }
 }
Пример #2
0
 public function fetch($name)
 {
     $db = \StarterKit\DB::getInstance();
     $details = $db->cachedCall('fetchAdmin', [$name]);
     if (empty($details)) {
         throw new \exception('invalid username or password');
     } else {
         return $details;
     }
 }
Пример #3
0
 protected function __construct($config)
 {
     if (!$config) {
         throw new \exception('`$config` cant be null when constructing StarterKit');
     }
     if ($config['strict']) {
         error_reporting(E_ALL | E_NOTICE | E_STRICT);
     }
     $this->public_html = $config['public'];
     $this->debug = $config['debug'];
     date_default_timezone_set($config['timezone']);
     $this->slim = new \Slim\Slim($config['slim_args']);
     $this->twig_config = $config['twig_args'];
     $this->smtp_config = $config['smtp_args'];
     $this->files =& $_FILES;
     $this->get = $this->slim->request()->get();
     $this->post = $this->slim->request()->post();
     if ($config['session_args']['type'] === 'redis') {
         ini_set('session.save_handler', 'redis');
         ini_set('session.timeout', 18000);
         // each client should remember their session id for EXACTLY 1 hour
         session_set_cookie_params(18000);
         ini_set('session.save_path', 'tcp://' . $config['session_args']['host'] . ':' . $config['session_args']['port']);
     }
     session_name($config['session_args']['name']);
     session_start();
     $this->session =& $_SESSION;
     $this->remote_addr = $this->slim->request->getIp();
     if (!isset($this->session['notifications'])) {
         $this->session['notifications'] = [];
     }
     //sometimes you might need to set additional args. you could allow middleware to add args here, or virtually anything else you want
     $base_url = $config['scheme'] . $_SERVER['SERVER_NAME'];
     $extra_template_args = ['csrf' => $this->csrf(), 'base_url' => $base_url . '/', 'year' => date('Y'), 'styles' => '', 'scripts' => '', 'styles_external' => '', 'scripts_external' => '', 'user' => $this->is_user() ? $this->session['user'] : false, 'admin' => $this->is_admin() ? $this->session['admin'] : false, 'url' => $this->getUrl($base_url), 'canonical' => $base_url . $this->slim->request()->getResourceUri()];
     $this->args = array_merge($config['template_args'], $extra_template_args);
     //todo make these all lazy load for performance.
     $this->cache = \StarterKit\Cache::getInstance($config['cache_args']);
     $this->db = \StarterKit\DB::getInstance($config['db_args']);
     $this->filter = \RedBeanFVM\RedBeanFVM::getInstance();
     $this->smtp = \StarterKit\Email::getInstance($config['smtp_args']);
     self::$instance =& $this;
 }
Пример #4
0
 public function refresh($force = false)
 {
     $details = \StarterKit\DB::getInstance()->cachedCall('fetchUser', [$this->email], 0, $force);
     if (!empty($details)) {
         foreach ($details as $k => $v) {
             $this->{$k} = $v;
         }
     }
 }
<?php

//provides a database connection for cron jobs.
require 'config.php';
require 'vendor/autoload.php';
require 'StarterKit/App.php';
\StarterKit\App::registerAutoloader();
$db = \StarterKit\DB::getInstance($config['db_args']);
$cache = \StarterKit\Cache::getInstance($config['cache_args']);