up($schema); (new Version20260912000200($db, new NullLogger()))->up($schema); (new Version20260912000300($db, new NullLogger()))->up($schema); foreach ($schema->toSql($db->getDatabasePlatform()) as $sql) { $db->executeStatement($sql); } $db->insert('website', ['id' => 'default', 'name' => 'Browser test', 'default_locale' => 'de', 'theme' => '{}']); $pages = new PageRepository($db, new DocumentValidator()); foreach (DemoContent::pages() as $slug => $document) { $id = 'test-'.$slug; $db->insert('page', ['id' => $id, 'slug' => $slug, 'locale' => 'de', 'website_id' => 'default', 'version' => 0]); $revision = $pages->saveDraft($id, $document, 0); $pages->publish($id, $revision, 1); } $password = bin2hex(random_bytes(20)); $username = 'browser-'.bin2hex(random_bytes(6)); $db->insert('cms_user', ['id' => $username, 'username' => $username, 'password_hash' => password_hash($password, PASSWORD_BCRYPT, ['cost' => 4]), 'roles' => '["ROLE_ADMIN"]']); $images = []; foreach (['Berge', 'Küste'] as $index => $title) { $image = imagecreatetruecolor(1800, 1200); for ($y = 0; $y < 1200; ++$y) { $color = imagecolorallocate($image, 110 + (int) ($y / 18), 150 + (int) ($y / 30), 155 + (int) ($y / 28)); imageline($image, 0, $y, 1799, $y, $color); } imagefilledellipse($image, 1300, 270, 210, 210, imagecolorallocate($image, 245, 223, 169)); imagefilledpolygon($image, [0, 1000, 420, 350 + $index * 150, 950, 980, 1400, 550, 1800, 1100, 1800, 1200, 0, 1200], imagecolorallocate($image, 42, 83 + $index * 20, 75)); $imagePath = $path.'-'.$title.'.png'; imagepng($image, $imagePath); imagedestroy($image); $images[] = $imagePath; } echo json_encode(['databaseUrl' => $url, 'mediaDirectory' => $path.'-media', 'images' => $images, 'username' => $username, 'password' => $password]);