[Feature] Passage vers Symfony #1
4
.gitignore
vendored
4
.gitignore
vendored
@ -28,3 +28,7 @@
|
|||||||
.vscode/
|
.vscode/
|
||||||
.fleet/
|
.fleet/
|
||||||
*.iml
|
*.iml
|
||||||
|
|
||||||
|
|
||||||
|
/uploads/*
|
||||||
|
!uploads/.gitkeep
|
@ -1,16 +0,0 @@
|
|||||||
import { Controller } from '@hotwired/stimulus';
|
|
||||||
|
|
||||||
/*
|
|
||||||
* This is an example Stimulus controller!
|
|
||||||
*
|
|
||||||
* Any element with a data-controller="hello" attribute will cause
|
|
||||||
* this controller to be executed. The name "hello" comes from the filename:
|
|
||||||
* hello_controller.js -> "hello"
|
|
||||||
*
|
|
||||||
* Delete this file or adapt it for your use!
|
|
||||||
*/
|
|
||||||
export default class extends Controller {
|
|
||||||
connect() {
|
|
||||||
this.element.textContent = 'Hello Stimulus! Edit me in assets/controllers/hello_controller.js';
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,3 +1,3 @@
|
|||||||
body {
|
@tailwind base;
|
||||||
background-color: skyblue;
|
@tailwind components;
|
||||||
}
|
@tailwind utilities;
|
||||||
|
@ -11,6 +11,8 @@
|
|||||||
"doctrine/doctrine-bundle": "^2.13",
|
"doctrine/doctrine-bundle": "^2.13",
|
||||||
"doctrine/doctrine-migrations-bundle": "^3.3",
|
"doctrine/doctrine-migrations-bundle": "^3.3",
|
||||||
"doctrine/orm": "^3.3",
|
"doctrine/orm": "^3.3",
|
||||||
|
"league/flysystem": "^3.0",
|
||||||
|
"oneup/flysystem-bundle": "^4",
|
||||||
"phpdocumentor/reflection-docblock": "^5.6",
|
"phpdocumentor/reflection-docblock": "^5.6",
|
||||||
"phpstan/phpdoc-parser": "^2.0",
|
"phpstan/phpdoc-parser": "^2.0",
|
||||||
"symfony/asset": "7.2.*",
|
"symfony/asset": "7.2.*",
|
||||||
@ -42,6 +44,7 @@
|
|||||||
"symfony/validator": "7.2.*",
|
"symfony/validator": "7.2.*",
|
||||||
"symfony/web-link": "7.2.*",
|
"symfony/web-link": "7.2.*",
|
||||||
"symfony/yaml": "7.2.*",
|
"symfony/yaml": "7.2.*",
|
||||||
|
"symfonycasts/tailwind-bundle": "^0.6.1",
|
||||||
"twig/extra-bundle": "^2.12|^3.0",
|
"twig/extra-bundle": "^2.12|^3.0",
|
||||||
"twig/twig": "^2.12|^3.0"
|
"twig/twig": "^2.12|^3.0"
|
||||||
},
|
},
|
||||||
|
334
composer.lock
generated
334
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": "7fe141192d025e96fd12623b527e4e9a",
|
"content-hash": "c8e8b543137984b211315030412feaf7",
|
||||||
"packages": [
|
"packages": [
|
||||||
{
|
{
|
||||||
"name": "composer/semver",
|
"name": "composer/semver",
|
||||||
@ -1377,6 +1377,194 @@
|
|||||||
],
|
],
|
||||||
"time": "2024-12-27T00:36:43+00:00"
|
"time": "2024-12-27T00:36:43+00:00"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "league/flysystem",
|
||||||
|
"version": "3.29.1",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/thephpleague/flysystem.git",
|
||||||
|
"reference": "edc1bb7c86fab0776c3287dbd19b5fa278347319"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/thephpleague/flysystem/zipball/edc1bb7c86fab0776c3287dbd19b5fa278347319",
|
||||||
|
"reference": "edc1bb7c86fab0776c3287dbd19b5fa278347319",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"league/flysystem-local": "^3.0.0",
|
||||||
|
"league/mime-type-detection": "^1.0.0",
|
||||||
|
"php": "^8.0.2"
|
||||||
|
},
|
||||||
|
"conflict": {
|
||||||
|
"async-aws/core": "<1.19.0",
|
||||||
|
"async-aws/s3": "<1.14.0",
|
||||||
|
"aws/aws-sdk-php": "3.209.31 || 3.210.0",
|
||||||
|
"guzzlehttp/guzzle": "<7.0",
|
||||||
|
"guzzlehttp/ringphp": "<1.1.1",
|
||||||
|
"phpseclib/phpseclib": "3.0.15",
|
||||||
|
"symfony/http-client": "<5.2"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"async-aws/s3": "^1.5 || ^2.0",
|
||||||
|
"async-aws/simple-s3": "^1.1 || ^2.0",
|
||||||
|
"aws/aws-sdk-php": "^3.295.10",
|
||||||
|
"composer/semver": "^3.0",
|
||||||
|
"ext-fileinfo": "*",
|
||||||
|
"ext-ftp": "*",
|
||||||
|
"ext-mongodb": "^1.3",
|
||||||
|
"ext-zip": "*",
|
||||||
|
"friendsofphp/php-cs-fixer": "^3.5",
|
||||||
|
"google/cloud-storage": "^1.23",
|
||||||
|
"guzzlehttp/psr7": "^2.6",
|
||||||
|
"microsoft/azure-storage-blob": "^1.1",
|
||||||
|
"mongodb/mongodb": "^1.2",
|
||||||
|
"phpseclib/phpseclib": "^3.0.36",
|
||||||
|
"phpstan/phpstan": "^1.10",
|
||||||
|
"phpunit/phpunit": "^9.5.11|^10.0",
|
||||||
|
"sabre/dav": "^4.6.0"
|
||||||
|
},
|
||||||
|
"type": "library",
|
||||||
|
"autoload": {
|
||||||
|
"psr-4": {
|
||||||
|
"League\\Flysystem\\": "src"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"MIT"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Frank de Jonge",
|
||||||
|
"email": "info@frankdejonge.nl"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "File storage abstraction for PHP",
|
||||||
|
"keywords": [
|
||||||
|
"WebDAV",
|
||||||
|
"aws",
|
||||||
|
"cloud",
|
||||||
|
"file",
|
||||||
|
"files",
|
||||||
|
"filesystem",
|
||||||
|
"filesystems",
|
||||||
|
"ftp",
|
||||||
|
"s3",
|
||||||
|
"sftp",
|
||||||
|
"storage"
|
||||||
|
],
|
||||||
|
"support": {
|
||||||
|
"issues": "https://github.com/thephpleague/flysystem/issues",
|
||||||
|
"source": "https://github.com/thephpleague/flysystem/tree/3.29.1"
|
||||||
|
},
|
||||||
|
"time": "2024-10-08T08:58:34+00:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "league/flysystem-local",
|
||||||
|
"version": "3.29.0",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/thephpleague/flysystem-local.git",
|
||||||
|
"reference": "e0e8d52ce4b2ed154148453d321e97c8e931bd27"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/thephpleague/flysystem-local/zipball/e0e8d52ce4b2ed154148453d321e97c8e931bd27",
|
||||||
|
"reference": "e0e8d52ce4b2ed154148453d321e97c8e931bd27",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"ext-fileinfo": "*",
|
||||||
|
"league/flysystem": "^3.0.0",
|
||||||
|
"league/mime-type-detection": "^1.0.0",
|
||||||
|
"php": "^8.0.2"
|
||||||
|
},
|
||||||
|
"type": "library",
|
||||||
|
"autoload": {
|
||||||
|
"psr-4": {
|
||||||
|
"League\\Flysystem\\Local\\": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"MIT"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Frank de Jonge",
|
||||||
|
"email": "info@frankdejonge.nl"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "Local filesystem adapter for Flysystem.",
|
||||||
|
"keywords": [
|
||||||
|
"Flysystem",
|
||||||
|
"file",
|
||||||
|
"files",
|
||||||
|
"filesystem",
|
||||||
|
"local"
|
||||||
|
],
|
||||||
|
"support": {
|
||||||
|
"source": "https://github.com/thephpleague/flysystem-local/tree/3.29.0"
|
||||||
|
},
|
||||||
|
"time": "2024-08-09T21:24:39+00:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "league/mime-type-detection",
|
||||||
|
"version": "1.16.0",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/thephpleague/mime-type-detection.git",
|
||||||
|
"reference": "2d6702ff215bf922936ccc1ad31007edc76451b9"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/thephpleague/mime-type-detection/zipball/2d6702ff215bf922936ccc1ad31007edc76451b9",
|
||||||
|
"reference": "2d6702ff215bf922936ccc1ad31007edc76451b9",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"ext-fileinfo": "*",
|
||||||
|
"php": "^7.4 || ^8.0"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"friendsofphp/php-cs-fixer": "^3.2",
|
||||||
|
"phpstan/phpstan": "^0.12.68",
|
||||||
|
"phpunit/phpunit": "^8.5.8 || ^9.3 || ^10.0"
|
||||||
|
},
|
||||||
|
"type": "library",
|
||||||
|
"autoload": {
|
||||||
|
"psr-4": {
|
||||||
|
"League\\MimeTypeDetection\\": "src"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"MIT"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Frank de Jonge",
|
||||||
|
"email": "info@frankdejonge.nl"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "Mime-type detection for Flysystem",
|
||||||
|
"support": {
|
||||||
|
"issues": "https://github.com/thephpleague/mime-type-detection/issues",
|
||||||
|
"source": "https://github.com/thephpleague/mime-type-detection/tree/1.16.0"
|
||||||
|
},
|
||||||
|
"funding": [
|
||||||
|
{
|
||||||
|
"url": "https://github.com/frankdejonge",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"url": "https://tidelift.com/funding/github/packagist/league/flysystem",
|
||||||
|
"type": "tidelift"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"time": "2024-09-21T08:32:55+00:00"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "monolog/monolog",
|
"name": "monolog/monolog",
|
||||||
"version": "3.8.1",
|
"version": "3.8.1",
|
||||||
@ -1480,6 +1668,95 @@
|
|||||||
],
|
],
|
||||||
"time": "2024-12-05T17:15:07+00:00"
|
"time": "2024-12-05T17:15:07+00:00"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "oneup/flysystem-bundle",
|
||||||
|
"version": "4.12.3",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/1up-lab/OneupFlysystemBundle.git",
|
||||||
|
"reference": "23d7186524a9c6236662c452891b1175cb193777"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/1up-lab/OneupFlysystemBundle/zipball/23d7186524a9c6236662c452891b1175cb193777",
|
||||||
|
"reference": "23d7186524a9c6236662c452891b1175cb193777",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"league/flysystem": "^2.0 || ^3.0",
|
||||||
|
"php": "^8.1",
|
||||||
|
"symfony/config": "^5.4 || ^6.0 || ^7.0",
|
||||||
|
"symfony/dependency-injection": "^5.4 || ^6.0 || ^7.0",
|
||||||
|
"symfony/http-kernel": "^5.4 || ^6.0 || ^7.0"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"ext-simplexml": "*",
|
||||||
|
"friendsofphp/php-cs-fixer": "^3.51",
|
||||||
|
"league/flysystem-async-aws-s3": "^2.0 || ^3.0",
|
||||||
|
"league/flysystem-aws-s3-v3": "^2.0 || ^3.0",
|
||||||
|
"league/flysystem-azure-blob-storage": "^3.0",
|
||||||
|
"league/flysystem-ftp": "^2.0 || ^3.0",
|
||||||
|
"league/flysystem-google-cloud-storage": "^2.0 || ^3.0",
|
||||||
|
"league/flysystem-memory": "^2.0 || ^3.0",
|
||||||
|
"league/flysystem-sftp-v3": "^2.0 || ^3.0",
|
||||||
|
"phpstan/phpstan": "^1.10",
|
||||||
|
"phpunit/phpunit": "^9.6.17",
|
||||||
|
"royvoetman/flysystem-gitlab-storage": "^2.0 || ^3.0",
|
||||||
|
"symfony/asset": "^5.4 || ^6.0 || ^7.0",
|
||||||
|
"symfony/browser-kit": "^5.4 || ^6.0 || ^7.0",
|
||||||
|
"symfony/finder": "^5.4 || ^6.0 || ^7.0",
|
||||||
|
"symfony/framework-bundle": "^5.4 || ^6.0 || ^7.0",
|
||||||
|
"symfony/phpunit-bridge": "^7.0",
|
||||||
|
"symfony/translation": "^5.4 || ^6.0 || ^7.0",
|
||||||
|
"symfony/yaml": "^5.4 || ^6.0 || ^7.0"
|
||||||
|
},
|
||||||
|
"suggest": {
|
||||||
|
"ext-fileinfo": "Required for MimeType",
|
||||||
|
"ext-ftp": "Required for FTP and SFTP",
|
||||||
|
"league/flysystem-async-aws-s3": "Use flysystem S3 adapter from AsyncAws",
|
||||||
|
"league/flysystem-aws-s3-v3": "Use S3 storage with AWS SDK v3",
|
||||||
|
"league/flysystem-google-cloud-storage": "Use Google Cloud Storage Adapter for Flysystem",
|
||||||
|
"league/flysystem-sftp-v3": "Allows SFTP server storage via phpseclib",
|
||||||
|
"royvoetman/flysystem-gitlab-storage": "Use Gitlab Storage filesystem for Flysystem"
|
||||||
|
},
|
||||||
|
"type": "symfony-bundle",
|
||||||
|
"autoload": {
|
||||||
|
"psr-4": {
|
||||||
|
"Oneup\\FlysystemBundle\\": "src"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"MIT"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Jim Schmid",
|
||||||
|
"email": "js@1up.io",
|
||||||
|
"homepage": "https://1up.io",
|
||||||
|
"role": "Developer"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "David Greminger",
|
||||||
|
"email": "dg@1up.io",
|
||||||
|
"homepage": "https://1up.io",
|
||||||
|
"role": "Developer"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "Integrates Flysystem filesystem abstraction library to your Symfony project.",
|
||||||
|
"homepage": "https://1up.io",
|
||||||
|
"keywords": [
|
||||||
|
"Flysystem",
|
||||||
|
"abstraction",
|
||||||
|
"filesystem",
|
||||||
|
"symfony"
|
||||||
|
],
|
||||||
|
"support": {
|
||||||
|
"issues": "https://github.com/1up-lab/OneupFlysystemBundle/issues",
|
||||||
|
"source": "https://github.com/1up-lab/OneupFlysystemBundle/tree/4.12.3"
|
||||||
|
},
|
||||||
|
"time": "2024-10-15T06:27:06+00:00"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "phpdocumentor/reflection-common",
|
"name": "phpdocumentor/reflection-common",
|
||||||
"version": "2.2.0",
|
"version": "2.2.0",
|
||||||
@ -7355,6 +7632,61 @@
|
|||||||
],
|
],
|
||||||
"time": "2024-10-23T06:56:12+00:00"
|
"time": "2024-10-23T06:56:12+00:00"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "symfonycasts/tailwind-bundle",
|
||||||
|
"version": "v0.6.1",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/SymfonyCasts/tailwind-bundle.git",
|
||||||
|
"reference": "28db7cfe23758cffc79f25a7c75cdb2fca52e9d9"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/SymfonyCasts/tailwind-bundle/zipball/28db7cfe23758cffc79f25a7c75cdb2fca52e9d9",
|
||||||
|
"reference": "28db7cfe23758cffc79f25a7c75cdb2fca52e9d9",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"php": ">=8.1",
|
||||||
|
"symfony/asset-mapper": "^6.3|^7.0",
|
||||||
|
"symfony/cache": "^6.3|^7.0",
|
||||||
|
"symfony/console": "^5.4|^6.3|^7.0",
|
||||||
|
"symfony/http-client": "^5.4|^6.3|^7.0",
|
||||||
|
"symfony/process": "^5.4|^6.3|^7.0"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"phpunit/phpunit": "^9.6",
|
||||||
|
"symfony/filesystem": "^6.3|^7.0",
|
||||||
|
"symfony/framework-bundle": "^6.3|^7.0",
|
||||||
|
"symfony/phpunit-bridge": "^6.3.9|^7.0"
|
||||||
|
},
|
||||||
|
"type": "library",
|
||||||
|
"autoload": {
|
||||||
|
"psr-4": {
|
||||||
|
"Symfonycasts\\TailwindBundle\\": "src"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"MIT"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Ryan Weaver",
|
||||||
|
"homepage": "https://symfonycasts.com"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "Delightful Tailwind Support for Symfony + AssetMapper",
|
||||||
|
"keywords": [
|
||||||
|
"asset-mapper",
|
||||||
|
"tailwind"
|
||||||
|
],
|
||||||
|
"support": {
|
||||||
|
"issues": "https://github.com/SymfonyCasts/tailwind-bundle/issues",
|
||||||
|
"source": "https://github.com/SymfonyCasts/tailwind-bundle/tree/v0.6.1"
|
||||||
|
},
|
||||||
|
"time": "2024-11-06T18:41:22+00:00"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "twig/extra-bundle",
|
"name": "twig/extra-bundle",
|
||||||
"version": "v3.17.0",
|
"version": "v3.17.0",
|
||||||
|
@ -13,4 +13,6 @@ return [
|
|||||||
Symfony\Bundle\SecurityBundle\SecurityBundle::class => ['all' => true],
|
Symfony\Bundle\SecurityBundle\SecurityBundle::class => ['all' => true],
|
||||||
Symfony\Bundle\MonologBundle\MonologBundle::class => ['all' => true],
|
Symfony\Bundle\MonologBundle\MonologBundle::class => ['all' => true],
|
||||||
Symfony\Bundle\MakerBundle\MakerBundle::class => ['dev' => true],
|
Symfony\Bundle\MakerBundle\MakerBundle::class => ['dev' => true],
|
||||||
|
Symfonycasts\TailwindBundle\SymfonycastsTailwindBundle::class => ['all' => true],
|
||||||
|
Oneup\FlysystemBundle\OneupFlysystemBundle::class => ['all' => true],
|
||||||
];
|
];
|
||||||
|
10
config/packages/oneup_flysystem.yaml
Normal file
10
config/packages/oneup_flysystem.yaml
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
# Read the documentation: https://github.com/1up-lab/OneupFlysystemBundle
|
||||||
|
oneup_flysystem:
|
||||||
|
adapters:
|
||||||
|
default_adapter:
|
||||||
|
local:
|
||||||
|
location: "%kernel.project_dir%/uploads"
|
||||||
|
filesystems:
|
||||||
|
default_filesystem:
|
||||||
|
adapter: default_adapter
|
||||||
|
alias: League\Flysystem\Filesystem
|
62
src/Controller/DashboardController.php
Normal file
62
src/Controller/DashboardController.php
Normal file
@ -0,0 +1,62 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Controller;
|
||||||
|
|
||||||
|
use League\Flysystem\Filesystem;
|
||||||
|
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
|
||||||
|
use Symfony\Component\HttpFoundation\Response;
|
||||||
|
use Symfony\Component\HttpFoundation\StreamedResponse;
|
||||||
|
use Symfony\Component\HttpKernel\Attribute\MapQueryParameter;
|
||||||
|
use Symfony\Component\Routing\Attribute\Route;
|
||||||
|
use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
|
||||||
|
use Symfony\Component\HttpFoundation\HeaderUtils;
|
||||||
|
|
||||||
|
class DashboardController extends AbstractController
|
||||||
|
{
|
||||||
|
#[Route('/', name: 'app_dashboard')]
|
||||||
|
public function index(Filesystem $defaultAdapter, UrlGeneratorInterface $urlGenerator): Response
|
||||||
|
{
|
||||||
|
$files = $defaultAdapter->listContents('/', Filesystem::LIST_DEEP);
|
||||||
|
|
||||||
|
$realFiles = [];
|
||||||
|
|
||||||
|
foreach ($files as $key => $file) {
|
||||||
|
if ($file['type'] === 'file' && !str_starts_with($file['path'], '.')) {
|
||||||
|
$realFiles[] = [
|
||||||
|
'path' => $file['path'],
|
||||||
|
'url' => $this->generateUrl('app_file_proxy', ['filename' => $file['path']], UrlGeneratorInterface::ABSOLUTE_URL),
|
||||||
|
];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
return $this->render('dashboard/index.html.twig', [
|
||||||
|
'files' => $realFiles,
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[Route('/file-proxy', name: 'app_file_proxy')]
|
||||||
|
public function fileProxy(Filesystem $defaultAdapter, #[MapQueryParameter('filename')]string $filename)
|
||||||
|
{
|
||||||
|
$mimetype = $defaultAdapter->mimeType($filename);
|
||||||
|
if ($mimetype === '') {
|
||||||
|
$mimetype = 'application/octet-stream';
|
||||||
|
}
|
||||||
|
|
||||||
|
$response = new StreamedResponse(static function () use ($filename, $defaultAdapter): void {
|
||||||
|
$outputStream = fopen('php://output', 'w');
|
||||||
|
$fileStream = $defaultAdapter->readStream($filename);
|
||||||
|
stream_copy_to_stream($fileStream, $outputStream);
|
||||||
|
});
|
||||||
|
|
||||||
|
$response->headers->set('Content-Type', $mimetype);
|
||||||
|
$disposition = HeaderUtils::makeDisposition(
|
||||||
|
HeaderUtils::DISPOSITION_ATTACHMENT,
|
||||||
|
basename($filename)
|
||||||
|
);
|
||||||
|
$response->headers->set('Content-Disposition', $disposition);
|
||||||
|
|
||||||
|
return $response;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
15
symfony.lock
15
symfony.lock
@ -26,6 +26,18 @@
|
|||||||
"migrations/.gitignore"
|
"migrations/.gitignore"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
"oneup/flysystem-bundle": {
|
||||||
|
"version": "4.12",
|
||||||
|
"recipe": {
|
||||||
|
"repo": "github.com/symfony/recipes-contrib",
|
||||||
|
"branch": "main",
|
||||||
|
"version": "4.0",
|
||||||
|
"ref": "3ae1b83985e89138f5443bbc2d9b8c074b497d49"
|
||||||
|
},
|
||||||
|
"files": [
|
||||||
|
"config/packages/oneup_flysystem.yaml"
|
||||||
|
]
|
||||||
|
},
|
||||||
"phpunit/phpunit": {
|
"phpunit/phpunit": {
|
||||||
"version": "9.6",
|
"version": "9.6",
|
||||||
"recipe": {
|
"recipe": {
|
||||||
@ -296,6 +308,9 @@
|
|||||||
"config/routes/web_profiler.yaml"
|
"config/routes/web_profiler.yaml"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
"symfonycasts/tailwind-bundle": {
|
||||||
|
"version": "v0.6.1"
|
||||||
|
},
|
||||||
"twig/extra-bundle": {
|
"twig/extra-bundle": {
|
||||||
"version": "v3.17.0"
|
"version": "v3.17.0"
|
||||||
}
|
}
|
||||||
|
11
tailwind.config.js
Normal file
11
tailwind.config.js
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
/** @type {import('tailwindcss').Config} */
|
||||||
|
module.exports = {
|
||||||
|
content: [
|
||||||
|
"./assets/**/*.js",
|
||||||
|
"./templates/**/*.html.twig",
|
||||||
|
],
|
||||||
|
theme: {
|
||||||
|
extend: {},
|
||||||
|
},
|
||||||
|
plugins: [],
|
||||||
|
}
|
@ -2,7 +2,7 @@
|
|||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<meta charset="UTF-8">
|
<meta charset="UTF-8">
|
||||||
<title>{% block title %}Welcome!{% endblock %}</title>
|
<title>Kumora - {% block title %}Accueil{% endblock %}</title>
|
||||||
<link rel="icon" href="data:image/svg+xml,<svg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 128 128%22><text y=%221.2em%22 font-size=%2296%22>⚫️</text><text y=%221.3em%22 x=%220.2em%22 font-size=%2276%22 fill=%22%23fff%22>sf</text></svg>">
|
<link rel="icon" href="data:image/svg+xml,<svg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 128 128%22><text y=%221.2em%22 font-size=%2296%22>⚫️</text><text y=%221.3em%22 x=%220.2em%22 font-size=%2276%22 fill=%22%23fff%22>sf</text></svg>">
|
||||||
{% block stylesheets %}
|
{% block stylesheets %}
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
@ -12,6 +12,7 @@
|
|||||||
{% endblock %}
|
{% endblock %}
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
|
{% include "partials/navbar.html.twig" %}
|
||||||
{% block body %}{% endblock %}
|
{% block body %}{% endblock %}
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
14
templates/dashboard/index.html.twig
Normal file
14
templates/dashboard/index.html.twig
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
{% extends 'base.html.twig' %}
|
||||||
|
|
||||||
|
{% block title %}Dashboard{% endblock %}
|
||||||
|
|
||||||
|
{% block body %}
|
||||||
|
<div class="container mx-auto px-16">
|
||||||
|
<h1 class="text-center text-2xl font-bold">Bienvenue sur le dashboard</h1>
|
||||||
|
<ul class="list-disc">
|
||||||
|
{% for item in files %}
|
||||||
|
<li><a class="text-blue-500 hover:text-blue-700" href="{{ item.url }}">/{{ item.path }}</a></li>
|
||||||
|
{% endfor %}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
{% endblock %}
|
6
templates/partials/navbar.html.twig
Normal file
6
templates/partials/navbar.html.twig
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
<nav>
|
||||||
|
<ul>
|
||||||
|
<li>Accueil</li>
|
||||||
|
<li>Liste des fichiers</li>
|
||||||
|
</ul>
|
||||||
|
</nav>
|
0
uploads/.gitkeep
Normal file
0
uploads/.gitkeep
Normal file
Loading…
x
Reference in New Issue
Block a user