From d39153051c359af65197b31cb9d41af977d5fead Mon Sep 17 00:00:00 2001
From: Simon Vieille
Date: Tue, 3 Mar 2015 18:46:48 +0100
Subject: [PATCH] init
---
.gitignore | 11 +
LICENSE | 19 +
README.md | 69 +
UPGRADE-2.2.md | 30 +
UPGRADE-2.3.md | 52 +
UPGRADE.md | 268 +++
app/.htaccess | 7 +
app/AppCache.php | 9 +
app/AppKernel.php | 36 +
app/Resources/views/base.html.twig | 13 +
app/Resources/views/default/index.html.twig | 5 +
app/SymfonyRequirements.php | 687 +++++++
app/autoload.php | 13 +
app/cache/.gitkeep | 0
app/check.php | 62 +
app/config/config.yml | 69 +
app/config/config_dev.yml | 31 +
app/config/config_prod.yml | 23 +
app/config/config_test.yml | 16 +
app/config/parameters.yml.dist | 20 +
app/config/propel.ini | 3 +
app/config/routing.yml | 3 +
app/config/routing_dev.yml | 18 +
app/config/security.yml | 39 +
app/config/stfalcon_tinymce.yml | 53 +
app/config/trinity_admin_menu.yml | 89 +
app/config/trinity_content_manager.yml | 33 +
app/config/trinity_dash_board.yml | 51 +
app/config/trinity_editorial_block.yml | 3 +
app/config/trinity_vars_editor.yml | 2 +
app/config/vars.yml | 34 +
app/console | 27 +
app/logs/.gitkeep | 0
app/phpunit.xml.dist | 36 +
composer.json | 54 +
composer.lock | 1603 +++++++++++++++++
src/.htaccess | 7 +
src/Acme/DemoBundle/AcmeDemoBundle.php | 9 +
.../DemoBundle/Controller/DemoController.php | 57 +
.../Controller/SecuredController.php | 68 +
.../Controller/WelcomeController.php | 18 +
.../DependencyInjection/AcmeDemoExtension.php | 22 +
.../EventListener/ControllerListener.php | 24 +
src/Acme/DemoBundle/Form/ContactType.php | 20 +
.../DemoBundle/Resources/config/routing.yml | 12 +
.../DemoBundle/Resources/config/services.xml | 18 +
.../DemoBundle/Resources/public/css/demo.css | 101 ++
.../Resources/public/images/blue-arrow.png | Bin 0 -> 181 bytes
.../public/images/field-background.gif | Bin 0 -> 63 bytes
.../Resources/public/images/logo.gif | Bin 0 -> 1698 bytes
.../Resources/public/images/search.png | Bin 0 -> 737 bytes
.../public/images/welcome-configure.gif | Bin 0 -> 3530 bytes
.../Resources/public/images/welcome-demo.gif | Bin 0 -> 4053 bytes
.../public/images/welcome-quick-tour.gif | Bin 0 -> 4770 bytes
.../Resources/views/Demo/contact.html.twig | 15 +
.../Resources/views/Demo/hello.html.twig | 9 +
.../Resources/views/Demo/index.html.twig | 14 +
.../Resources/views/Secured/hello.html.twig | 11 +
.../views/Secured/helloadmin.html.twig | 9 +
.../Resources/views/Secured/layout.html.twig | 6 +
.../Resources/views/Secured/login.html.twig | 35 +
.../Resources/views/Welcome/index.html.twig | 83 +
.../Resources/views/layout.html.twig | 37 +
.../Tests/Controller/DemoControllerTest.php | 17 +
.../Twig/Extension/DemoExtension.php | 81 +
src/AppBundle/AppBundle.php | 9 +
.../Controller/DefaultController.php | 17 +
.../Controller/DefaultControllerTest.php | 17 +
web/.htaccess | 56 +
web/app.php | 25 +
web/app_dev.php | 30 +
web/apple-touch-icon.png | Bin 0 -> 10784 bytes
web/config.php | 124 ++
web/favicon.ico | Bin 0 -> 6518 bytes
web/robots.txt | 4 +
75 files changed, 4443 insertions(+)
create mode 100644 .gitignore
create mode 100644 LICENSE
create mode 100644 README.md
create mode 100644 UPGRADE-2.2.md
create mode 100644 UPGRADE-2.3.md
create mode 100644 UPGRADE.md
create mode 100644 app/.htaccess
create mode 100644 app/AppCache.php
create mode 100644 app/AppKernel.php
create mode 100644 app/Resources/views/base.html.twig
create mode 100644 app/Resources/views/default/index.html.twig
create mode 100644 app/SymfonyRequirements.php
create mode 100644 app/autoload.php
create mode 100644 app/cache/.gitkeep
create mode 100644 app/check.php
create mode 100644 app/config/config.yml
create mode 100644 app/config/config_dev.yml
create mode 100644 app/config/config_prod.yml
create mode 100644 app/config/config_test.yml
create mode 100644 app/config/parameters.yml.dist
create mode 100644 app/config/propel.ini
create mode 100644 app/config/routing.yml
create mode 100644 app/config/routing_dev.yml
create mode 100644 app/config/security.yml
create mode 100644 app/config/stfalcon_tinymce.yml
create mode 100644 app/config/trinity_admin_menu.yml
create mode 100644 app/config/trinity_content_manager.yml
create mode 100644 app/config/trinity_dash_board.yml
create mode 100644 app/config/trinity_editorial_block.yml
create mode 100644 app/config/trinity_vars_editor.yml
create mode 100644 app/config/vars.yml
create mode 100755 app/console
create mode 100644 app/logs/.gitkeep
create mode 100644 app/phpunit.xml.dist
create mode 100644 composer.json
create mode 100644 composer.lock
create mode 100644 src/.htaccess
create mode 100644 src/Acme/DemoBundle/AcmeDemoBundle.php
create mode 100644 src/Acme/DemoBundle/Controller/DemoController.php
create mode 100644 src/Acme/DemoBundle/Controller/SecuredController.php
create mode 100644 src/Acme/DemoBundle/Controller/WelcomeController.php
create mode 100644 src/Acme/DemoBundle/DependencyInjection/AcmeDemoExtension.php
create mode 100644 src/Acme/DemoBundle/EventListener/ControllerListener.php
create mode 100644 src/Acme/DemoBundle/Form/ContactType.php
create mode 100644 src/Acme/DemoBundle/Resources/config/routing.yml
create mode 100644 src/Acme/DemoBundle/Resources/config/services.xml
create mode 100644 src/Acme/DemoBundle/Resources/public/css/demo.css
create mode 100644 src/Acme/DemoBundle/Resources/public/images/blue-arrow.png
create mode 100644 src/Acme/DemoBundle/Resources/public/images/field-background.gif
create mode 100644 src/Acme/DemoBundle/Resources/public/images/logo.gif
create mode 100644 src/Acme/DemoBundle/Resources/public/images/search.png
create mode 100644 src/Acme/DemoBundle/Resources/public/images/welcome-configure.gif
create mode 100644 src/Acme/DemoBundle/Resources/public/images/welcome-demo.gif
create mode 100644 src/Acme/DemoBundle/Resources/public/images/welcome-quick-tour.gif
create mode 100644 src/Acme/DemoBundle/Resources/views/Demo/contact.html.twig
create mode 100644 src/Acme/DemoBundle/Resources/views/Demo/hello.html.twig
create mode 100644 src/Acme/DemoBundle/Resources/views/Demo/index.html.twig
create mode 100644 src/Acme/DemoBundle/Resources/views/Secured/hello.html.twig
create mode 100644 src/Acme/DemoBundle/Resources/views/Secured/helloadmin.html.twig
create mode 100644 src/Acme/DemoBundle/Resources/views/Secured/layout.html.twig
create mode 100644 src/Acme/DemoBundle/Resources/views/Secured/login.html.twig
create mode 100644 src/Acme/DemoBundle/Resources/views/Welcome/index.html.twig
create mode 100644 src/Acme/DemoBundle/Resources/views/layout.html.twig
create mode 100644 src/Acme/DemoBundle/Tests/Controller/DemoControllerTest.php
create mode 100644 src/Acme/DemoBundle/Twig/Extension/DemoExtension.php
create mode 100644 src/AppBundle/AppBundle.php
create mode 100644 src/AppBundle/Controller/DefaultController.php
create mode 100644 src/AppBundle/Tests/Controller/DefaultControllerTest.php
create mode 100644 web/.htaccess
create mode 100644 web/app.php
create mode 100644 web/app_dev.php
create mode 100644 web/apple-touch-icon.png
create mode 100644 web/config.php
create mode 100644 web/favicon.ico
create mode 100644 web/robots.txt
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..fa563fa
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,11 @@
+/web/bundles/
+/app/bootstrap.php.cache
+/app/cache/*
+/app/config/parameters.yml
+/app/logs/*
+!app/cache/.gitkeep
+!app/logs/.gitkeep
+/build/
+/vendor/
+/bin/
+/composer.phar
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..0b3292c
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,19 @@
+Copyright (c) 2004-2014 Fabien Potencier
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is furnished
+to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..52dddb3
--- /dev/null
+++ b/README.md
@@ -0,0 +1,69 @@
+Symfony Standard Edition
+========================
+
+Welcome to the Symfony Standard Edition - a fully-functional Symfony2
+application that you can use as the skeleton for your new applications.
+
+For details on how to download and get started with Symfony, see the
+[Installation][1] chapter of the Symfony Documentation.
+
+What's inside?
+--------------
+
+The Symfony Standard Edition is configured with the following defaults:
+
+ * 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
+
+ * [**AsseticBundle**][12] - Adds support for Assetic, an asset processing
+ 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
+
+All libraries and bundles included in the Symfony Standard Edition are
+released under the MIT or BSD license.
+
+Enjoy!
+
+[1]: http://symfony.com/doc/2.3/book/installation.html
+[6]: http://symfony.com/doc/2.3/bundles/SensioFrameworkExtraBundle/index.html
+[7]: http://symfony.com/doc/2.3/book/doctrine.html
+[8]: http://symfony.com/doc/2.3/book/templating.html
+[9]: http://symfony.com/doc/2.3/book/security.html
+[10]: http://symfony.com/doc/2.3/cookbook/email.html
+[11]: http://symfony.com/doc/2.3/cookbook/logging/monolog.html
+[12]: http://symfony.com/doc/2.3/cookbook/assetic/asset_management.html
+[13]: http://symfony.com/doc/2.3/bundles/SensioGeneratorBundle/index.html
diff --git a/UPGRADE-2.2.md b/UPGRADE-2.2.md
new file mode 100644
index 0000000..cad9eeb
--- /dev/null
+++ b/UPGRADE-2.2.md
@@ -0,0 +1,30 @@
+UPGRADE FROM 2.1 to 2.2
+=======================
+
+ * The [`web/.htaccess`](https://github.com/symfony/symfony-standard/blob/2.2/web/.htaccess)
+ file has been enhanced substantially to prevent duplicate content with and
+ without `/app.php` in the URI. It also improves functionality when using
+ Apache aliases or when mod_rewrite is not available. So you might want to
+ update your `.htaccess` file as well.
+
+ * The ``_internal`` route is not used any more. It should then be removed
+ from both your routing and security configurations. A ``fragments`` key has
+ been added to the framework configuration and must be specified when ESI or
+ Hinclude are in use. No security configuration is required for this path as
+ by default ESI access is only permitted for trusted hosts and Hinclude
+ access uses an URL signing mechanism.
+
+ ```
+ framework:
+ # ...
+ fragments: { path: /_proxy }
+ ```
+
+Functional Tests
+----------------
+
+ * The profiler has been disabled by default in the test environment. You can
+ enable it again by modifying the ``config_test.yml`` configuration file or
+ even better, you can just enable it for the very next request by calling
+ ``$client->enableProfiler()`` when you need the profiler in a test (that
+ speeds up functional tests quite a bit).
diff --git a/UPGRADE-2.3.md b/UPGRADE-2.3.md
new file mode 100644
index 0000000..eb4b3ec
--- /dev/null
+++ b/UPGRADE-2.3.md
@@ -0,0 +1,52 @@
+UPGRADE FROM 2.2 to 2.3
+=======================
+
+When upgrading Symfony from 2.2 to 2.3, you need to do the following changes
+to the code that came from the Standard Edition:
+
+ * The debugging tools are not enabled by default anymore and should be added
+ to the
+ [`web/app_dev.php`](https://github.com/symfony/symfony-standard/blob/2.3/web/app_dev.php)
+ front controller manually, just after including the bootstrap cache:
+
+ use Symfony\Component\Debug\Debug;
+
+ Debug::enable();
+
+ You also need to enable debugging in the
+ [`app/console`](https://github.com/symfony/symfony-standard/blob/2.3/app/console)
+ script, after the `$debug` variable is defined:
+
+ use Symfony\Component\Debug\Debug;
+
+ if ($debug) {
+ Debug::enable();
+ }
+
+ * The `parameters.yml` file can now be managed by the
+ `incenteev/composer-parameter-handler` bundle that comes with the 2.3
+ Standard Edition:
+
+ * add `"incenteev/composer-parameter-handler": "~2.0"` to your
+ `composer.json` file;
+
+ * add `/app/config/parameters.yml` to your `.gitignore` file;
+
+ * create a
+ [`app/config/parameters.yml.dist`](https://github.com/symfony/symfony-standard/blob/2.3/app/config/parameters.yml.dist)
+ file with sensible values for all your parameters.
+
+ * It is highly recommended that you switch the minimum stability to `stable`
+ in your `composer.json` file.
+
+ * If you are using Apache, have a look at the new
+ [`.htaccess`](https://github.com/symfony/symfony-standard/blob/2.3/web/.htaccess)
+ configuration and change yours accordingly.
+
+ * In the
+ [`app/autoload.php`](https://github.com/symfony/symfony-standard/blob/2.3/app/autoload.php)
+ file, the section about `intl` should be removed as it is not needed anymore.
+
+You can also have a look at the
+[diff](https://github.com/symfony/symfony-standard/compare/v2.2.0%E2%80%A62.3)
+between the 2.2 version of the Standard Edition and the 2.3 version.
diff --git a/UPGRADE.md b/UPGRADE.md
new file mode 100644
index 0000000..a206d37
--- /dev/null
+++ b/UPGRADE.md
@@ -0,0 +1,268 @@
+Symfony Standard Edition Upgrade
+================================
+
+From Symfony 2.0 to Symfony 2.1
+-------------------------------
+
+### Project Dependencies
+
+As of Symfony 2.1, project dependencies are managed by
+[Composer](http://getcomposer.org/):
+
+* The `bin/vendors` script can be removed as `composer.phar` does all the work
+ now (it is recommended to install it globally on your machine).
+
+* The `deps` file need to be replaced with the `composer.json` one.
+
+* The `composer.lock` is the equivalent of the generated `deps.lock` file and
+ it is automatically generated by Composer.
+
+Download the default
+[`composer.json`](https://raw.github.com/symfony/symfony-standard/2.1/composer.json)
+and
+[`composer.lock`](https://raw.github.com/symfony/symfony-standard/2.1/composer.lock)
+files for Symfony 2.1 and put them into the main directory of your project. If
+you have customized your `deps` file, move the added dependencies to the
+`composer.json` file (many bundles and PHP libraries are already available as
+Composer packages -- search for them on [Packagist](http://packagist.org/)).
+
+Remove your current `vendor` directory.
+
+Finally, run Composer:
+
+ $ composer.phar install
+
+Note: You must complete the upgrade steps below so composer can successfully generate the autoload files.
+
+### `app/autoload.php`
+
+The default `autoload.php` reads as follows (it has been simplified a lot as
+autoloading for libraries and bundles declared in your `composer.json` file is
+automatically managed by the Composer autoloader):
+
+ add('', __DIR__.'/../vendor/symfony/symfony/src/Symfony/Component/Locale/Resources/stubs');
+ }
+
+ AnnotationRegistry::registerLoader(array($loader, 'loadClass'));
+
+ return $loader;
+
+### `app/config/config.yml`
+
+The `framework.charset` setting must be removed. If you are not using `UTF-8`
+for your application, override the `getCharset()` method in your `AppKernel`
+class instead:
+
+ class AppKernel extends Kernel
+ {
+ public function getCharset()
+ {
+ return 'ISO-8859-1';
+ }
+
+ // ...
+ }
+
+You might want to add the new `strict_requirements` parameter to
+`framework.router` (it avoids fatal errors in the production environment when
+a link cannot be generated):
+
+ framework:
+ router:
+ strict_requirements: "%kernel.debug%"
+
+You can even disable the requirements check on production with `null` as you should
+know that the parameters for URL generation always pass the requirements, e.g. by
+validating them beforehand. This additionally enhances performance. See
+[config_prod.yml](https://github.com/symfony/symfony-standard/blob/master/app/config/config_prod.yml).
+
+The `default_locale` parameter is now a setting of the main `framework`
+configuration (it was under the `framework.session` in 2.0):
+
+ framework:
+ default_locale: "%locale%"
+
+The `auto_start` setting under `framework.session` must be removed as it is
+not used anymore (the session is now always started on-demand). If
+`auto_start` was the only setting under the `framework.session` entry, don't
+remove it entirely, but set its value to `~` (`~` means `null` in YAML)
+instead:
+
+ framework:
+ session: ~
+
+The `trust_proxy_headers` setting was added in the default configuration file
+(as it should be set to `true` when you install your application behind a
+reverse proxy):
+
+ framework:
+ trust_proxy_headers: false
+
+An empty `bundles` entry was added to the `assetic` configuration:
+
+ assetic:
+ bundles: []
+
+The default `swiftmailer` configuration now has the `spool` setting configured
+to the `memory` type to defer email sending after the response is sent to the
+user (recommended for better end-user performance):
+
+ swiftmailer:
+ spool: { type: memory }
+
+The `jms_security_extra` configuration was moved to the `security.yml`
+configuration file.
+
+### `app/config/config_dev.yml`
+
+An example of how to send all emails to a unique address was added:
+
+ #swiftmailer:
+ # delivery_address: me@example.com
+
+### `app/config/config_test.yml`
+
+The `storage_id` setting must be changed to `session.storage.mock_file`:
+
+ framework:
+ session:
+ storage_id: session.storage.mock_file
+
+### `app/config/parameters.ini`
+
+The file has been converted to a YAML file which reads as follows:
+
+ parameters:
+ database_driver: pdo_mysql
+ database_host: localhost
+ database_port: ~
+ database_name: symfony
+ database_user: root
+ database_password: ~
+
+ mailer_transport: smtp
+ mailer_host: localhost
+ mailer_user: ~
+ mailer_password: ~
+
+ locale: en
+ secret: ThisTokenIsNotSoSecretChangeIt
+
+Note that if you convert your parameters file to YAML, you must also change
+its reference in `app/config/config.yml`.
+
+### `app/config/routing_dev.yml`
+
+The `_assetic` entry was removed:
+
+ #_assetic:
+ # resource: .
+ # type: assetic
+
+### `app/config/security.yml`
+
+Under `security.access_control`, the default rule for internal routes was changed:
+
+ security:
+ access_control:
+ #- { path: ^/_internal/secure, roles: IS_AUTHENTICATED_ANONYMOUSLY, ip: 127.0.0.1 }
+
+Under `security.providers`, the `in_memory` example was updated to the following:
+
+ security:
+ providers:
+ in_memory:
+ memory:
+ users:
+ user: { password: userpass, roles: [ 'ROLE_USER' ] }
+ admin: { password: adminpass, roles: [ 'ROLE_ADMIN' ] }
+
+### `app/AppKernel.php`
+
+The following bundles have been added to the list of default registered bundles:
+
+ new JMS\AopBundle\JMSAopBundle(),
+ new JMS\DiExtraBundle\JMSDiExtraBundle($this),
+
+You must also rename the DoctrineBundle from:
+
+ new Symfony\Bundle\DoctrineBundle\DoctrineBundle(),
+
+to:
+
+ new Doctrine\Bundle\DoctrineBundle\DoctrineBundle(),
+
+### `web/app.php`
+
+The default `web/app.php` file now reads as follows:
+
+ register(true);
+ */
+
+ require_once __DIR__.'/../app/AppKernel.php';
+ //require_once __DIR__.'/../app/AppCache.php';
+
+ $kernel = new AppKernel('prod', false);
+ $kernel->loadClassCache();
+ //$kernel = new AppCache($kernel);
+ $request = Request::createFromGlobals();
+ $response = $kernel->handle($request);
+ $response->send();
+ $kernel->terminate($request, $response);
+
+### `web/app_dev.php`
+
+The default `web/app_dev.php` file now reads as follows:
+
+ loadClassCache();
+ $request = Request::createFromGlobals();
+ $response = $kernel->handle($request);
+ $response->send();
+ $kernel->terminate($request, $response);
diff --git a/app/.htaccess b/app/.htaccess
new file mode 100644
index 0000000..fb1de45
--- /dev/null
+++ b/app/.htaccess
@@ -0,0 +1,7 @@
+
+ Require all denied
+
+
+ Order deny,allow
+ Deny from all
+
diff --git a/app/AppCache.php b/app/AppCache.php
new file mode 100644
index 0000000..ddb51db
--- /dev/null
+++ b/app/AppCache.php
@@ -0,0 +1,9 @@
+getEnvironment(), array('dev', 'test'))) {
+ $bundles[] = new Acme\DemoBundle\AcmeDemoBundle();
+ $bundles[] = new Symfony\Bundle\WebProfilerBundle\WebProfilerBundle();
+ $bundles[] = new Sensio\Bundle\DistributionBundle\SensioDistributionBundle();
+ $bundles[] = new Sensio\Bundle\GeneratorBundle\SensioGeneratorBundle();
+ }
+
+ return $bundles;
+ }
+
+ public function registerContainerConfiguration(LoaderInterface $loader)
+ {
+ $loader->load(__DIR__.'/config/config_'.$this->getEnvironment().'.yml');
+ }
+}
diff --git a/app/Resources/views/base.html.twig b/app/Resources/views/base.html.twig
new file mode 100644
index 0000000..bafd28d
--- /dev/null
+++ b/app/Resources/views/base.html.twig
@@ -0,0 +1,13 @@
+
+
+
+
+ {% block title %}Welcome!{% endblock %}
+ {% block stylesheets %}{% endblock %}
+
+
+
+ {% block body %}{% endblock %}
+ {% block javascripts %}{% endblock %}
+
+
diff --git a/app/Resources/views/default/index.html.twig b/app/Resources/views/default/index.html.twig
new file mode 100644
index 0000000..ed26149
--- /dev/null
+++ b/app/Resources/views/default/index.html.twig
@@ -0,0 +1,5 @@
+{% extends 'base.html.twig' %}
+
+{% block body %}
+ Homepage.
+{% endblock %}
diff --git a/app/SymfonyRequirements.php b/app/SymfonyRequirements.php
new file mode 100644
index 0000000..0f89996
--- /dev/null
+++ b/app/SymfonyRequirements.php
@@ -0,0 +1,687 @@
+
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Users of PHP 5.2 should be able to run the requirements checks.
+ * This is why the file and all classes must be compatible with PHP 5.2+
+ * (e.g. not using namespaces and closures).
+ *
+ * ************** CAUTION **************
+ *
+ * DO NOT EDIT THIS FILE as it will be overridden by Composer as part of
+ * the installation/update process. The original file resides in the
+ * SensioDistributionBundle.
+ *
+ * ************** CAUTION **************
+ */
+
+/**
+ * Represents a single PHP requirement, e.g. an installed extension.
+ * It can be a mandatory requirement or an optional recommendation.
+ * There is a special subclass, named PhpIniRequirement, to check a php.ini configuration.
+ *
+ * @author Tobias Schultze
+ */
+class Requirement
+{
+ private $fulfilled;
+ private $testMessage;
+ private $helpText;
+ private $helpHtml;
+ private $optional;
+
+ /**
+ * Constructor that initializes the requirement.
+ *
+ * @param Boolean $fulfilled Whether the requirement is fulfilled
+ * @param string $testMessage The message for testing the requirement
+ * @param string $helpHtml The help text formatted in HTML for resolving the problem
+ * @param string|null $helpText The help text (when null, it will be inferred from $helpHtml, i.e. stripped from HTML tags)
+ * @param Boolean $optional Whether this is only an optional recommendation not a mandatory requirement
+ */
+ public function __construct($fulfilled, $testMessage, $helpHtml, $helpText = null, $optional = false)
+ {
+ $this->fulfilled = (Boolean) $fulfilled;
+ $this->testMessage = (string) $testMessage;
+ $this->helpHtml = (string) $helpHtml;
+ $this->helpText = null === $helpText ? strip_tags($this->helpHtml) : (string) $helpText;
+ $this->optional = (Boolean) $optional;
+ }
+
+ /**
+ * Returns whether the requirement is fulfilled.
+ *
+ * @return Boolean true if fulfilled, otherwise false
+ */
+ public function isFulfilled()
+ {
+ return $this->fulfilled;
+ }
+
+ /**
+ * Returns the message for testing the requirement.
+ *
+ * @return string The test message
+ */
+ public function getTestMessage()
+ {
+ return $this->testMessage;
+ }
+
+ /**
+ * Returns the help text for resolving the problem
+ *
+ * @return string The help text
+ */
+ public function getHelpText()
+ {
+ return $this->helpText;
+ }
+
+ /**
+ * Returns the help text formatted in HTML.
+ *
+ * @return string The HTML help
+ */
+ public function getHelpHtml()
+ {
+ return $this->helpHtml;
+ }
+
+ /**
+ * Returns whether this is only an optional recommendation and not a mandatory requirement.
+ *
+ * @return Boolean true if optional, false if mandatory
+ */
+ public function isOptional()
+ {
+ return $this->optional;
+ }
+}
+
+/**
+ * Represents a PHP requirement in form of a php.ini configuration.
+ *
+ * @author Tobias Schultze
+ */
+class PhpIniRequirement extends Requirement
+{
+ /**
+ * Constructor that initializes the requirement.
+ *
+ * @param string $cfgName The configuration name used for ini_get()
+ * @param Boolean|callback $evaluation Either a Boolean indicating whether the configuration should evaluate to true or false,
+ or a callback function receiving the configuration value as parameter to determine the fulfillment of the requirement
+ * @param Boolean $approveCfgAbsence If true the Requirement will be fulfilled even if the configuration option does not exist, i.e. ini_get() returns false.
+ This is helpful for abandoned configs in later PHP versions or configs of an optional extension, like Suhosin.
+ Example: You require a config to be true but PHP later removes this config and defaults it to true internally.
+ * @param string|null $testMessage The message for testing the requirement (when null and $evaluation is a Boolean a default message is derived)
+ * @param string|null $helpHtml The help text formatted in HTML for resolving the problem (when null and $evaluation is a Boolean a default help is derived)
+ * @param string|null $helpText The help text (when null, it will be inferred from $helpHtml, i.e. stripped from HTML tags)
+ * @param Boolean $optional Whether this is only an optional recommendation not a mandatory requirement
+ */
+ public function __construct($cfgName, $evaluation, $approveCfgAbsence = false, $testMessage = null, $helpHtml = null, $helpText = null, $optional = false)
+ {
+ $cfgValue = ini_get($cfgName);
+
+ if (is_callable($evaluation)) {
+ if (null === $testMessage || null === $helpHtml) {
+ throw new InvalidArgumentException('You must provide the parameters testMessage and helpHtml for a callback evaluation.');
+ }
+
+ $fulfilled = call_user_func($evaluation, $cfgValue);
+ } else {
+ if (null === $testMessage) {
+ $testMessage = sprintf('%s %s be %s in php.ini',
+ $cfgName,
+ $optional ? 'should' : 'must',
+ $evaluation ? 'enabled' : 'disabled'
+ );
+ }
+
+ if (null === $helpHtml) {
+ $helpHtml = sprintf('Set %s to %s in php.ini*.',
+ $cfgName,
+ $evaluation ? 'on' : 'off'
+ );
+ }
+
+ $fulfilled = $evaluation == $cfgValue;
+ }
+
+ parent::__construct($fulfilled || ($approveCfgAbsence && false === $cfgValue), $testMessage, $helpHtml, $helpText, $optional);
+ }
+}
+
+/**
+ * A RequirementCollection represents a set of Requirement instances.
+ *
+ * @author Tobias Schultze
+ */
+class RequirementCollection implements IteratorAggregate
+{
+ private $requirements = array();
+
+ /**
+ * Gets the current RequirementCollection as an Iterator.
+ *
+ * @return Traversable A Traversable interface
+ */
+ public function getIterator()
+ {
+ return new ArrayIterator($this->requirements);
+ }
+
+ /**
+ * Adds a Requirement.
+ *
+ * @param Requirement $requirement A Requirement instance
+ */
+ public function add(Requirement $requirement)
+ {
+ $this->requirements[] = $requirement;
+ }
+
+ /**
+ * Adds a mandatory requirement.
+ *
+ * @param Boolean $fulfilled Whether the requirement is fulfilled
+ * @param string $testMessage The message for testing the requirement
+ * @param string $helpHtml The help text formatted in HTML for resolving the problem
+ * @param string|null $helpText The help text (when null, it will be inferred from $helpHtml, i.e. stripped from HTML tags)
+ */
+ public function addRequirement($fulfilled, $testMessage, $helpHtml, $helpText = null)
+ {
+ $this->add(new Requirement($fulfilled, $testMessage, $helpHtml, $helpText, false));
+ }
+
+ /**
+ * Adds an optional recommendation.
+ *
+ * @param Boolean $fulfilled Whether the recommendation is fulfilled
+ * @param string $testMessage The message for testing the recommendation
+ * @param string $helpHtml The help text formatted in HTML for resolving the problem
+ * @param string|null $helpText The help text (when null, it will be inferred from $helpHtml, i.e. stripped from HTML tags)
+ */
+ public function addRecommendation($fulfilled, $testMessage, $helpHtml, $helpText = null)
+ {
+ $this->add(new Requirement($fulfilled, $testMessage, $helpHtml, $helpText, true));
+ }
+
+ /**
+ * Adds a mandatory requirement in form of a php.ini configuration.
+ *
+ * @param string $cfgName The configuration name used for ini_get()
+ * @param Boolean|callback $evaluation Either a Boolean indicating whether the configuration should evaluate to true or false,
+ or a callback function receiving the configuration value as parameter to determine the fulfillment of the requirement
+ * @param Boolean $approveCfgAbsence If true the Requirement will be fulfilled even if the configuration option does not exist, i.e. ini_get() returns false.
+ This is helpful for abandoned configs in later PHP versions or configs of an optional extension, like Suhosin.
+ Example: You require a config to be true but PHP later removes this config and defaults it to true internally.
+ * @param string $testMessage The message for testing the requirement (when null and $evaluation is a Boolean a default message is derived)
+ * @param string $helpHtml The help text formatted in HTML for resolving the problem (when null and $evaluation is a Boolean a default help is derived)
+ * @param string|null $helpText The help text (when null, it will be inferred from $helpHtml, i.e. stripped from HTML tags)
+ */
+ public function addPhpIniRequirement($cfgName, $evaluation, $approveCfgAbsence = false, $testMessage = null, $helpHtml = null, $helpText = null)
+ {
+ $this->add(new PhpIniRequirement($cfgName, $evaluation, $approveCfgAbsence, $testMessage, $helpHtml, $helpText, false));
+ }
+
+ /**
+ * Adds an optional recommendation in form of a php.ini configuration.
+ *
+ * @param string $cfgName The configuration name used for ini_get()
+ * @param Boolean|callback $evaluation Either a Boolean indicating whether the configuration should evaluate to true or false,
+ or a callback function receiving the configuration value as parameter to determine the fulfillment of the requirement
+ * @param Boolean $approveCfgAbsence If true the Requirement will be fulfilled even if the configuration option does not exist, i.e. ini_get() returns false.
+ This is helpful for abandoned configs in later PHP versions or configs of an optional extension, like Suhosin.
+ Example: You require a config to be true but PHP later removes this config and defaults it to true internally.
+ * @param string $testMessage The message for testing the requirement (when null and $evaluation is a Boolean a default message is derived)
+ * @param string $helpHtml The help text formatted in HTML for resolving the problem (when null and $evaluation is a Boolean a default help is derived)
+ * @param string|null $helpText The help text (when null, it will be inferred from $helpHtml, i.e. stripped from HTML tags)
+ */
+ public function addPhpIniRecommendation($cfgName, $evaluation, $approveCfgAbsence = false, $testMessage = null, $helpHtml = null, $helpText = null)
+ {
+ $this->add(new PhpIniRequirement($cfgName, $evaluation, $approveCfgAbsence, $testMessage, $helpHtml, $helpText, true));
+ }
+
+ /**
+ * Adds a requirement collection to the current set of requirements.
+ *
+ * @param RequirementCollection $collection A RequirementCollection instance
+ */
+ public function addCollection(RequirementCollection $collection)
+ {
+ $this->requirements = array_merge($this->requirements, $collection->all());
+ }
+
+ /**
+ * Returns both requirements and recommendations.
+ *
+ * @return array Array of Requirement instances
+ */
+ public function all()
+ {
+ return $this->requirements;
+ }
+
+ /**
+ * Returns all mandatory requirements.
+ *
+ * @return array Array of Requirement instances
+ */
+ public function getRequirements()
+ {
+ $array = array();
+ foreach ($this->requirements as $req) {
+ if (!$req->isOptional()) {
+ $array[] = $req;
+ }
+ }
+
+ return $array;
+ }
+
+ /**
+ * Returns the mandatory requirements that were not met.
+ *
+ * @return array Array of Requirement instances
+ */
+ public function getFailedRequirements()
+ {
+ $array = array();
+ foreach ($this->requirements as $req) {
+ if (!$req->isFulfilled() && !$req->isOptional()) {
+ $array[] = $req;
+ }
+ }
+
+ return $array;
+ }
+
+ /**
+ * Returns all optional recommendations.
+ *
+ * @return array Array of Requirement instances
+ */
+ public function getRecommendations()
+ {
+ $array = array();
+ foreach ($this->requirements as $req) {
+ if ($req->isOptional()) {
+ $array[] = $req;
+ }
+ }
+
+ return $array;
+ }
+
+ /**
+ * Returns the recommendations that were not met.
+ *
+ * @return array Array of Requirement instances
+ */
+ public function getFailedRecommendations()
+ {
+ $array = array();
+ foreach ($this->requirements as $req) {
+ if (!$req->isFulfilled() && $req->isOptional()) {
+ $array[] = $req;
+ }
+ }
+
+ return $array;
+ }
+
+ /**
+ * Returns whether a php.ini configuration is not correct.
+ *
+ * @return Boolean php.ini configuration problem?
+ */
+ public function hasPhpIniConfigIssue()
+ {
+ foreach ($this->requirements as $req) {
+ if (!$req->isFulfilled() && $req instanceof PhpIniRequirement) {
+ return true;
+ }
+ }
+
+ return false;
+ }
+
+ /**
+ * Returns the PHP configuration file (php.ini) path.
+ *
+ * @return string|false php.ini file path
+ */
+ public function getPhpIniConfigPath()
+ {
+ return get_cfg_var('cfg_file_path');
+ }
+}
+
+/**
+ * This class specifies all requirements and optional recommendations that
+ * are necessary to run the Symfony Standard Edition.
+ *
+ * @author Tobias Schultze
+ * @author Fabien Potencier
+ */
+class SymfonyRequirements extends RequirementCollection
+{
+ const REQUIRED_PHP_VERSION = '5.3.3';
+
+ /**
+ * Constructor that initializes the requirements.
+ */
+ public function __construct()
+ {
+ /* mandatory requirements follow */
+
+ $installedPhpVersion = phpversion();
+
+ $this->addRequirement(
+ version_compare($installedPhpVersion, self::REQUIRED_PHP_VERSION, '>='),
+ sprintf('PHP version must be at least %s (%s installed)', self::REQUIRED_PHP_VERSION, $installedPhpVersion),
+ sprintf('You are running PHP version "%s", but Symfony needs at least PHP "%s" to run.
+ Before using Symfony, upgrade your PHP installation, preferably to the latest version.',
+ $installedPhpVersion, self::REQUIRED_PHP_VERSION),
+ sprintf('Install PHP %s or newer (installed version is %s)', self::REQUIRED_PHP_VERSION, $installedPhpVersion)
+ );
+
+ $this->addRequirement(
+ version_compare($installedPhpVersion, '5.3.16', '!='),
+ 'PHP version must not be 5.3.16 as Symfony won\'t work properly with it',
+ 'Install PHP 5.3.17 or newer (or downgrade to an earlier PHP version)'
+ );
+
+ $this->addRequirement(
+ is_dir(__DIR__.'/../vendor/composer'),
+ 'Vendor libraries must be installed',
+ 'Vendor libraries are missing. Install composer following instructions from http://getcomposer.org/. ' .
+ 'Then run "php composer.phar install" to install them.'
+ );
+
+ $baseDir = basename(__DIR__);
+
+ $this->addRequirement(
+ is_writable(__DIR__.'/cache'),
+ "$baseDir/cache/ directory must be writable",
+ "Change the permissions of the \"$baseDir/cache/\" directory so that the web server can write into it."
+ );
+
+ $this->addRequirement(
+ is_writable(__DIR__.'/logs'),
+ "$baseDir/logs/ directory must be writable",
+ "Change the permissions of the \"$baseDir/logs/\" directory so that the web server can write into it."
+ );
+
+ $this->addPhpIniRequirement(
+ 'date.timezone', true, false,
+ 'date.timezone setting must be set',
+ 'Set the "date.timezone" setting in php.ini* (like Europe/Paris).'
+ );
+
+ if (version_compare($installedPhpVersion, self::REQUIRED_PHP_VERSION, '>=')) {
+ $timezones = array();
+ foreach (DateTimeZone::listAbbreviations() as $abbreviations) {
+ foreach ($abbreviations as $abbreviation) {
+ $timezones[$abbreviation['timezone_id']] = true;
+ }
+ }
+
+ $this->addRequirement(
+ isset($timezones[date_default_timezone_get()]),
+ sprintf('Configured default timezone "%s" must be supported by your installation of PHP', date_default_timezone_get()),
+ 'Your default timezone is not supported by PHP. Check for typos in your php.ini file and have a look at the list of deprecated timezones at http://php.net/manual/en/timezones.others.php.'
+ );
+ }
+
+ $this->addRequirement(
+ function_exists('json_encode'),
+ 'json_encode() must be available',
+ 'Install and enable the JSON extension.'
+ );
+
+ $this->addRequirement(
+ function_exists('session_start'),
+ 'session_start() must be available',
+ 'Install and enable the session extension.'
+ );
+
+ $this->addRequirement(
+ function_exists('ctype_alpha'),
+ 'ctype_alpha() must be available',
+ 'Install and enable the ctype extension.'
+ );
+
+ $this->addRequirement(
+ function_exists('token_get_all'),
+ 'token_get_all() must be available',
+ 'Install and enable the Tokenizer extension.'
+ );
+
+ $this->addRequirement(
+ function_exists('simplexml_import_dom'),
+ 'simplexml_import_dom() must be available',
+ 'Install and enable the SimpleXML extension.'
+ );
+
+ if (function_exists('apc_store') && ini_get('apc.enabled')) {
+ if (version_compare($installedPhpVersion, '5.4.0', '>=')) {
+ $this->addRequirement(
+ version_compare(phpversion('apc'), '3.1.13', '>='),
+ 'APC version must be at least 3.1.13 when using PHP 5.4',
+ 'Upgrade your APC extension (3.1.13+).'
+ );
+ } else {
+ $this->addRequirement(
+ version_compare(phpversion('apc'), '3.0.17', '>='),
+ 'APC version must be at least 3.0.17',
+ 'Upgrade your APC extension (3.0.17+).'
+ );
+ }
+ }
+
+ $this->addPhpIniRequirement('detect_unicode', false);
+
+ if (extension_loaded('suhosin')) {
+ $this->addPhpIniRequirement(
+ 'suhosin.executor.include.whitelist',
+ create_function('$cfgValue', 'return false !== stripos($cfgValue, "phar");'),
+ false,
+ 'suhosin.executor.include.whitelist must be configured correctly in php.ini',
+ 'Add "phar" to suhosin.executor.include.whitelist in php.ini*.'
+ );
+ }
+
+ if (extension_loaded('xdebug')) {
+ $this->addPhpIniRequirement(
+ 'xdebug.show_exception_trace', false, true
+ );
+
+ $this->addPhpIniRequirement(
+ 'xdebug.scream', false, true
+ );
+
+ $this->addPhpIniRecommendation(
+ 'xdebug.max_nesting_level',
+ create_function('$cfgValue', 'return $cfgValue > 100;'),
+ true,
+ 'xdebug.max_nesting_level should be above 100 in php.ini',
+ 'Set "xdebug.max_nesting_level" to e.g. "250" in php.ini* to stop Xdebug\'s infinite recursion protection erroneously throwing a fatal error in your project.'
+ );
+ }
+
+ $pcreVersion = defined('PCRE_VERSION') ? (float) PCRE_VERSION : null;
+
+ $this->addRequirement(
+ null !== $pcreVersion,
+ 'PCRE extension must be available',
+ 'Install the PCRE extension (version 8.0+).'
+ );
+
+ /* optional recommendations follow */
+
+ $this->addRecommendation(
+ file_get_contents(__FILE__) === file_get_contents(__DIR__.'/../vendor/sensio/distribution-bundle/Sensio/Bundle/DistributionBundle/Resources/skeleton/app/SymfonyRequirements.php'),
+ 'Requirements file should be up-to-date',
+ 'Your requirements file is outdated. Run composer install and re-check your configuration.'
+ );
+
+ $this->addRecommendation(
+ version_compare($installedPhpVersion, '5.3.4', '>='),
+ 'You should use at least PHP 5.3.4 due to PHP bug #52083 in earlier versions',
+ 'Your project might malfunction randomly due to PHP bug #52083 ("Notice: Trying to get property of non-object"). Install PHP 5.3.4 or newer.'
+ );
+
+ $this->addRecommendation(
+ version_compare($installedPhpVersion, '5.3.8', '>='),
+ 'When using annotations you should have at least PHP 5.3.8 due to PHP bug #55156',
+ 'Install PHP 5.3.8 or newer if your project uses annotations.'
+ );
+
+ $this->addRecommendation(
+ version_compare($installedPhpVersion, '5.4.0', '!='),
+ 'You should not use PHP 5.4.0 due to the PHP bug #61453',
+ 'Your project might not work properly due to the PHP bug #61453 ("Cannot dump definitions which have method calls"). Install PHP 5.4.1 or newer.'
+ );
+
+ $this->addRecommendation(
+ version_compare($installedPhpVersion, '5.4.11', '>='),
+ 'When using the logout handler from the Symfony Security Component, you should have at least PHP 5.4.11 due to PHP bug #63379 (as a workaround, you can also set invalidate_session to false in the security logout handler configuration)',
+ 'Install PHP 5.4.11 or newer if your project uses the logout handler from the Symfony Security Component.'
+ );
+
+ $this->addRecommendation(
+ (version_compare($installedPhpVersion, '5.3.18', '>=') && version_compare($installedPhpVersion, '5.4.0', '<'))
+ ||
+ version_compare($installedPhpVersion, '5.4.8', '>='),
+ 'You should use PHP 5.3.18+ or PHP 5.4.8+ to always get nice error messages for fatal errors in the development environment due to PHP bug #61767/#60909',
+ 'Install PHP 5.3.18+ or PHP 5.4.8+ if you want nice error messages for all fatal errors in the development environment.'
+ );
+
+ if (null !== $pcreVersion) {
+ $this->addRecommendation(
+ $pcreVersion >= 8.0,
+ sprintf('PCRE extension should be at least version 8.0 (%s installed)', $pcreVersion),
+ 'PCRE 8.0+ is preconfigured in PHP since 5.3.2 but you are using an outdated version of it. Symfony probably works anyway but it is recommended to upgrade your PCRE extension.'
+ );
+ }
+
+ $this->addRecommendation(
+ class_exists('DomDocument'),
+ 'PHP-DOM and PHP-XML modules should be installed',
+ 'Install and enable the PHP-DOM and the PHP-XML modules.'
+ );
+
+ $this->addRecommendation(
+ function_exists('mb_strlen'),
+ 'mb_strlen() should be available',
+ 'Install and enable the mbstring extension.'
+ );
+
+ $this->addRecommendation(
+ function_exists('iconv'),
+ 'iconv() should be available',
+ 'Install and enable the iconv extension.'
+ );
+
+ $this->addRecommendation(
+ function_exists('utf8_decode'),
+ 'utf8_decode() should be available',
+ 'Install and enable the XML extension.'
+ );
+
+ if (!defined('PHP_WINDOWS_VERSION_BUILD')) {
+ $this->addRecommendation(
+ function_exists('posix_isatty'),
+ 'posix_isatty() should be available',
+ 'Install and enable the php_posix extension (used to colorize the CLI output).'
+ );
+ }
+
+ $this->addRecommendation(
+ class_exists('Locale'),
+ 'intl extension should be available',
+ 'Install and enable the intl extension (used for validators).'
+ );
+
+ if (class_exists('Collator')) {
+ $this->addRecommendation(
+ null !== new Collator('fr_FR'),
+ 'intl extension should be correctly configured',
+ 'The intl extension does not behave properly. This problem is typical on PHP 5.3.X x64 WIN builds.'
+ );
+ }
+
+ if (class_exists('Locale')) {
+ if (defined('INTL_ICU_VERSION')) {
+ $version = INTL_ICU_VERSION;
+ } else {
+ $reflector = new ReflectionExtension('intl');
+
+ ob_start();
+ $reflector->info();
+ $output = strip_tags(ob_get_clean());
+
+ preg_match('/^ICU version +(?:=> )?(.*)$/m', $output, $matches);
+ $version = $matches[1];
+ }
+
+ $this->addRecommendation(
+ version_compare($version, '4.0', '>='),
+ 'intl ICU version should be at least 4+',
+ 'Upgrade your intl extension with a newer ICU version (4+).'
+ );
+ }
+
+ $accelerator =
+ (extension_loaded('eaccelerator') && ini_get('eaccelerator.enable'))
+ ||
+ (extension_loaded('apc') && ini_get('apc.enabled'))
+ ||
+ (extension_loaded('Zend OPcache') && ini_get('opcache.enable'))
+ ||
+ (extension_loaded('xcache') && ini_get('xcache.cacher'))
+ ||
+ (extension_loaded('wincache') && ini_get('wincache.ocenabled'))
+ ;
+
+ $this->addRecommendation(
+ $accelerator,
+ 'a PHP accelerator should be installed',
+ 'Install and enable a PHP accelerator like APC (highly recommended).'
+ );
+
+ $this->addPhpIniRecommendation('short_open_tag', false);
+
+ $this->addPhpIniRecommendation('magic_quotes_gpc', false, true);
+
+ $this->addPhpIniRecommendation('register_globals', false, true);
+
+ $this->addPhpIniRecommendation('session.auto_start', false);
+
+ $this->addRecommendation(
+ class_exists('PDO'),
+ 'PDO should be installed',
+ 'Install PDO (mandatory for Doctrine).'
+ );
+
+ if (class_exists('PDO')) {
+ $drivers = PDO::getAvailableDrivers();
+ $this->addRecommendation(
+ count($drivers),
+ sprintf('PDO should have some drivers installed (currently available: %s)', count($drivers) ? implode(', ', $drivers) : 'none'),
+ 'Install PDO drivers (mandatory for Doctrine).'
+ );
+ }
+ }
+}
diff --git a/app/autoload.php b/app/autoload.php
new file mode 100644
index 0000000..70526bb
--- /dev/null
+++ b/app/autoload.php
@@ -0,0 +1,13 @@
+getPhpIniConfigPath();
+
+echo "********************************\n";
+echo "* *\n";
+echo "* Symfony requirements check *\n";
+echo "* *\n";
+echo "********************************\n\n";
+
+echo $iniPath ? sprintf("* Configuration file used by PHP: %s\n\n", $iniPath) : "* WARNING: No configuration file (php.ini) used by PHP!\n\n";
+
+echo "** ATTENTION **\n";
+echo "* The PHP CLI can use a different php.ini file\n";
+echo "* than the one used with your web server.\n";
+if ('\\' == DIRECTORY_SEPARATOR) {
+ echo "* (especially on the Windows platform)\n";
+}
+echo "* To be on the safe side, please also launch the requirements check\n";
+echo "* from your web server using the web/config.php script.\n";
+
+echo_title('Mandatory requirements');
+
+$checkPassed = true;
+foreach ($symfonyRequirements->getRequirements() as $req) {
+ /** @var $req Requirement */
+ echo_requirement($req);
+ if (!$req->isFulfilled()) {
+ $checkPassed = false;
+ }
+}
+
+echo_title('Optional recommendations');
+
+foreach ($symfonyRequirements->getRecommendations() as $req) {
+ echo_requirement($req);
+}
+
+exit($checkPassed ? 0 : 1);
+
+/**
+ * Prints a Requirement instance
+ */
+function echo_requirement(Requirement $requirement)
+{
+ $result = $requirement->isFulfilled() ? 'OK' : ($requirement->isOptional() ? 'WARNING' : 'ERROR');
+ echo ' ' . str_pad($result, 9);
+ echo $requirement->getTestMessage() . "\n";
+
+ if (!$requirement->isFulfilled()) {
+ echo sprintf(" %s\n\n", $requirement->getHelpText());
+ }
+}
+
+function echo_title($title)
+{
+ echo "\n** $title **\n\n";
+}
diff --git a/app/config/config.yml b/app/config/config.yml
new file mode 100644
index 0000000..22cfed8
--- /dev/null
+++ b/app/config/config.yml
@@ -0,0 +1,69 @@
+imports:
+ - { resource: parameters.yml }
+ - { resource: security.yml }
+
+framework:
+ #esi: ~
+ #translator: { fallbacks: ["%locale%"] }
+ secret: "%secret%"
+ router:
+ resource: "%kernel.root_dir%/config/routing.yml"
+ strict_requirements: ~
+ form: ~
+ csrf_protection: ~
+ validation: { enable_annotations: true }
+ templating:
+ engines: ['twig']
+ #assets_version: SomeVersionScheme
+ default_locale: "%locale%"
+ trusted_proxies: ~
+ session: ~
+ fragments: ~
+ http_method_override: true
+
+# Twig Configuration
+twig:
+ debug: "%kernel.debug%"
+ strict_variables: "%kernel.debug%"
+
+# Assetic Configuration
+assetic:
+ debug: "%kernel.debug%"
+ use_controller: false
+ bundles: [ ]
+ #java: /usr/bin/java
+ filters:
+ cssrewrite: ~
+ #closure:
+ # jar: "%kernel.root_dir%/Resources/java/compiler.jar"
+ #yui_css:
+ # jar: "%kernel.root_dir%/Resources/java/yuicompressor-2.4.7.jar"
+
+# Doctrine Configuration
+doctrine:
+ dbal:
+ driver: "%database_driver%"
+ host: "%database_host%"
+ port: "%database_port%"
+ dbname: "%database_name%"
+ user: "%database_user%"
+ password: "%database_password%"
+ charset: UTF8
+ # if using pdo_sqlite as your database driver:
+ # 1. add the path in parameters.yml
+ # e.g. database_path: "%kernel.root_dir%/data/data.db3"
+ # 2. Uncomment database_path in parameters.yml.dist
+ # 3. Uncomment next line:
+ # path: "%database_path%"
+
+ orm:
+ auto_generate_proxy_classes: "%kernel.debug%"
+ auto_mapping: true
+
+# Swiftmailer Configuration
+swiftmailer:
+ transport: "%mailer_transport%"
+ host: "%mailer_host%"
+ username: "%mailer_user%"
+ password: "%mailer_password%"
+ spool: { type: memory }
diff --git a/app/config/config_dev.yml b/app/config/config_dev.yml
new file mode 100644
index 0000000..a371b9f
--- /dev/null
+++ b/app/config/config_dev.yml
@@ -0,0 +1,31 @@
+imports:
+ - { resource: config.yml }
+
+framework:
+ router:
+ resource: "%kernel.root_dir%/config/routing_dev.yml"
+ strict_requirements: true
+ profiler: { only_exceptions: false }
+
+web_profiler:
+ toolbar: true
+ intercept_redirects: false
+
+monolog:
+ handlers:
+ main:
+ type: stream
+ path: "%kernel.logs_dir%/%kernel.environment%.log"
+ level: debug
+ firephp:
+ type: firephp
+ level: info
+ chromephp:
+ type: chromephp
+ level: info
+
+assetic:
+ use_controller: true
+
+#swiftmailer:
+# delivery_address: me@example.com
diff --git a/app/config/config_prod.yml b/app/config/config_prod.yml
new file mode 100644
index 0000000..a835d60
--- /dev/null
+++ b/app/config/config_prod.yml
@@ -0,0 +1,23 @@
+imports:
+ - { resource: config.yml }
+
+#framework:
+# validation:
+# cache: apc
+
+#doctrine:
+# orm:
+# metadata_cache_driver: apc
+# result_cache_driver: apc
+# query_cache_driver: apc
+
+monolog:
+ handlers:
+ main:
+ type: fingers_crossed
+ action_level: error
+ handler: nested
+ nested:
+ type: stream
+ path: "%kernel.logs_dir%/%kernel.environment%.log"
+ level: debug
diff --git a/app/config/config_test.yml b/app/config/config_test.yml
new file mode 100644
index 0000000..2f6d925
--- /dev/null
+++ b/app/config/config_test.yml
@@ -0,0 +1,16 @@
+imports:
+ - { resource: config_dev.yml }
+
+framework:
+ test: ~
+ session:
+ storage_id: session.storage.mock_file
+ profiler:
+ collect: false
+
+web_profiler:
+ toolbar: false
+ intercept_redirects: false
+
+swiftmailer:
+ disable_delivery: true
diff --git a/app/config/parameters.yml.dist b/app/config/parameters.yml.dist
new file mode 100644
index 0000000..1da778f
--- /dev/null
+++ b/app/config/parameters.yml.dist
@@ -0,0 +1,20 @@
+# This file is a "template" of what your parameters.yml file should look like
+parameters:
+ database_driver: pdo_mysql
+ database_host: 127.0.0.1
+ database_port: ~
+ database_name: symfony
+ database_user: root
+ database_password: ~
+ # You should uncomment this if you want use pdo_sqlite
+ # database_path: "%kernel.root_dir%/data.db3"
+
+ mailer_transport: smtp
+ mailer_host: 127.0.0.1
+ mailer_user: ~
+ mailer_password: ~
+
+ locale: en
+
+ # A secret key that's used to generate certain security-related tokens
+ secret: ThisTokenIsNotSoSecretChangeIt
diff --git a/app/config/propel.ini b/app/config/propel.ini
new file mode 100644
index 0000000..0122395
--- /dev/null
+++ b/app/config/propel.ini
@@ -0,0 +1,3 @@
+propel.behavior.uploadable.class = Trinity\Component\Propel\UploadableBehavior
+propel.behavior.i18n_sluggable.class = Trinity\Component\Propel\I18nSluggableBehavior
+propel.behavior.custom_sluggable.class = Trinity\Component\Propel\CustomSluggableBehavior
diff --git a/app/config/routing.yml b/app/config/routing.yml
new file mode 100644
index 0000000..9b55ca4
--- /dev/null
+++ b/app/config/routing.yml
@@ -0,0 +1,3 @@
+app:
+ resource: @AppBundle/Controller/
+ type: annotation
diff --git a/app/config/routing_dev.yml b/app/config/routing_dev.yml
new file mode 100644
index 0000000..c45f361
--- /dev/null
+++ b/app/config/routing_dev.yml
@@ -0,0 +1,18 @@
+_wdt:
+ resource: "@WebProfilerBundle/Resources/config/routing/wdt.xml"
+ prefix: /_wdt
+
+_profiler:
+ resource: "@WebProfilerBundle/Resources/config/routing/profiler.xml"
+ prefix: /_profiler
+
+_configurator:
+ resource: "@SensioDistributionBundle/Resources/config/routing/webconfigurator.xml"
+ prefix: /_configurator
+
+_main:
+ resource: routing.yml
+
+# AcmeDemoBundle routes (to be removed)
+_acme_demo:
+ resource: "@AcmeDemoBundle/Resources/config/routing.yml"
diff --git a/app/config/security.yml b/app/config/security.yml
new file mode 100644
index 0000000..243aa71
--- /dev/null
+++ b/app/config/security.yml
@@ -0,0 +1,39 @@
+security:
+ encoders:
+ Symfony\Component\Security\Core\User\User: plaintext
+
+ role_hierarchy:
+ ROLE_ADMIN: ROLE_USER
+ ROLE_SUPER_ADMIN: [ROLE_USER, ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH]
+
+ providers:
+ in_memory:
+ memory:
+ users:
+ user: { password: userpass, roles: [ 'ROLE_USER' ] }
+ admin: { password: adminpass, roles: [ 'ROLE_ADMIN' ] }
+
+ firewalls:
+ dev:
+ pattern: ^/(_(profiler|wdt)|css|images|js)/
+ security: false
+
+ login:
+ pattern: ^/demo/secured/login$
+ security: false
+
+ secured_area:
+ pattern: ^/demo/secured/
+ form_login:
+ check_path: _security_check
+ login_path: _demo_login
+ logout:
+ path: _demo_logout
+ target: _demo
+ #anonymous: ~
+ #http_basic:
+ # realm: "Secured Demo Area"
+
+ access_control:
+ - { path: ^/demo/secured/hello/admin/, roles: ROLE_ADMIN }
+ #- { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY, requires_channel: https }
diff --git a/app/config/stfalcon_tinymce.yml b/app/config/stfalcon_tinymce.yml
new file mode 100644
index 0000000..12456d8
--- /dev/null
+++ b/app/config/stfalcon_tinymce.yml
@@ -0,0 +1,53 @@
+stfalcon_tinymce:
+ include_jquery: false
+ tinymce_jquery: true
+ textarea_class: ".tinymce"
+ language: fr #%locale%
+ tinymce_buttons:
+ stfalcon:
+ title: "Stfalcon"
+ image: "http://stfalcon.com/favicon.ico"
+ external_plugins:
+ wetdmedias:
+ url: "asset[bundles/trinitymedia/tinymce/plugin.js]"
+
+ theme:
+ advanced:
+ plugins:
+ - "advlist autolink lists link image charmap hr anchor pagebreak"
+ - "searchreplace wordcount visualblocks visualchars code fullscreen"
+ - "insertdatetime media nonbreaking save table contextmenu directionality"
+ - "template paste textcolor wetdmedias"
+ toolbar1: "undo redo | styleselect forecolor | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | removeformat | link wetdmedias"
+ image_advtab: true
+ relative_urls: false
+ width: 820px
+ height: 350px
+ menubar: "edit insert view format table tools"
+ content_css: "/bundles/trinityadmin/css/tinymce.css"
+
+ medium:
+ plugins:
+ - "advlist autolink lists link image charmap hr anchor pagebreak"
+ - "searchreplace wordcount visualblocks visualchars code fullscreen"
+ - "insertdatetime media nonbreaking save table contextmenu directionality"
+ - "template paste textcolor wetdmedias"
+ toolbar1: "undo redo | styleselect charmap forecolor | bold italic | alignleft aligncenter alignright alignjustify | bullist outdent indent | link wetdmedias | removeformat | code"
+ image_advtab: true
+ relative_urls: false
+ width: 820px
+ menubar: false
+ content_css: "/bundles/trinityadmin/css/tinymce.css"
+
+ simple:
+ plugins:
+ - "advlist autolink lists link image charmap hr anchor pagebreak"
+ - "searchreplace wordcount visualblocks visualchars code fullscreen"
+ - "insertdatetime media nonbreaking save table contextmenu directionality"
+ - "template paste textcolor wetdmedias"
+ toolbar1: "undo redo | forecolor | bold italic charmap subscript superscript | link | removeformat | code"
+ image_advtab: true
+ relative_urls: false
+ width: 820px
+ menubar: false
+ content_css: "/bundles/trinityadmin/css/tinymce.css"
diff --git a/app/config/trinity_admin_menu.yml b/app/config/trinity_admin_menu.yml
new file mode 100644
index 0000000..73f5f92
--- /dev/null
+++ b/app/config/trinity_admin_menu.yml
@@ -0,0 +1,89 @@
+trinity_admin_menu:
+ menu:
+ title: "Admin menu"
+ logo: "/bundles/deblanblog/img/logo_adminmenu.png"
+
+ items:
+ -
+ title: "CMS"
+ items:
+ -
+ callback: ["Trinity\Bundle\AdminMenuBundle\Controller\DefaultController", "getCmsMenu"]
+ -
+ title: "Pages"
+ route_name: "TrinityContentManagerBundlePageAdmin_index"
+ icon: "/bundles/trinityadmin/img/analysis.png"
+ route_params: []
+ test_is_granted: true
+ -
+ title: "Menus"
+ icon: "/bundles/trinityadmin/img/icon1.png"
+ route_name: "TrinityContentManagerBundleMenuAdmin_index"
+ route_params: []
+ test_is_granted: true
+ -
+ title: "Blocs éditoriaux"
+ icon: "/bundles/trinityadmin/img/sign-up.png"
+ route_name: "TrinityEditorialBlockBundleEditorialBlockAdmin_index"
+ route_params: []
+ test_is_granted: true
+ -
+ title: "Navigations"
+ icon: "/bundles/trinityadmin/img/icon3.png"
+ route_name: "TrinityContentManagerBundleNavigationAdmin_index"
+ route_params: []
+ test_is_granted: true
+ -
+ title: "Medias"
+ items:
+ -
+ title: "Medias"
+ route_name: "TrinityMediaBundleMediaAdmin_index"
+ route_params: []
+ test_is_granted: true
+ icon: "/bundles/trinityadmin/img/7-Image capture.png"
+ -
+ title: "Folders"
+ route_name: "TrinityMediaBundleCategoryAdmin_index"
+ route_params: []
+ test_is_granted: true
+ icon: "/bundles/trinityadmin/img/25-Folder.png"
+ -
+ title: "Types"
+ route_name: "TrinityMediaBundleTypeAdmin_index"
+ route_params: []
+ test_is_granted: true
+ icon: "/bundles/trinityadmin/img/icon9.png"
+ -
+ title: "Tools"
+ items:
+ -
+ title: "Users"
+ route_name: "FOSUserBundleUserAdmin_index"
+ route_params: []
+ test_is_granted: true
+ icon: "/bundles/trinityadmin/img/icon6.png"
+ -
+ title: "Groups"
+ route_name: "FOSUserBundleGroupAdmin_index"
+ route_params: []
+ test_is_granted: true
+ icon: "/bundles/trinityadmin/img/icon7.png"
+ -
+ title: "Contact"
+ route_name: "TrinityContactBundleContactAdmin_index"
+ route_params: []
+ test_is_granted: true
+ icon: "/bundles/trinityadmin/img/contact.png"
+ -
+ title: "Variables"
+ route_name: "TrinityVarsEditorBundleVarsAdmin_index"
+ route_params: []
+ test_is_granted: true
+ icon: "/bundles/trinityadmin/img/addons.png"
+ -
+ title: "Empty cache"
+ route_name: "TrinityContentManagerBundlePageAdmin_clean_all_cache"
+ route_params: []
+ test_is_granted: true
+ icon: "/bundles/trinityadmin/img/addons.png"
diff --git a/app/config/trinity_content_manager.yml b/app/config/trinity_content_manager.yml
new file mode 100644
index 0000000..087d512
--- /dev/null
+++ b/app/config/trinity_content_manager.yml
@@ -0,0 +1,33 @@
+trinity_user:
+ roles:
+ ROLE_BO_USER: "Administrator user"
+ ROLE_SUPER_ADMIN: "Super administrator"
+
+ bo_auth_role: ROLE_BO_USER
+
+trinity_content_manager:
+ decorator_strategy: ~
+
+ ignore_route_patterns:
+ - '(.*)admin(.*)'
+ - '^_(.*)'
+ - '^fos_user_(.*)'
+ ignore_routes:
+ - index
+ ignore_uri_patterns:
+ - '/admin(.*)'
+ - '/ajax(.*)'
+ - '/ajax(.*)'
+ - '/files(.*)'
+
+# editorial_block:
+# actions: []
+
+ page:
+ models:
+ Trinity\Bundle\ContentManagerBundle\Page\SitemapPage:
+ title: Sitemap
+ templates:
+ - {title: 'Sitemap', template: 'TrinityContentManagerBundle:Page:sitemap.xml.twig'}
+ url_resolver:
+ models:
diff --git a/app/config/trinity_dash_board.yml b/app/config/trinity_dash_board.yml
new file mode 100644
index 0000000..9f085ae
--- /dev/null
+++ b/app/config/trinity_dash_board.yml
@@ -0,0 +1,51 @@
+trinity_dash_board:
+ dash:
+ title: "Trinity - Administration"
+ template: '::dashboard.html.twig'
+ zones:
+ -
+ model_class: 'Trinity\Bundle\DashBoardBundle\Zone\Zone'
+ model_params: ['cms', 'CMS']
+
+ items:
+ -
+ model_class: 'Trinity\Bundle\DashBoardBundle\Item\ModuleItem'
+ model_params: ['Tree', 'TrinityContentManagerBundleNodeAdmin_index', '/bundles/trinityadmin/img/content-tree.png']
+ route_name: 'TrinityContentManagerBundleNodeAdmin_index'
+ route_params: []
+ test_is_granted: true
+ -
+ model_class: 'Trinity\Bundle\DashBoardBundle\Item\ModuleItem'
+ model_params: ['Pages', 'TrinityContentManagerBundlePageAdmin_index', '/bundles/trinityadmin/img/analysis.png']
+ route_name: 'TrinityContentManagerBundlePageAdmin_index'
+ route_params: []
+ test_is_granted: true
+ -
+ model_class: 'Trinity\Bundle\DashBoardBundle\Item\ModuleItem'
+ model_params: ['Editorial blocks', 'TrinityEditorialBlockBundleEditorialBlockAdmin_index', '/bundles/trinityadmin/img/sign-up.png']
+ route_name: 'TrinityEditorialBlockBundleEditorialBlockAdmin_index'
+ route_params: []
+ test_is_granted: true
+ -
+ model_class: 'Trinity\Bundle\DashBoardBundle\Zone\Zone'
+ model_params: ['media', 'Medias']
+
+ items:
+ -
+ model_class: 'Trinity\Bundle\DashBoardBundle\Item\ModuleItem'
+ model_params: ['Medias', 'TrinityMediaBundleMediaAdmin_index', '/bundles/trinityadmin/img/7-Image capture.png']
+ route_name: 'TrinityMediaBundleMediaAdmin_index'
+ route_params: []
+ test_is_granted: true
+ -
+ model_class: 'Trinity\Bundle\DashBoardBundle\Item\ModuleItem'
+ model_params: ['Folders', 'TrinityMediaBundleCategoryAdmin_index', '/bundles/trinityadmin/img/25-Folder.png']
+ route_name: 'TrinityMediaBundleCategoryAdmin_index'
+ route_params: []
+ test_is_granted: true
+ -
+ model_class: 'Trinity\Bundle\DashBoardBundle\Item\ModuleItem'
+ model_params: ['Types', 'TrinityMediaBundleTypeAdmin_index', '/bundles/trinityadmin/img/icon9.png']
+ route_name: 'TrinityMediaBundleTypeAdmin_index'
+ route_params: []
+ test_is_granted: true
diff --git a/app/config/trinity_editorial_block.yml b/app/config/trinity_editorial_block.yml
new file mode 100644
index 0000000..b009d8f
--- /dev/null
+++ b/app/config/trinity_editorial_block.yml
@@ -0,0 +1,3 @@
+trinity_editorial_block:
+ editorial_block:
+ actions: []
diff --git a/app/config/trinity_vars_editor.yml b/app/config/trinity_vars_editor.yml
new file mode 100644
index 0000000..4c16e9e
--- /dev/null
+++ b/app/config/trinity_vars_editor.yml
@@ -0,0 +1,2 @@
+trinity_vars_editor:
+ file: "%kernel.root_dir%/config/vars.yml"
diff --git a/app/config/vars.yml b/app/config/vars.yml
new file mode 100644
index 0000000..4f6eabb
--- /dev/null
+++ b/app/config/vars.yml
@@ -0,0 +1,34 @@
+fieldsets:
+ -
+ title: Piwik
+ vars:
+ -
+ key: PiwikToken
+ label: Token
+ value: 2e409c0bc141e25d1d059d5c2ecd2b9e
+ -
+ title: 'Pied de page'
+ vars:
+ -
+ key: FooterContent
+ label: Contenu
+ type: textarea
+ value: "
Simon Vieille / Hébergement personnel / Textes libres sauf indication(s) contraire(s) / Vie privée / Sources / Admin