Skip to content

Commit bfd3867

Browse files
committed
add starter-kit that includes all current scaffolds and and application shell
1 parent 2b68dd6 commit bfd3867

File tree

3 files changed

+90
-2
lines changed

3 files changed

+90
-2
lines changed

src/Resources/scaffolds/6.0/bootstrapcss.php

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,13 @@
1111
],
1212
'configure' => function(FileManager $files) {
1313
$packageJson = json_decode($files->getFileContents('package.json'), true);
14-
$packageJson['devDependencies']['bootstrap'] = '^5.0.0';
15-
$packageJson['devDependencies']['@popperjs/core'] = '^2.0.0';
14+
$devDeps = $packageJson['devDependencies'];
15+
$devDeps['bootstrap'] = '^5.0.0';
16+
$devDeps['@popperjs/core'] = '^2.0.0';
17+
18+
ksort($devDeps);
19+
20+
$packageJson['devDependencies'] = $devDeps;
1621
$files->dumpFile('package.json', json_encode($packageJson, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES));
1722

1823
$twig = new YamlSourceManipulator($files->getFileContents('config/packages/twig.yaml'));
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
<?php
2+
3+
use Symfony\Bundle\MakerBundle\FileManager;
4+
5+
return [
6+
'description' => 'Starting kit with authentication, registration, password reset, user profile management with an application shell styled with Bootstrap CSS.',
7+
'dependents' => [
8+
'bootstrapcss',
9+
'register',
10+
'reset-password',
11+
'change-password',
12+
'profile',
13+
],
14+
'configure' => function(FileManager $files) {
15+
$files->dumpFile('templates/base.html.twig', file_get_contents(__DIR__.'/starter-kit/templates/base.html.twig'));
16+
17+
$login = $files->getFileContents('templates/login.html.twig');
18+
$forgotPassword = "</button>\n <a class=\"btn btn-link\" href=\"{{ path('reset_password_request') }}\">Forgot your password?</a>";
19+
20+
if (str_contains($login, $forgotPassword)) {
21+
return;
22+
}
23+
24+
$files->dumpFile('templates/login.html.twig', str_replace(
25+
'</button>',
26+
$forgotPassword,
27+
$login
28+
));
29+
},
30+
];
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
<!DOCTYPE html>
2+
<html>
3+
<head>
4+
<meta charset="UTF-8">
5+
<title>{% block title %}Welcome!{% endblock %}</title>
6+
<link rel="icon" href="data:image/svg+xml,<svg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 128 128%22><text y=%221.2em%22 font-size=%2296%22>⚫️</text></svg>">
7+
{# Run `composer require symfony/webpack-encore-bundle` to start using Symfony UX #}
8+
{% block stylesheets %}
9+
{{ encore_entry_link_tags('app') }}
10+
{% endblock %}
11+
12+
{% block javascripts %}
13+
{{ encore_entry_script_tags('app') }}
14+
{% endblock %}
15+
</head>
16+
<body>
17+
<nav class="navbar navbar-expand-lg navbar-light bg-light mb-3">
18+
<div class="container">
19+
<a class="navbar-brand" href="{{ path('homepage') }}">My App</a>
20+
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
21+
<span class="navbar-toggler-icon"></span>
22+
</button>
23+
<div class="collapse navbar-collapse" id="navbarSupportedContent">
24+
<ul class="navbar-nav ms-auto mb-2 mb-lg-0">
25+
{% if app.user %}
26+
<li class="nav-item dropdown">
27+
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-bs-toggle="dropdown" aria-expanded="false">
28+
{{ app.user.email }}
29+
</a>
30+
<ul class="dropdown-menu" aria-labelledby="navbarDropdown">
31+
<li><a class="dropdown-item" href="{{ path('profile') }}">Manage Profile</a></li>
32+
<li><a class="dropdown-item" href="{{ path('change_password') }}">Change Password</a></li>
33+
<li><hr class="dropdown-divider"></li>
34+
<li><a class="dropdown-item" href="{{ path('logout') }}">Logout</a></li>
35+
</ul>
36+
</li>
37+
{% else %}
38+
<li class="nav-item">
39+
<a class="nav-link" href="{{ path('register') }}">Register</a>
40+
</li>
41+
<li class="nav-item">
42+
<a class="nav-link" href="{{ path('login') }}">Login</a>
43+
</li>
44+
{% endif %}
45+
</ul>
46+
</div>
47+
</div>
48+
</nav>
49+
<div class="container">
50+
{% block body %}{% endblock %}
51+
</div>
52+
</body>
53+
</html>

0 commit comments

Comments
 (0)