mirror of
https://codeberg.org/danielsiepmann/news-reader-php.git
synced 2024-11-24 04:56:09 +01:00
Add bucket records and improve layout
This commit is contained in:
parent
8216452a03
commit
d90a17bd04
27 changed files with 1053 additions and 28 deletions
|
@ -1,5 +1,5 @@
|
||||||
body {
|
body {
|
||||||
font: "DejaVu Sans Mono", "Menlo", "Consolas", monospace;
|
font-family: var(--font-family-default);
|
||||||
|
|
||||||
background: --color-background;
|
background: --color-background;
|
||||||
color: --color-foreground;
|
color: --color-foreground;
|
||||||
|
@ -10,6 +10,10 @@ body {
|
||||||
|
|
||||||
h1 {
|
h1 {
|
||||||
color: var(--color-blue-dark);
|
color: var(--color-blue-dark);
|
||||||
|
font-family: var(--font-family-headlines);
|
||||||
|
font-weight: 300;
|
||||||
|
letter-spacing: .14em;
|
||||||
|
word-spacing: .3em;
|
||||||
}
|
}
|
||||||
|
|
||||||
a {
|
a {
|
||||||
|
|
4
assets/sass/_layout.scss
Normal file
4
assets/sass/_layout.scss
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
body > main {
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: var(--width-sidebar-max) 100%;
|
||||||
|
}
|
|
@ -12,5 +12,8 @@
|
||||||
|
|
||||||
--width-border-default: 0.2rem;
|
--width-border-default: 0.2rem;
|
||||||
|
|
||||||
--width-sidebar-max: 10rem;
|
--width-sidebar-max: 15rem;
|
||||||
|
|
||||||
|
--font-family-default: "DejaVu Sans Mono", "Menlo", "Consolas", monospace;
|
||||||
|
--font-family-headlines: "Montserrat", "Avenir", "Roboto", sans-serif;
|
||||||
}
|
}
|
||||||
|
|
7
assets/sass/components/_content.scss
Normal file
7
assets/sass/components/_content.scss
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
body > main > section {
|
||||||
|
padding: var(--spacing-elements);
|
||||||
|
|
||||||
|
header h1 {
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,5 +1,4 @@
|
||||||
body > nav {
|
body > main > nav {
|
||||||
max-width: var(--width-sidebar-max);
|
|
||||||
border: {
|
border: {
|
||||||
right: var(--color-blue-light) solid var(--width-border-default);
|
right: var(--color-blue-light) solid var(--width-border-default);
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,4 +2,6 @@
|
||||||
@import 'elements';
|
@import 'elements';
|
||||||
@import 'components/header';
|
@import 'components/header';
|
||||||
@import 'components/sidebar';
|
@import 'components/sidebar';
|
||||||
|
@import 'components/content';
|
||||||
@import 'components/footer';
|
@import 'components/footer';
|
||||||
|
@import 'layout';
|
||||||
|
|
|
@ -5,6 +5,7 @@
|
||||||
"php": "^7.2.5",
|
"php": "^7.2.5",
|
||||||
"ext-ctype": "*",
|
"ext-ctype": "*",
|
||||||
"ext-iconv": "*",
|
"ext-iconv": "*",
|
||||||
|
"sensio/framework-extra-bundle": "^5.5",
|
||||||
"symfony/asset": "5.0.*",
|
"symfony/asset": "5.0.*",
|
||||||
"symfony/console": "5.0.*",
|
"symfony/console": "5.0.*",
|
||||||
"symfony/dotenv": "5.0.*",
|
"symfony/dotenv": "5.0.*",
|
||||||
|
@ -15,6 +16,9 @@
|
||||||
"symfony/yaml": "5.0.*"
|
"symfony/yaml": "5.0.*"
|
||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
|
"doctrine/doctrine-fixtures-bundle": "^3.3",
|
||||||
|
"symfony/maker-bundle": "^1.18",
|
||||||
|
"symfony/profiler-pack": "^1.0"
|
||||||
},
|
},
|
||||||
"config": {
|
"config": {
|
||||||
"preferred-install": {
|
"preferred-install": {
|
||||||
|
|
709
composer.lock
generated
709
composer.lock
generated
|
@ -4,7 +4,7 @@
|
||||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||||
"This file is @generated automatically"
|
"This file is @generated automatically"
|
||||||
],
|
],
|
||||||
"content-hash": "f28137780ed4bbe2e8ff224340449ea7",
|
"content-hash": "e758c06757d10ff8c2fbac8950b983a3",
|
||||||
"packages": [
|
"packages": [
|
||||||
{
|
{
|
||||||
"name": "doctrine/annotations",
|
"name": "doctrine/annotations",
|
||||||
|
@ -1629,6 +1629,79 @@
|
||||||
],
|
],
|
||||||
"time": "2020-03-23T09:12:05+00:00"
|
"time": "2020-03-23T09:12:05+00:00"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "sensio/framework-extra-bundle",
|
||||||
|
"version": "v5.5.5",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/sensiolabs/SensioFrameworkExtraBundle.git",
|
||||||
|
"reference": "c76bb1c5c67840ecb6d9be8e9d8d7036e375e317"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/sensiolabs/SensioFrameworkExtraBundle/zipball/c76bb1c5c67840ecb6d9be8e9d8d7036e375e317",
|
||||||
|
"reference": "c76bb1c5c67840ecb6d9be8e9d8d7036e375e317",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"doctrine/annotations": "^1.0",
|
||||||
|
"php": ">=7.1.3",
|
||||||
|
"symfony/config": "^4.4|^5.0",
|
||||||
|
"symfony/dependency-injection": "^4.4|^5.0",
|
||||||
|
"symfony/framework-bundle": "^4.4|^5.0",
|
||||||
|
"symfony/http-kernel": "^4.4|^5.0"
|
||||||
|
},
|
||||||
|
"conflict": {
|
||||||
|
"doctrine/doctrine-cache-bundle": "<1.3.1"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"doctrine/doctrine-bundle": "^1.11|^2.0",
|
||||||
|
"doctrine/orm": "^2.5",
|
||||||
|
"nyholm/psr7": "^1.1",
|
||||||
|
"symfony/browser-kit": "^4.4|^5.0",
|
||||||
|
"symfony/dom-crawler": "^4.4|^5.0",
|
||||||
|
"symfony/expression-language": "^4.4|^5.0",
|
||||||
|
"symfony/finder": "^4.4|^5.0",
|
||||||
|
"symfony/monolog-bridge": "^4.0|^5.0",
|
||||||
|
"symfony/monolog-bundle": "^3.2",
|
||||||
|
"symfony/phpunit-bridge": "^4.3.5|^5.0",
|
||||||
|
"symfony/psr-http-message-bridge": "^1.1",
|
||||||
|
"symfony/security-bundle": "^4.4|^5.0",
|
||||||
|
"symfony/twig-bundle": "^4.4|^5.0",
|
||||||
|
"symfony/yaml": "^4.4|^5.0",
|
||||||
|
"twig/twig": "^1.34|^2.4|^3.0"
|
||||||
|
},
|
||||||
|
"type": "symfony-bundle",
|
||||||
|
"extra": {
|
||||||
|
"branch-alias": {
|
||||||
|
"dev-master": "5.5.x-dev"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"autoload": {
|
||||||
|
"psr-4": {
|
||||||
|
"Sensio\\Bundle\\FrameworkExtraBundle\\": "src/"
|
||||||
|
},
|
||||||
|
"exclude-from-classmap": [
|
||||||
|
"/tests/"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"MIT"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Fabien Potencier",
|
||||||
|
"email": "fabien@symfony.com"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "This bundle provides a way to configure your controllers with annotations",
|
||||||
|
"keywords": [
|
||||||
|
"annotations",
|
||||||
|
"controllers"
|
||||||
|
],
|
||||||
|
"time": "2020-05-06T12:12:33+00:00"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/asset",
|
"name": "symfony/asset",
|
||||||
"version": "v5.0.8",
|
"version": "v5.0.8",
|
||||||
|
@ -4307,7 +4380,639 @@
|
||||||
"time": "2018-04-25T15:33:34+00:00"
|
"time": "2018-04-25T15:33:34+00:00"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"packages-dev": [],
|
"packages-dev": [
|
||||||
|
{
|
||||||
|
"name": "doctrine/data-fixtures",
|
||||||
|
"version": "1.4.3",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/doctrine/data-fixtures.git",
|
||||||
|
"reference": "7ebac50901eb4516816ac39100dba1759d843943"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/doctrine/data-fixtures/zipball/7ebac50901eb4516816ac39100dba1759d843943",
|
||||||
|
"reference": "7ebac50901eb4516816ac39100dba1759d843943",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"doctrine/common": "^2.11",
|
||||||
|
"doctrine/persistence": "^1.3.3",
|
||||||
|
"php": "^7.2 || ^8.0"
|
||||||
|
},
|
||||||
|
"conflict": {
|
||||||
|
"doctrine/phpcr-odm": "<1.3.0"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"alcaeus/mongo-php-adapter": "^1.1",
|
||||||
|
"doctrine/coding-standard": "^6.0",
|
||||||
|
"doctrine/dbal": "^2.5.4",
|
||||||
|
"doctrine/mongodb-odm": "^1.3.0",
|
||||||
|
"doctrine/orm": "^2.7.0",
|
||||||
|
"phpunit/phpunit": "^7.0"
|
||||||
|
},
|
||||||
|
"suggest": {
|
||||||
|
"alcaeus/mongo-php-adapter": "For using MongoDB ODM with PHP 7",
|
||||||
|
"doctrine/mongodb-odm": "For loading MongoDB ODM fixtures",
|
||||||
|
"doctrine/orm": "For loading ORM fixtures",
|
||||||
|
"doctrine/phpcr-odm": "For loading PHPCR ODM fixtures"
|
||||||
|
},
|
||||||
|
"type": "library",
|
||||||
|
"extra": {
|
||||||
|
"branch-alias": {
|
||||||
|
"dev-master": "1.4.x-dev"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"autoload": {
|
||||||
|
"psr-4": {
|
||||||
|
"Doctrine\\Common\\DataFixtures\\": "lib/Doctrine/Common/DataFixtures"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"MIT"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Jonathan Wage",
|
||||||
|
"email": "jonwage@gmail.com"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "Data Fixtures for all Doctrine Object Managers",
|
||||||
|
"homepage": "http://www.doctrine-project.org",
|
||||||
|
"keywords": [
|
||||||
|
"database"
|
||||||
|
],
|
||||||
|
"funding": [
|
||||||
|
{
|
||||||
|
"url": "https://www.doctrine-project.org/sponsorship.html",
|
||||||
|
"type": "custom"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"url": "https://www.patreon.com/phpdoctrine",
|
||||||
|
"type": "patreon"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"url": "https://tidelift.com/funding/github/packagist/doctrine%2Fdata-fixtures",
|
||||||
|
"type": "tidelift"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"time": "2020-05-25T19:45:03+00:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "doctrine/doctrine-fixtures-bundle",
|
||||||
|
"version": "3.3.1",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/doctrine/DoctrineFixturesBundle.git",
|
||||||
|
"reference": "39defca57ee0949e1475c46177b30b6d1b732e8f"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/doctrine/DoctrineFixturesBundle/zipball/39defca57ee0949e1475c46177b30b6d1b732e8f",
|
||||||
|
"reference": "39defca57ee0949e1475c46177b30b6d1b732e8f",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"doctrine/data-fixtures": "^1.3",
|
||||||
|
"doctrine/doctrine-bundle": "^1.11|^2.0",
|
||||||
|
"doctrine/orm": "^2.6.0",
|
||||||
|
"doctrine/persistence": "^1.3",
|
||||||
|
"php": "^7.1",
|
||||||
|
"symfony/config": "^3.4|^4.3|^5.0",
|
||||||
|
"symfony/console": "^3.4|^4.3|^5.0",
|
||||||
|
"symfony/dependency-injection": "^3.4|^4.3|^5.0",
|
||||||
|
"symfony/doctrine-bridge": "^3.4|^4.1|^5.0",
|
||||||
|
"symfony/http-kernel": "^3.4|^4.3|^5.0"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"doctrine/coding-standard": "^6.0",
|
||||||
|
"phpunit/phpunit": "^7.4",
|
||||||
|
"symfony/phpunit-bridge": "^4.1|^5.0"
|
||||||
|
},
|
||||||
|
"type": "symfony-bundle",
|
||||||
|
"extra": {
|
||||||
|
"branch-alias": {
|
||||||
|
"dev-master": "3.3.x-dev"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"autoload": {
|
||||||
|
"psr-4": {
|
||||||
|
"Doctrine\\Bundle\\FixturesBundle\\": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"MIT"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Fabien Potencier",
|
||||||
|
"email": "fabien@symfony.com"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Doctrine Project",
|
||||||
|
"homepage": "http://www.doctrine-project.org"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Symfony Community",
|
||||||
|
"homepage": "http://symfony.com/contributors"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "Symfony DoctrineFixturesBundle",
|
||||||
|
"homepage": "http://www.doctrine-project.org",
|
||||||
|
"keywords": [
|
||||||
|
"Fixture",
|
||||||
|
"persistence"
|
||||||
|
],
|
||||||
|
"funding": [
|
||||||
|
{
|
||||||
|
"url": "https://www.doctrine-project.org/sponsorship.html",
|
||||||
|
"type": "custom"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"url": "https://www.patreon.com/phpdoctrine",
|
||||||
|
"type": "patreon"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"url": "https://tidelift.com/funding/github/packagist/doctrine%2Fdoctrine-fixtures-bundle",
|
||||||
|
"type": "tidelift"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"time": "2020-04-02T16:40:37+00:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "nikic/php-parser",
|
||||||
|
"version": "v4.4.0",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/nikic/PHP-Parser.git",
|
||||||
|
"reference": "bd43ec7152eaaab3bd8c6d0aa95ceeb1df8ee120"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/bd43ec7152eaaab3bd8c6d0aa95ceeb1df8ee120",
|
||||||
|
"reference": "bd43ec7152eaaab3bd8c6d0aa95ceeb1df8ee120",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"ext-tokenizer": "*",
|
||||||
|
"php": ">=7.0"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"ircmaxell/php-yacc": "0.0.5",
|
||||||
|
"phpunit/phpunit": "^6.5 || ^7.0 || ^8.0"
|
||||||
|
},
|
||||||
|
"bin": [
|
||||||
|
"bin/php-parse"
|
||||||
|
],
|
||||||
|
"type": "library",
|
||||||
|
"extra": {
|
||||||
|
"branch-alias": {
|
||||||
|
"dev-master": "4.3-dev"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"autoload": {
|
||||||
|
"psr-4": {
|
||||||
|
"PhpParser\\": "lib/PhpParser"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"BSD-3-Clause"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Nikita Popov"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "A PHP parser written in PHP",
|
||||||
|
"keywords": [
|
||||||
|
"parser",
|
||||||
|
"php"
|
||||||
|
],
|
||||||
|
"time": "2020-04-10T16:34:50+00:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "symfony/maker-bundle",
|
||||||
|
"version": "v1.18.0",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/symfony/maker-bundle.git",
|
||||||
|
"reference": "b38c75be880b152ab55cef6cd52bf882d2b6518e"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/symfony/maker-bundle/zipball/b38c75be880b152ab55cef6cd52bf882d2b6518e",
|
||||||
|
"reference": "b38c75be880b152ab55cef6cd52bf882d2b6518e",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"doctrine/inflector": "^1.2",
|
||||||
|
"nikic/php-parser": "^4.0",
|
||||||
|
"php": "^7.1.3",
|
||||||
|
"symfony/config": "^3.4|^4.0|^5.0",
|
||||||
|
"symfony/console": "^3.4|^4.0|^5.0",
|
||||||
|
"symfony/dependency-injection": "^3.4|^4.0|^5.0",
|
||||||
|
"symfony/filesystem": "^3.4|^4.0|^5.0",
|
||||||
|
"symfony/finder": "^3.4|^4.0|^5.0",
|
||||||
|
"symfony/framework-bundle": "^3.4|^4.0|^5.0",
|
||||||
|
"symfony/http-kernel": "^3.4|^4.0|^5.0"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"doctrine/doctrine-bundle": "^1.8|^2.0",
|
||||||
|
"doctrine/orm": "^2.3",
|
||||||
|
"friendsofphp/php-cs-fixer": "^2.8",
|
||||||
|
"friendsoftwig/twigcs": "^3.1.2",
|
||||||
|
"symfony/http-client": "^4.3|^5.0",
|
||||||
|
"symfony/phpunit-bridge": "^4.3|^5.0",
|
||||||
|
"symfony/process": "^3.4|^4.0|^5.0",
|
||||||
|
"symfony/security-core": "^3.4|^4.0|^5.0",
|
||||||
|
"symfony/yaml": "^3.4|^4.0|^5.0"
|
||||||
|
},
|
||||||
|
"type": "symfony-bundle",
|
||||||
|
"extra": {
|
||||||
|
"branch-alias": {
|
||||||
|
"dev-master": "1.0-dev"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"autoload": {
|
||||||
|
"psr-4": {
|
||||||
|
"Symfony\\Bundle\\MakerBundle\\": "src/"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"MIT"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Symfony Community",
|
||||||
|
"homepage": "https://symfony.com/contributors"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "Symfony Maker helps you create empty commands, controllers, form classes, tests and more so you can forget about writing boilerplate code.",
|
||||||
|
"homepage": "https://symfony.com/doc/current/bundles/SymfonyMakerBundle/index.html",
|
||||||
|
"keywords": [
|
||||||
|
"code generator",
|
||||||
|
"generator",
|
||||||
|
"scaffold",
|
||||||
|
"scaffolding"
|
||||||
|
],
|
||||||
|
"funding": [
|
||||||
|
{
|
||||||
|
"url": "https://symfony.com/sponsor",
|
||||||
|
"type": "custom"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"url": "https://github.com/fabpot",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
|
||||||
|
"type": "tidelift"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"time": "2020-05-15T18:51:23+00:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "symfony/polyfill-intl-grapheme",
|
||||||
|
"version": "v1.17.0",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/symfony/polyfill-intl-grapheme.git",
|
||||||
|
"reference": "e094b0770f7833fdf257e6ba4775be4e258230b2"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/e094b0770f7833fdf257e6ba4775be4e258230b2",
|
||||||
|
"reference": "e094b0770f7833fdf257e6ba4775be4e258230b2",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"php": ">=5.3.3"
|
||||||
|
},
|
||||||
|
"suggest": {
|
||||||
|
"ext-intl": "For best performance"
|
||||||
|
},
|
||||||
|
"type": "library",
|
||||||
|
"extra": {
|
||||||
|
"branch-alias": {
|
||||||
|
"dev-master": "1.17-dev"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"autoload": {
|
||||||
|
"psr-4": {
|
||||||
|
"Symfony\\Polyfill\\Intl\\Grapheme\\": ""
|
||||||
|
},
|
||||||
|
"files": [
|
||||||
|
"bootstrap.php"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"MIT"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Nicolas Grekas",
|
||||||
|
"email": "p@tchwork.com"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Symfony Community",
|
||||||
|
"homepage": "https://symfony.com/contributors"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "Symfony polyfill for intl's grapheme_* functions",
|
||||||
|
"homepage": "https://symfony.com",
|
||||||
|
"keywords": [
|
||||||
|
"compatibility",
|
||||||
|
"grapheme",
|
||||||
|
"intl",
|
||||||
|
"polyfill",
|
||||||
|
"portable",
|
||||||
|
"shim"
|
||||||
|
],
|
||||||
|
"funding": [
|
||||||
|
{
|
||||||
|
"url": "https://symfony.com/sponsor",
|
||||||
|
"type": "custom"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"url": "https://github.com/fabpot",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
|
||||||
|
"type": "tidelift"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"time": "2020-05-12T16:47:27+00:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "symfony/polyfill-intl-normalizer",
|
||||||
|
"version": "v1.17.0",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/symfony/polyfill-intl-normalizer.git",
|
||||||
|
"reference": "1357b1d168eb7f68ad6a134838e46b0b159444a9"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/1357b1d168eb7f68ad6a134838e46b0b159444a9",
|
||||||
|
"reference": "1357b1d168eb7f68ad6a134838e46b0b159444a9",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"php": ">=5.3.3"
|
||||||
|
},
|
||||||
|
"suggest": {
|
||||||
|
"ext-intl": "For best performance"
|
||||||
|
},
|
||||||
|
"type": "library",
|
||||||
|
"extra": {
|
||||||
|
"branch-alias": {
|
||||||
|
"dev-master": "1.17-dev"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"autoload": {
|
||||||
|
"psr-4": {
|
||||||
|
"Symfony\\Polyfill\\Intl\\Normalizer\\": ""
|
||||||
|
},
|
||||||
|
"files": [
|
||||||
|
"bootstrap.php"
|
||||||
|
],
|
||||||
|
"classmap": [
|
||||||
|
"Resources/stubs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"MIT"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Nicolas Grekas",
|
||||||
|
"email": "p@tchwork.com"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Symfony Community",
|
||||||
|
"homepage": "https://symfony.com/contributors"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "Symfony polyfill for intl's Normalizer class and related functions",
|
||||||
|
"homepage": "https://symfony.com",
|
||||||
|
"keywords": [
|
||||||
|
"compatibility",
|
||||||
|
"intl",
|
||||||
|
"normalizer",
|
||||||
|
"polyfill",
|
||||||
|
"portable",
|
||||||
|
"shim"
|
||||||
|
],
|
||||||
|
"funding": [
|
||||||
|
{
|
||||||
|
"url": "https://symfony.com/sponsor",
|
||||||
|
"type": "custom"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"url": "https://github.com/fabpot",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
|
||||||
|
"type": "tidelift"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"time": "2020-05-12T16:14:59+00:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "symfony/profiler-pack",
|
||||||
|
"version": "v1.0.4",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/symfony/profiler-pack.git",
|
||||||
|
"reference": "99c4370632c2a59bb0444852f92140074ef02209"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/symfony/profiler-pack/zipball/99c4370632c2a59bb0444852f92140074ef02209",
|
||||||
|
"reference": "99c4370632c2a59bb0444852f92140074ef02209",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"php": "^7.0",
|
||||||
|
"symfony/stopwatch": "*",
|
||||||
|
"symfony/twig-bundle": "*",
|
||||||
|
"symfony/web-profiler-bundle": "*"
|
||||||
|
},
|
||||||
|
"type": "symfony-pack",
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"MIT"
|
||||||
|
],
|
||||||
|
"description": "A pack for the Symfony web profiler",
|
||||||
|
"time": "2018-12-10T12:11:44+00:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "symfony/string",
|
||||||
|
"version": "v5.0.8",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/symfony/string.git",
|
||||||
|
"reference": "48a2f4b3597514e6c885c0ddb22d3bbdb60517d0"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/symfony/string/zipball/48a2f4b3597514e6c885c0ddb22d3bbdb60517d0",
|
||||||
|
"reference": "48a2f4b3597514e6c885c0ddb22d3bbdb60517d0",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"php": "^7.2.5",
|
||||||
|
"symfony/polyfill-intl-grapheme": "~1.0",
|
||||||
|
"symfony/polyfill-intl-normalizer": "~1.0",
|
||||||
|
"symfony/polyfill-mbstring": "~1.0",
|
||||||
|
"symfony/translation-contracts": "^1.1|^2"
|
||||||
|
},
|
||||||
|
"type": "library",
|
||||||
|
"extra": {
|
||||||
|
"branch-alias": {
|
||||||
|
"dev-master": "5.0-dev"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"autoload": {
|
||||||
|
"psr-4": {
|
||||||
|
"Symfony\\Component\\String\\": ""
|
||||||
|
},
|
||||||
|
"files": [
|
||||||
|
"Resources/functions.php"
|
||||||
|
],
|
||||||
|
"exclude-from-classmap": [
|
||||||
|
"/Tests/"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"MIT"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Nicolas Grekas",
|
||||||
|
"email": "p@tchwork.com"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Symfony Community",
|
||||||
|
"homepage": "https://symfony.com/contributors"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "Symfony String component",
|
||||||
|
"homepage": "https://symfony.com",
|
||||||
|
"keywords": [
|
||||||
|
"grapheme",
|
||||||
|
"i18n",
|
||||||
|
"string",
|
||||||
|
"unicode",
|
||||||
|
"utf-8",
|
||||||
|
"utf8"
|
||||||
|
],
|
||||||
|
"funding": [
|
||||||
|
{
|
||||||
|
"url": "https://symfony.com/sponsor",
|
||||||
|
"type": "custom"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"url": "https://github.com/fabpot",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
|
||||||
|
"type": "tidelift"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"time": "2020-03-16T13:02:39+00:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "symfony/web-profiler-bundle",
|
||||||
|
"version": "v5.0.8",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/symfony/web-profiler-bundle.git",
|
||||||
|
"reference": "67fc2302ba7ca3d917decea6d3accdbd055398d1"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/symfony/web-profiler-bundle/zipball/67fc2302ba7ca3d917decea6d3accdbd055398d1",
|
||||||
|
"reference": "67fc2302ba7ca3d917decea6d3accdbd055398d1",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"php": "^7.2.5",
|
||||||
|
"symfony/config": "^4.4|^5.0",
|
||||||
|
"symfony/framework-bundle": "^4.4|^5.0",
|
||||||
|
"symfony/http-kernel": "^4.4|^5.0",
|
||||||
|
"symfony/routing": "^4.4|^5.0",
|
||||||
|
"symfony/twig-bundle": "^4.4|^5.0",
|
||||||
|
"twig/twig": "^2.10|^3.0"
|
||||||
|
},
|
||||||
|
"conflict": {
|
||||||
|
"symfony/form": "<4.4",
|
||||||
|
"symfony/messenger": "<4.4"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"symfony/browser-kit": "^4.4|^5.0",
|
||||||
|
"symfony/console": "^4.4|^5.0",
|
||||||
|
"symfony/css-selector": "^4.4|^5.0",
|
||||||
|
"symfony/dependency-injection": "^4.4|^5.0",
|
||||||
|
"symfony/stopwatch": "^4.4|^5.0"
|
||||||
|
},
|
||||||
|
"type": "symfony-bundle",
|
||||||
|
"extra": {
|
||||||
|
"branch-alias": {
|
||||||
|
"dev-master": "5.0-dev"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"autoload": {
|
||||||
|
"psr-4": {
|
||||||
|
"Symfony\\Bundle\\WebProfilerBundle\\": ""
|
||||||
|
},
|
||||||
|
"exclude-from-classmap": [
|
||||||
|
"/Tests/"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"MIT"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Fabien Potencier",
|
||||||
|
"email": "fabien@symfony.com"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Symfony Community",
|
||||||
|
"homepage": "https://symfony.com/contributors"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "Symfony WebProfilerBundle",
|
||||||
|
"homepage": "https://symfony.com",
|
||||||
|
"funding": [
|
||||||
|
{
|
||||||
|
"url": "https://symfony.com/sponsor",
|
||||||
|
"type": "custom"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"url": "https://github.com/fabpot",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
|
||||||
|
"type": "tidelift"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"time": "2020-04-28T17:58:55+00:00"
|
||||||
|
}
|
||||||
|
],
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"minimum-stability": "stable",
|
"minimum-stability": "stable",
|
||||||
"stability-flags": [],
|
"stability-flags": [],
|
||||||
|
|
|
@ -6,4 +6,8 @@ return [
|
||||||
Doctrine\Bundle\MigrationsBundle\DoctrineMigrationsBundle::class => ['all' => true],
|
Doctrine\Bundle\MigrationsBundle\DoctrineMigrationsBundle::class => ['all' => true],
|
||||||
Symfony\Bundle\TwigBundle\TwigBundle::class => ['all' => true],
|
Symfony\Bundle\TwigBundle\TwigBundle::class => ['all' => true],
|
||||||
Twig\Extra\TwigExtraBundle\TwigExtraBundle::class => ['all' => true],
|
Twig\Extra\TwigExtraBundle\TwigExtraBundle::class => ['all' => true],
|
||||||
|
Symfony\Bundle\MakerBundle\MakerBundle::class => ['dev' => true],
|
||||||
|
Sensio\Bundle\FrameworkExtraBundle\SensioFrameworkExtraBundle::class => ['all' => true],
|
||||||
|
Doctrine\Bundle\FixturesBundle\DoctrineFixturesBundle::class => ['dev' => true, 'test' => true],
|
||||||
|
Symfony\Bundle\WebProfilerBundle\WebProfilerBundle::class => ['dev' => true, 'test' => true],
|
||||||
];
|
];
|
||||||
|
|
6
config/packages/dev/web_profiler.yaml
Normal file
6
config/packages/dev/web_profiler.yaml
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
web_profiler:
|
||||||
|
toolbar: true
|
||||||
|
intercept_redirects: false
|
||||||
|
|
||||||
|
framework:
|
||||||
|
profiler: { only_exceptions: false }
|
3
config/packages/sensio_framework_extra.yaml
Normal file
3
config/packages/sensio_framework_extra.yaml
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
sensio_framework_extra:
|
||||||
|
router:
|
||||||
|
annotations: false
|
6
config/packages/test/web_profiler.yaml
Normal file
6
config/packages/test/web_profiler.yaml
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
web_profiler:
|
||||||
|
toolbar: false
|
||||||
|
intercept_redirects: false
|
||||||
|
|
||||||
|
framework:
|
||||||
|
profiler: { collect: false }
|
|
@ -2,3 +2,4 @@ twig:
|
||||||
default_path: '%kernel.project_dir%/templates'
|
default_path: '%kernel.project_dir%/templates'
|
||||||
globals:
|
globals:
|
||||||
app_name: RSS Reader
|
app_name: RSS Reader
|
||||||
|
buckets: '@App\Repository\BucketRepository'
|
||||||
|
|
|
@ -4,3 +4,7 @@ start:
|
||||||
controller: Symfony\Bundle\FrameworkBundle\Controller\TemplateController
|
controller: Symfony\Bundle\FrameworkBundle\Controller\TemplateController
|
||||||
defaults:
|
defaults:
|
||||||
template: 'static/start.html.twig'
|
template: 'static/start.html.twig'
|
||||||
|
|
||||||
|
bucket:
|
||||||
|
path: /bucket/{slug}
|
||||||
|
controller: App\Controller\BucketController::show
|
||||||
|
|
|
@ -1,7 +0,0 @@
|
||||||
controllers:
|
|
||||||
resource: ../../src/Controller/
|
|
||||||
type: annotation
|
|
||||||
|
|
||||||
kernel:
|
|
||||||
resource: ../../src/Kernel.php
|
|
||||||
type: annotation
|
|
7
config/routes/dev/web_profiler.yaml
Normal file
7
config/routes/dev/web_profiler.yaml
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
web_profiler_wdt:
|
||||||
|
resource: '@WebProfilerBundle/Resources/config/routing/wdt.xml'
|
||||||
|
prefix: /_wdt
|
||||||
|
|
||||||
|
web_profiler_profiler:
|
||||||
|
resource: '@WebProfilerBundle/Resources/config/routing/profiler.xml'
|
||||||
|
prefix: /_profiler
|
|
@ -22,6 +22,3 @@ services:
|
||||||
App\Controller\:
|
App\Controller\:
|
||||||
resource: '../src/Controller'
|
resource: '../src/Controller'
|
||||||
tags: ['controller.service_arguments']
|
tags: ['controller.service_arguments']
|
||||||
|
|
||||||
# add more service definitions when explicit configuration is needed
|
|
||||||
# please note that last definitions always *replace* previous ones
|
|
||||||
|
|
|
@ -9,17 +9,23 @@
|
||||||
--color-white-dark: #B0B0B0;
|
--color-white-dark: #B0B0B0;
|
||||||
--spacing-elements: 1rem;
|
--spacing-elements: 1rem;
|
||||||
--width-border-default: 0.2rem;
|
--width-border-default: 0.2rem;
|
||||||
--width-sidebar-max: 10rem; }
|
--width-sidebar-max: 15rem;
|
||||||
|
--font-family-default: "DejaVu Sans Mono", "Menlo", "Consolas", monospace;
|
||||||
|
--font-family-headlines: "Montserrat", "Avenir", "Roboto", sans-serif; }
|
||||||
|
|
||||||
body {
|
body {
|
||||||
font: "DejaVu Sans Mono", "Menlo", "Consolas", monospace;
|
font-family: var(--font-family-default);
|
||||||
background: --color-background;
|
background: --color-background;
|
||||||
color: --color-foreground;
|
color: --color-foreground;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
padding: 0; }
|
padding: 0; }
|
||||||
|
|
||||||
h1 {
|
h1 {
|
||||||
color: var(--color-blue-dark); }
|
color: var(--color-blue-dark);
|
||||||
|
font-family: var(--font-family-headlines);
|
||||||
|
font-weight: 300;
|
||||||
|
letter-spacing: .14em;
|
||||||
|
word-spacing: .3em; }
|
||||||
|
|
||||||
a {
|
a {
|
||||||
color: var(--color-wihte-light);
|
color: var(--color-wihte-light);
|
||||||
|
@ -36,13 +42,21 @@ body > header {
|
||||||
body > header h1 {
|
body > header h1 {
|
||||||
margin: 0; }
|
margin: 0; }
|
||||||
|
|
||||||
body > nav {
|
body > main > nav {
|
||||||
max-width: var(--width-sidebar-max);
|
|
||||||
border-right: var(--color-blue-light) solid var(--width-border-default); }
|
border-right: var(--color-blue-light) solid var(--width-border-default); }
|
||||||
body > nav a {
|
body > main > nav a {
|
||||||
display: block;
|
display: block;
|
||||||
padding: var(--spacing-elements); }
|
padding: var(--spacing-elements); }
|
||||||
|
|
||||||
|
body > main > section {
|
||||||
|
padding: var(--spacing-elements); }
|
||||||
|
body > main > section header h1 {
|
||||||
|
margin: 0; }
|
||||||
|
|
||||||
body > footer {
|
body > footer {
|
||||||
padding: var(--spacing-elements);
|
padding: var(--spacing-elements);
|
||||||
border-top: var(--color-blue-light) solid var(--width-border-default); }
|
border-top: var(--color-blue-light) solid var(--width-border-default); }
|
||||||
|
|
||||||
|
body > main {
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: var(--width-sidebar-max) 100%; }
|
||||||
|
|
16
src/Controller/BucketController.php
Normal file
16
src/Controller/BucketController.php
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Controller;
|
||||||
|
|
||||||
|
use App\Entity\Bucket;
|
||||||
|
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
|
||||||
|
|
||||||
|
class BucketController extends AbstractController
|
||||||
|
{
|
||||||
|
public function show(Bucket $bucket)
|
||||||
|
{
|
||||||
|
return $this->render('bucket/index.html.twig', [
|
||||||
|
'bucket' => $bucket,
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
}
|
52
src/DataFixtures/AppFixtures.php
Normal file
52
src/DataFixtures/AppFixtures.php
Normal file
|
@ -0,0 +1,52 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\DataFixtures;
|
||||||
|
|
||||||
|
use App\Entity\Bucket;
|
||||||
|
use Doctrine\Bundle\FixturesBundle\Fixture;
|
||||||
|
use Doctrine\Common\Persistence\ObjectManager;
|
||||||
|
use Symfony\Component\String\Slugger\SluggerInterface;
|
||||||
|
|
||||||
|
class AppFixtures extends Fixture
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* @var SluggerInterface
|
||||||
|
*/
|
||||||
|
private $slugger;
|
||||||
|
|
||||||
|
public function __construct(SluggerInterface $slugger)
|
||||||
|
{
|
||||||
|
$this->slugger = $slugger;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function load(ObjectManager $manager)
|
||||||
|
{
|
||||||
|
$buckets = [
|
||||||
|
'TYPO3 (official)',
|
||||||
|
'TYPO3 (related)',
|
||||||
|
'Updates',
|
||||||
|
'Linux',
|
||||||
|
'Work',
|
||||||
|
'New',
|
||||||
|
'tech',
|
||||||
|
'Random',
|
||||||
|
'Music',
|
||||||
|
'Sport',
|
||||||
|
'Games',
|
||||||
|
'Coding',
|
||||||
|
'Vim',
|
||||||
|
'Magazine',
|
||||||
|
'Podcasts',
|
||||||
|
];
|
||||||
|
|
||||||
|
foreach ($buckets as $bucketName) {
|
||||||
|
$bucket = new Bucket(
|
||||||
|
$bucketName,
|
||||||
|
strtolower($this->slugger->slug($bucketName))
|
||||||
|
);
|
||||||
|
$manager->persist($bucket);
|
||||||
|
}
|
||||||
|
|
||||||
|
$manager->flush();
|
||||||
|
}
|
||||||
|
}
|
53
src/Entity/Bucket.php
Normal file
53
src/Entity/Bucket.php
Normal file
|
@ -0,0 +1,53 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Entity;
|
||||||
|
|
||||||
|
use App\Repository\BucketRepository;
|
||||||
|
use Doctrine\ORM\Mapping as ORM;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @ORM\Entity(repositoryClass=BucketRepository::class)
|
||||||
|
* @ORM\Table(uniqueConstraints={@ORM\UniqueConstraint(name="bucket_routing", columns={"slug"})})
|
||||||
|
*/
|
||||||
|
class Bucket
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* @ORM\Id()
|
||||||
|
* @ORM\GeneratedValue()
|
||||||
|
* @ORM\Column(type="integer")
|
||||||
|
*/
|
||||||
|
private $id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @ORM\Column(type="string", length=255)
|
||||||
|
*/
|
||||||
|
private $name;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @ORM\Column(type="string", length=255)
|
||||||
|
*/
|
||||||
|
private $slug;
|
||||||
|
|
||||||
|
public function __construct(
|
||||||
|
string $name,
|
||||||
|
string $slug
|
||||||
|
) {
|
||||||
|
$this->name = $name;
|
||||||
|
$this->slug = $slug;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getId(): int
|
||||||
|
{
|
||||||
|
return $this->id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getName(): string
|
||||||
|
{
|
||||||
|
return $this->name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getSlug(): string
|
||||||
|
{
|
||||||
|
return $this->slug;
|
||||||
|
}
|
||||||
|
}
|
36
src/Migrations/Version20200526101712.php
Normal file
36
src/Migrations/Version20200526101712.php
Normal file
|
@ -0,0 +1,36 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace DoctrineMigrations;
|
||||||
|
|
||||||
|
use Doctrine\DBAL\Schema\Schema;
|
||||||
|
use Doctrine\Migrations\AbstractMigration;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Auto-generated Migration: Please modify to your needs!
|
||||||
|
*/
|
||||||
|
final class Version20200526101712 extends AbstractMigration
|
||||||
|
{
|
||||||
|
public function getDescription() : string
|
||||||
|
{
|
||||||
|
return '';
|
||||||
|
}
|
||||||
|
|
||||||
|
public function up(Schema $schema) : void
|
||||||
|
{
|
||||||
|
// this up() migration is auto-generated, please modify it to your needs
|
||||||
|
$this->abortIf($this->connection->getDatabasePlatform()->getName() !== 'sqlite', 'Migration can only be executed safely on \'sqlite\'.');
|
||||||
|
|
||||||
|
$this->addSql('CREATE TABLE bucket (id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, name VARCHAR(255) NOT NULL, slug VARCHAR(255) NOT NULL)');
|
||||||
|
$this->addSql('CREATE UNIQUE INDEX bucket_routing ON bucket (slug)');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function down(Schema $schema) : void
|
||||||
|
{
|
||||||
|
// this down() migration is auto-generated, please modify it to your needs
|
||||||
|
$this->abortIf($this->connection->getDatabasePlatform()->getName() !== 'sqlite', 'Migration can only be executed safely on \'sqlite\'.');
|
||||||
|
|
||||||
|
$this->addSql('DROP TABLE bucket');
|
||||||
|
}
|
||||||
|
}
|
21
src/Repository/BucketRepository.php
Normal file
21
src/Repository/BucketRepository.php
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Repository;
|
||||||
|
|
||||||
|
use App\Entity\Bucket;
|
||||||
|
use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
|
||||||
|
use Doctrine\Persistence\ManagerRegistry;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @method Bucket|null find($id, $lockMode = null, $lockVersion = null)
|
||||||
|
* @method Bucket|null findOneBy(array $criteria, array $orderBy = null)
|
||||||
|
* @method Bucket[] findAll()
|
||||||
|
* @method Bucket[] findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null)
|
||||||
|
*/
|
||||||
|
class BucketRepository extends ServiceEntityRepository
|
||||||
|
{
|
||||||
|
public function __construct(ManagerRegistry $registry)
|
||||||
|
{
|
||||||
|
parent::__construct($registry, Bucket::class);
|
||||||
|
}
|
||||||
|
}
|
65
symfony.lock
65
symfony.lock
|
@ -20,6 +20,9 @@
|
||||||
"doctrine/common": {
|
"doctrine/common": {
|
||||||
"version": "2.13.1"
|
"version": "2.13.1"
|
||||||
},
|
},
|
||||||
|
"doctrine/data-fixtures": {
|
||||||
|
"version": "1.4.3"
|
||||||
|
},
|
||||||
"doctrine/dbal": {
|
"doctrine/dbal": {
|
||||||
"version": "2.10.2"
|
"version": "2.10.2"
|
||||||
},
|
},
|
||||||
|
@ -38,6 +41,18 @@
|
||||||
"src/Repository/.gitignore"
|
"src/Repository/.gitignore"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
"doctrine/doctrine-fixtures-bundle": {
|
||||||
|
"version": "3.0",
|
||||||
|
"recipe": {
|
||||||
|
"repo": "github.com/symfony/recipes",
|
||||||
|
"branch": "master",
|
||||||
|
"version": "3.0",
|
||||||
|
"ref": "fc52d86631a6dfd9fdf3381d0b7e3df2069e51b3"
|
||||||
|
},
|
||||||
|
"files": [
|
||||||
|
"src/DataFixtures/AppFixtures.php"
|
||||||
|
]
|
||||||
|
},
|
||||||
"doctrine/doctrine-migrations-bundle": {
|
"doctrine/doctrine-migrations-bundle": {
|
||||||
"version": "1.2",
|
"version": "1.2",
|
||||||
"recipe": {
|
"recipe": {
|
||||||
|
@ -78,6 +93,9 @@
|
||||||
"jdorn/sql-formatter": {
|
"jdorn/sql-formatter": {
|
||||||
"version": "v1.2.17"
|
"version": "v1.2.17"
|
||||||
},
|
},
|
||||||
|
"nikic/php-parser": {
|
||||||
|
"version": "v4.4.0"
|
||||||
|
},
|
||||||
"ocramius/package-versions": {
|
"ocramius/package-versions": {
|
||||||
"version": "1.5.1"
|
"version": "1.5.1"
|
||||||
},
|
},
|
||||||
|
@ -99,6 +117,18 @@
|
||||||
"psr/log": {
|
"psr/log": {
|
||||||
"version": "1.1.3"
|
"version": "1.1.3"
|
||||||
},
|
},
|
||||||
|
"sensio/framework-extra-bundle": {
|
||||||
|
"version": "5.2",
|
||||||
|
"recipe": {
|
||||||
|
"repo": "github.com/symfony/recipes",
|
||||||
|
"branch": "master",
|
||||||
|
"version": "5.2",
|
||||||
|
"ref": "fb7e19da7f013d0d422fa9bce16f5c510e27609b"
|
||||||
|
},
|
||||||
|
"files": [
|
||||||
|
"config/packages/sensio_framework_extra.yaml"
|
||||||
|
]
|
||||||
|
},
|
||||||
"symfony/asset": {
|
"symfony/asset": {
|
||||||
"version": "v5.0.8"
|
"version": "v5.0.8"
|
||||||
},
|
},
|
||||||
|
@ -186,21 +216,39 @@
|
||||||
"symfony/http-kernel": {
|
"symfony/http-kernel": {
|
||||||
"version": "v5.0.8"
|
"version": "v5.0.8"
|
||||||
},
|
},
|
||||||
|
"symfony/maker-bundle": {
|
||||||
|
"version": "1.0",
|
||||||
|
"recipe": {
|
||||||
|
"repo": "github.com/symfony/recipes",
|
||||||
|
"branch": "master",
|
||||||
|
"version": "1.0",
|
||||||
|
"ref": "fadbfe33303a76e25cb63401050439aa9b1a9c7f"
|
||||||
|
}
|
||||||
|
},
|
||||||
"symfony/mime": {
|
"symfony/mime": {
|
||||||
"version": "v5.0.8"
|
"version": "v5.0.8"
|
||||||
},
|
},
|
||||||
"symfony/orm-pack": {
|
"symfony/orm-pack": {
|
||||||
"version": "v1.0.8"
|
"version": "v1.0.8"
|
||||||
},
|
},
|
||||||
|
"symfony/polyfill-intl-grapheme": {
|
||||||
|
"version": "v1.17.0"
|
||||||
|
},
|
||||||
"symfony/polyfill-intl-idn": {
|
"symfony/polyfill-intl-idn": {
|
||||||
"version": "v1.17.0"
|
"version": "v1.17.0"
|
||||||
},
|
},
|
||||||
|
"symfony/polyfill-intl-normalizer": {
|
||||||
|
"version": "v1.17.0"
|
||||||
|
},
|
||||||
"symfony/polyfill-mbstring": {
|
"symfony/polyfill-mbstring": {
|
||||||
"version": "v1.17.0"
|
"version": "v1.17.0"
|
||||||
},
|
},
|
||||||
"symfony/polyfill-php73": {
|
"symfony/polyfill-php73": {
|
||||||
"version": "v1.17.0"
|
"version": "v1.17.0"
|
||||||
},
|
},
|
||||||
|
"symfony/profiler-pack": {
|
||||||
|
"version": "v1.0.4"
|
||||||
|
},
|
||||||
"symfony/routing": {
|
"symfony/routing": {
|
||||||
"version": "4.2",
|
"version": "4.2",
|
||||||
"recipe": {
|
"recipe": {
|
||||||
|
@ -221,6 +269,9 @@
|
||||||
"symfony/stopwatch": {
|
"symfony/stopwatch": {
|
||||||
"version": "v5.0.8"
|
"version": "v5.0.8"
|
||||||
},
|
},
|
||||||
|
"symfony/string": {
|
||||||
|
"version": "v5.0.8"
|
||||||
|
},
|
||||||
"symfony/translation-contracts": {
|
"symfony/translation-contracts": {
|
||||||
"version": "v2.0.1"
|
"version": "v2.0.1"
|
||||||
},
|
},
|
||||||
|
@ -250,6 +301,20 @@
|
||||||
"symfony/var-exporter": {
|
"symfony/var-exporter": {
|
||||||
"version": "v5.0.8"
|
"version": "v5.0.8"
|
||||||
},
|
},
|
||||||
|
"symfony/web-profiler-bundle": {
|
||||||
|
"version": "3.3",
|
||||||
|
"recipe": {
|
||||||
|
"repo": "github.com/symfony/recipes",
|
||||||
|
"branch": "master",
|
||||||
|
"version": "3.3",
|
||||||
|
"ref": "6bdfa1a95f6b2e677ab985cd1af2eae35d62e0f6"
|
||||||
|
},
|
||||||
|
"files": [
|
||||||
|
"config/packages/dev/web_profiler.yaml",
|
||||||
|
"config/packages/test/web_profiler.yaml",
|
||||||
|
"config/routes/dev/web_profiler.yaml"
|
||||||
|
]
|
||||||
|
},
|
||||||
"symfony/yaml": {
|
"symfony/yaml": {
|
||||||
"version": "v5.0.8"
|
"version": "v5.0.8"
|
||||||
},
|
},
|
||||||
|
|
|
@ -12,13 +12,17 @@
|
||||||
<h1><a href="{{ path('start') }}">{{ app_name }}</a></h1>
|
<h1><a href="{{ path('start') }}">{{ app_name }}</a></h1>
|
||||||
</header>
|
</header>
|
||||||
|
|
||||||
|
<main>
|
||||||
<nav>
|
<nav>
|
||||||
<a href="#">Bucket 1</a>
|
{% for bucket in buckets.findAll %}
|
||||||
<a href="#">Bucket 2</a>
|
<a href="{{ path('bucket', {slug: bucket.slug}) }}">{{ bucket.name }}</a>
|
||||||
<a href="#">Bucket 3</a>
|
{% endfor %}
|
||||||
</nav>
|
</nav>
|
||||||
|
|
||||||
|
<section>
|
||||||
{% block body %}{% endblock %}
|
{% block body %}{% endblock %}
|
||||||
|
</section>
|
||||||
|
</main>
|
||||||
|
|
||||||
<footer>
|
<footer>
|
||||||
© by <a href="https://daniel-siepmann.de">Daniel Siepmann</a> since 2020
|
© by <a href="https://daniel-siepmann.de">Daniel Siepmann</a> since 2020
|
||||||
|
|
9
templates/bucket/index.html.twig
Normal file
9
templates/bucket/index.html.twig
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
{% extends 'base.html.twig' %}
|
||||||
|
|
||||||
|
{% block title %}Hello BucketController!{% endblock %}
|
||||||
|
|
||||||
|
{% block body %}
|
||||||
|
<header>
|
||||||
|
<h1>Bucket: {{ bucket.name }}</h1>
|
||||||
|
</header>
|
||||||
|
{% endblock %}
|
|
@ -1 +1,7 @@
|
||||||
{% extends 'base.html.twig' %}
|
{% extends 'base.html.twig' %}
|
||||||
|
|
||||||
|
{% block body %}
|
||||||
|
<header>
|
||||||
|
<h1>Startpage</h1>
|
||||||
|
</header>
|
||||||
|
{% endblock %}
|
||||||
|
|
Loading…
Reference in a new issue