Skip to content
Snippets Groups Projects

Resolve "Refactor ServiceModule::checkComponents()"

Merged Stein Magne Bjorklund requested to merge 20-refactor-servicemodule-checkcomponents into master
1 file
+ 14
14
Compare changes
  • Side-by-side
  • Inline
@@ -27,6 +27,19 @@ final class ServiceModule implements ModuleInterface
$this->endpoints = $configuration->getConfigValue('bootstrap', 'endpoints')['local'];
}
private function scaffoldExist($conf, $serviceName): bool
{
return file_exists($conf['model']['directory'] . '/' . $conf['service']['prefix'] . '/' . $serviceName . '/scaffold.ttl');
}
private function otherComponentsExists($conf, $lodspk): bool
{
return is_null($lodspk['model'])
&& is_null($lodspk['view'])
&& !empty($conf['components']['services'])
&& count($conf['components']['services']) > 0;
}
/**
* Checking default components.
*
@@ -35,54 +48,50 @@ final class ServiceModule implements ModuleInterface
* @param $extension
* @param $conf
* @param $lodspk
*
* @return array
*/
private function checkComponents($serviceName, $arguments, $extension, $conf, $lodspk)
private function checkComponents($serviceName, $arguments, $extension, $conf, $lodspk): array
{
$modelDirectory = $conf['model']['directory'] . '/' . $conf['service']['prefix'];
$viewDirectory = $conf['view']['directory'] . '/' . $conf['service']['prefix'] . '/' . $serviceName . '/';
if (file_exists(
$conf['model']['directory'] . '/' . $conf['service']['prefix'] . '/' . $serviceName . '/scaffold.ttl'
)) {
if ($this->scaffoldExist($conf, $serviceName)) {
$subDir = $this->readScaffold(
$conf['model']['directory'] . '/' . $conf['service']['prefix'] . '/' . $serviceName . '/scaffold.ttl',
join("/", $arguments)
);
$subDir .= '/';
$lodspk['model'] = $conf['home'] . $conf['model']['directory'] . '/' . $conf['service']['prefix'] . '/' . $serviceName . '/' . $subDir;
$lodspk['view'] = $conf['view']['directory'] . '/' . $conf['service']['prefix'] . '/' . $serviceName . '/' . $subDir . $extension . '.template';
} elseif (file_exists(
$conf['home'] . $conf['model']['directory'] . '/' . $conf['service']['prefix'] . '/' . $serviceName
)) {
$lodspk['model'] = $conf['home'] . $conf['model']['directory'] . '/' . $conf['service']['prefix'] . '/' . $serviceName . '/';
$lodspk['view'] = $conf['home'] . $conf['view']['directory'] . '/' . $conf['service']['prefix'] . '/' . $serviceName . '/' . $extension . '.template';
} else {
if (is_null($lodspk['model']) && is_null($lodspk['view'])) {
//checking other components
if (!empty($conf['components']['services']) && count($conf['components']['services']) > 0) {
foreach ($conf['components']['services'] as $service) {
$serviceArray = explode("/", $service);
if ($serviceName == end($serviceArray)) {
array_pop($serviceArray);
$conf['service']['prefix'] = array_pop($serviceArray);
$conf['model']['directory'] = join("/", $serviceArray);
$conf['view']['directory'] = $conf['model']['directory'];
if (file_exists(
$conf['model']['directory'] . '/' . $conf['service']['prefix'] . '/' . $serviceName . '/scaffold.ttl'
)) {
$subDir = $this->readScaffold(
$conf['model']['directory'] . '/' . $conf['service']['prefix'] . '/' . $serviceName . '/scaffold.ttl',
join("/", $arguments)
);
$subDir .= '/';
$lodspk['model'] = $conf['model']['directory'] . '/' . $conf['service']['prefix'] . '/' . $serviceName . '/' . $subDir;
$lodspk['view'] = $conf['view']['directory'] . '/' . $conf['service']['prefix'] . '/' . $serviceName . '/' . $subDir . $extension . '.template';
} elseif (file_exists(
$conf['model']['directory'] . '/' . $conf['service']['prefix'] . '/' . $serviceName
)) {
$lodspk['model'] = $conf['model']['directory'] . '/' . $conf['service']['prefix'] . '/' . $serviceName . '/';
$lodspk['view'] = $conf['view']['directory'] . '/' . $conf['service']['prefix'] . '/' . $serviceName . '/' . $extension . '.template';
}
}
}
$modelDirectory . '/' . $serviceName . '/scaffold.ttl',
implode('/', $arguments)
) . '/';
$lodspk['model'] = $conf['home'] . $modelDirectory . '/' . $serviceName . '/' . $subDir;
$lodspk['view'] = $viewDirectory . $subDir . $extension . '.template';
} elseif (file_exists($conf['home'] . $modelDirectory . '/' . $serviceName)) {
$lodspk['model'] = $conf['home'] . $modelDirectory . '/' . $serviceName . '/';
$lodspk['view'] = $conf['home'] . $viewDirectory . $extension . '.template';
} elseif ($this->otherComponentsExists($conf, $lodspk)) {
// Checking other components.
foreach ($conf['components']['services'] as $service) {
$serviceArray = explode("/", $service);
if ($serviceName !== end($serviceArray)) {
continue;
}
array_pop($serviceArray);
$conf['service']['prefix'] = array_pop($serviceArray);
$conf['model']['directory'] = implode('/', $serviceArray);
$conf['view']['directory'] = $conf['model']['directory'];
$modelDirectory = $conf['model']['directory'] . '/' . $conf['service']['prefix'];
$viewDirectory = $conf['view']['directory'] . '/' . $conf['service']['prefix'] . '/' . $serviceName . '/';
if ($this->scaffoldExist($conf, $serviceName)) {
$subDir = $this->readScaffold(
$modelDirectory . '/' . $serviceName . '/scaffold.ttl',
implode('/', $arguments)
) . '/';
$lodspk['model'] = $modelDirectory . '/' . $serviceName . '/' . $subDir;
$lodspk['view'] = $viewDirectory . $subDir . $extension . '.template';
} elseif (file_exists($modelDirectory . '/' . $serviceName)) {
$lodspk['model'] = $modelDirectory . '/' . $serviceName . '/';
$lodspk['view'] = $viewDirectory . $extension . '.template';
}
}
}
Loading