projek-xyz/slim-framework

View on GitHub
src/Database/Schema/CreateSchema.php

Summary

Maintainability
A
35 mins
Test Coverage
<?php
namespace Projek\Slim\Database\Schema;
 
use Projek\Slim\Database\Schema;
use Slim\PDO\Database;
 
class CreateSchema extends Schema
{
use DefinitionsTrait;
 
protected $indexes = [];
 
/**
* @inheritdoc
*/
public function build(Database $database = null)
{
$columns = [];
$schema = $this->normalizeColumns($this->schema);
 
foreach ($schema as $column => $definitions) {
$columns[] = $column.' '.$this->buildDefinition($definitions);
$this->params[] = $column;
}
 
return sprintf('CREATE TABLE `%s` (%s)', $this->table, implode(',', $columns));
}
 
Function `normalizeColumns` has a Cognitive Complexity of 7 (exceeds 5 allowed). Consider refactoring.
protected function normalizeColumns($columns)
{
foreach ($columns as $column => $definition) {
if (!is_numeric($column) && is_array($definition)) {
continue;
}
 
foreach ($this->fields[$definition] as $field) {
$columns[$field] = $this->definitions[$field];
}
 
unset($columns[$column]);
}
 
return $columns;
}
}