Example #1
0
 /**
  * Alters the module descriptor.
  *
  * @param array $descriptor Descriptor of the module to index.
  *
  * @return array The altered descriptor.
  */
 protected function alter_descriptor(array $descriptor)
 {
     $id = $descriptor[Descriptor::ID];
     $namespace = $descriptor[Descriptor::NS];
     # models and active records
     foreach ($descriptor[Descriptor::MODELS] as $model_id => &$definition) {
         if (!is_array($definition)) {
             throw new \InvalidArgumentException(\ICanBoogie\format('Model definition must be array, given: %value.', ['value' => $definition]));
         }
         $basename = $id;
         $separator_position = strrpos($basename, '.');
         if ($separator_position) {
             $basename = substr($basename, $separator_position + 1);
         }
         if (empty($definition[Model::NAME])) {
             $definition[Model::NAME] = self::format_model_name($id, $model_id);
         }
         if (empty($definition[Model::ACTIVERECORD_CLASS])) {
             $definition[Model::ACTIVERECORD_CLASS] = $namespace . '\\' . \ICanBoogie\camelize(\ICanBoogie\singularize($model_id == 'primary' ? $basename : $model_id));
         }
         if (empty($definition[Model::CLASSNAME])) {
             $definition[Model::CLASSNAME] = $definition[Model::ACTIVERECORD_CLASS] . 'Model';
         }
     }
     return $descriptor;
 }
 /**
  * @inheritdoc
  */
 protected function resolve_property_name($related)
 {
     return \ICanBoogie\singularize(parent::resolve_property_name($related));
 }
Example #3
0
 /**
  * Ensures the table has an alias, make one otherwise.
  */
 protected function ensure_has_alias()
 {
     if ($this->alias) {
         return;
     }
     $alias = $this->unprefixed_name;
     $pos = strrpos($alias, '_');
     if ($pos !== false) {
         $alias = substr($alias, $pos + 1);
     }
     $this->alias = \ICanBoogie\singularize($alias);
 }