public function modelCommand($packageKey, $modelName, $force = false)
{
$this->validatePackageKey($packageKey);
if (!$this->packageManager->isPackageAvailable($packageKey)) {
$this->outputLine('Package "%s" is not available.', array($packageKey));
exit(2);
}
$this->validateModelName($modelName);
$fieldsArguments = $this->request->getExceedingArguments();
$fieldDefinitions = array();
foreach ($fieldsArguments as $fieldArgument) {
list($fieldName, $fieldType) = explode(':', $fieldArgument, 2);
$fieldDefinitions[$fieldName] = array('type' => $fieldType);
if (strpos($fieldType, 'array') !== false) {
$fieldDefinitions[$fieldName]['typeHint'] = 'array';
} elseif (strpos($fieldType, '\\') !== false) {
if (strpos($fieldType, '<') !== false) {
$fieldDefinitions[$fieldName]['typeHint'] = substr($fieldType, 0, strpos($fieldType, '<'));
} else {
$fieldDefinitions[$fieldName]['typeHint'] = $fieldType;
}
}
}
$generatedFiles = $this->generatorService->generateModel($packageKey, $modelName, $fieldDefinitions, $force);
$this->outputLine(implode(PHP_EOL, $generatedFiles));
$this->outputLine('As a new model was generated, don\'t forget to update the database schema with the respective doctrine:* commands.');
}