Skip to content

Commit

Permalink
Add Docker configuration and the base application that uses Guzzle
Browse files Browse the repository at this point in the history
  • Loading branch information
sroze committed Jan 28, 2016
1 parent a6bf5d1 commit cc118f7
Show file tree
Hide file tree
Showing 16 changed files with 628 additions and 156 deletions.
38 changes: 38 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
FROM php:5.6-apache

# PHP extension
RUN requirements="zlib1g-dev libicu-dev git wget" \
&& apt-get update && apt-get install -y $requirements && rm -rf /var/lib/apt/lists/* \
&& docker-php-ext-install pdo_mysql \
&& docker-php-ext-install mbstring \
&& docker-php-ext-install intl \
&& docker-php-ext-install zip \
&& docker-php-ext-install opcache \
&& docker-php-ext-install bcmath \
&& pecl install apcu-4.0.8 && echo extension=apcu.so > /usr/local/etc/php/conf.d/apcu.ini \
&& apt-get purge --auto-remove -y

# Apache & PHP configuration
RUN a2enmod rewrite
ADD docker/apache/vhost.conf /etc/apache2/sites-enabled/default.conf
ADD docker/php/php.ini /usr/local/etc/php/php.ini

# Install composer
RUN curl -sS https://getcomposer.org/installer | php \
&& mv composer.phar /usr/bin/composer

# Add the application
COPY . /app
WORKDIR /app

# Fixes permissions
RUN rm -rf var/cache/* && rm -rf var/logs/*

# Run dependencies
RUN composer install

# Fixes permissions
RUN rm -rf var/cache/* && rm -rf var/logs/* \
&& chown www-data . var/cache var/logs

CMD ["/app/docker/apache/run.sh"]
72 changes: 9 additions & 63 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,68 +1,14 @@
Symfony Standard Edition
========================
# Tolerance Example Symfony Service

Welcome to the Symfony Standard Edition - a fully-functional Symfony
application that you can use as the skeleton for your new applications.
This is an example application that is used for demos of real-life usage of [Tolerance](http://tolerance.io) features.

For details on how to download and get started with Symfony, see the
[Installation][1] chapter of the Symfony Documentation.
## Getting started with Docker

What's inside?
--------------
You can simply use the Docker image:
```
docker run -d sroze/tolerance-example-symfony-service
```

The Symfony Standard Edition is configured with the following defaults:
## Manually

* An AppBundle you can use to start coding;

* Twig as the only configured template engine;

* Doctrine ORM/DBAL;

* Swiftmailer;

* Annotations enabled for everything.

It comes pre-configured with the following bundles:

* **FrameworkBundle** - The core Symfony framework bundle

* [**SensioFrameworkExtraBundle**][6] - Adds several enhancements, including
template and routing annotation capability

* [**DoctrineBundle**][7] - Adds support for the Doctrine ORM

* [**TwigBundle**][8] - Adds support for the Twig templating engine

* [**SecurityBundle**][9] - Adds security by integrating Symfony's security
component

* [**SwiftmailerBundle**][10] - Adds support for Swiftmailer, a library for
sending emails

* [**MonologBundle**][11] - Adds support for Monolog, a logging library

* **WebProfilerBundle** (in dev/test env) - Adds profiling functionality and
the web debug toolbar

* **SensioDistributionBundle** (in dev/test env) - Adds functionality for
configuring and working with Symfony distributions

* [**SensioGeneratorBundle**][13] (in dev/test env) - Adds code generation
capabilities

* **DebugBundle** (in dev/test env) - Adds Debug and VarDumper component
integration

All libraries and bundles included in the Symfony Standard Edition are
released under the MIT or BSD license.

Enjoy!

[1]: https://symfony.com/doc/3.0/book/installation.html
[6]: https://symfony.com/doc/current/bundles/SensioFrameworkExtraBundle/index.html
[7]: https://symfony.com/doc/3.0/book/doctrine.html
[8]: https://symfony.com/doc/3.0/book/templating.html
[9]: https://symfony.com/doc/3.0/book/security.html
[10]: https://symfony.com/doc/3.0/cookbook/email.html
[11]: https://symfony.com/doc/3.0/cookbook/logging/monolog.html
[13]: https://symfony.com/doc/3.0/bundles/SensioGeneratorBundle/index.html
Well, that's a classic [Symfony application](http://symfony.com/doc/current/quick_tour/the_big_picture.html) :)
1 change: 1 addition & 0 deletions app/AppKernel.php
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ public function registerBundles()
new Symfony\Bundle\SwiftmailerBundle\SwiftmailerBundle(),
new Doctrine\Bundle\DoctrineBundle\DoctrineBundle(),
new Sensio\Bundle\FrameworkExtraBundle\SensioFrameworkExtraBundle(),
new Csa\Bundle\GuzzleBundle\CsaGuzzleBundle(),
new AppBundle\AppBundle(),
];

Expand Down
97 changes: 22 additions & 75 deletions app/Resources/views/default/index.html.twig
Original file line number Diff line number Diff line change
@@ -1,76 +1,23 @@
{% extends 'base.html.twig' %}

{% block body %}
<div id="wrapper">
<div id="container">
<div id="welcome">
<h1><span>Welcome to</span> Symfony {{ constant('Symfony\\Component\\HttpKernel\\Kernel::VERSION') }}</h1>
</div>

<div id="status">
<p>
<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>

Your application is ready to start working on it at:
<code>{{ base_dir }}/</code>
</p>
</div>

<div id="next">
<h2>What's next?</h2>
<p>
<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">
<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
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
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
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
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
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
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
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
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
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
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
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
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"/>
</svg>

Read Symfony documentation to learn
<a href="http://symfony.com/doc/{{ constant('Symfony\\Component\\HttpKernel\\Kernel::VERSION')[:3] }}/book/page_creation.html">
How to create your first page in Symfony
</a>
</p>
</div>

</div>
</div>
{% endblock %}

{% block stylesheets %}
<style>
body { background: #F5F5F5; font: 18px/1.5 sans-serif; }
h1, h2 { line-height: 1.2; margin: 0 0 .5em; }
h1 { font-size: 36px; }
h2 { font-size: 21px; margin-bottom: 1em; }
p { margin: 0 0 1em 0; }
a { color: #0000F0; }
a:hover { text-decoration: none; }
code { background: #F5F5F5; max-width: 100px; padding: 2px 6px; word-wrap: break-word; }
#wrapper { background: #FFF; margin: 1em auto; max-width: 800px; width: 95%; }
#container { padding: 2em; }
#welcome, #status { margin-bottom: 2em; }
#welcome h1 span { display: block; font-size: 75%; }
#icon-status, #icon-book { float: left; height: 64px; margin-right: 1em; margin-top: -4px; width: 64px; }
#icon-book { display: none; }
@media (min-width: 768px) {
#wrapper { width: 80%; margin: 2em auto; }
#icon-book { display: inline-block; }
#status a, #next a { display: block; }
@-webkit-keyframes fade-in { 0% { opacity: 0; } 100% { opacity: 1; } }
@keyframes fade-in { 0% { opacity: 0; } 100% { opacity: 1; } }
.sf-toolbar { opacity: 0; -webkit-animation: fade-in 1s .2s forwards; animation: fade-in 1s .2s forwards;}
}
</style>
{% extends 'layout.html.twig' %}

{% block contents %}
<div id="welcome">
<h1><span>Welcome to</span> Tolerance's Symfony Service Example</h1>
</div>

<div id="status">
<p>
Your application is ready to start working.
</p>
</div>

<div id="next">
<h2>What's next?</h2>
<ul>
<li>
<strong>Call an API</strong>
<a href="{{ path('last_release') }}">Get the last Tolerance release</a>
</li>
</ul>
</div>
{% endblock %}
23 changes: 23 additions & 0 deletions app/Resources/views/default/release.html.twig
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
{% extends 'layout.html.twig' %}

{% block contents %}
<div id="welcome">
<h1><span>The last release of</span> Tolerance</h1>
</div>

<div id="status">
<p>
Name: <strong>{{ release.name }}</strong>
<br />
Tag: <code>{{ release.tag_name }}</code>
</p>
<pre>{{ release.body }}</pre>
</div>

<div id="next">
<h2>What's next?</h2>
<p>
<a href="{{ path('home') }}">Back to home</a>
</p>
</div>
{% endblock %}
38 changes: 38 additions & 0 deletions app/Resources/views/layout.html.twig
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
{% extends 'base.html.twig' %}

{% block body %}
<div id="wrapper">
<div id="container">
{% block contents %}{% endblock %}
</div>
</div>
{% endblock %}

{% block stylesheets %}
<style>
body { background: #F5F5F5; font: 18px/1.5 sans-serif; }
h1, h2 { line-height: 1.2; margin: 0 0 .5em; }
h1 { font-size: 36px; }
h2 { font-size: 21px; margin-bottom: 1em; }
p { margin: 0 0 1em 0; }
a { color: #0000F0; }
a:hover { text-decoration: none; }
code { background: #F5F5F5; max-width: 100px; padding: 2px 6px; word-wrap: break-word; }
#wrapper { background: #FFF; margin: 1em auto; max-width: 800px; width: 95%; }
#container { padding: 2em; }
#welcome, #status { margin-bottom: 2em; }
#welcome h1 span { display: block; font-size: 75%; }
#icon-status, #icon-book { float: left; height: 64px; margin-right: 1em; margin-top: -4px; width: 64px; }
#icon-book { display: none; }
@media (min-width: 768px) {
#wrapper { width: 80%; margin: 2em auto; }
#icon-book { display: inline-block; }
#status a, #next a { display: block; }
@-webkit-keyframes fade-in { 0% { opacity: 0; } 100% { opacity: 1; } }
@keyframes fade-in { 0% { opacity: 0; } 100% { opacity: 1; } }
.sf-toolbar { opacity: 0; -webkit-animation: fade-in 1s .2s forwards; animation: fade-in 1s .2s forwards;}
}
</style>
{% endblock %}
10 changes: 10 additions & 0 deletions app/config/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -67,3 +67,13 @@ swiftmailer:
username: "%mailer_user%"
password: "%mailer_password%"
spool: { type: memory }

# CSA Guzzle Configuration
csa_guzzle:
clients:
github_api:
config:
base_uri: https://api.github.com
timeout: 2.0
headers:
Accept: application/vnd.github.v3+json
7 changes: 6 additions & 1 deletion composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,9 @@
"symfony/monolog-bundle": "^2.8",
"sensio/distribution-bundle": "^5.0",
"sensio/framework-extra-bundle": "^3.0.2",
"incenteev/composer-parameter-handler": "^2.0"
"incenteev/composer-parameter-handler": "^2.0",
"csa/guzzle-bundle": "^2.0",
"sroze/tolerance": "dev-message-profile"
},
"require-dev": {
"sensio/generator-bundle": "^3.0",
Expand All @@ -40,6 +42,9 @@
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::prepareDeploymentTarget"
],
"update-parameters": [
"Incenteev\\ParameterHandler\\ScriptHandler::buildParameters"
]
},
"extra": {
Expand Down
Loading

0 comments on commit cc118f7

Please sign in to comment.