diff options
Diffstat (limited to 'app')
| -rw-r--r-- | app/.htaccess | 7 | ||||
| -rw-r--r-- | app/AppCache.php | 7 | ||||
| -rw-r--r-- | app/AppKernel.php | 54 | ||||
| -rw-r--r-- | app/Resources/views/base.html.twig | 13 | ||||
| -rw-r--r-- | app/Resources/views/default/index.html.twig | 76 | ||||
| -rw-r--r-- | app/config/config.yml | 69 | ||||
| -rw-r--r-- | app/config/config_dev.yml | 41 | ||||
| -rw-r--r-- | app/config/config_prod.yml | 22 | ||||
| -rw-r--r-- | app/config/config_test.yml | 16 | ||||
| -rw-r--r-- | app/config/parameters.yml.dist | 19 | ||||
| -rw-r--r-- | app/config/routing.yml | 3 | ||||
| -rw-r--r-- | app/config/routing_dev.yml | 14 | ||||
| -rw-r--r-- | app/config/security.yml | 24 | ||||
| -rw-r--r-- | app/config/services.yml | 35 | 
14 files changed, 400 insertions, 0 deletions
| diff --git a/app/.htaccess b/app/.htaccess new file mode 100644 index 0000000..fb1de45 --- /dev/null +++ b/app/.htaccess @@ -0,0 +1,7 @@ +<IfModule mod_authz_core.c> +    Require all denied +</IfModule> +<IfModule !mod_authz_core.c> +    Order deny,allow +    Deny from all +</IfModule> diff --git a/app/AppCache.php b/app/AppCache.php new file mode 100644 index 0000000..639ec2c --- /dev/null +++ b/app/AppCache.php @@ -0,0 +1,7 @@ +<?php + +use Symfony\Bundle\FrameworkBundle\HttpCache\HttpCache; + +class AppCache extends HttpCache +{ +} diff --git a/app/AppKernel.php b/app/AppKernel.php new file mode 100644 index 0000000..ef068e0 --- /dev/null +++ b/app/AppKernel.php @@ -0,0 +1,54 @@ +<?php + +use Symfony\Component\HttpKernel\Kernel; +use Symfony\Component\Config\Loader\LoaderInterface; + +class AppKernel extends Kernel +{ +    public function registerBundles() +    { +        $bundles = [ +            new Symfony\Bundle\FrameworkBundle\FrameworkBundle(), +            new Symfony\Bundle\SecurityBundle\SecurityBundle(), +            new Symfony\Bundle\TwigBundle\TwigBundle(), +            new Symfony\Bundle\MonologBundle\MonologBundle(), +            new Symfony\Bundle\SwiftmailerBundle\SwiftmailerBundle(), +            new Doctrine\Bundle\DoctrineBundle\DoctrineBundle(), +            new Sensio\Bundle\FrameworkExtraBundle\SensioFrameworkExtraBundle(), +            new AppBundle\AppBundle(), +        ]; + +        if (in_array($this->getEnvironment(), ['dev', 'test'], true)) { +            $bundles[] = new Symfony\Bundle\DebugBundle\DebugBundle(); +            $bundles[] = new Symfony\Bundle\WebProfilerBundle\WebProfilerBundle(); +            $bundles[] = new Sensio\Bundle\DistributionBundle\SensioDistributionBundle(); + +            if ('dev' === $this->getEnvironment()) { +                $bundles[] = new Sensio\Bundle\GeneratorBundle\SensioGeneratorBundle(); +                $bundles[] = new Symfony\Bundle\WebServerBundle\WebServerBundle(); +            } +        } + +        return $bundles; +    } + +    public function getRootDir() +    { +        return __DIR__; +    } + +    public function getCacheDir() +    { +        return dirname(__DIR__).'/var/cache/'.$this->getEnvironment(); +    } + +    public function getLogDir() +    { +        return dirname(__DIR__).'/var/logs'; +    } + +    public function registerContainerConfiguration(LoaderInterface $loader) +    { +        $loader->load($this->getRootDir().'/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 @@ +<!DOCTYPE html> +<html> +    <head> +        <meta charset="UTF-8" /> +        <title>{% block title %}Welcome!{% endblock %}</title> +        {% block stylesheets %}{% endblock %} +        <link rel="icon" type="image/x-icon" href="{{ asset('favicon.ico') }}" /> +    </head> +    <body> +        {% block body %}{% endblock %} +        {% block javascripts %}{% endblock %} +    </body> +</html> diff --git a/app/Resources/views/default/index.html.twig b/app/Resources/views/default/index.html.twig new file mode 100644 index 0000000..c720409 --- /dev/null +++ b/app/Resources/views/default/index.html.twig @@ -0,0 +1,76 @@ +{% 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 now ready. You can 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 the documentation to learn +                    <a href="https://symfony.com/doc/{{ constant('Symfony\\Component\\HttpKernel\\Kernel::VERSION')[:3] }}/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> +{% endblock %} diff --git a/app/config/config.yml b/app/config/config.yml new file mode 100644 index 0000000..1a5c147 --- /dev/null +++ b/app/config/config.yml @@ -0,0 +1,69 @@ +imports: +    - { resource: parameters.yml } +    - { resource: security.yml } +    - { resource: services.yml } + +# Put parameters here that don't need to change on each machine where the app is deployed +# https://symfony.com/doc/current/best_practices/configuration.html#application-related-configuration +parameters: +    locale: en + +framework: +    #esi: ~ +    #translator: { fallbacks: ['%locale%'] } +    secret: '%secret%' +    router: +        resource: '%kernel.project_dir%/app/config/routing.yml' +        strict_requirements: ~ +    form: ~ +    csrf_protection: ~ +    validation: { enable_annotations: true } +    #serializer: { enable_annotations: true } +    templating: +        engines: ['twig'] +    default_locale: '%locale%' +    trusted_hosts: ~ +    session: +        # https://symfony.com/doc/current/reference/configuration/framework.html#handler-id +        handler_id: session.handler.native_file +        save_path: '%kernel.project_dir%/var/sessions/%kernel.environment%' +    fragments: ~ +    http_method_override: true +    assets: ~ +    php_errors: +        log: true + +# Twig Configuration +twig: +    debug: '%kernel.debug%' +    strict_variables: '%kernel.debug%' + +# Doctrine Configuration +doctrine: +    dbal: +        driver: pdo_mysql +        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.project_dir%/var/data/data.sqlite' +        #   2. Uncomment database_path in parameters.yml.dist +        #   3. Uncomment next line: +        #path: '%database_path%' + +    orm: +        auto_generate_proxy_classes: '%kernel.debug%' +        naming_strategy: doctrine.orm.naming_strategy.underscore +        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..3a43646 --- /dev/null +++ b/app/config/config_dev.yml @@ -0,0 +1,41 @@ +imports: +    - { resource: config.yml } + +framework: +    router: +        resource: '%kernel.project_dir%/app/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 +            channels: ['!event'] +        console: +            type: console +            process_psr_3_messages: false +            channels: ['!event', '!doctrine', '!console'] +        # To follow logs in real time, execute the following command: +        # `bin/console server:log -vv` +        server_log: +            type: server_log +            process_psr_3_messages: false +            host: 127.0.0.1:9911 +        # uncomment to get logging in your browser +        # you may have to allow bigger header sizes in your Web server configuration +        #firephp: +        #    type: firephp +        #    level: info +        #chromephp: +        #    type: chromephp +        #    level: info + +#swiftmailer: +#    delivery_addresses: ['me@example.com'] diff --git a/app/config/config_prod.yml b/app/config/config_prod.yml new file mode 100644 index 0000000..5d460ce --- /dev/null +++ b/app/config/config_prod.yml @@ -0,0 +1,22 @@ +imports: +    - { resource: config.yml } + +#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 +        console: +            type: console +            process_psr_3_messages: false 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..2c20ddc --- /dev/null +++ b/app/config/parameters.yml.dist @@ -0,0 +1,19 @@ +# This file is a "template" of what your parameters.yml file should look like +# Set parameters here that may be different on each deployment target of the app, e.g. development, staging, production. +# https://symfony.com/doc/current/best_practices/configuration.html#infrastructure-related-configuration +parameters: +    database_host: 127.0.0.1 +    database_port: ~ +    database_name: symfony +    database_user: root +    database_password: ~ +    # You should uncomment this if you want to use pdo_sqlite +    #database_path: '%kernel.project_dir%/var/data/data.sqlite' + +    mailer_transport: smtp +    mailer_host: 127.0.0.1 +    mailer_user: ~ +    mailer_password: ~ + +    # A secret key that's used to generate certain security-related tokens +    secret: ThisTokenIsNotSoSecretChangeIt diff --git a/app/config/routing.yml b/app/config/routing.yml new file mode 100644 index 0000000..2ec067f --- /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..20602eb --- /dev/null +++ b/app/config/routing_dev.yml @@ -0,0 +1,14 @@ +_wdt: +    resource: '@WebProfilerBundle/Resources/config/routing/wdt.xml' +    prefix: /_wdt + +_profiler: +    resource: '@WebProfilerBundle/Resources/config/routing/profiler.xml' +    prefix: /_profiler + +_errors: +    resource: '@TwigBundle/Resources/config/routing/errors.xml' +    prefix: /_error + +_main: +    resource: routing.yml diff --git a/app/config/security.yml b/app/config/security.yml new file mode 100644 index 0000000..0e0b7cb --- /dev/null +++ b/app/config/security.yml @@ -0,0 +1,24 @@ +# To get started with security, check out the documentation: +# https://symfony.com/doc/current/security.html +security: + +    # https://symfony.com/doc/current/security.html#b-configuring-how-users-are-loaded +    providers: +        in_memory: +            memory: ~ + +    firewalls: +        # disables authentication for assets and the profiler, adapt it according to your needs +        dev: +            pattern: ^/(_(profiler|wdt)|css|images|js)/ +            security: false + +        main: +            anonymous: ~ +            # activate different ways to authenticate + +            # https://symfony.com/doc/current/security.html#a-configuring-how-your-users-will-authenticate +            #http_basic: ~ + +            # https://symfony.com/doc/current/security/form_login_setup.html +            #form_login: ~ diff --git a/app/config/services.yml b/app/config/services.yml new file mode 100644 index 0000000..cdb1c65 --- /dev/null +++ b/app/config/services.yml @@ -0,0 +1,35 @@ +# Learn more about services, parameters and containers at +# https://symfony.com/doc/current/service_container.html +parameters: +    #parameter_name: value + +services: +    # default configuration for services in *this* file +    _defaults: +        # automatically injects dependencies in your services +        autowire: true +        # automatically registers your services as commands, event subscribers, etc. +        autoconfigure: true +        # this means you cannot fetch services directly from the container via $container->get() +        # if you need to do this, you can override this setting on individual services +        public: false + +    # makes classes in src/AppBundle available to be used as services +    # this creates a service per class whose id is the fully-qualified class name +    AppBundle\: +        resource: '../../src/AppBundle/*' +        # you can exclude directories or files +        # but if a service is unused, it's removed anyway +        exclude: '../../src/AppBundle/{Entity,Repository,Tests}' + +    # controllers are imported separately to make sure they're public +    # and have a tag that allows actions to type-hint services +    AppBundle\Controller\: +        resource: '../../src/AppBundle/Controller' +        public: true +        tags: ['controller.service_arguments'] + +    # add more services, or override services that need manual wiring +    # AppBundle\Service\ExampleService: +    #     arguments: +    #         $someArgument: 'some_value' |