From d4c439202556c9fbfbcf8e445318b987b66b8b4b Mon Sep 17 00:00:00 2001 From: Mark Scherer Date: Tue, 29 Mar 2022 17:01:11 +0200 Subject: [PATCH] Move templates into own root level. (#1848) * Move templates into own root level. * Clean up excludePaths --- phpcs.xml | 2 - phpstan.neon | 11 --- psalm.xml | 3 - src/Propel/Common/Util/PathTrait.php | 67 +++++++++++++++++++ .../Builder/Om/AbstractOMBuilder.php | 15 +++-- .../Om/TableMapLoaderScriptBuilder.php | 7 +- src/Propel/Generator/Command/InitCommand.php | 14 +++- .../Generator/Manager/MigrationManager.php | 9 ++- src/Propel/Generator/Model/Behavior.php | 17 +++-- .../AggregateColumn}/objectCompute.php | 0 .../AggregateColumn}/objectUpdate.php | 0 .../AggregateColumn}/objectUpdateRelated.php | 0 .../AggregateColumn}/queryFindRelated.php | 0 .../AggregateColumn}/queryUpdateRelated.php | 0 .../objectCompute.php | 0 .../objectUpdate.php | 0 .../Behavior/Archivable}/objectArchive.php | 0 .../objectDeleteWithoutArchive.php | 0 .../Behavior/Archivable}/objectGetArchive.php | 0 .../Archivable}/objectPopulateFromArchive.php | 0 .../Behavior/Archivable}/objectPreDelete.php | 0 .../Archivable}/objectRestoreFromArchive.php | 0 .../Archivable}/objectSaveWithoutArchive.php | 0 .../Behavior/Archivable}/queryArchive.php | 0 .../Archivable}/queryDeleteWithoutArchive.php | 0 .../Archivable}/querySetArchiveOnDelete.php | 0 .../Archivable}/querySetArchiveOnUpdate.php | 0 .../Archivable}/queryUpdateWithoutArchive.php | 0 .../Delegate}/queryMethodsTemplate.php | 0 .../Behavior/I18n}/objectAttributes.php | 0 .../Behavior/I18n}/objectClearReferences.php | 0 .../I18n}/objectGetCurrentTranslation.php | 0 .../Behavior/I18n}/objectGetLocale.php | 0 .../Behavior/I18n}/objectGetLocaleAlias.php | 0 .../Behavior/I18n}/objectGetTranslation.php | 0 .../Behavior/I18n}/objectPostDelete.php | 0 .../I18n}/objectRemoveTranslation.php | 0 .../Behavior/I18n}/objectSetLocale.php | 0 .../Behavior/I18n}/objectSetLocaleAlias.php | 0 .../Behavior/I18n}/objectSetTranslation.php | 0 .../I18n}/objectTranslatedColumnGetter.php | 0 .../I18n}/objectTranslatedColumnSetter.php | 0 .../Behavior/I18n}/queryJoinI18n.php | 0 .../Behavior/I18n}/queryJoinWithI18n.php | 0 .../Behavior/I18n}/queryUseI18nQuery.php | 0 .../Behavior/I18n}/staticAttributes.php | 0 .../Behavior/NestedSet}/objectGetIterator.php | 0 .../NestedSet}/objectInsertAsLastChildOf.php | 0 .../Behavior/NestedSet}/objectSetLeft.php | 0 .../Behavior/Sortable}/tableMapSortable.php | 0 .../Behavior/Validate}/objectAttributes.php | 0 .../Validate}/objectGetValidationFailures.php | 0 .../Validate}/objectLoadValidatorMetadata.php | 0 .../Behavior/Validate}/objectValidate.php | 0 .../Builder/Om}/baseObjectAttributes.php | 0 .../Builder/Om}/baseObjectMethodHook.php | 0 .../Builder/Om}/baseObjectMethodMagicCall.php | 0 .../Builder/Om}/baseObjectMethods.php | 0 .../Om}/tableMapClearRelatedInstancePool.php | 0 .../Builder/Om}/tableMapConstants.php | 0 .../Builder/Om}/tableMapFields.php | 0 .../Builder/Om}/tableMapInstancePool.php | 0 .../Builder/Om}/tableMapLoaderScript.php | 0 .../Command}/propel.ini.dist.php | 0 .../Command}/propel.ini.php | 0 .../Command}/propel.json.dist.php | 0 .../Command}/propel.json.php | 0 .../Command}/propel.php.dist.php | 0 .../Command}/propel.php.php | 0 .../Command}/propel.xml.dist.php | 0 .../Command}/propel.xml.php | 0 .../Command}/propel.yml.dist.php | 0 .../Command}/propel.yml.php | 0 .../Command}/schema.xml.php | 0 .../Manager}/migration_template.php | 0 75 files changed, 114 insertions(+), 31 deletions(-) create mode 100644 src/Propel/Common/Util/PathTrait.php rename {src/Propel/Generator/Behavior/AggregateColumn/templates => templates/Behavior/AggregateColumn}/objectCompute.php (100%) rename {src/Propel/Generator/Behavior/AggregateColumn/templates => templates/Behavior/AggregateColumn}/objectUpdate.php (100%) rename {src/Propel/Generator/Behavior/AggregateColumn/templates => templates/Behavior/AggregateColumn}/objectUpdateRelated.php (100%) rename {src/Propel/Generator/Behavior/AggregateColumn/templates => templates/Behavior/AggregateColumn}/queryFindRelated.php (100%) rename {src/Propel/Generator/Behavior/AggregateColumn/templates => templates/Behavior/AggregateColumn}/queryUpdateRelated.php (100%) rename {src/Propel/Generator/Behavior/AggregateMultipleColumns/templates => templates/Behavior/AggregateMultipleColumns}/objectCompute.php (100%) rename {src/Propel/Generator/Behavior/AggregateMultipleColumns/templates => templates/Behavior/AggregateMultipleColumns}/objectUpdate.php (100%) rename {src/Propel/Generator/Behavior/Archivable/templates => templates/Behavior/Archivable}/objectArchive.php (100%) rename {src/Propel/Generator/Behavior/Archivable/templates => templates/Behavior/Archivable}/objectDeleteWithoutArchive.php (100%) rename {src/Propel/Generator/Behavior/Archivable/templates => templates/Behavior/Archivable}/objectGetArchive.php (100%) rename {src/Propel/Generator/Behavior/Archivable/templates => templates/Behavior/Archivable}/objectPopulateFromArchive.php (100%) rename {src/Propel/Generator/Behavior/Archivable/templates => templates/Behavior/Archivable}/objectPreDelete.php (100%) rename {src/Propel/Generator/Behavior/Archivable/templates => templates/Behavior/Archivable}/objectRestoreFromArchive.php (100%) rename {src/Propel/Generator/Behavior/Archivable/templates => templates/Behavior/Archivable}/objectSaveWithoutArchive.php (100%) rename {src/Propel/Generator/Behavior/Archivable/templates => templates/Behavior/Archivable}/queryArchive.php (100%) rename {src/Propel/Generator/Behavior/Archivable/templates => templates/Behavior/Archivable}/queryDeleteWithoutArchive.php (100%) rename {src/Propel/Generator/Behavior/Archivable/templates => templates/Behavior/Archivable}/querySetArchiveOnDelete.php (100%) rename {src/Propel/Generator/Behavior/Archivable/templates => templates/Behavior/Archivable}/querySetArchiveOnUpdate.php (100%) rename {src/Propel/Generator/Behavior/Archivable/templates => templates/Behavior/Archivable}/queryUpdateWithoutArchive.php (100%) rename {src/Propel/Generator/Behavior/Delegate/templates => templates/Behavior/Delegate}/queryMethodsTemplate.php (100%) rename {src/Propel/Generator/Behavior/I18n/templates => templates/Behavior/I18n}/objectAttributes.php (100%) rename {src/Propel/Generator/Behavior/I18n/templates => templates/Behavior/I18n}/objectClearReferences.php (100%) rename {src/Propel/Generator/Behavior/I18n/templates => templates/Behavior/I18n}/objectGetCurrentTranslation.php (100%) rename {src/Propel/Generator/Behavior/I18n/templates => templates/Behavior/I18n}/objectGetLocale.php (100%) rename {src/Propel/Generator/Behavior/I18n/templates => templates/Behavior/I18n}/objectGetLocaleAlias.php (100%) rename {src/Propel/Generator/Behavior/I18n/templates => templates/Behavior/I18n}/objectGetTranslation.php (100%) rename {src/Propel/Generator/Behavior/I18n/templates => templates/Behavior/I18n}/objectPostDelete.php (100%) rename {src/Propel/Generator/Behavior/I18n/templates => templates/Behavior/I18n}/objectRemoveTranslation.php (100%) rename {src/Propel/Generator/Behavior/I18n/templates => templates/Behavior/I18n}/objectSetLocale.php (100%) rename {src/Propel/Generator/Behavior/I18n/templates => templates/Behavior/I18n}/objectSetLocaleAlias.php (100%) rename {src/Propel/Generator/Behavior/I18n/templates => templates/Behavior/I18n}/objectSetTranslation.php (100%) rename {src/Propel/Generator/Behavior/I18n/templates => templates/Behavior/I18n}/objectTranslatedColumnGetter.php (100%) rename {src/Propel/Generator/Behavior/I18n/templates => templates/Behavior/I18n}/objectTranslatedColumnSetter.php (100%) rename {src/Propel/Generator/Behavior/I18n/templates => templates/Behavior/I18n}/queryJoinI18n.php (100%) rename {src/Propel/Generator/Behavior/I18n/templates => templates/Behavior/I18n}/queryJoinWithI18n.php (100%) rename {src/Propel/Generator/Behavior/I18n/templates => templates/Behavior/I18n}/queryUseI18nQuery.php (100%) rename {src/Propel/Generator/Behavior/I18n/templates => templates/Behavior/I18n}/staticAttributes.php (100%) rename {src/Propel/Generator/Behavior/NestedSet/templates => templates/Behavior/NestedSet}/objectGetIterator.php (100%) rename {src/Propel/Generator/Behavior/NestedSet/templates => templates/Behavior/NestedSet}/objectInsertAsLastChildOf.php (100%) rename {src/Propel/Generator/Behavior/NestedSet/templates => templates/Behavior/NestedSet}/objectSetLeft.php (100%) rename {src/Propel/Generator/Behavior/Sortable/templates => templates/Behavior/Sortable}/tableMapSortable.php (100%) rename {src/Propel/Generator/Behavior/Validate/templates => templates/Behavior/Validate}/objectAttributes.php (100%) rename {src/Propel/Generator/Behavior/Validate/templates => templates/Behavior/Validate}/objectGetValidationFailures.php (100%) rename {src/Propel/Generator/Behavior/Validate/templates => templates/Behavior/Validate}/objectLoadValidatorMetadata.php (100%) rename {src/Propel/Generator/Behavior/Validate/templates => templates/Behavior/Validate}/objectValidate.php (100%) rename {src/Propel/Generator/Builder/Om/templates => templates/Builder/Om}/baseObjectAttributes.php (100%) rename {src/Propel/Generator/Builder/Om/templates => templates/Builder/Om}/baseObjectMethodHook.php (100%) rename {src/Propel/Generator/Builder/Om/templates => templates/Builder/Om}/baseObjectMethodMagicCall.php (100%) rename {src/Propel/Generator/Builder/Om/templates => templates/Builder/Om}/baseObjectMethods.php (100%) rename {src/Propel/Generator/Builder/Om/templates => templates/Builder/Om}/tableMapClearRelatedInstancePool.php (100%) rename {src/Propel/Generator/Builder/Om/templates => templates/Builder/Om}/tableMapConstants.php (100%) rename {src/Propel/Generator/Builder/Om/templates => templates/Builder/Om}/tableMapFields.php (100%) rename {src/Propel/Generator/Builder/Om/templates => templates/Builder/Om}/tableMapInstancePool.php (100%) rename {src/Propel/Generator/Builder/Om/templates => templates/Builder/Om}/tableMapLoaderScript.php (100%) rename {src/Propel/Generator/Command/templates => templates/Command}/propel.ini.dist.php (100%) rename {src/Propel/Generator/Command/templates => templates/Command}/propel.ini.php (100%) rename {src/Propel/Generator/Command/templates => templates/Command}/propel.json.dist.php (100%) rename {src/Propel/Generator/Command/templates => templates/Command}/propel.json.php (100%) rename {src/Propel/Generator/Command/templates => templates/Command}/propel.php.dist.php (100%) rename {src/Propel/Generator/Command/templates => templates/Command}/propel.php.php (100%) rename {src/Propel/Generator/Command/templates => templates/Command}/propel.xml.dist.php (100%) rename {src/Propel/Generator/Command/templates => templates/Command}/propel.xml.php (100%) rename {src/Propel/Generator/Command/templates => templates/Command}/propel.yml.dist.php (100%) rename {src/Propel/Generator/Command/templates => templates/Command}/propel.yml.php (100%) rename {src/Propel/Generator/Command/templates => templates/Command}/schema.xml.php (100%) rename {src/Propel/Generator/Manager/templates => templates/Manager}/migration_template.php (100%) diff --git a/phpcs.xml b/phpcs.xml index 771a778d83..373eb4876c 100644 --- a/phpcs.xml +++ b/phpcs.xml @@ -12,8 +12,6 @@ src/ - */templates/* - diff --git a/phpstan.neon b/phpstan.neon index da0495a204..77a2f1fc63 100644 --- a/phpstan.neon +++ b/phpstan.neon @@ -7,17 +7,6 @@ parameters: reportUnmatchedIgnoredErrors: false paths: - '%rootDir%/../../../src/' - excludePaths: - - '%rootDir%/../../../src/Propel/Generator/Command/templates/*' - - '%rootDir%/../../../src/Propel/Generator/Behavior/AggregateColumn/templates/*' - - '%rootDir%/../../../src/Propel/Generator/Behavior/AggregateMultipleColumns/templates/*' - - '%rootDir%/../../../src/Propel/Generator/Behavior/I18n/templates/*' - - '%rootDir%/../../../src/Propel/Generator/Builder/Om/templates/*' - - '%rootDir%/../../../src/Propel/Generator/Behavior/Validate/templates/*' - - '%rootDir%/../../../src/Propel/Generator/Behavior/Archivable/templates/*' - - '%rootDir%/../../../src/Propel/Generator/Behavior/Delegate/templates/*' - - '%rootDir%/../../../src/Propel/Generator/Behavior/Sortable/templates/*' - - '%rootDir%/../../../src/Propel/Generator/Behavior/NestedSet/templates/*' ignoreErrors: - '#Call to an undefined method .+Collection::.+Array\(\)#' - diff --git a/psalm.xml b/psalm.xml index c94971208d..7e1fca41da 100644 --- a/psalm.xml +++ b/psalm.xml @@ -11,9 +11,6 @@ > - - - diff --git a/src/Propel/Common/Util/PathTrait.php b/src/Propel/Common/Util/PathTrait.php new file mode 100644 index 0000000000..ee5be8e50e --- /dev/null +++ b/src/Propel/Common/Util/PathTrait.php @@ -0,0 +1,67 @@ +getTemplatePath(__DIR__); + } + + $filePath = $templatePath . $filename; if (!file_exists($filePath)) { // try with '.php' at the end $filePath = $filePath . '.php'; if (!file_exists($filePath)) { - throw new InvalidArgumentException(sprintf('Template "%s" not found in "%s" directory', $filename, __DIR__ . $templateDir)); + throw new InvalidArgumentException(sprintf('Template `%s` not found in `%s` directory', $filename, $templatePath)); } } $template = new PropelTemplate(); diff --git a/src/Propel/Generator/Builder/Om/TableMapLoaderScriptBuilder.php b/src/Propel/Generator/Builder/Om/TableMapLoaderScriptBuilder.php index f6710cd66c..365224ab4b 100644 --- a/src/Propel/Generator/Builder/Om/TableMapLoaderScriptBuilder.php +++ b/src/Propel/Generator/Builder/Om/TableMapLoaderScriptBuilder.php @@ -8,6 +8,7 @@ namespace Propel\Generator\Builder\Om; +use Propel\Common\Util\PathTrait; use Propel\Generator\Builder\Util\PropelTemplate; use Propel\Generator\Config\GeneratorConfigInterface; use Propel\Generator\Model\Table; @@ -18,6 +19,8 @@ */ class TableMapLoaderScriptBuilder { + use PathTrait; + /** * @var string */ @@ -95,7 +98,9 @@ protected function getFullyQualifiedTableMapClassName(Table $table): string */ protected function renderTemplate(array $vars): string { - $filePath = implode(DIRECTORY_SEPARATOR, [__DIR__, 'templates', 'tableMapLoaderScript.php']); + $templatePath = $this->getTemplatePath(__DIR__); + + $filePath = $templatePath . 'tableMapLoaderScript.php'; $template = new PropelTemplate(); $template->setTemplateFile($filePath); diff --git a/src/Propel/Generator/Command/InitCommand.php b/src/Propel/Generator/Command/InitCommand.php index 51deed4059..f7c848bc41 100644 --- a/src/Propel/Generator/Command/InitCommand.php +++ b/src/Propel/Generator/Command/InitCommand.php @@ -13,6 +13,7 @@ use Propel\Runtime\Adapter\AdapterFactory; use Propel\Runtime\Connection\ConnectionFactory; use Propel\Runtime\Connection\Exception\ConnectionException; +use RuntimeException; use Symfony\Component\Console\Input\ArrayInput; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Output\OutputInterface; @@ -269,18 +270,25 @@ private function initDsn(ConsoleHelper $consoleHelper, string $rdbms) * @param \Symfony\Component\Console\Output\OutputInterface $output * @param array $options * + * @throws \RuntimeException + * * @return void */ private function generateProject(OutputInterface $output, array $options): void { + $templatesPath = dirname(__FILE__, 5) . DIRECTORY_SEPARATOR . 'templates' . DIRECTORY_SEPARATOR; + if (!is_dir($templatesPath)) { + throw new RuntimeException(sprintf('Cannot find templates path `%s`', $templatesPath)); + } + $schema = new PropelTemplate(); - $schema->setTemplateFile(__DIR__ . '/templates/schema.xml.php'); + $schema->setTemplateFile($templatesPath . 'Command/schema.xml.php'); $config = new PropelTemplate(); - $config->setTemplateFile(__DIR__ . '/templates/propel.' . $options['format'] . '.php'); + $config->setTemplateFile($templatesPath . 'Command/propel.' . $options['format'] . '.php'); $distConfig = new PropelTemplate(); - $distConfig->setTemplateFile(__DIR__ . '/templates/propel.' . $options['format'] . '.dist.php'); + $distConfig->setTemplateFile($templatesPath . 'Command/propel.' . $options['format'] . '.dist.php'); if (!isset($options['schema'])) { $options['schema'] = $schema->render($options); diff --git a/src/Propel/Generator/Manager/MigrationManager.php b/src/Propel/Generator/Manager/MigrationManager.php index 17b0b24e0d..eb3a2880d3 100644 --- a/src/Propel/Generator/Manager/MigrationManager.php +++ b/src/Propel/Generator/Manager/MigrationManager.php @@ -11,6 +11,7 @@ use Exception; use PDO; use PDOException; +use Propel\Common\Util\PathTrait; use Propel\Generator\Builder\Util\PropelTemplate; use Propel\Generator\Exception\InvalidArgumentException; use Propel\Generator\Model\Column; @@ -29,6 +30,8 @@ */ class MigrationManager extends AbstractManager { + use PathTrait; + /** * @var array */ @@ -422,8 +425,10 @@ public function getMigrationClassBody(array $migrationsUp, array $migrationsDown 'connectionToVariableName' => $connectionToVariableName, ]; + $templatePath = $this->getTemplatePath(__DIR__); + $template = new PropelTemplate(); - $filePath = implode(DIRECTORY_SEPARATOR, [__DIR__, 'templates', 'migration_template.php']); + $filePath = $templatePath . 'migration_template.php'; $template->setTemplateFile($filePath); return $template->render($vars); @@ -435,7 +440,7 @@ public function getMigrationClassBody(array $migrationsUp, array $migrationsDown * @param array $migrationsUp * @param array $migrationsDown * - * @return array + * @return array */ protected static function buildConnectionToVariableNameMap(array $migrationsUp, array $migrationsDown): array { diff --git a/src/Propel/Generator/Model/Behavior.php b/src/Propel/Generator/Model/Behavior.php index 34a45f4ed3..12d4e0e646 100644 --- a/src/Propel/Generator/Model/Behavior.php +++ b/src/Propel/Generator/Model/Behavior.php @@ -9,6 +9,7 @@ namespace Propel\Generator\Model; use InvalidArgumentException; +use Propel\Common\Util\PathTrait; use Propel\Generator\Builder\Util\PropelTemplate; use Propel\Generator\Exception\LogicException; use ReflectionObject; @@ -21,6 +22,8 @@ */ class Behavior extends MappingModel { + use PathTrait; + /** * The table object on which the behavior is applied. * @@ -345,23 +348,27 @@ public function isTableModified(): bool * * @param string $filename * @param array $vars - * @param string $templateDir + * @param string|null $templatePath * * @throws \InvalidArgumentException * * @return string */ - public function renderTemplate(string $filename, array $vars = [], string $templateDir = '/templates/'): string + public function renderTemplate(string $filename, array $vars = [], ?string $templatePath = null): string { - $filePath = $this->getDirname() . $templateDir . $filename; + if ($templatePath === null) { + $templatePath = $this->getTemplatePath($this->getDirname()); + } + + $filePath = $templatePath . $filename; if (!file_exists($filePath)) { // try with '.php' at the end $filePath = $filePath . '.php'; if (!file_exists($filePath)) { throw new InvalidArgumentException(sprintf( - 'Template "%s" not found in "%s" directory', + 'Template `%s` not found in `%s` directory', $filename, - $this->getDirname() . $templateDir, + $templatePath, )); } } diff --git a/src/Propel/Generator/Behavior/AggregateColumn/templates/objectCompute.php b/templates/Behavior/AggregateColumn/objectCompute.php similarity index 100% rename from src/Propel/Generator/Behavior/AggregateColumn/templates/objectCompute.php rename to templates/Behavior/AggregateColumn/objectCompute.php diff --git a/src/Propel/Generator/Behavior/AggregateColumn/templates/objectUpdate.php b/templates/Behavior/AggregateColumn/objectUpdate.php similarity index 100% rename from src/Propel/Generator/Behavior/AggregateColumn/templates/objectUpdate.php rename to templates/Behavior/AggregateColumn/objectUpdate.php diff --git a/src/Propel/Generator/Behavior/AggregateColumn/templates/objectUpdateRelated.php b/templates/Behavior/AggregateColumn/objectUpdateRelated.php similarity index 100% rename from src/Propel/Generator/Behavior/AggregateColumn/templates/objectUpdateRelated.php rename to templates/Behavior/AggregateColumn/objectUpdateRelated.php diff --git a/src/Propel/Generator/Behavior/AggregateColumn/templates/queryFindRelated.php b/templates/Behavior/AggregateColumn/queryFindRelated.php similarity index 100% rename from src/Propel/Generator/Behavior/AggregateColumn/templates/queryFindRelated.php rename to templates/Behavior/AggregateColumn/queryFindRelated.php diff --git a/src/Propel/Generator/Behavior/AggregateColumn/templates/queryUpdateRelated.php b/templates/Behavior/AggregateColumn/queryUpdateRelated.php similarity index 100% rename from src/Propel/Generator/Behavior/AggregateColumn/templates/queryUpdateRelated.php rename to templates/Behavior/AggregateColumn/queryUpdateRelated.php diff --git a/src/Propel/Generator/Behavior/AggregateMultipleColumns/templates/objectCompute.php b/templates/Behavior/AggregateMultipleColumns/objectCompute.php similarity index 100% rename from src/Propel/Generator/Behavior/AggregateMultipleColumns/templates/objectCompute.php rename to templates/Behavior/AggregateMultipleColumns/objectCompute.php diff --git a/src/Propel/Generator/Behavior/AggregateMultipleColumns/templates/objectUpdate.php b/templates/Behavior/AggregateMultipleColumns/objectUpdate.php similarity index 100% rename from src/Propel/Generator/Behavior/AggregateMultipleColumns/templates/objectUpdate.php rename to templates/Behavior/AggregateMultipleColumns/objectUpdate.php diff --git a/src/Propel/Generator/Behavior/Archivable/templates/objectArchive.php b/templates/Behavior/Archivable/objectArchive.php similarity index 100% rename from src/Propel/Generator/Behavior/Archivable/templates/objectArchive.php rename to templates/Behavior/Archivable/objectArchive.php diff --git a/src/Propel/Generator/Behavior/Archivable/templates/objectDeleteWithoutArchive.php b/templates/Behavior/Archivable/objectDeleteWithoutArchive.php similarity index 100% rename from src/Propel/Generator/Behavior/Archivable/templates/objectDeleteWithoutArchive.php rename to templates/Behavior/Archivable/objectDeleteWithoutArchive.php diff --git a/src/Propel/Generator/Behavior/Archivable/templates/objectGetArchive.php b/templates/Behavior/Archivable/objectGetArchive.php similarity index 100% rename from src/Propel/Generator/Behavior/Archivable/templates/objectGetArchive.php rename to templates/Behavior/Archivable/objectGetArchive.php diff --git a/src/Propel/Generator/Behavior/Archivable/templates/objectPopulateFromArchive.php b/templates/Behavior/Archivable/objectPopulateFromArchive.php similarity index 100% rename from src/Propel/Generator/Behavior/Archivable/templates/objectPopulateFromArchive.php rename to templates/Behavior/Archivable/objectPopulateFromArchive.php diff --git a/src/Propel/Generator/Behavior/Archivable/templates/objectPreDelete.php b/templates/Behavior/Archivable/objectPreDelete.php similarity index 100% rename from src/Propel/Generator/Behavior/Archivable/templates/objectPreDelete.php rename to templates/Behavior/Archivable/objectPreDelete.php diff --git a/src/Propel/Generator/Behavior/Archivable/templates/objectRestoreFromArchive.php b/templates/Behavior/Archivable/objectRestoreFromArchive.php similarity index 100% rename from src/Propel/Generator/Behavior/Archivable/templates/objectRestoreFromArchive.php rename to templates/Behavior/Archivable/objectRestoreFromArchive.php diff --git a/src/Propel/Generator/Behavior/Archivable/templates/objectSaveWithoutArchive.php b/templates/Behavior/Archivable/objectSaveWithoutArchive.php similarity index 100% rename from src/Propel/Generator/Behavior/Archivable/templates/objectSaveWithoutArchive.php rename to templates/Behavior/Archivable/objectSaveWithoutArchive.php diff --git a/src/Propel/Generator/Behavior/Archivable/templates/queryArchive.php b/templates/Behavior/Archivable/queryArchive.php similarity index 100% rename from src/Propel/Generator/Behavior/Archivable/templates/queryArchive.php rename to templates/Behavior/Archivable/queryArchive.php diff --git a/src/Propel/Generator/Behavior/Archivable/templates/queryDeleteWithoutArchive.php b/templates/Behavior/Archivable/queryDeleteWithoutArchive.php similarity index 100% rename from src/Propel/Generator/Behavior/Archivable/templates/queryDeleteWithoutArchive.php rename to templates/Behavior/Archivable/queryDeleteWithoutArchive.php diff --git a/src/Propel/Generator/Behavior/Archivable/templates/querySetArchiveOnDelete.php b/templates/Behavior/Archivable/querySetArchiveOnDelete.php similarity index 100% rename from src/Propel/Generator/Behavior/Archivable/templates/querySetArchiveOnDelete.php rename to templates/Behavior/Archivable/querySetArchiveOnDelete.php diff --git a/src/Propel/Generator/Behavior/Archivable/templates/querySetArchiveOnUpdate.php b/templates/Behavior/Archivable/querySetArchiveOnUpdate.php similarity index 100% rename from src/Propel/Generator/Behavior/Archivable/templates/querySetArchiveOnUpdate.php rename to templates/Behavior/Archivable/querySetArchiveOnUpdate.php diff --git a/src/Propel/Generator/Behavior/Archivable/templates/queryUpdateWithoutArchive.php b/templates/Behavior/Archivable/queryUpdateWithoutArchive.php similarity index 100% rename from src/Propel/Generator/Behavior/Archivable/templates/queryUpdateWithoutArchive.php rename to templates/Behavior/Archivable/queryUpdateWithoutArchive.php diff --git a/src/Propel/Generator/Behavior/Delegate/templates/queryMethodsTemplate.php b/templates/Behavior/Delegate/queryMethodsTemplate.php similarity index 100% rename from src/Propel/Generator/Behavior/Delegate/templates/queryMethodsTemplate.php rename to templates/Behavior/Delegate/queryMethodsTemplate.php diff --git a/src/Propel/Generator/Behavior/I18n/templates/objectAttributes.php b/templates/Behavior/I18n/objectAttributes.php similarity index 100% rename from src/Propel/Generator/Behavior/I18n/templates/objectAttributes.php rename to templates/Behavior/I18n/objectAttributes.php diff --git a/src/Propel/Generator/Behavior/I18n/templates/objectClearReferences.php b/templates/Behavior/I18n/objectClearReferences.php similarity index 100% rename from src/Propel/Generator/Behavior/I18n/templates/objectClearReferences.php rename to templates/Behavior/I18n/objectClearReferences.php diff --git a/src/Propel/Generator/Behavior/I18n/templates/objectGetCurrentTranslation.php b/templates/Behavior/I18n/objectGetCurrentTranslation.php similarity index 100% rename from src/Propel/Generator/Behavior/I18n/templates/objectGetCurrentTranslation.php rename to templates/Behavior/I18n/objectGetCurrentTranslation.php diff --git a/src/Propel/Generator/Behavior/I18n/templates/objectGetLocale.php b/templates/Behavior/I18n/objectGetLocale.php similarity index 100% rename from src/Propel/Generator/Behavior/I18n/templates/objectGetLocale.php rename to templates/Behavior/I18n/objectGetLocale.php diff --git a/src/Propel/Generator/Behavior/I18n/templates/objectGetLocaleAlias.php b/templates/Behavior/I18n/objectGetLocaleAlias.php similarity index 100% rename from src/Propel/Generator/Behavior/I18n/templates/objectGetLocaleAlias.php rename to templates/Behavior/I18n/objectGetLocaleAlias.php diff --git a/src/Propel/Generator/Behavior/I18n/templates/objectGetTranslation.php b/templates/Behavior/I18n/objectGetTranslation.php similarity index 100% rename from src/Propel/Generator/Behavior/I18n/templates/objectGetTranslation.php rename to templates/Behavior/I18n/objectGetTranslation.php diff --git a/src/Propel/Generator/Behavior/I18n/templates/objectPostDelete.php b/templates/Behavior/I18n/objectPostDelete.php similarity index 100% rename from src/Propel/Generator/Behavior/I18n/templates/objectPostDelete.php rename to templates/Behavior/I18n/objectPostDelete.php diff --git a/src/Propel/Generator/Behavior/I18n/templates/objectRemoveTranslation.php b/templates/Behavior/I18n/objectRemoveTranslation.php similarity index 100% rename from src/Propel/Generator/Behavior/I18n/templates/objectRemoveTranslation.php rename to templates/Behavior/I18n/objectRemoveTranslation.php diff --git a/src/Propel/Generator/Behavior/I18n/templates/objectSetLocale.php b/templates/Behavior/I18n/objectSetLocale.php similarity index 100% rename from src/Propel/Generator/Behavior/I18n/templates/objectSetLocale.php rename to templates/Behavior/I18n/objectSetLocale.php diff --git a/src/Propel/Generator/Behavior/I18n/templates/objectSetLocaleAlias.php b/templates/Behavior/I18n/objectSetLocaleAlias.php similarity index 100% rename from src/Propel/Generator/Behavior/I18n/templates/objectSetLocaleAlias.php rename to templates/Behavior/I18n/objectSetLocaleAlias.php diff --git a/src/Propel/Generator/Behavior/I18n/templates/objectSetTranslation.php b/templates/Behavior/I18n/objectSetTranslation.php similarity index 100% rename from src/Propel/Generator/Behavior/I18n/templates/objectSetTranslation.php rename to templates/Behavior/I18n/objectSetTranslation.php diff --git a/src/Propel/Generator/Behavior/I18n/templates/objectTranslatedColumnGetter.php b/templates/Behavior/I18n/objectTranslatedColumnGetter.php similarity index 100% rename from src/Propel/Generator/Behavior/I18n/templates/objectTranslatedColumnGetter.php rename to templates/Behavior/I18n/objectTranslatedColumnGetter.php diff --git a/src/Propel/Generator/Behavior/I18n/templates/objectTranslatedColumnSetter.php b/templates/Behavior/I18n/objectTranslatedColumnSetter.php similarity index 100% rename from src/Propel/Generator/Behavior/I18n/templates/objectTranslatedColumnSetter.php rename to templates/Behavior/I18n/objectTranslatedColumnSetter.php diff --git a/src/Propel/Generator/Behavior/I18n/templates/queryJoinI18n.php b/templates/Behavior/I18n/queryJoinI18n.php similarity index 100% rename from src/Propel/Generator/Behavior/I18n/templates/queryJoinI18n.php rename to templates/Behavior/I18n/queryJoinI18n.php diff --git a/src/Propel/Generator/Behavior/I18n/templates/queryJoinWithI18n.php b/templates/Behavior/I18n/queryJoinWithI18n.php similarity index 100% rename from src/Propel/Generator/Behavior/I18n/templates/queryJoinWithI18n.php rename to templates/Behavior/I18n/queryJoinWithI18n.php diff --git a/src/Propel/Generator/Behavior/I18n/templates/queryUseI18nQuery.php b/templates/Behavior/I18n/queryUseI18nQuery.php similarity index 100% rename from src/Propel/Generator/Behavior/I18n/templates/queryUseI18nQuery.php rename to templates/Behavior/I18n/queryUseI18nQuery.php diff --git a/src/Propel/Generator/Behavior/I18n/templates/staticAttributes.php b/templates/Behavior/I18n/staticAttributes.php similarity index 100% rename from src/Propel/Generator/Behavior/I18n/templates/staticAttributes.php rename to templates/Behavior/I18n/staticAttributes.php diff --git a/src/Propel/Generator/Behavior/NestedSet/templates/objectGetIterator.php b/templates/Behavior/NestedSet/objectGetIterator.php similarity index 100% rename from src/Propel/Generator/Behavior/NestedSet/templates/objectGetIterator.php rename to templates/Behavior/NestedSet/objectGetIterator.php diff --git a/src/Propel/Generator/Behavior/NestedSet/templates/objectInsertAsLastChildOf.php b/templates/Behavior/NestedSet/objectInsertAsLastChildOf.php similarity index 100% rename from src/Propel/Generator/Behavior/NestedSet/templates/objectInsertAsLastChildOf.php rename to templates/Behavior/NestedSet/objectInsertAsLastChildOf.php diff --git a/src/Propel/Generator/Behavior/NestedSet/templates/objectSetLeft.php b/templates/Behavior/NestedSet/objectSetLeft.php similarity index 100% rename from src/Propel/Generator/Behavior/NestedSet/templates/objectSetLeft.php rename to templates/Behavior/NestedSet/objectSetLeft.php diff --git a/src/Propel/Generator/Behavior/Sortable/templates/tableMapSortable.php b/templates/Behavior/Sortable/tableMapSortable.php similarity index 100% rename from src/Propel/Generator/Behavior/Sortable/templates/tableMapSortable.php rename to templates/Behavior/Sortable/tableMapSortable.php diff --git a/src/Propel/Generator/Behavior/Validate/templates/objectAttributes.php b/templates/Behavior/Validate/objectAttributes.php similarity index 100% rename from src/Propel/Generator/Behavior/Validate/templates/objectAttributes.php rename to templates/Behavior/Validate/objectAttributes.php diff --git a/src/Propel/Generator/Behavior/Validate/templates/objectGetValidationFailures.php b/templates/Behavior/Validate/objectGetValidationFailures.php similarity index 100% rename from src/Propel/Generator/Behavior/Validate/templates/objectGetValidationFailures.php rename to templates/Behavior/Validate/objectGetValidationFailures.php diff --git a/src/Propel/Generator/Behavior/Validate/templates/objectLoadValidatorMetadata.php b/templates/Behavior/Validate/objectLoadValidatorMetadata.php similarity index 100% rename from src/Propel/Generator/Behavior/Validate/templates/objectLoadValidatorMetadata.php rename to templates/Behavior/Validate/objectLoadValidatorMetadata.php diff --git a/src/Propel/Generator/Behavior/Validate/templates/objectValidate.php b/templates/Behavior/Validate/objectValidate.php similarity index 100% rename from src/Propel/Generator/Behavior/Validate/templates/objectValidate.php rename to templates/Behavior/Validate/objectValidate.php diff --git a/src/Propel/Generator/Builder/Om/templates/baseObjectAttributes.php b/templates/Builder/Om/baseObjectAttributes.php similarity index 100% rename from src/Propel/Generator/Builder/Om/templates/baseObjectAttributes.php rename to templates/Builder/Om/baseObjectAttributes.php diff --git a/src/Propel/Generator/Builder/Om/templates/baseObjectMethodHook.php b/templates/Builder/Om/baseObjectMethodHook.php similarity index 100% rename from src/Propel/Generator/Builder/Om/templates/baseObjectMethodHook.php rename to templates/Builder/Om/baseObjectMethodHook.php diff --git a/src/Propel/Generator/Builder/Om/templates/baseObjectMethodMagicCall.php b/templates/Builder/Om/baseObjectMethodMagicCall.php similarity index 100% rename from src/Propel/Generator/Builder/Om/templates/baseObjectMethodMagicCall.php rename to templates/Builder/Om/baseObjectMethodMagicCall.php diff --git a/src/Propel/Generator/Builder/Om/templates/baseObjectMethods.php b/templates/Builder/Om/baseObjectMethods.php similarity index 100% rename from src/Propel/Generator/Builder/Om/templates/baseObjectMethods.php rename to templates/Builder/Om/baseObjectMethods.php diff --git a/src/Propel/Generator/Builder/Om/templates/tableMapClearRelatedInstancePool.php b/templates/Builder/Om/tableMapClearRelatedInstancePool.php similarity index 100% rename from src/Propel/Generator/Builder/Om/templates/tableMapClearRelatedInstancePool.php rename to templates/Builder/Om/tableMapClearRelatedInstancePool.php diff --git a/src/Propel/Generator/Builder/Om/templates/tableMapConstants.php b/templates/Builder/Om/tableMapConstants.php similarity index 100% rename from src/Propel/Generator/Builder/Om/templates/tableMapConstants.php rename to templates/Builder/Om/tableMapConstants.php diff --git a/src/Propel/Generator/Builder/Om/templates/tableMapFields.php b/templates/Builder/Om/tableMapFields.php similarity index 100% rename from src/Propel/Generator/Builder/Om/templates/tableMapFields.php rename to templates/Builder/Om/tableMapFields.php diff --git a/src/Propel/Generator/Builder/Om/templates/tableMapInstancePool.php b/templates/Builder/Om/tableMapInstancePool.php similarity index 100% rename from src/Propel/Generator/Builder/Om/templates/tableMapInstancePool.php rename to templates/Builder/Om/tableMapInstancePool.php diff --git a/src/Propel/Generator/Builder/Om/templates/tableMapLoaderScript.php b/templates/Builder/Om/tableMapLoaderScript.php similarity index 100% rename from src/Propel/Generator/Builder/Om/templates/tableMapLoaderScript.php rename to templates/Builder/Om/tableMapLoaderScript.php diff --git a/src/Propel/Generator/Command/templates/propel.ini.dist.php b/templates/Command/propel.ini.dist.php similarity index 100% rename from src/Propel/Generator/Command/templates/propel.ini.dist.php rename to templates/Command/propel.ini.dist.php diff --git a/src/Propel/Generator/Command/templates/propel.ini.php b/templates/Command/propel.ini.php similarity index 100% rename from src/Propel/Generator/Command/templates/propel.ini.php rename to templates/Command/propel.ini.php diff --git a/src/Propel/Generator/Command/templates/propel.json.dist.php b/templates/Command/propel.json.dist.php similarity index 100% rename from src/Propel/Generator/Command/templates/propel.json.dist.php rename to templates/Command/propel.json.dist.php diff --git a/src/Propel/Generator/Command/templates/propel.json.php b/templates/Command/propel.json.php similarity index 100% rename from src/Propel/Generator/Command/templates/propel.json.php rename to templates/Command/propel.json.php diff --git a/src/Propel/Generator/Command/templates/propel.php.dist.php b/templates/Command/propel.php.dist.php similarity index 100% rename from src/Propel/Generator/Command/templates/propel.php.dist.php rename to templates/Command/propel.php.dist.php diff --git a/src/Propel/Generator/Command/templates/propel.php.php b/templates/Command/propel.php.php similarity index 100% rename from src/Propel/Generator/Command/templates/propel.php.php rename to templates/Command/propel.php.php diff --git a/src/Propel/Generator/Command/templates/propel.xml.dist.php b/templates/Command/propel.xml.dist.php similarity index 100% rename from src/Propel/Generator/Command/templates/propel.xml.dist.php rename to templates/Command/propel.xml.dist.php diff --git a/src/Propel/Generator/Command/templates/propel.xml.php b/templates/Command/propel.xml.php similarity index 100% rename from src/Propel/Generator/Command/templates/propel.xml.php rename to templates/Command/propel.xml.php diff --git a/src/Propel/Generator/Command/templates/propel.yml.dist.php b/templates/Command/propel.yml.dist.php similarity index 100% rename from src/Propel/Generator/Command/templates/propel.yml.dist.php rename to templates/Command/propel.yml.dist.php diff --git a/src/Propel/Generator/Command/templates/propel.yml.php b/templates/Command/propel.yml.php similarity index 100% rename from src/Propel/Generator/Command/templates/propel.yml.php rename to templates/Command/propel.yml.php diff --git a/src/Propel/Generator/Command/templates/schema.xml.php b/templates/Command/schema.xml.php similarity index 100% rename from src/Propel/Generator/Command/templates/schema.xml.php rename to templates/Command/schema.xml.php diff --git a/src/Propel/Generator/Manager/templates/migration_template.php b/templates/Manager/migration_template.php similarity index 100% rename from src/Propel/Generator/Manager/templates/migration_template.php rename to templates/Manager/migration_template.php