Exemplo n.º 1
0
 /**
  * Test extraction of toolbox.
  *
  * @return void
  */
 public function testGetExtractedToolBox()
 {
     $helper = new SimpleFacadeBeanHelper();
     list($redbean, $database, $writer, $toolbox) = $helper->getExtractedToolbox();
     asrt($redbean instanceof OODB, TRUE);
     asrt($database instanceof Adapter, TRUE);
     asrt($writer instanceof QueryWriter, TRUE);
     asrt($toolbox instanceof ToolBox, TRUE);
 }
Exemplo n.º 2
0
 /**
  * Test whether we can obtain a toolbox properly.
  *
  * @return void
  */
 public function testCanWeObtainToolbox()
 {
     $toolbox = R::getToolBox();
     asrt($toolbox instanceof TB, TRUE);
     $extractedToolbox = R::getExtractedToolbox();
     asrt(is_array($extractedToolbox), TRUE);
     asrt(count($extractedToolbox), 4);
     asrt($extractedToolbox[0] instanceof OODB, TRUE);
     asrt($extractedToolbox[1] instanceof Adapter, TRUE);
     asrt($extractedToolbox[2] instanceof QueryWriter, TRUE);
     asrt($extractedToolbox[3] instanceof TB, TRUE);
     $beanHelper = new SimpleFacadeBeanHelper();
     $toolbox2 = $beanHelper->getToolbox();
     asrt($toolbox2 instanceof TB, TRUE);
     asrt($toolbox, $toolbox2);
     $extractedToolbox = $beanHelper->getExtractedToolbox();
     asrt(is_array($extractedToolbox), TRUE);
     asrt(count($extractedToolbox), 4);
     asrt($extractedToolbox[0] instanceof OODB, TRUE);
     asrt($extractedToolbox[1] instanceof Adapter, TRUE);
     asrt($extractedToolbox[2] instanceof QueryWriter, TRUE);
     asrt($extractedToolbox[3] instanceof TB, TRUE);
 }
Exemplo n.º 3
0
 /**
  * Returns a model for a bean based on its type.
  *
  * @param OODBBean $bean
  *
  * @return object
  */
 public function getModelForBean(\RedBeanPHP\OODBBean $bean)
 {
     if ($bean->getMeta('type') === 'meal') {
         $model = new Model_Soup();
         $model->loadBean($bean);
         return $model;
     } else {
         return parent::getModelForBean($bean);
     }
 }
Exemplo n.º 4
0
 /**
  * @param ConfigInterface $config
  * @throws InvalidConfigException
  */
 public function __construct(ConfigInterface $config)
 {
     $this->setConfig($config);
     if ($this->configIsEmpty('timezone')) {
         $this->getConfigObject()->setProtected('timezone', 'Asia/Jakarta');
     }
     if ($this->configIsEmpty('publicDir')) {
         $this->getConfigObject()->setPublic('publicDir', 'public/');
     }
     $this->setupTheme();
     $this->langAdjustment();
     date_default_timezone_set($this->config('timezone'));
     $this->addLangfile('common', $this->config('language'));
     $this->addLangfile('common', $this->getLanguage());
     // Setting up RedBean
     $dbConfig = $config->getProtected('dbConfig');
     if (!empty($dbConfig)) {
         $namespace = 'App';
         if (!$this->configIsEmpty('namespace')) {
             $namespace = $this->config('namespace');
         }
         if (!defined('REDBEAN_MODEL_PREFIX')) {
             define('REDBEAN_MODEL_PREFIX', '\\' . $namespace . '\\Models\\');
         }
         if ($dbConfig['type'] == 'mysql') {
             self::setupRedBean("mysql:host={$dbConfig['host']};dbname={$dbConfig['dbname']};port={$dbConfig['port']}", $dbConfig['user'], $dbConfig['password'], $config->getProtected('isDevMode'));
         } elseif ($dbConfig['type'] == 'sqlite') {
             self::setupRedBean("sqlite:{$dbConfig['dbname']}", $dbConfig['user'], $dbConfig['password'], $config->getProtected('isDevMode'));
         }
         if (!$this->configIsEmpty('freeze') && $this->config('freeze') == false) {
             R::freeze(false);
         }
         // Below is needed so that RedBeanPHP\SimpleModel may use $this->app:
         SimpleFacadeBeanHelper::setFactoryFunction(function ($beanTypeName) {
             /** @var \Skully\App\Models\BaseModel $model */
             $model = new $beanTypeName();
             $model->setApp($this);
             return $model;
         });
     }
 }