/** * Sets up and returns all the objects we'll use * * @return \Pimple\Container */ public function getServices() { $this->container = parent::getServices(); $this->container['db'] = function ($c) { $db = new Db(); $db->setCredentials($this->getDbConfig()); $type = 'mysqli'; if (class_exists('Pdo')) { $type = 'pdo'; } $db->setAccessType($type); return $db; }; $this->container['encrypt'] = function ($c) { $encrypt = new Encrypt(); $new_key = $c['platform']->getEncryptionKey(); $encrypt->setKey($new_key); return $encrypt; }; $this->container['lang'] = function ($c) { $lang = new Language(); if (is_array($this->getLangPath())) { foreach ($this->getLangPath() as $path) { $lang->init($path); } } elseif ($this->getLangPath() != '') { $lang->init($this->getLangPath()); } return $lang; }; $this->container['validate'] = function ($c) { $validate = new Validate(); $validate->setRegex($this->container['regex']); return $validate; }; $this->container['files'] = function ($c) { $file = new Files(); return $file; }; $this->container['errors'] = function ($c) { $errors = new Errors(); $errors->setValidation($c['validate']); return $errors; }; $this->container['license'] = function ($c) { $license = new License(); return $license; }; $this->container['email'] = function ($c) { $email = new Email(); $email->setView($c['view']); $email->setLang($c['lang']); return $email; }; $this->container['view'] = function ($c) { $view = new View(); $helpers = array('file_size' => function ($text) { return $this->container['view_helpers']->m62FileSize($text, false); }, 'lang' => function ($text) { return $this->container['view_helpers']->m62Lang($text); }, 'date_time' => function ($text, $html = true) { return $this->container['view_helpers']->m62DateTime($text, false); }, 'relative_time' => function ($date) { return $this->container['view_helpers']->m62RelativeDateTime($date); }, 'encode' => function ($text) { return $this->container['view_helpers']->m62Encode($text); }, 'decode' => function ($text) { return $this->container['view_helpers']->m62Decode($text); }); $view->addHelper('m62', $helpers); return $view; }; $this->container['regex'] = function ($c) { $regex = new Regex(); return $regex; }; $this->container['shell'] = function ($c) { $shell = new Shell(); return $shell; }; $this->container['console'] = function ($c) { $console = new Console(); $console->setLang($c['lang']); return $console; }; return $this->container; }
/** * Adds a setting to the databse * * @param string $setting */ public function addSetting($setting) { $data = array('setting_key' => $setting); if (in_array($setting, $this->getSerialized())) { $data['serialized'] = '1'; } return $this->db->insert($this->getTable(), $data); }
public function testUpdateSetting() { $db = new Db(); $creds = $this->getDbCreds(); $db->setCredentials($creds)->emptyTable($this->test_table_name); $settings = new _settings($db, new Language()); $data = $settings->setDefaults(array())->setTable($this->test_table_name)->get(true); $this->assertEquals(1, $data['relative_time']); $settings->updateSetting('relative_time', '0'); $data = $settings->get(true); $this->assertEquals(0, $data['relative_time']); }