/**
* Resolves a list (array) of instances of Form implementations
* from the provided package names, or all package names if empty.
*
* @param array $packageNames
* @return Form[]
*/
public function resolveDomainFormClassInstancesFromPackages(array $packageNames = NULL)
{
$packageNames = NULL === $packageNames ? Core::getRegisteredPackagesForAutoForms() : $packageNames;
$models = (array) Core::getRegisteredFormsForModelObjectClasses();
foreach ($packageNames as $packageName) {
$classNames = $this->resolveClassNamesInPackageSubNamespace($packageName, 'Domain/Form', 'Form');
foreach ($classNames as $formClassName) {
// convert form class name to model class name by convention
$modelClassName = str_replace('\\Domain\\Form\\', '\\Domain\\Model\\', $formClassName);
$modelClassName = substr($modelClassName, 0, -4);
$fullTableName = $this->resolveDatabaseTableName($modelClassName);
$models[$modelClassName] = $formClassName::create();
$models[$modelClassName]->setName($fullTableName);
$models[$modelClassName]->setExtensionName($packageName);
}
}
return $models;
}