Bravo3\Orm\Mappers\Yaml\YamlMapWriter::compileColumns PHP Method

compileColumns() private method

Compiles all columns for an entity
private compileColumns ( Entity $md ) : array
$md Bravo3\Orm\Mappers\Metadata\Entity
return array
    private function compileColumns(Entity $md)
    {
        $out = [];
        $columns = $md->getColumns();
        foreach ($columns as $column) {
            $data = [Schema::COLUMN_TYPE => $column->getType()->value()];
            if ($column->isId()) {
                $data[Schema::COLUMN_ID] = true;
            }
            $default_getter = 'get' . Inflector::classify($column->getProperty());
            if ($column->getGetter() && $column->getGetter() != $default_getter) {
                $data[Schema::GETTER] = $column->getGetter();
            }
            $default_setter = 'set' . Inflector::classify($column->getProperty());
            if ($column->getSetter() && $column->getSetter() != $default_setter) {
                $data[Schema::SETTER] = $column->getSetter();
            }
            if ($column->getClassName()) {
                $data[Schema::COLUMN_CLASS] = $column->getClassName();
            }
            $out[$column->getName()] = $data;
        }
        $relationships = $md->getRelationships();
        foreach ($relationships as $relationship) {
            $data = [Schema::REL_ASSOCIATION => $relationship->getRelationshipType()->value(), Schema::REL_TARGET => $relationship->getTarget()];
            $default_getter = 'get' . Inflector::classify($relationship->getName());
            if ($relationship->getGetter() && $relationship->getGetter() != $default_getter) {
                $data[Schema::GETTER] = $relationship->getGetter();
            }
            $default_setter = 'set' . Inflector::classify($relationship->getName());
            if ($relationship->getSetter() && $relationship->getSetter() != $default_setter) {
                $data[Schema::SETTER] = $relationship->getSetter();
            }
            if ($relationship->getInversedBy()) {
                $data[Schema::REL_INVERSED_BY] = $relationship->getInversedBy();
            }
            if ($relationship->getSortableBy()) {
                $data[Schema::SORT_INDICES] = $this->compileSortables($relationship->getSortableBy());
            }
            $out[$relationship->getName()] = $data;
        }
        return $out;
    }