for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
declare(strict_types=1);
namespace Doctrine\Migrations\Generator;
use DateTimeImmutable;
use DateTimeInterface;
use Doctrine\Migrations\Query\Query;
use function sprintf;
/**
* The ConcatenationFileBuilder class is responsible for building a migration SQL file from an array of queries per version.
*
* @internal
*/
final class ConcatenationFileBuilder implements FileBuilder
{
/** @param array<string,Query[]> $queriesByVersion */
public function buildMigrationFile(
array $queriesByVersion,
string $direction,
?DateTimeInterface $now = null
) : string {
$now = $now ?? new DateTimeImmutable();
$string = sprintf("-- Doctrine Migration File Generated on %s\n", $now->format('Y-m-d H:i:s'));
foreach ($queriesByVersion as $version => $queries) {
$string .= "\n-- Version " . $version . "\n";
foreach ($queries as $query) {
$string .= $query->getStatement() . ";\n";
}
return $string;