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