Skip to content
This repository was archived by the owner on Nov 27, 2020. It is now read-only.

Commit ab91fc5

Browse files
committed
feature #834 Added a "Welcome Page" for new Symfony apps (javiereguiluz)
This PR was squashed before being merged into the 2.3 branch (closes #834). Discussion ---------- Added a "Welcome Page" for new Symfony apps ### Problem When you create a new Symfony app (`symfony new my_project`) and follow the installer instructions, when browsing the application for the first time, you'll get a 404 error: ![old_welcome_screen](https://cloud.githubusercontent.com/assets/73419/8820296/760f30fc-3054-11e5-9251-d382a5257758.png) ### Solution In this PR we add a new simple welcome page to avoid that error. This page is designed for newcomers, so we'll guide them exactly to where they should go: to the doc explaining how to create their first page with Symfony: ![new_welcome_screen_ok](https://cloud.githubusercontent.com/assets/73419/8820314/97ee4258-3054-11e5-8ef8-f4f8c93bb899.png) Commits ------- 0e4bb3e Added a "Welcome Page" for new Symfony apps
2 parents 6cfc6b1 + 0e4bb3e commit ab91fc5

File tree

3 files changed

+80
-5
lines changed

3 files changed

+80
-5
lines changed
Lines changed: 72 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,76 @@
11
{% extends 'base.html.twig' %}
22

33
{% block body %}
4-
Homepage.
4+
<div id="wrapper">
5+
<div id="container">
6+
<div id="welcome">
7+
<h1><span>Welcome to</span> Symfony {{ constant('Symfony\\Component\\HttpKernel\\Kernel::VERSION') }}</h1>
8+
</div>
9+
10+
<div id="status">
11+
<p>
12+
<svg id="icon-status" width="1792" height="1792" viewBox="0 0 1792 1792" xmlns="http://www.w3.org/2000/svg"><path d="M1671 566q0 40-28 68l-724 724-136 136q-28 28-68 28t-68-28l-136-136-362-362q-28-28-28-68t28-68l136-136q28-28 68-28t68 28l294 295 656-657q28-28 68-28t68 28l136 136q28 28 28 68z" fill="#759E1A"/></svg>
13+
14+
Your application is ready to start working on it at:
15+
<code>{{ base_dir }}/</code>
16+
</p>
17+
</div>
18+
19+
<div id="next">
20+
<h2>What's next?</h2>
21+
<p>
22+
<svg id="icon-book" version="1.1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" viewBox="-12.5 9 64 64" enable-background="new -12.5 9 64 64" xml:space="preserve">
23+
<path fill="#AAA" d="M6.8,40.8c2.4,0.8,4.5-0.7,4.9-2.5c0.2-1.2-0.3-2.1-1.3-3.2l-0.8-0.8c-0.4-0.5-0.6-1.3-0.2-1.9
24+
c0.4-0.5,0.9-0.8,1.8-0.5c1.3,0.4,1.9,1.3,2.9,2.2c-0.4,1.4-0.7,2.9-0.9,4.2l-0.2,1c-0.7,4-1.3,6.2-2.7,7.5
25+
c-0.3,0.3-0.7,0.5-1.3,0.6c-0.3,0-0.4-0.3-0.4-0.3c0-0.3,0.2-0.3,0.3-0.4c0.2-0.1,0.5-0.3,0.4-0.8c0-0.7-0.6-1.3-1.3-1.3
26+
c-0.6,0-1.4,0.6-1.4,1.7s1,1.9,2.4,1.8c0.8,0,2.5-0.3,4.2-2.5c2-2.5,2.5-5.4,2.9-7.4l0.5-2.8c0.3,0,0.5,0.1,0.8,0.1
27+
c2.4,0.1,3.7-1.3,3.7-2.3c0-0.6-0.3-1.2-0.9-1.2c-0.4,0-0.8,0.3-1,0.8c-0.1,0.6,0.8,1.1,0.1,1.5c-0.5,0.3-1.4,0.6-2.7,0.4l0.3-1.3
28+
c0.5-2.6,1-5.7,3.2-5.8c0.2,0,0.8,0,0.8,0.4c0,0.2,0,0.2-0.2,0.5c-0.2,0.3-0.3,0.4-0.2,0.7c0,0.7,0.5,1.1,1.2,1.1
29+
c0.9,0,1.2-1,1.2-1.4c0-1.2-1.2-1.8-2.6-1.8c-1.5,0.1-2.8,0.9-3.7,2.1c-1.1,1.3-1.8,2.9-2.3,4.5c-0.9-0.8-1.6-1.8-3.1-2.3
30+
c-1.1-0.7-2.3-0.5-3.4,0.3c-0.5,0.4-0.8,1-1,1.6c-0.4,1.5,0.4,2.9,0.8,3.4l0.9,1c0.2,0.2,0.6,0.8,0.4,1.5c-0.3,0.8-1.2,1.3-2.1,1
31+
c-0.4-0.2-1-0.5-0.9-0.9c0.1-0.2,0.2-0.3,0.3-0.5s0.1-0.3,0.1-0.3c0.2-0.6-0.1-1.4-0.7-1.6c-0.6-0.2-1.2,0-1.3,0.8
32+
C4.3,38.4,4.7,40,6.8,40.8z M46.1,20.9c0-4.2-3.2-7.5-7.1-7.5h-3.8C34.8,10.8,32.7,9,30.2,9L-2.3,9.1c-2.8,0.1-4.9,2.4-4.9,5.4
33+
L-7,58.6c0,4.8,8.1,13.9,11.6,14.1l34.7-0.1c3.9,0,7-3.4,7-7.6L46.1,20.9z M-0.3,36.4c0-8.6,6.5-15.6,14.5-15.6
34+
c8,0,14.5,7,14.5,15.6S22.1,52,14.2,52C6.1,52-0.3,45-0.3,36.4z M42.1,65.1c0,1.8-1.5,3.1-3.1,3.1H4.6c-0.7,0-3-1.8-4.5-4.4h30.4
35+
c2.8,0,5-2.4,5-5.4V17.9h3.7c1.6,0,2.9,1.4,2.9,3.1V65.1L42.1,65.1z"/>
36+
</svg>
37+
38+
Read Symfony documentation to learn
39+
<a href="http://symfony.com/doc/{{ constant('Symfony\\Component\\HttpKernel\\Kernel::VERSION')[:3] }}/book/page_creation.html">
40+
How to create your first page in Symfony
41+
</a>
42+
</p>
43+
</div>
44+
45+
</div>
46+
</div>
47+
{% endblock %}
48+
49+
{% block stylesheets %}
50+
<style>
51+
body { background: #F5F5F5; font: 18px/1.5 sans-serif; }
52+
h1, h2 { line-height: 1.2; margin: 0 0 .5em; }
53+
h1 { font-size: 36px; }
54+
h2 { font-size: 21px; margin-bottom: 1em; }
55+
p { margin: 0 0 1em 0; }
56+
a { color: #0000F0; }
57+
a:hover { text-decoration: none; }
58+
code { background: #F5F5F5; max-width: 100px; padding: 2px 6px; word-wrap: break-word; }
59+
#wrapper { background: #FFF; margin: 1em auto; max-width: 800px; width: 95%; }
60+
#container { padding: 2em; }
61+
#welcome, #status { margin-bottom: 2em; }
62+
#welcome h1 span { display: block; font-size: 75%; }
63+
#icon-status, #icon-book { float: left; height: 64px; margin-right: 1em; margin-top: -4px; width: 64px; }
64+
#icon-book { display: none; }
65+
66+
@media (min-width: 768px) {
67+
#wrapper { width: 80%; margin: 2em auto; }
68+
#icon-book { display: inline-block; }
69+
#status a, #next a { display: block; }
70+
71+
@-webkit-keyframes fade-in { 0% { opacity: 0; } 100% { opacity: 1; } }
72+
@keyframes fade-in { 0% { opacity: 0; } 100% { opacity: 1; } }
73+
.sf-toolbar { opacity: 0; -webkit-animation: fade-in 1s .2s forwards; animation: fade-in 1s .2s forwards;}
74+
}
75+
</style>
576
{% endblock %}

src/AppBundle/Controller/DefaultController.php

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,13 @@
99
class DefaultController extends Controller
1010
{
1111
/**
12-
* @Route("/app/example", name="homepage")
12+
* @Route("/", name="homepage")
1313
*/
14-
public function indexAction()
14+
public function indexAction(Request $request)
1515
{
16-
return $this->render('default/index.html.twig');
16+
// replace this example code with whatever you need
17+
return $this->render('default/index.html.twig', array(
18+
'base_dir' => realpath($this->container->getParameter('kernel.root_dir').'/..'),
19+
));
1720
}
1821
}

src/AppBundle/Tests/Controller/DefaultControllerTest.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ public function testIndex()
1212

1313
$crawler = $client->request('GET', '/');
1414

15-
$this->assertTrue($crawler->filter('html:contains("Homepage")')->count() > 0);
15+
$this->assertEquals(200, $client->getResponse()->getStatusCode());
16+
$this->assertContains('Welcome to Symfony', $crawler->filter('#container h1')->text());
1617
}
1718
}

0 commit comments

Comments
 (0)