示例#1
0
 /**
  * {@inheritdoc}
  */
 public function run(App $app, Document $config)
 {
     Enum::addSearchPrefix($app->n('Enums') . '\\');
     $app->m->Helpers = new Helpers($app);
     $app->m->Helpers->addHelper('Jivoo\\Snippets\\SnippetHelper');
     $app->m->Helpers->runInit();
     $app->m->Helpers->addHelper('Jivoo\\AccessControl\\AuthHelper');
     $app->m->addMethod('helper', array($app->m->Helpers, 'getHelper'));
     $app->m->Models = new Models($app);
     $app->m->Models->runInit();
     $listeners = $this->p('app/Listeners');
     if (is_dir($listeners)) {
         $files = scandir($listeners);
         if ($files !== false) {
             foreach ($files as $file) {
                 $split = explode('.', $file);
                 if (isset($split[1]) and $split[1] == 'php') {
                     $listener = $this->app->n('Listeners\\' . $split[0]);
                     Assume::isSubclassOf($listener, 'Jivoo\\Core\\AppListener');
                     $this->app->attachEventListener(new $listener($this->app));
                 }
             }
         }
     }
 }
示例#2
0
 /**
  * Construct enum data type.
  * @param string|string[] $valuesOrClass Either an enum class or a list of
  * enum values.
  * @param string $null Is nullable.
  * @param string $default Default value.
  * @throws InvalidEnumException If default values is not part of enum.
  */
 protected function __construct($valuesOrClass, $null = false, $default = null)
 {
     parent::__construct(DataType::ENUM, $null, $default);
     if (is_array($valuesOrClass)) {
         $this->values = $valuesOrClass;
     } else {
         $this->class = $valuesOrClass;
         $this->values = Enum::getValues($this->class);
     }
     if (isset($default) and !in_array($default, $this->values)) {
         throw new InvalidEnumException(tr('Default value must be part of enum'));
     }
 }
示例#3
0
文件: Models.php 项目: jivoo/jivoo
 /**
  * {@inheritdoc}
  */
 protected function init()
 {
     Enum::addSearchPrefix($this->app->n('Enums') . '\\');
     $modelsDir = $this->p('app/Models');
     if (is_dir($modelsDir)) {
         $files = scandir($modelsDir);
         if ($files !== false) {
             foreach ($files as $file) {
                 $split = explode('.', $file);
                 if (isset($split[1]) and $split[1] == 'php') {
                     $this->addClass($this->app->n('Models\\' . $split[0]));
                 }
             }
         }
     }
 }
示例#4
0
文件: DataType.php 项目: jivoo/jivoo
 /**
  * Create data type from a placeholder.
  * @param string $placeholder Placeholder string.
  * @return DataType Type object.
  */
 public static function fromPlaceholder($placeholder)
 {
     switch (strtolower($placeholder)) {
         case 'i':
         case 'int':
         case 'integer':
             return self::integer(self::BIG);
         case 'f':
         case 'float':
             return self::float();
         case 's':
         case 'str':
         case 'string':
             return self::string(255);
         case 't':
         case 'text':
             return self::text();
         case 'b':
         case 'bool':
         case 'boolean':
             return self::boolean();
         case 'date':
             return self::date();
         case 'd':
         case 'datetime':
             return self::dateTime();
         case 'n':
         case 'bin':
         case 'binary':
             return self::binary();
         case 'a':
         case 'o':
         case 'array':
         case 'object':
             return self::binary();
     }
     if (Enum::classExists($placeholder)) {
         return self::enum($placeholder);
     }
     throw new InvalidDataTypeException(tr('Invalid data type placeholder: %1', '%' . $placeholder));
 }