/** * {@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)); } } } } }
/** * 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')); } }
/** * {@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])); } } } } }
/** * 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)); }