init
This commit is contained in:
17
.editorconfig
Normal file
17
.editorconfig
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
# editorconfig.org
|
||||||
|
|
||||||
|
root = true
|
||||||
|
|
||||||
|
[*]
|
||||||
|
charset = utf-8
|
||||||
|
end_of_line = lf
|
||||||
|
indent_size = 4
|
||||||
|
indent_style = space
|
||||||
|
insert_final_newline = true
|
||||||
|
trim_trailing_whitespace = true
|
||||||
|
|
||||||
|
[{compose.yaml,compose.*.yaml}]
|
||||||
|
indent_size = 2
|
||||||
|
|
||||||
|
[*.md]
|
||||||
|
trim_trailing_whitespace = false
|
||||||
50
.env
Normal file
50
.env
Normal file
@@ -0,0 +1,50 @@
|
|||||||
|
# In all environments, the following files are loaded if they exist,
|
||||||
|
# the latter taking precedence over the former:
|
||||||
|
#
|
||||||
|
# * .env contains default values for the environment variables needed by the app
|
||||||
|
# * .env.local uncommitted file with local overrides
|
||||||
|
# * .env.$APP_ENV committed environment-specific defaults
|
||||||
|
# * .env.$APP_ENV.local uncommitted environment-specific overrides
|
||||||
|
#
|
||||||
|
# Real environment variables win over .env files.
|
||||||
|
#
|
||||||
|
# DO NOT DEFINE PRODUCTION SECRETS IN THIS FILE NOR IN ANY OTHER COMMITTED FILES.
|
||||||
|
# https://symfony.com/doc/current/configuration/secrets.html
|
||||||
|
#
|
||||||
|
# Run "composer dump-env prod" to compile .env files for production use (requires symfony/flex >=1.2).
|
||||||
|
# https://symfony.com/doc/current/best_practices.html#use-environment-variables-for-infrastructure-configuration
|
||||||
|
|
||||||
|
###> symfony/framework-bundle ###
|
||||||
|
APP_ENV=dev
|
||||||
|
APP_SECRET=
|
||||||
|
APP_SHARE_DIR=var/share
|
||||||
|
###< symfony/framework-bundle ###
|
||||||
|
|
||||||
|
###> symfony/routing ###
|
||||||
|
# Configure how to generate URLs in non-HTTP contexts, such as CLI commands.
|
||||||
|
# See https://symfony.com/doc/current/routing.html#generating-urls-in-commands
|
||||||
|
DEFAULT_URI=http://localhost
|
||||||
|
###< symfony/routing ###
|
||||||
|
|
||||||
|
###> doctrine/doctrine-bundle ###
|
||||||
|
# Format described at https://www.doctrine-project.org/projects/doctrine-dbal/en/latest/reference/configuration.html#connecting-using-a-url
|
||||||
|
# IMPORTANT: You MUST configure your server version, either here or in config/packages/doctrine.yaml
|
||||||
|
#
|
||||||
|
# DATABASE_URL="sqlite:///%kernel.project_dir%/var/data_%kernel.environment%.db"
|
||||||
|
# DATABASE_URL="mysql://app:!ChangeMe!@127.0.0.1:3306/app?serverVersion=8.0.32&charset=utf8mb4"
|
||||||
|
# DATABASE_URL="mysql://app:!ChangeMe!@127.0.0.1:3306/app?serverVersion=10.11.2-MariaDB&charset=utf8mb4"
|
||||||
|
DATABASE_URL="postgresql://app:!ChangeMe!@127.0.0.1:5432/app?serverVersion=16&charset=utf8"
|
||||||
|
###< doctrine/doctrine-bundle ###
|
||||||
|
|
||||||
|
###> symfony/messenger ###
|
||||||
|
# Choose one of the transports below
|
||||||
|
# MESSENGER_TRANSPORT_DSN=amqp://guest:guest@localhost:5672/%2f/messages
|
||||||
|
# MESSENGER_TRANSPORT_DSN=redis://localhost:6379/messages
|
||||||
|
MESSENGER_TRANSPORT_DSN=doctrine://default?auto_setup=0
|
||||||
|
###< symfony/messenger ###
|
||||||
|
|
||||||
|
###> symfony/mailer ###
|
||||||
|
MAILER_DSN=null://null
|
||||||
|
###< symfony/mailer ###
|
||||||
|
|
||||||
|
TMDB_API_TOKEN=eyJhbGciOiJIUzI1NiJ9.eyJhdWQiOiJkZmE5NDZmMTZmMTcyYmNlMzk0MzZiZmVhZDc2ZTk3NCIsIm5iZiI6MTY0OTE4MjMyNS43NTAwMDAyLCJzdWIiOiI2MjRjODY3NWFmNThjYjAwNTE1NzZiYmEiLCJzY29wZXMiOlsiYXBpX3JlYWQiXSwidmVyc2lvbiI6MX0.KE68nNxPGYWr5WHVaUuILMOH3sPhiAc9CucPVTgRPpM
|
||||||
4
.env.dev
Normal file
4
.env.dev
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
|
||||||
|
###> symfony/framework-bundle ###
|
||||||
|
APP_SECRET=6a816d705e23f36b271f975881f32be0
|
||||||
|
###< symfony/framework-bundle ###
|
||||||
3
.env.test
Normal file
3
.env.test
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
# define your env variables for the test env here
|
||||||
|
KERNEL_CLASS='App\Kernel'
|
||||||
|
APP_SECRET='$ecretf0rt3st'
|
||||||
20
.gitignore
vendored
Normal file
20
.gitignore
vendored
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
|
||||||
|
###> symfony/framework-bundle ###
|
||||||
|
/.env.local
|
||||||
|
/.env.local.php
|
||||||
|
/.env.*.local
|
||||||
|
/config/secrets/prod/prod.decrypt.private.php
|
||||||
|
/public/bundles/
|
||||||
|
/var/
|
||||||
|
/vendor/
|
||||||
|
###< symfony/framework-bundle ###
|
||||||
|
|
||||||
|
###> phpunit/phpunit ###
|
||||||
|
/phpunit.xml
|
||||||
|
/.phpunit.cache/
|
||||||
|
###< phpunit/phpunit ###
|
||||||
|
|
||||||
|
###> symfony/asset-mapper ###
|
||||||
|
/public/assets/
|
||||||
|
/assets/vendor/
|
||||||
|
###< symfony/asset-mapper ###
|
||||||
10
.idea/.gitignore
generated
vendored
Normal file
10
.idea/.gitignore
generated
vendored
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
# Default ignored files
|
||||||
|
/shelf/
|
||||||
|
/workspace.xml
|
||||||
|
# Ignored default folder with query files
|
||||||
|
/queries/
|
||||||
|
# Datasource local storage ignored files
|
||||||
|
/dataSources/
|
||||||
|
/dataSources.local.xml
|
||||||
|
# Editor-based HTTP Client requests
|
||||||
|
/httpRequests/
|
||||||
5718
.idea/commandlinetools/Symfony_13_01_2026_13_23.xml
generated
Normal file
5718
.idea/commandlinetools/Symfony_13_01_2026_13_23.xml
generated
Normal file
File diff suppressed because one or more lines are too long
47
.idea/commandlinetools/schemas/frameworkDescriptionVersion1.1.4.xsd
generated
Normal file
47
.idea/commandlinetools/schemas/frameworkDescriptionVersion1.1.4.xsd
generated
Normal file
@@ -0,0 +1,47 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified"
|
||||||
|
xmlns:xs="http://www.w3.org/2001/XMLSchema">
|
||||||
|
<xs:element name="framework" type="frameworkType"/>
|
||||||
|
<xs:complexType name="commandType">
|
||||||
|
<xs:all>
|
||||||
|
<xs:element type="xs:string" name="name" minOccurs="1" maxOccurs="1"/>
|
||||||
|
<xs:element type="xs:string" name="params" minOccurs="0" maxOccurs="1"/>
|
||||||
|
<xs:element type="xs:string" name="help" minOccurs="0" maxOccurs="1"/>
|
||||||
|
<xs:element type="optionsBeforeType" name="optionsBefore" minOccurs="0" maxOccurs="1"/>
|
||||||
|
</xs:all>
|
||||||
|
</xs:complexType>
|
||||||
|
<xs:complexType name="frameworkType">
|
||||||
|
<xs:sequence>
|
||||||
|
<xs:element type="xs:string" name="extraData" minOccurs="0" maxOccurs="1"/>
|
||||||
|
<xs:element type="commandType" name="command" maxOccurs="unbounded" minOccurs="0"/>
|
||||||
|
<xs:element type="xs:string" name="help" minOccurs="0" maxOccurs="1"/>
|
||||||
|
</xs:sequence>
|
||||||
|
<xs:attribute type="xs:string" name="name" use="required"/>
|
||||||
|
<xs:attribute type="xs:string" name="invoke" use="required"/>
|
||||||
|
<xs:attribute type="xs:string" name="alias" use="required"/>
|
||||||
|
<xs:attribute type="xs:boolean" name="enabled" use="required"/>
|
||||||
|
<xs:attribute type="xs:integer" name="version" use="required"/>
|
||||||
|
<xs:attribute type="xs:string" name="frameworkId" use="optional"/>
|
||||||
|
</xs:complexType>
|
||||||
|
<xs:complexType name="optionsBeforeType">
|
||||||
|
<xs:sequence>
|
||||||
|
<xs:element type="optionType" name="option" maxOccurs="unbounded" minOccurs="0"/>
|
||||||
|
</xs:sequence>
|
||||||
|
</xs:complexType>
|
||||||
|
<xs:complexType name="optionType">
|
||||||
|
<xs:sequence>
|
||||||
|
<xs:element type="xs:string" name="help" minOccurs="0" maxOccurs="1"/>
|
||||||
|
</xs:sequence>
|
||||||
|
<xs:attribute type="xs:string" name="name" use="required"/>
|
||||||
|
<xs:attribute type="xs:string" name="shortcut" use="optional"/>
|
||||||
|
<xs:attribute name="pattern" use="optional">
|
||||||
|
<xs:simpleType>
|
||||||
|
<xs:restriction base="xs:string">
|
||||||
|
<xs:enumeration value="space"/>
|
||||||
|
<xs:enumeration value="equals"/>
|
||||||
|
<xs:enumeration value="unknown"/>
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleType>
|
||||||
|
</xs:attribute>
|
||||||
|
</xs:complexType>
|
||||||
|
</xs:schema>
|
||||||
7
.idea/dictionaries/project.xml
generated
Normal file
7
.idea/dictionaries/project.xml
generated
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
<component name="ProjectDictionaryState">
|
||||||
|
<dictionary name="project">
|
||||||
|
<words>
|
||||||
|
<w>tmdb</w>
|
||||||
|
</words>
|
||||||
|
</dictionary>
|
||||||
|
</component>
|
||||||
136
.idea/ltbxd-actorle.iml
generated
Normal file
136
.idea/ltbxd-actorle.iml
generated
Normal file
@@ -0,0 +1,136 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<module type="WEB_MODULE" version="4">
|
||||||
|
<component name="NewModuleRootManager">
|
||||||
|
<content url="file://$MODULE_DIR$">
|
||||||
|
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" packagePrefix="App\" />
|
||||||
|
<sourceFolder url="file://$MODULE_DIR$/tests" isTestSource="true" packagePrefix="App\Tests\" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/vendor/composer" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/vendor/doctrine/collections" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/vendor/doctrine/dbal" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/vendor/doctrine/deprecations" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/vendor/doctrine/doctrine-bundle" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/vendor/doctrine/doctrine-migrations-bundle" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/vendor/doctrine/event-manager" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/vendor/doctrine/inflector" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/vendor/doctrine/instantiator" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/vendor/doctrine/lexer" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/vendor/doctrine/migrations" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/vendor/doctrine/orm" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/vendor/doctrine/persistence" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/vendor/doctrine/sql-formatter" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/vendor/egulias/email-validator" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/vendor/monolog/monolog" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/vendor/myclabs/deep-copy" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/vendor/nikic/php-parser" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/vendor/phar-io/manifest" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/vendor/phar-io/version" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/vendor/phpdocumentor/reflection-common" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/vendor/phpdocumentor/reflection-docblock" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/vendor/phpdocumentor/type-resolver" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/vendor/phpstan/phpdoc-parser" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/vendor/phpunit/php-code-coverage" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/vendor/phpunit/php-file-iterator" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/vendor/phpunit/php-invoker" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/vendor/phpunit/php-text-template" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/vendor/phpunit/php-timer" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/vendor/phpunit/phpunit" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/vendor/psr/cache" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/vendor/psr/clock" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/vendor/psr/container" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/vendor/psr/event-dispatcher" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/vendor/psr/link" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/vendor/psr/log" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/vendor/sebastian/cli-parser" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/vendor/sebastian/comparator" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/vendor/sebastian/complexity" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/vendor/sebastian/diff" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/vendor/sebastian/environment" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/vendor/sebastian/exporter" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/vendor/sebastian/global-state" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/vendor/sebastian/lines-of-code" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/vendor/sebastian/object-enumerator" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/vendor/sebastian/object-reflector" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/vendor/sebastian/recursion-context" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/vendor/sebastian/type" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/vendor/sebastian/version" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/vendor/staabm/side-effects-detector" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/asset" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/asset-mapper" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/browser-kit" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/cache" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/cache-contracts" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/clock" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/config" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/console" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/css-selector" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/debug-bundle" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/dependency-injection" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/deprecation-contracts" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/doctrine-bridge" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/doctrine-messenger" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/dom-crawler" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/dotenv" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/error-handler" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/event-dispatcher" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/event-dispatcher-contracts" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/expression-language" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/filesystem" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/finder" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/flex" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/form" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/framework-bundle" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/http-client" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/http-client-contracts" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/http-foundation" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/http-kernel" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/intl" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/mailer" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/maker-bundle" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/messenger" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/mime" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/monolog-bridge" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/monolog-bundle" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/notifier" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/options-resolver" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/password-hasher" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/polyfill-intl-grapheme" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/polyfill-intl-icu" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/polyfill-intl-idn" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/polyfill-intl-normalizer" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/polyfill-mbstring" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/polyfill-php85" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/process" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/property-access" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/property-info" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/routing" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/runtime" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/security-bundle" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/security-core" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/security-csrf" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/security-http" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/serializer" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/service-contracts" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/stimulus-bundle" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/stopwatch" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/string" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/translation" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/translation-contracts" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/twig-bridge" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/twig-bundle" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/type-info" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/ux-turbo" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/validator" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/var-dumper" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/var-exporter" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/web-link" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/web-profiler-bundle" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/yaml" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/vendor/theseer/tokenizer" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/vendor/twig/extra-bundle" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/vendor/twig/twig" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/vendor/webmozart/assert" />
|
||||||
|
</content>
|
||||||
|
<orderEntry type="inheritedJdk" />
|
||||||
|
<orderEntry type="sourceFolder" forTests="false" />
|
||||||
|
</component>
|
||||||
|
</module>
|
||||||
12
.idea/misc.xml
generated
Normal file
12
.idea/misc.xml
generated
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="MaterialThemeProjectNewConfig">
|
||||||
|
<option name="metadata">
|
||||||
|
<MTProjectMetadataState>
|
||||||
|
<option name="migrated" value="true" />
|
||||||
|
<option name="pristineConfig" value="false" />
|
||||||
|
<option name="userId" value="-4f4ad9c:19537e848e0:-7ff1" />
|
||||||
|
</MTProjectMetadataState>
|
||||||
|
</option>
|
||||||
|
</component>
|
||||||
|
</project>
|
||||||
8
.idea/modules.xml
generated
Normal file
8
.idea/modules.xml
generated
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="ProjectModuleManager">
|
||||||
|
<modules>
|
||||||
|
<module fileurl="file://$PROJECT_DIR$/.idea/ltbxd-actorle.iml" filepath="$PROJECT_DIR$/.idea/ltbxd-actorle.iml" />
|
||||||
|
</modules>
|
||||||
|
</component>
|
||||||
|
</project>
|
||||||
156
.idea/php.xml
generated
Normal file
156
.idea/php.xml
generated
Normal file
@@ -0,0 +1,156 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="MessDetectorOptionsConfiguration">
|
||||||
|
<option name="transferred" value="true" />
|
||||||
|
</component>
|
||||||
|
<component name="PHPCSFixerOptionsConfiguration">
|
||||||
|
<option name="transferred" value="true" />
|
||||||
|
</component>
|
||||||
|
<component name="PHPCodeSnifferOptionsConfiguration">
|
||||||
|
<option name="highlightLevel" value="WARNING" />
|
||||||
|
<option name="transferred" value="true" />
|
||||||
|
</component>
|
||||||
|
<component name="PhpIncludePathManager">
|
||||||
|
<include_path>
|
||||||
|
<path value="$PROJECT_DIR$/vendor/staabm/side-effects-detector" />
|
||||||
|
<path value="$PROJECT_DIR$/vendor/egulias/email-validator" />
|
||||||
|
<path value="$PROJECT_DIR$/vendor/phpunit/php-invoker" />
|
||||||
|
<path value="$PROJECT_DIR$/vendor/phpunit/php-text-template" />
|
||||||
|
<path value="$PROJECT_DIR$/vendor/phpunit/phpunit" />
|
||||||
|
<path value="$PROJECT_DIR$/vendor/phpunit/php-code-coverage" />
|
||||||
|
<path value="$PROJECT_DIR$/vendor/phpunit/php-file-iterator" />
|
||||||
|
<path value="$PROJECT_DIR$/vendor/phpunit/php-timer" />
|
||||||
|
<path value="$PROJECT_DIR$/vendor/myclabs/deep-copy" />
|
||||||
|
<path value="$PROJECT_DIR$/vendor/nikic/php-parser" />
|
||||||
|
<path value="$PROJECT_DIR$/vendor/composer" />
|
||||||
|
<path value="$PROJECT_DIR$/vendor/phpdocumentor/type-resolver" />
|
||||||
|
<path value="$PROJECT_DIR$/vendor/phpdocumentor/reflection-docblock" />
|
||||||
|
<path value="$PROJECT_DIR$/vendor/theseer/tokenizer" />
|
||||||
|
<path value="$PROJECT_DIR$/vendor/phpdocumentor/reflection-common" />
|
||||||
|
<path value="$PROJECT_DIR$/vendor/phar-io/version" />
|
||||||
|
<path value="$PROJECT_DIR$/vendor/phar-io/manifest" />
|
||||||
|
<path value="$PROJECT_DIR$/vendor/webmozart/assert" />
|
||||||
|
<path value="$PROJECT_DIR$/vendor/symfony/var-dumper" />
|
||||||
|
<path value="$PROJECT_DIR$/vendor/symfony/service-contracts" />
|
||||||
|
<path value="$PROJECT_DIR$/vendor/symfony/polyfill-intl-idn" />
|
||||||
|
<path value="$PROJECT_DIR$/vendor/symfony/serializer" />
|
||||||
|
<path value="$PROJECT_DIR$/vendor/symfony/var-exporter" />
|
||||||
|
<path value="$PROJECT_DIR$/vendor/symfony/web-link" />
|
||||||
|
<path value="$PROJECT_DIR$/vendor/symfony/string" />
|
||||||
|
<path value="$PROJECT_DIR$/vendor/symfony/web-profiler-bundle" />
|
||||||
|
<path value="$PROJECT_DIR$/vendor/symfony/error-handler" />
|
||||||
|
<path value="$PROJECT_DIR$/vendor/symfony/routing" />
|
||||||
|
<path value="$PROJECT_DIR$/vendor/symfony/flex" />
|
||||||
|
<path value="$PROJECT_DIR$/vendor/symfony/event-dispatcher" />
|
||||||
|
<path value="$PROJECT_DIR$/vendor/symfony/stimulus-bundle" />
|
||||||
|
<path value="$PROJECT_DIR$/vendor/phpstan/phpdoc-parser" />
|
||||||
|
<path value="$PROJECT_DIR$/vendor/symfony/ux-turbo" />
|
||||||
|
<path value="$PROJECT_DIR$/vendor/symfony/debug-bundle" />
|
||||||
|
<path value="$PROJECT_DIR$/vendor/symfony/type-info" />
|
||||||
|
<path value="$PROJECT_DIR$/vendor/symfony/runtime" />
|
||||||
|
<path value="$PROJECT_DIR$/vendor/sebastian/diff" />
|
||||||
|
<path value="$PROJECT_DIR$/vendor/symfony/twig-bundle" />
|
||||||
|
<path value="$PROJECT_DIR$/vendor/sebastian/lines-of-code" />
|
||||||
|
<path value="$PROJECT_DIR$/vendor/symfony/clock" />
|
||||||
|
<path value="$PROJECT_DIR$/vendor/sebastian/version" />
|
||||||
|
<path value="$PROJECT_DIR$/vendor/symfony/doctrine-messenger" />
|
||||||
|
<path value="$PROJECT_DIR$/vendor/sebastian/type" />
|
||||||
|
<path value="$PROJECT_DIR$/vendor/symfony/options-resolver" />
|
||||||
|
<path value="$PROJECT_DIR$/vendor/sebastian/object-enumerator" />
|
||||||
|
<path value="$PROJECT_DIR$/vendor/monolog/monolog" />
|
||||||
|
<path value="$PROJECT_DIR$/vendor/symfony/cache" />
|
||||||
|
<path value="$PROJECT_DIR$/vendor/sebastian/recursion-context" />
|
||||||
|
<path value="$PROJECT_DIR$/vendor/symfony/asset-mapper" />
|
||||||
|
<path value="$PROJECT_DIR$/vendor/sebastian/cli-parser" />
|
||||||
|
<path value="$PROJECT_DIR$/vendor/symfony/doctrine-bridge" />
|
||||||
|
<path value="$PROJECT_DIR$/vendor/sebastian/object-reflector" />
|
||||||
|
<path value="$PROJECT_DIR$/vendor/symfony/maker-bundle" />
|
||||||
|
<path value="$PROJECT_DIR$/vendor/symfony/expression-language" />
|
||||||
|
<path value="$PROJECT_DIR$/vendor/symfony/security-http" />
|
||||||
|
<path value="$PROJECT_DIR$/vendor/symfony/security-core" />
|
||||||
|
<path value="$PROJECT_DIR$/vendor/symfony/mailer" />
|
||||||
|
<path value="$PROJECT_DIR$/vendor/sebastian/exporter" />
|
||||||
|
<path value="$PROJECT_DIR$/vendor/symfony/http-kernel" />
|
||||||
|
<path value="$PROJECT_DIR$/vendor/sebastian/comparator" />
|
||||||
|
<path value="$PROJECT_DIR$/vendor/symfony/finder" />
|
||||||
|
<path value="$PROJECT_DIR$/vendor/symfony/security-csrf" />
|
||||||
|
<path value="$PROJECT_DIR$/vendor/sebastian/environment" />
|
||||||
|
<path value="$PROJECT_DIR$/vendor/symfony/browser-kit" />
|
||||||
|
<path value="$PROJECT_DIR$/vendor/doctrine/orm" />
|
||||||
|
<path value="$PROJECT_DIR$/vendor/symfony/validator" />
|
||||||
|
<path value="$PROJECT_DIR$/vendor/doctrine/event-manager" />
|
||||||
|
<path value="$PROJECT_DIR$/vendor/symfony/dom-crawler" />
|
||||||
|
<path value="$PROJECT_DIR$/vendor/doctrine/lexer" />
|
||||||
|
<path value="$PROJECT_DIR$/vendor/symfony/polyfill-php85" />
|
||||||
|
<path value="$PROJECT_DIR$/vendor/doctrine/deprecations" />
|
||||||
|
<path value="$PROJECT_DIR$/vendor/psr/log" />
|
||||||
|
<path value="$PROJECT_DIR$/vendor/symfony/security-bundle" />
|
||||||
|
<path value="$PROJECT_DIR$/vendor/psr/event-dispatcher" />
|
||||||
|
<path value="$PROJECT_DIR$/vendor/symfony/deprecation-contracts" />
|
||||||
|
<path value="$PROJECT_DIR$/vendor/psr/clock" />
|
||||||
|
<path value="$PROJECT_DIR$/vendor/symfony/mime" />
|
||||||
|
<path value="$PROJECT_DIR$/vendor/doctrine/dbal" />
|
||||||
|
<path value="$PROJECT_DIR$/vendor/psr/link" />
|
||||||
|
<path value="$PROJECT_DIR$/vendor/symfony/dependency-injection" />
|
||||||
|
<path value="$PROJECT_DIR$/vendor/symfony/event-dispatcher-contracts" />
|
||||||
|
<path value="$PROJECT_DIR$/vendor/doctrine/doctrine-migrations-bundle" />
|
||||||
|
<path value="$PROJECT_DIR$/vendor/symfony/polyfill-intl-grapheme" />
|
||||||
|
<path value="$PROJECT_DIR$/vendor/doctrine/instantiator" />
|
||||||
|
<path value="$PROJECT_DIR$/vendor/symfony/polyfill-intl-icu" />
|
||||||
|
<path value="$PROJECT_DIR$/vendor/doctrine/persistence" />
|
||||||
|
<path value="$PROJECT_DIR$/vendor/sebastian/complexity" />
|
||||||
|
<path value="$PROJECT_DIR$/vendor/symfony/yaml" />
|
||||||
|
<path value="$PROJECT_DIR$/vendor/doctrine/inflector" />
|
||||||
|
<path value="$PROJECT_DIR$/vendor/sebastian/global-state" />
|
||||||
|
<path value="$PROJECT_DIR$/vendor/symfony/css-selector" />
|
||||||
|
<path value="$PROJECT_DIR$/vendor/doctrine/doctrine-bundle" />
|
||||||
|
<path value="$PROJECT_DIR$/vendor/symfony/http-client-contracts" />
|
||||||
|
<path value="$PROJECT_DIR$/vendor/doctrine/sql-formatter" />
|
||||||
|
<path value="$PROJECT_DIR$/vendor/symfony/monolog-bundle" />
|
||||||
|
<path value="$PROJECT_DIR$/vendor/doctrine/migrations" />
|
||||||
|
<path value="$PROJECT_DIR$/vendor/symfony/property-access" />
|
||||||
|
<path value="$PROJECT_DIR$/vendor/doctrine/collections" />
|
||||||
|
<path value="$PROJECT_DIR$/vendor/psr/cache" />
|
||||||
|
<path value="$PROJECT_DIR$/vendor/psr/container" />
|
||||||
|
<path value="$PROJECT_DIR$/vendor/symfony/config" />
|
||||||
|
<path value="$PROJECT_DIR$/vendor/symfony/http-foundation" />
|
||||||
|
<path value="$PROJECT_DIR$/vendor/symfony/stopwatch" />
|
||||||
|
<path value="$PROJECT_DIR$/vendor/symfony/monolog-bridge" />
|
||||||
|
<path value="$PROJECT_DIR$/vendor/symfony/polyfill-mbstring" />
|
||||||
|
<path value="$PROJECT_DIR$/vendor/symfony/translation-contracts" />
|
||||||
|
<path value="$PROJECT_DIR$/vendor/symfony/asset" />
|
||||||
|
<path value="$PROJECT_DIR$/vendor/symfony/process" />
|
||||||
|
<path value="$PROJECT_DIR$/vendor/symfony/framework-bundle" />
|
||||||
|
<path value="$PROJECT_DIR$/vendor/symfony/polyfill-intl-normalizer" />
|
||||||
|
<path value="$PROJECT_DIR$/vendor/symfony/password-hasher" />
|
||||||
|
<path value="$PROJECT_DIR$/vendor/symfony/cache-contracts" />
|
||||||
|
<path value="$PROJECT_DIR$/vendor/symfony/notifier" />
|
||||||
|
<path value="$PROJECT_DIR$/vendor/symfony/console" />
|
||||||
|
<path value="$PROJECT_DIR$/vendor/symfony/property-info" />
|
||||||
|
<path value="$PROJECT_DIR$/vendor/symfony/form" />
|
||||||
|
<path value="$PROJECT_DIR$/vendor/symfony/dotenv" />
|
||||||
|
<path value="$PROJECT_DIR$/vendor/symfony/translation" />
|
||||||
|
<path value="$PROJECT_DIR$/vendor/symfony/messenger" />
|
||||||
|
<path value="$PROJECT_DIR$/vendor/symfony/filesystem" />
|
||||||
|
<path value="$PROJECT_DIR$/vendor/symfony/intl" />
|
||||||
|
<path value="$PROJECT_DIR$/vendor/twig/extra-bundle" />
|
||||||
|
<path value="$PROJECT_DIR$/vendor/symfony/http-client" />
|
||||||
|
<path value="$PROJECT_DIR$/vendor/twig/twig" />
|
||||||
|
<path value="$PROJECT_DIR$/vendor/symfony/twig-bridge" />
|
||||||
|
</include_path>
|
||||||
|
</component>
|
||||||
|
<component name="PhpProjectSharedConfiguration" php_language_level="8.5">
|
||||||
|
<option name="suggestChangeDefaultLanguageLevel" value="false" />
|
||||||
|
</component>
|
||||||
|
<component name="PhpStanOptionsConfiguration">
|
||||||
|
<option name="transferred" value="true" />
|
||||||
|
</component>
|
||||||
|
<component name="PhpUnit">
|
||||||
|
<phpunit_settings>
|
||||||
|
<PhpUnitSettings custom_loader_path="$PROJECT_DIR$/vendor/autoload.php" />
|
||||||
|
</phpunit_settings>
|
||||||
|
</component>
|
||||||
|
<component name="PsalmOptionsConfiguration">
|
||||||
|
<option name="transferred" value="true" />
|
||||||
|
</component>
|
||||||
|
</project>
|
||||||
6
.idea/vcs.xml
generated
Normal file
6
.idea/vcs.xml
generated
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="VcsDirectoryMappings">
|
||||||
|
<mapping directory="" vcs="Git" />
|
||||||
|
</component>
|
||||||
|
</project>
|
||||||
10
assets/app.js
Normal file
10
assets/app.js
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
import './stimulus_bootstrap.js';
|
||||||
|
/*
|
||||||
|
* Welcome to your app's main JavaScript file!
|
||||||
|
*
|
||||||
|
* This file will be included onto the page via the importmap() Twig function,
|
||||||
|
* which should already be in your base.html.twig.
|
||||||
|
*/
|
||||||
|
import './styles/app.css';
|
||||||
|
|
||||||
|
console.log('This log comes from assets/app.js - welcome to AssetMapper! 🎉');
|
||||||
15
assets/controllers.json
Normal file
15
assets/controllers.json
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
{
|
||||||
|
"controllers": {
|
||||||
|
"@symfony/ux-turbo": {
|
||||||
|
"turbo-core": {
|
||||||
|
"enabled": true,
|
||||||
|
"fetch": "eager"
|
||||||
|
},
|
||||||
|
"mercure-turbo-stream": {
|
||||||
|
"enabled": false,
|
||||||
|
"fetch": "eager"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"entrypoints": []
|
||||||
|
}
|
||||||
81
assets/controllers/csrf_protection_controller.js
Normal file
81
assets/controllers/csrf_protection_controller.js
Normal file
@@ -0,0 +1,81 @@
|
|||||||
|
const nameCheck = /^[-_a-zA-Z0-9]{4,22}$/;
|
||||||
|
const tokenCheck = /^[-_/+a-zA-Z0-9]{24,}$/;
|
||||||
|
|
||||||
|
// Generate and double-submit a CSRF token in a form field and a cookie, as defined by Symfony's SameOriginCsrfTokenManager
|
||||||
|
// Use `form.requestSubmit()` to ensure that the submit event is triggered. Using `form.submit()` will not trigger the event
|
||||||
|
// and thus this event-listener will not be executed.
|
||||||
|
document.addEventListener('submit', function (event) {
|
||||||
|
generateCsrfToken(event.target);
|
||||||
|
}, true);
|
||||||
|
|
||||||
|
// When @hotwired/turbo handles form submissions, send the CSRF token in a header in addition to a cookie
|
||||||
|
// The `framework.csrf_protection.check_header` config option needs to be enabled for the header to be checked
|
||||||
|
document.addEventListener('turbo:submit-start', function (event) {
|
||||||
|
const h = generateCsrfHeaders(event.detail.formSubmission.formElement);
|
||||||
|
Object.keys(h).map(function (k) {
|
||||||
|
event.detail.formSubmission.fetchRequest.headers[k] = h[k];
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
// When @hotwired/turbo handles form submissions, remove the CSRF cookie once a form has been submitted
|
||||||
|
document.addEventListener('turbo:submit-end', function (event) {
|
||||||
|
removeCsrfToken(event.detail.formSubmission.formElement);
|
||||||
|
});
|
||||||
|
|
||||||
|
export function generateCsrfToken (formElement) {
|
||||||
|
const csrfField = formElement.querySelector('input[data-controller="csrf-protection"], input[name="_csrf_token"]');
|
||||||
|
|
||||||
|
if (!csrfField) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
let csrfCookie = csrfField.getAttribute('data-csrf-protection-cookie-value');
|
||||||
|
let csrfToken = csrfField.value;
|
||||||
|
|
||||||
|
if (!csrfCookie && nameCheck.test(csrfToken)) {
|
||||||
|
csrfField.setAttribute('data-csrf-protection-cookie-value', csrfCookie = csrfToken);
|
||||||
|
csrfField.defaultValue = csrfToken = btoa(String.fromCharCode.apply(null, (window.crypto || window.msCrypto).getRandomValues(new Uint8Array(18))));
|
||||||
|
}
|
||||||
|
csrfField.dispatchEvent(new Event('change', { bubbles: true }));
|
||||||
|
|
||||||
|
if (csrfCookie && tokenCheck.test(csrfToken)) {
|
||||||
|
const cookie = csrfCookie + '_' + csrfToken + '=' + csrfCookie + '; path=/; samesite=strict';
|
||||||
|
document.cookie = window.location.protocol === 'https:' ? '__Host-' + cookie + '; secure' : cookie;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export function generateCsrfHeaders (formElement) {
|
||||||
|
const headers = {};
|
||||||
|
const csrfField = formElement.querySelector('input[data-controller="csrf-protection"], input[name="_csrf_token"]');
|
||||||
|
|
||||||
|
if (!csrfField) {
|
||||||
|
return headers;
|
||||||
|
}
|
||||||
|
|
||||||
|
const csrfCookie = csrfField.getAttribute('data-csrf-protection-cookie-value');
|
||||||
|
|
||||||
|
if (tokenCheck.test(csrfField.value) && nameCheck.test(csrfCookie)) {
|
||||||
|
headers[csrfCookie] = csrfField.value;
|
||||||
|
}
|
||||||
|
|
||||||
|
return headers;
|
||||||
|
}
|
||||||
|
|
||||||
|
export function removeCsrfToken (formElement) {
|
||||||
|
const csrfField = formElement.querySelector('input[data-controller="csrf-protection"], input[name="_csrf_token"]');
|
||||||
|
|
||||||
|
if (!csrfField) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
const csrfCookie = csrfField.getAttribute('data-csrf-protection-cookie-value');
|
||||||
|
|
||||||
|
if (tokenCheck.test(csrfField.value) && nameCheck.test(csrfCookie)) {
|
||||||
|
const cookie = csrfCookie + '_' + csrfField.value + '=0; path=/; samesite=strict; max-age=0';
|
||||||
|
|
||||||
|
document.cookie = window.location.protocol === 'https:' ? '__Host-' + cookie + '; secure' : cookie;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* stimulusFetch: 'lazy' */
|
||||||
|
export default 'csrf-protection-controller';
|
||||||
16
assets/controllers/hello_controller.js
Normal file
16
assets/controllers/hello_controller.js
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
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';
|
||||||
|
}
|
||||||
|
}
|
||||||
363
assets/files/watched.csv
Normal file
363
assets/files/watched.csv
Normal file
@@ -0,0 +1,363 @@
|
|||||||
|
Date,Name,Year,Letterboxd URI
|
||||||
|
2022-05-20,The Batman,2022,https://boxd.it/eDGs
|
||||||
|
2022-05-20,Avatar,2009,https://boxd.it/1Efm
|
||||||
|
2022-05-20,The Social Network,2010,https://boxd.it/17ue
|
||||||
|
2022-05-20,Mad Max: Fury Road,2015,https://boxd.it/2DjO
|
||||||
|
2022-05-20,The Shape of Water,2017,https://boxd.it/dZ5m
|
||||||
|
2022-05-20,Parasite,2019,https://boxd.it/hTha
|
||||||
|
2022-05-20,Joker,2019,https://boxd.it/h4cS
|
||||||
|
2022-06-12,Top Gun: Maverick,2022,https://boxd.it/cjr4
|
||||||
|
2022-06-12,Tenet,2020,https://boxd.it/leq4
|
||||||
|
2022-06-12,Guardians of the Galaxy Vol. 2,2017,https://boxd.it/8MxC
|
||||||
|
2022-06-12,The Great Gatsby,2013,https://boxd.it/JY
|
||||||
|
2022-06-13,Doctor Strange in the Multiverse of Madness,2022,https://boxd.it/gaTc
|
||||||
|
2022-06-13,Whiplash,2014,https://boxd.it/7bQA
|
||||||
|
2022-06-13,American Psycho,2000,https://boxd.it/28Vs
|
||||||
|
2022-06-13,Fight Club,1999,https://boxd.it/2a9q
|
||||||
|
2022-06-13,Spider-Man: No Way Home,2021,https://boxd.it/nwRw
|
||||||
|
2022-06-13,Taxi Driver,1976,https://boxd.it/2b8y
|
||||||
|
2022-06-13,The Grand Budapest Hotel,2014,https://boxd.it/3ZqO
|
||||||
|
2022-06-13,Knives Out,2019,https://boxd.it/jWEA
|
||||||
|
2022-06-13,The Truman Show,1998,https://boxd.it/18U8
|
||||||
|
2022-06-13,Interstellar,2014,https://boxd.it/4VZ8
|
||||||
|
2022-06-13,The Dark Knight,2008,https://boxd.it/2b0k
|
||||||
|
2022-06-13,Jurassic World,2015,https://boxd.it/4n0g
|
||||||
|
2022-06-13,Inception,2010,https://boxd.it/1skk
|
||||||
|
2022-06-13,Dune,2021,https://boxd.it/fA7G
|
||||||
|
2022-06-13,Spirited Away,2001,https://boxd.it/2b4m
|
||||||
|
2022-06-13,The Wolf of Wall Street,2013,https://boxd.it/3C1m
|
||||||
|
2022-06-13,Eternal Sunshine of the Spotless Mind,2004,https://boxd.it/6YK
|
||||||
|
2022-06-13,Inglourious Basterds,2009,https://boxd.it/1JzG
|
||||||
|
2022-06-13,Gone Girl,2014,https://boxd.it/6hQu
|
||||||
|
2022-06-13,La La Land,2016,https://boxd.it/a5fa
|
||||||
|
2022-07-28,Drive,2011,https://boxd.it/IG
|
||||||
|
2022-07-28,Blade Runner 2049,2017,https://boxd.it/b8wK
|
||||||
|
2022-07-28,First Man,2018,https://boxd.it/cPym
|
||||||
|
2022-07-28,Kill Bill: Vol. 1,2003,https://boxd.it/70w
|
||||||
|
2022-07-28,Pulp Fiction,1994,https://boxd.it/29Pq
|
||||||
|
2022-07-28,Django Unchained,2012,https://boxd.it/2cCk
|
||||||
|
2022-08-31,Arrival,2016,https://boxd.it/aNGk
|
||||||
|
2023-07-22,Watchmen,2009,https://boxd.it/1QE4
|
||||||
|
2023-07-22,Swiss Army Man,2016,https://boxd.it/bDG2
|
||||||
|
2023-07-22,Everything Everywhere All at Once,2022,https://boxd.it/jUk4
|
||||||
|
2023-07-25,Oppenheimer,2023,https://boxd.it/wUow
|
||||||
|
2023-08-04,Green Zone,2010,https://boxd.it/1zNS
|
||||||
|
2023-08-04,Incendies,2010,https://boxd.it/Msm
|
||||||
|
2023-08-04,It Follows,2014,https://boxd.it/87wo
|
||||||
|
2023-08-04,The Green Knight,2021,https://boxd.it/kuy2
|
||||||
|
2023-08-04,The Royal Tenenbaums,2001,https://boxd.it/1YHU
|
||||||
|
2023-08-04,The Northman,2022,https://boxd.it/nK2s
|
||||||
|
2023-08-04,Black Swan,2010,https://boxd.it/Sw0
|
||||||
|
2023-08-04,Raw,2016,https://boxd.it/dLd2
|
||||||
|
2023-08-04,The Chorus,2004,https://boxd.it/22X8
|
||||||
|
2023-08-04,The Shawshank Redemption,1994,https://boxd.it/2aHi
|
||||||
|
2023-08-04,The Dark Knight Rises,2012,https://boxd.it/H3m
|
||||||
|
2023-08-04,Batman Begins,2005,https://boxd.it/2aIg
|
||||||
|
2023-08-04,12 Angry Men,1957,https://boxd.it/2auI
|
||||||
|
2023-08-04,Schindler's List,1993,https://boxd.it/2aq2
|
||||||
|
2023-08-04,Forrest Gump,1994,https://boxd.it/728
|
||||||
|
2023-08-04,One Flew Over the Cuckoo's Nest,1975,https://boxd.it/2aeA
|
||||||
|
2023-08-04,The Silence of the Lambs,1991,https://boxd.it/2aHW
|
||||||
|
2023-08-04,Hannibal,2001,https://boxd.it/1XVc
|
||||||
|
2023-08-04,The Green Mile,1999,https://boxd.it/2agG
|
||||||
|
2023-08-04,The Usual Suspects,1995,https://boxd.it/29XE
|
||||||
|
2023-08-04,The Lion King,1994,https://boxd.it/201Q
|
||||||
|
2023-08-04,The Lion King,2019,https://boxd.it/eSjI
|
||||||
|
2023-08-04,Gladiator,2000,https://boxd.it/2b9m
|
||||||
|
2023-08-04,The Intouchables,2011,https://boxd.it/2FT0
|
||||||
|
2023-08-04,The Departed,2006,https://boxd.it/28MA
|
||||||
|
2023-08-04,1917,2019,https://boxd.it/jj4y
|
||||||
|
2023-08-04,The Avengers,2012,https://boxd.it/1xFW
|
||||||
|
2023-08-04,Avengers: Infinity War,2018,https://boxd.it/9vEe
|
||||||
|
2023-08-04,Avengers: Endgame,2019,https://boxd.it/9vE4
|
||||||
|
2023-08-04,Avengers: Age of Ultron,2015,https://boxd.it/3qi6
|
||||||
|
2023-08-04,The Shining,1980,https://boxd.it/29Nu
|
||||||
|
2023-08-04,WALL·E,2008,https://boxd.it/1VEo
|
||||||
|
2023-08-04,Spider-Man,2002,https://boxd.it/2a8i
|
||||||
|
2023-08-04,Spider-Man: Into the Spider-Verse,2018,https://boxd.it/azpY
|
||||||
|
2023-08-04,Spider-Man: Across the Spider-Verse,2023,https://boxd.it/kSz4
|
||||||
|
2023-08-04,Spider-Man 2,2004,https://boxd.it/2a88
|
||||||
|
2023-08-04,Spider-Man 3,2007,https://boxd.it/2a7Y
|
||||||
|
2023-08-04,The Amazing Spider-Man,2012,https://boxd.it/27PI
|
||||||
|
2023-08-04,The Amazing Spider-Man 2,2014,https://boxd.it/3utM
|
||||||
|
2023-08-04,John Wick,2014,https://boxd.it/7dEc
|
||||||
|
2023-08-04,John Wick: Chapter 2,2017,https://boxd.it/ayGu
|
||||||
|
2023-08-04,John Wick: Chapter 3 – Parabellum,2019,https://boxd.it/gmFw
|
||||||
|
2023-08-04,John Wick: Chapter 4,2023,https://boxd.it/mh48
|
||||||
|
2023-08-04,Prisoners,2013,https://boxd.it/4E5i
|
||||||
|
2023-08-04,Sicario,2015,https://boxd.it/8i7u
|
||||||
|
2023-08-04,Get Out,2017,https://boxd.it/eOCm
|
||||||
|
2023-08-04,Barbie,2023,https://boxd.it/bCLK
|
||||||
|
2023-08-04,Once Upon a Time... in Hollywood,2019,https://boxd.it/gH0O
|
||||||
|
2023-08-04,Glass Onion,2022,https://boxd.it/oCkK
|
||||||
|
2023-08-04,Chernobyl,2019,https://boxd.it/mkbG
|
||||||
|
2023-08-04,La Haine,1995,https://boxd.it/2as8
|
||||||
|
2023-08-04,There Will Be Blood,2007,https://boxd.it/20Z2
|
||||||
|
2023-08-04,Revoir Paris,2022,https://boxd.it/yuDY
|
||||||
|
2023-08-04,The Night of the 12th,2022,https://boxd.it/yQoG
|
||||||
|
2023-08-04,Rise,2022,https://boxd.it/sZ1Y
|
||||||
|
2023-08-04,Climax,2018,https://boxd.it/ikvo
|
||||||
|
2023-08-04,Deerskin,2019,https://boxd.it/lqOW
|
||||||
|
2023-08-04,Keep an Eye Out,2018,https://boxd.it/h1aY
|
||||||
|
2023-08-04,Smoking Causes Coughing,2022,https://boxd.it/wVl4
|
||||||
|
2023-08-04,Mandibles,2020,https://boxd.it/nHDK
|
||||||
|
2023-08-04,Incredible But True,2022,https://boxd.it/rBtC
|
||||||
|
2023-08-04,Amélie,2001,https://boxd.it/2aUc
|
||||||
|
2023-08-04,Delicatessen,1991,https://boxd.it/29lK
|
||||||
|
2023-08-04,A Very Long Engagement,2004,https://boxd.it/26dy
|
||||||
|
2023-08-04,The King and the Mockingbird,1980,https://boxd.it/1At0
|
||||||
|
2023-08-04,The Wolf's Call,2019,https://boxd.it/hqkE
|
||||||
|
2023-08-04,La Classe américaine,1993,https://boxd.it/1KL4
|
||||||
|
2023-08-04,Yamakasi,2001,https://boxd.it/21jw
|
||||||
|
2023-08-04,Rust and Bone,2012,https://boxd.it/3mDE
|
||||||
|
2023-08-04,Asterix & Obelix: Mission Cleopatra,2002,https://boxd.it/268o
|
||||||
|
2023-08-04,Fear City: A Family-Style Comedy,1994,https://boxd.it/1MOO
|
||||||
|
2023-08-04,"OSS 117: Cairo, Nest of Spies",2006,https://boxd.it/1MIm
|
||||||
|
2023-08-04,OSS 117: Lost in Rio,2009,https://boxd.it/1LVu
|
||||||
|
2023-08-04,OSS 117: From Africa with Love,2021,https://boxd.it/mjce
|
||||||
|
2023-08-04,A Man Called Otto,2022,https://boxd.it/zl06
|
||||||
|
2023-08-04,Baby Driver,2017,https://boxd.it/bhF2
|
||||||
|
2023-08-04,Black Panther,2018,https://boxd.it/8MHs
|
||||||
|
2023-08-04,Her,2013,https://boxd.it/4O24
|
||||||
|
2023-08-04,Guardians of the Galaxy,2014,https://boxd.it/3VH2
|
||||||
|
2023-08-04,Ratatouille,2007,https://boxd.it/27ww
|
||||||
|
2023-08-04,Scott Pilgrim vs. the World,2010,https://boxd.it/1Aq6
|
||||||
|
2023-08-04,Shutter Island,2010,https://boxd.it/1U82
|
||||||
|
2023-08-14,Yannick,2023,https://boxd.it/G2es
|
||||||
|
2023-08-17,The Imitation Game,2014,https://boxd.it/6aig
|
||||||
|
2023-08-25,Maelström,2000,https://boxd.it/1caI
|
||||||
|
2023-08-27,The Hateful Eight,2015,https://boxd.it/8gw8
|
||||||
|
2023-08-28,Rubber,2010,https://boxd.it/P2m
|
||||||
|
2023-08-28,Idiocracy,2006,https://boxd.it/20RW
|
||||||
|
2023-09-01,The Freshmen,2018,https://boxd.it/gB96
|
||||||
|
2023-09-01,The Prestige,2006,https://boxd.it/293w
|
||||||
|
2023-09-01,No Country for Old Men,2007,https://boxd.it/21ew
|
||||||
|
2023-09-01,Mommy,2014,https://boxd.it/7Uau
|
||||||
|
2023-09-15,Groundhog Day,1993,https://boxd.it/2b3e
|
||||||
|
2023-10-24,A Difficult Year,2023,https://boxd.it/AteW
|
||||||
|
2023-10-27,Talk to Me,2022,https://boxd.it/C6uQ
|
||||||
|
2023-10-27,Reality,2014,https://boxd.it/5txC
|
||||||
|
2023-10-29,La Jetée,1962,https://boxd.it/29Sk
|
||||||
|
2023-11-20,Pirates of the Caribbean: The Curse of the Black Pearl,2003,https://boxd.it/70G
|
||||||
|
2023-11-20,Pirates of the Caribbean: Dead Man's Chest,2006,https://boxd.it/2bfk
|
||||||
|
2023-11-20,Pirates of the Caribbean: At World's End,2007,https://boxd.it/2aGu
|
||||||
|
2023-11-20,Killers of the Flower Moon,2023,https://boxd.it/gHp0
|
||||||
|
2023-11-22,Guardians of the Galaxy Vol. 3,2023,https://boxd.it/fVNI
|
||||||
|
2023-11-22,Avatar: The Way of Water,2022,https://boxd.it/2E2E
|
||||||
|
2023-11-22,The Guardians of the Galaxy Holiday Special,2022,https://boxd.it/t77K
|
||||||
|
2023-11-22,Thor: Love and Thunder,2022,https://boxd.it/mMAY
|
||||||
|
2023-12-25,Wonka,2023,https://boxd.it/tCQm
|
||||||
|
2023-12-27,Romeo + Juliet,1996,https://boxd.it/2ama
|
||||||
|
2023-12-27,Don't Look Up,2021,https://boxd.it/o0Hc
|
||||||
|
2023-12-27,Free Guy,2021,https://boxd.it/k8dm
|
||||||
|
2023-12-27,Shang-Chi and the Legend of the Ten Rings,2021,https://boxd.it/kLDI
|
||||||
|
2023-12-27,"The French Dispatch of the Liberty, Kansas Evening Sun",2021,https://boxd.it/jLP8
|
||||||
|
2023-12-27,Cruella,2021,https://boxd.it/bbKg
|
||||||
|
2023-12-27,WandaVision,2021,https://boxd.it/sbGW
|
||||||
|
2023-12-27,Jojo Rabbit,2019,https://boxd.it/iEBG
|
||||||
|
2023-12-27,Ad Astra,2019,https://boxd.it/ePzI
|
||||||
|
2023-12-27,It Chapter Two,2019,https://boxd.it/h10u
|
||||||
|
2023-12-30,Legend,2015,https://boxd.it/8qZY
|
||||||
|
2023-12-31,The Specials,2019,https://boxd.it/lifa
|
||||||
|
2024-01-12,About Time,2013,https://boxd.it/43bI
|
||||||
|
2024-01-14,Amadeus,1984,https://boxd.it/2aH8
|
||||||
|
2024-01-14,Coco,2017,https://boxd.it/bYJQ
|
||||||
|
2024-01-14,Inside Out,2015,https://boxd.it/4KHC
|
||||||
|
2024-01-14,Life of Pi,2012,https://boxd.it/37pC
|
||||||
|
2024-01-14,Finding Nemo,2003,https://boxd.it/72i
|
||||||
|
2024-01-14,"Monsters, Inc.",2001,https://boxd.it/2a46
|
||||||
|
2024-01-14,The Lost City,2022,https://boxd.it/sg0Q
|
||||||
|
2024-01-14,127 Hours,2010,https://boxd.it/SLa
|
||||||
|
2024-01-14,Indiana Jones and the Kingdom of the Crystal Skull,2008,https://boxd.it/2aR8
|
||||||
|
2024-01-14,Indiana Jones and the Last Crusade,1989,https://boxd.it/2baO
|
||||||
|
2024-01-14,Indiana Jones and the Temple of Doom,1984,https://boxd.it/2bb8
|
||||||
|
2024-01-14,Elemental,2023,https://boxd.it/ASiE
|
||||||
|
2024-01-14,Raiders of the Lost Ark,1981,https://boxd.it/2bbs
|
||||||
|
2024-01-14,Asterix at the Olympic Games,2008,https://boxd.it/26Nw
|
||||||
|
2024-01-14,The Dinner Game,1998,https://boxd.it/1YJ2
|
||||||
|
2024-01-14,Home Alone,1990,https://boxd.it/29Fg
|
||||||
|
2024-01-14,Asterix & Obelix: The Middle Kingdom,2023,https://boxd.it/nSVq
|
||||||
|
2024-01-14,Spider-Man: Far From Home,2019,https://boxd.it/fegG
|
||||||
|
2024-01-14,Shazam!,2019,https://boxd.it/8WBu
|
||||||
|
2024-01-14,Jumanji: Welcome to the Jungle,2017,https://boxd.it/bUeE
|
||||||
|
2024-01-14,Pirates of the Caribbean: Dead Men Tell No Tales,2017,https://boxd.it/5a9m
|
||||||
|
2024-01-14,Fantastic Beasts and Where to Find Them,2016,https://boxd.it/7FPC
|
||||||
|
2024-01-14,Moana,2016,https://boxd.it/8tfY
|
||||||
|
2024-01-14,Batman v Superman: Dawn of Justice,2016,https://boxd.it/6fBW
|
||||||
|
2024-01-14,Zootopia,2016,https://boxd.it/84xS
|
||||||
|
2024-01-14,Deadpool,2016,https://boxd.it/9fOC
|
||||||
|
2024-01-14,Serial (Bad) Weddings,2014,https://boxd.it/7Nw4
|
||||||
|
2024-01-14,Rush,2013,https://boxd.it/3lyS
|
||||||
|
2024-01-14,Man of Steel,2013,https://boxd.it/FRk
|
||||||
|
2024-01-14,It Boy,2013,https://boxd.it/5kkE
|
||||||
|
2024-01-14,Rise of the Guardians,2012,https://boxd.it/2PXw
|
||||||
|
2024-01-14,The Hunger Games,2012,https://boxd.it/2uds
|
||||||
|
2024-01-14,Harry Potter and the Deathly Hallows: Part 2,2011,https://boxd.it/1RYk
|
||||||
|
2024-01-14,Pirates of the Caribbean: On Stranger Tides,2011,https://boxd.it/27Z4
|
||||||
|
2024-01-14,Harry Potter and the Deathly Hallows: Part 1,2010,https://boxd.it/1RYu
|
||||||
|
2024-01-14,Despicable Me,2010,https://boxd.it/1DD8
|
||||||
|
2024-01-14,Alice in Wonderland,2010,https://boxd.it/1Spq
|
||||||
|
2024-01-14,Arthur and the Revenge of Maltazard,2009,https://boxd.it/1tKI
|
||||||
|
2024-01-14,Harry Potter and the Half-Blood Prince,2009,https://boxd.it/29FU
|
||||||
|
2024-01-14,Up,2009,https://boxd.it/1OEc
|
||||||
|
2024-01-14,LOL (Laughing Out Loud),2008,https://boxd.it/2lxI
|
||||||
|
2024-01-14,Harry Potter and the Order of the Phoenix,2007,https://boxd.it/29Qe
|
||||||
|
2024-01-14,Cars,2006,https://boxd.it/29ho
|
||||||
|
2024-01-14,Harry Potter and the Goblet of Fire,2005,https://boxd.it/29Qo
|
||||||
|
2024-01-14,Charlie and the Chocolate Factory,2005,https://boxd.it/2b68
|
||||||
|
2024-01-14,Madagascar,2005,https://boxd.it/29dc
|
||||||
|
2024-01-14,The Incredibles,2004,https://boxd.it/1XLm
|
||||||
|
2024-01-14,"I, Robot",2004,https://boxd.it/27y8
|
||||||
|
2024-01-14,Harry Potter and the Prisoner of Azkaban,2004,https://boxd.it/29Qy
|
||||||
|
2024-01-14,Harry Potter and the Chamber of Secrets,2002,https://boxd.it/29QI
|
||||||
|
2024-01-14,Ice Age,2002,https://boxd.it/2apS
|
||||||
|
2024-01-14,Harry Potter and the Philosopher's Stone,2001,https://boxd.it/29QS
|
||||||
|
2024-01-14,Chicken Run,2000,https://boxd.it/20Xg
|
||||||
|
2024-01-14,Shrek,2001,https://boxd.it/29zi
|
||||||
|
2024-01-14,The Visitors,1993,https://boxd.it/1TeI
|
||||||
|
2024-01-15,All Quiet on the Western Front,2022,https://boxd.it/H08
|
||||||
|
2024-01-15,Sage homme,2023,https://boxd.it/A9Zy
|
||||||
|
2024-01-15,Black Box,2021,https://boxd.it/oGm6
|
||||||
|
2024-01-15,Natural Born Liar,2022,https://boxd.it/vgju
|
||||||
|
2024-01-15,La Belle Époque,2019,https://boxd.it/lXCE
|
||||||
|
2024-01-15,The Magic Tuche,2018,https://boxd.it/f1Is
|
||||||
|
2024-01-15,R.A.I.D. Special Unit,2016,https://boxd.it/dk8k
|
||||||
|
2024-01-15,Brice 3,2016,https://boxd.it/d3Ga
|
||||||
|
2024-01-15,Your Name.,2016,https://boxd.it/cUqs
|
||||||
|
2024-01-15,The Tuche Family: The American Dream,2016,https://boxd.it/cOXg
|
||||||
|
2024-01-15,Babysitting 2,2015,https://boxd.it/aTwK
|
||||||
|
2024-01-15,Serial Teachers 2,2015,https://boxd.it/aCqq
|
||||||
|
2024-01-15,Divergent,2014,https://boxd.it/4VT0
|
||||||
|
2024-01-15,Frozen,2013,https://boxd.it/3GNa
|
||||||
|
2024-01-15,Serial Teachers,2013,https://boxd.it/5xY8
|
||||||
|
2024-01-15,Cars 2,2011,https://boxd.it/H4Y
|
||||||
|
2024-01-15,The Brice Man,2005,https://boxd.it/1INs
|
||||||
|
2024-01-15,The Visitors II: The Corridors of Time,1998,https://boxd.it/1Wtw
|
||||||
|
2024-01-15,French Fried Vacation 2,1979,https://boxd.it/1f02
|
||||||
|
2024-01-16,Weird: The Al Yankovic Story,2022,https://boxd.it/yYZA
|
||||||
|
2024-01-16,The Exorcist,1973,https://boxd.it/1Yoo
|
||||||
|
2024-01-17,For Better and for Worse,2023,https://boxd.it/x3wu
|
||||||
|
2024-01-17,Transformers,2007,https://boxd.it/280c
|
||||||
|
2024-01-20,Elvis,2022,https://boxd.it/mK4w
|
||||||
|
2024-01-20,Fantastic Mr. Fox,2009,https://boxd.it/1WyQ
|
||||||
|
2024-01-22,Isle of Dogs,2018,https://boxd.it/dZrW
|
||||||
|
2024-01-30,Aftersun,2022,https://boxd.it/Arw0
|
||||||
|
2024-01-31,The Wonderful Story of Henry Sugar,2023,https://boxd.it/yNyo
|
||||||
|
2024-02-21,Beau Is Afraid,2023,https://boxd.it/u2gE
|
||||||
|
2024-03-02,Anatomy of a Fall,2023,https://boxd.it/yuDE
|
||||||
|
2024-03-12,One Life,2023,https://boxd.it/sAhC
|
||||||
|
2024-03-12,Bob Marley: One Love,2024,https://boxd.it/uckw
|
||||||
|
2024-03-13,The Lord of the Rings: The Fellowship of the Ring,2001,https://boxd.it/2b5O
|
||||||
|
2024-03-13,The Lord of the Rings: The Two Towers,2002,https://boxd.it/2b5E
|
||||||
|
2024-03-13,The Lord of the Rings: The Return of the King,2003,https://boxd.it/2b5u
|
||||||
|
2024-03-13,The Hobbit: An Unexpected Journey,2012,https://boxd.it/GZk
|
||||||
|
2024-03-13,The Hobbit: The Desolation of Smaug,2013,https://boxd.it/nmS
|
||||||
|
2024-03-13,The Hobbit: The Battle of the Five Armies,2014,https://boxd.it/43aU
|
||||||
|
2024-04-03,The Good Teacher,2024,https://boxd.it/BPFM
|
||||||
|
2024-05-12,Challengers,2024,https://boxd.it/zld0
|
||||||
|
2024-05-21,The Second Act,2024,https://boxd.it/HW9q
|
||||||
|
2024-06-30,The Count of Monte Cristo,2024,https://boxd.it/F1Nk
|
||||||
|
2024-07-14,The Animal Kingdom,2023,https://boxd.it/zzJk
|
||||||
|
2024-07-21,Dune: Part Two,2024,https://boxd.it/pUfA
|
||||||
|
2024-09-15,(500) Days of Summer,2009,https://boxd.it/1EmM
|
||||||
|
2024-09-15,Love at Second Sight,2019,https://boxd.it/kURO
|
||||||
|
2024-09-20,Snatch,2000,https://boxd.it/2b7U
|
||||||
|
2024-09-20,A Real Job,2023,https://boxd.it/ze2a
|
||||||
|
2024-09-28,How to Lose a Guy in 10 Days,2003,https://boxd.it/1XwG
|
||||||
|
2024-09-30,Spaceman,2024,https://boxd.it/nC20
|
||||||
|
2024-09-30,The Fabelmans,2022,https://boxd.it/ugoM
|
||||||
|
2024-09-30,Poor Things,2023,https://boxd.it/tNWU
|
||||||
|
2024-10-06,All Your Faces,2023,https://boxd.it/BOP2
|
||||||
|
2024-10-06,Emilia Pérez,2024,https://boxd.it/AP3G
|
||||||
|
2024-10-06,An Ordinary Case,2024,https://boxd.it/GYoq
|
||||||
|
2024-10-06,"No Chains, No Masters",2024,https://boxd.it/GBM0
|
||||||
|
2024-10-06,The Conjuring,2013,https://boxd.it/4sr2
|
||||||
|
2024-10-06,The Conjuring 2,2016,https://boxd.it/7GJg
|
||||||
|
2024-10-06,The Conjuring: The Devil Made Me Do It,2021,https://boxd.it/eXZY
|
||||||
|
2024-10-15,The Platform,2019,https://boxd.it/mUm6
|
||||||
|
2024-10-15,The Platform 2,2024,https://boxd.it/Gz88
|
||||||
|
2024-10-15,Annabelle: Creation,2017,https://boxd.it/dSxe
|
||||||
|
2024-10-15,Annabelle Comes Home,2019,https://boxd.it/iU5m
|
||||||
|
2024-10-15,Shaun of the Dead,2004,https://boxd.it/29J8
|
||||||
|
2024-10-15,Yes Man,2008,https://boxd.it/1WPW
|
||||||
|
2024-10-20,Dead Poets Society,1989,https://boxd.it/2aSg
|
||||||
|
2024-10-21,Burn Out,2017,https://boxd.it/grLu
|
||||||
|
2024-10-21,Ferris Bueller's Day Off,1986,https://boxd.it/1YPY
|
||||||
|
2024-10-23,Beating Hearts,2024,https://boxd.it/AeF4
|
||||||
|
2024-11-17,Monsieur Aznavour,2024,https://boxd.it/BSGI
|
||||||
|
2024-11-17,Lee,2023,https://boxd.it/vpTG
|
||||||
|
2024-11-18,The Substance,2024,https://boxd.it/zanS
|
||||||
|
2024-11-25,The Unholy,2021,https://boxd.it/nro0
|
||||||
|
2024-11-25,The Last Voyage of the Demeter,2023,https://boxd.it/nzTq
|
||||||
|
2024-12-08,Million Dollar Baby,2004,https://boxd.it/2bdI
|
||||||
|
2024-12-13,1408,2007,https://boxd.it/25Vu
|
||||||
|
2024-12-21,Green Book,2018,https://boxd.it/hErk
|
||||||
|
2024-12-23,The Marching Band,2024,https://boxd.it/BPIQ
|
||||||
|
2024-12-26,The Sweet Escape,2015,https://boxd.it/buMA
|
||||||
|
2025-01-01,Nosferatu,2024,https://boxd.it/f5eG
|
||||||
|
2025-01-04,Red Rooms,2023,https://boxd.it/ym4c
|
||||||
|
2025-01-06,How to Make a Killing,2024,https://boxd.it/JWI0
|
||||||
|
2025-01-11,The Witch,2015,https://boxd.it/9X0m
|
||||||
|
2025-01-11,Interview with the Vampire,1994,https://boxd.it/29XO
|
||||||
|
2025-01-13,We Live in Time,2024,https://boxd.it/FC5u
|
||||||
|
2025-01-20,The Virgin Suicides,1999,https://boxd.it/28JG
|
||||||
|
2025-01-20,Donnie Darko,2001,https://boxd.it/2b2A
|
||||||
|
2025-01-23,Beautiful Boy,2018,https://boxd.it/g76Q
|
||||||
|
2025-01-27,Carrie,1976,https://boxd.it/20ZQ
|
||||||
|
2025-01-27,District 9,2009,https://boxd.it/1Iik
|
||||||
|
2025-02-01,Good Time,2017,https://boxd.it/fcFu
|
||||||
|
2025-02-01,Polisse,2011,https://boxd.it/2rHk
|
||||||
|
2025-02-02,Borgo,2023,https://boxd.it/Book
|
||||||
|
2025-02-02,Latin for All,2024,https://boxd.it/CvLM
|
||||||
|
2025-02-22,The Gorge,2025,https://boxd.it/zRqK
|
||||||
|
2025-02-22,Dunkirk,2017,https://boxd.it/d0Y6
|
||||||
|
2025-03-06,Anora,2024,https://boxd.it/Egcw
|
||||||
|
2025-03-12,Mickey 17,2025,https://boxd.it/q1Dk
|
||||||
|
2025-03-30,Late Night with the Devil,2023,https://boxd.it/zo6G
|
||||||
|
2025-03-31,The Watchers,2024,https://boxd.it/F6Rw
|
||||||
|
2025-04-01,Irreversible,2002,https://boxd.it/29as
|
||||||
|
2025-04-05,Suspiria,2018,https://boxd.it/cioI
|
||||||
|
2025-04-08,It,2017,https://boxd.it/bC8e
|
||||||
|
2025-04-09,Elephant,2003,https://boxd.it/287i
|
||||||
|
2025-04-22,The Whale,2022,https://boxd.it/tw4c
|
||||||
|
2025-05-03,Bram Stoker's Dracula,1992,https://boxd.it/223a
|
||||||
|
2025-05-19,Natural Born Killers,1994,https://boxd.it/2aNg
|
||||||
|
2025-06-02,The Phoenician Scheme,2025,https://boxd.it/H0Ca
|
||||||
|
2025-06-07,Gladiator II,2024,https://boxd.it/kqQQ
|
||||||
|
2025-06-09,"To Live, To Die, To Live Again",2024,https://boxd.it/JaOu
|
||||||
|
2025-06-15,Guess Who's Calling!,2025,https://boxd.it/HPW6
|
||||||
|
2025-06-22,The Perks of Being a Wallflower,2012,https://boxd.it/2ZA8
|
||||||
|
2025-06-22,Slumdog Millionaire,2008,https://boxd.it/1S3E
|
||||||
|
2025-06-22,Licorice Pizza,2021,https://boxd.it/qTKY
|
||||||
|
2025-07-05,Drive My Car,2021,https://boxd.it/sv94
|
||||||
|
2025-07-06,King of My Castle,2024,https://boxd.it/DkGS
|
||||||
|
2025-07-20,Thunderbolts*,2025,https://boxd.it/BfbQ
|
||||||
|
2025-07-20,Titane,2021,https://boxd.it/nlQC
|
||||||
|
2025-07-27,"13 Days, 13 Nights: In the Hell of Kabul",2025,https://boxd.it/LLby
|
||||||
|
2025-08-04,Barbecue,2014,https://boxd.it/7kP2
|
||||||
|
2025-08-10,The Vourdalak,2023,https://boxd.it/DDdg
|
||||||
|
2025-08-10,Don't Breathe,2016,https://boxd.it/9yzw
|
||||||
|
2025-08-19,Transformers: The Last Knight,2017,https://boxd.it/b8xo
|
||||||
|
2025-08-28,Suspiria,1977,https://boxd.it/1SNW
|
||||||
|
2025-09-13,Trainspotting,1996,https://boxd.it/29XY
|
||||||
|
2025-09-14,Sirāt,2025,https://boxd.it/HxJo
|
||||||
|
2025-09-25,McWalter,2025,https://boxd.it/NDz2
|
||||||
|
2025-09-27,Some Like It Rare,2021,https://boxd.it/rpdC
|
||||||
|
2025-10-02,Koyaanisqatsi,1982,https://boxd.it/1U9E
|
||||||
|
2025-10-03,Punch-Drunk Love,2002,https://boxd.it/20E4
|
||||||
|
2025-10-04,Souleymane's Story,2024,https://boxd.it/HQVy
|
||||||
|
2025-10-07,One Battle After Another,2025,https://boxd.it/DUHM
|
||||||
|
2025-10-11,Zero Fucks Given,2021,https://boxd.it/vqk8
|
||||||
|
2025-10-18,Manchester by the Sea,2016,https://boxd.it/b2L0
|
||||||
|
2025-11-11,Frankenstein,2025,https://boxd.it/Ecsg
|
||||||
|
2025-11-13,Sinners,2025,https://boxd.it/KQMM
|
||||||
|
2025-11-13,Now You See Me,2013,https://boxd.it/2Bsu
|
||||||
|
2025-11-24,Ride Away,2024,https://boxd.it/OriU
|
||||||
|
2025-12-08,The Place Beyond the Pines,2012,https://boxd.it/3mDu
|
||||||
|
2025-12-15,Bugonia,2025,https://boxd.it/qeWY
|
||||||
|
2025-12-16,Past Lives,2023,https://boxd.it/oNB8
|
||||||
|
2025-12-21,Léon: The Professional,1994,https://boxd.it/2b8S
|
||||||
|
2025-12-23,Normal People,2020,https://boxd.it/q2VY
|
||||||
|
2025-12-25,City Lights,1931,https://boxd.it/29ki
|
||||||
|
2025-12-25,Insomnia,2002,https://boxd.it/2aB0
|
||||||
|
2025-12-27,The Seventh Seal,1957,https://boxd.it/2ahO
|
||||||
|
5
assets/stimulus_bootstrap.js
Normal file
5
assets/stimulus_bootstrap.js
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
import { startStimulusApp } from '@symfony/stimulus-bundle';
|
||||||
|
|
||||||
|
const app = startStimulusApp();
|
||||||
|
// register any custom, 3rd party controllers here
|
||||||
|
// app.register('some_controller_name', SomeImportedController);
|
||||||
3
assets/styles/app.css
Normal file
3
assets/styles/app.css
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
body {
|
||||||
|
background-color: skyblue;
|
||||||
|
}
|
||||||
21
bin/console
Executable file
21
bin/console
Executable file
@@ -0,0 +1,21 @@
|
|||||||
|
#!/usr/bin/env php
|
||||||
|
<?php
|
||||||
|
|
||||||
|
use App\Kernel;
|
||||||
|
use Symfony\Bundle\FrameworkBundle\Console\Application;
|
||||||
|
|
||||||
|
if (!is_dir(dirname(__DIR__).'/vendor')) {
|
||||||
|
throw new LogicException('Dependencies are missing. Try running "composer install".');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!is_file(dirname(__DIR__).'/vendor/autoload_runtime.php')) {
|
||||||
|
throw new LogicException('Symfony Runtime is missing. Try running "composer require symfony/runtime".');
|
||||||
|
}
|
||||||
|
|
||||||
|
require_once dirname(__DIR__).'/vendor/autoload_runtime.php';
|
||||||
|
|
||||||
|
return function (array $context) {
|
||||||
|
$kernel = new Kernel($context['APP_ENV'], (bool) $context['APP_DEBUG']);
|
||||||
|
|
||||||
|
return new Application($kernel);
|
||||||
|
};
|
||||||
4
bin/phpunit
Executable file
4
bin/phpunit
Executable file
@@ -0,0 +1,4 @@
|
|||||||
|
#!/usr/bin/env php
|
||||||
|
<?php
|
||||||
|
|
||||||
|
require dirname(__DIR__).'/vendor/phpunit/phpunit/phpunit';
|
||||||
18
compose.override.yaml
Normal file
18
compose.override.yaml
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
|
||||||
|
services:
|
||||||
|
###> doctrine/doctrine-bundle ###
|
||||||
|
database:
|
||||||
|
ports:
|
||||||
|
- "5432"
|
||||||
|
###< doctrine/doctrine-bundle ###
|
||||||
|
|
||||||
|
###> symfony/mailer ###
|
||||||
|
mailer:
|
||||||
|
image: axllent/mailpit
|
||||||
|
ports:
|
||||||
|
- "1025"
|
||||||
|
- "8025"
|
||||||
|
environment:
|
||||||
|
MP_SMTP_AUTH_ACCEPT_ANY: 1
|
||||||
|
MP_SMTP_AUTH_ALLOW_INSECURE: 1
|
||||||
|
###< symfony/mailer ###
|
||||||
25
compose.yaml
Normal file
25
compose.yaml
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
|
||||||
|
services:
|
||||||
|
###> doctrine/doctrine-bundle ###
|
||||||
|
database:
|
||||||
|
image: postgres:${POSTGRES_VERSION:-16}-alpine
|
||||||
|
environment:
|
||||||
|
POSTGRES_DB: ${POSTGRES_DB:-app}
|
||||||
|
# You should definitely change the password in production
|
||||||
|
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-!ChangeMe!}
|
||||||
|
POSTGRES_USER: ${POSTGRES_USER:-app}
|
||||||
|
healthcheck:
|
||||||
|
test: ["CMD", "pg_isready", "-d", "${POSTGRES_DB:-app}", "-U", "${POSTGRES_USER:-app}"]
|
||||||
|
timeout: 5s
|
||||||
|
retries: 5
|
||||||
|
start_period: 60s
|
||||||
|
volumes:
|
||||||
|
- database_data:/var/lib/postgresql/data:rw
|
||||||
|
# You may use a bind-mounted host directory instead, so that it is harder to accidentally remove the volume and lose all your data!
|
||||||
|
# - ./docker/db/data:/var/lib/postgresql/data:rw
|
||||||
|
###< doctrine/doctrine-bundle ###
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
###> doctrine/doctrine-bundle ###
|
||||||
|
database_data:
|
||||||
|
###< doctrine/doctrine-bundle ###
|
||||||
109
composer.json
Normal file
109
composer.json
Normal file
@@ -0,0 +1,109 @@
|
|||||||
|
{
|
||||||
|
"type": "project",
|
||||||
|
"license": "proprietary",
|
||||||
|
"minimum-stability": "stable",
|
||||||
|
"prefer-stable": true,
|
||||||
|
"require": {
|
||||||
|
"php": ">=8.4",
|
||||||
|
"ext-ctype": "*",
|
||||||
|
"ext-iconv": "*",
|
||||||
|
"doctrine/doctrine-bundle": "^3.2",
|
||||||
|
"doctrine/doctrine-migrations-bundle": "^4.0",
|
||||||
|
"doctrine/orm": "^3.6",
|
||||||
|
"phpdocumentor/reflection-docblock": "^6.0",
|
||||||
|
"phpstan/phpdoc-parser": "^2.3",
|
||||||
|
"symfony/asset": "8.0.*",
|
||||||
|
"symfony/asset-mapper": "8.0.*",
|
||||||
|
"symfony/console": "8.0.*",
|
||||||
|
"symfony/doctrine-messenger": "8.0.*",
|
||||||
|
"symfony/dotenv": "8.0.*",
|
||||||
|
"symfony/expression-language": "8.0.*",
|
||||||
|
"symfony/flex": "^2",
|
||||||
|
"symfony/form": "8.0.*",
|
||||||
|
"symfony/framework-bundle": "8.0.*",
|
||||||
|
"symfony/http-client": "8.0.*",
|
||||||
|
"symfony/intl": "8.0.*",
|
||||||
|
"symfony/mailer": "8.0.*",
|
||||||
|
"symfony/mime": "8.0.*",
|
||||||
|
"symfony/monolog-bundle": "^3.0|^4.0",
|
||||||
|
"symfony/notifier": "8.0.*",
|
||||||
|
"symfony/process": "8.0.*",
|
||||||
|
"symfony/property-access": "8.0.*",
|
||||||
|
"symfony/property-info": "8.0.*",
|
||||||
|
"symfony/runtime": "8.0.*",
|
||||||
|
"symfony/security-bundle": "8.0.*",
|
||||||
|
"symfony/serializer": "8.0.*",
|
||||||
|
"symfony/stimulus-bundle": "^2.32",
|
||||||
|
"symfony/string": "8.0.*",
|
||||||
|
"symfony/translation": "8.0.*",
|
||||||
|
"symfony/twig-bundle": "8.0.*",
|
||||||
|
"symfony/ux-turbo": "^2.32",
|
||||||
|
"symfony/validator": "8.0.*",
|
||||||
|
"symfony/web-link": "8.0.*",
|
||||||
|
"symfony/yaml": "8.0.*",
|
||||||
|
"twig/extra-bundle": "^2.12|^3.0",
|
||||||
|
"twig/twig": "^2.12|^3.0"
|
||||||
|
},
|
||||||
|
"config": {
|
||||||
|
"allow-plugins": {
|
||||||
|
"php-http/discovery": true,
|
||||||
|
"symfony/flex": true,
|
||||||
|
"symfony/runtime": true
|
||||||
|
},
|
||||||
|
"bump-after-update": true,
|
||||||
|
"sort-packages": true
|
||||||
|
},
|
||||||
|
"autoload": {
|
||||||
|
"psr-4": {
|
||||||
|
"App\\": "src/"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"autoload-dev": {
|
||||||
|
"psr-4": {
|
||||||
|
"App\\Tests\\": "tests/"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"replace": {
|
||||||
|
"symfony/polyfill-ctype": "*",
|
||||||
|
"symfony/polyfill-iconv": "*",
|
||||||
|
"symfony/polyfill-php72": "*",
|
||||||
|
"symfony/polyfill-php73": "*",
|
||||||
|
"symfony/polyfill-php74": "*",
|
||||||
|
"symfony/polyfill-php80": "*",
|
||||||
|
"symfony/polyfill-php81": "*",
|
||||||
|
"symfony/polyfill-php82": "*",
|
||||||
|
"symfony/polyfill-php83": "*",
|
||||||
|
"symfony/polyfill-php84": "*"
|
||||||
|
},
|
||||||
|
"scripts": {
|
||||||
|
"auto-scripts": {
|
||||||
|
"cache:clear": "symfony-cmd",
|
||||||
|
"assets:install %PUBLIC_DIR%": "symfony-cmd",
|
||||||
|
"importmap:install": "symfony-cmd"
|
||||||
|
},
|
||||||
|
"post-install-cmd": [
|
||||||
|
"@auto-scripts"
|
||||||
|
],
|
||||||
|
"post-update-cmd": [
|
||||||
|
"@auto-scripts"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"conflict": {
|
||||||
|
"symfony/symfony": "*"
|
||||||
|
},
|
||||||
|
"extra": {
|
||||||
|
"symfony": {
|
||||||
|
"allow-contrib": false,
|
||||||
|
"require": "8.0.*"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"phpunit/phpunit": "^12.5",
|
||||||
|
"symfony/browser-kit": "8.0.*",
|
||||||
|
"symfony/css-selector": "8.0.*",
|
||||||
|
"symfony/debug-bundle": "8.0.*",
|
||||||
|
"symfony/maker-bundle": "^1.0",
|
||||||
|
"symfony/stopwatch": "8.0.*",
|
||||||
|
"symfony/web-profiler-bundle": "8.0.*"
|
||||||
|
}
|
||||||
|
}
|
||||||
9701
composer.lock
generated
Normal file
9701
composer.lock
generated
Normal file
File diff suppressed because it is too large
Load Diff
16
config/bundles.php
Normal file
16
config/bundles.php
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
return [
|
||||||
|
Symfony\Bundle\FrameworkBundle\FrameworkBundle::class => ['all' => true],
|
||||||
|
Doctrine\Bundle\DoctrineBundle\DoctrineBundle::class => ['all' => true],
|
||||||
|
Doctrine\Bundle\MigrationsBundle\DoctrineMigrationsBundle::class => ['all' => true],
|
||||||
|
Symfony\Bundle\DebugBundle\DebugBundle::class => ['dev' => true],
|
||||||
|
Symfony\Bundle\TwigBundle\TwigBundle::class => ['all' => true],
|
||||||
|
Symfony\Bundle\WebProfilerBundle\WebProfilerBundle::class => ['dev' => true, 'test' => true],
|
||||||
|
Symfony\UX\StimulusBundle\StimulusBundle::class => ['all' => true],
|
||||||
|
Symfony\UX\Turbo\TurboBundle::class => ['all' => true],
|
||||||
|
Twig\Extra\TwigExtraBundle\TwigExtraBundle::class => ['all' => true],
|
||||||
|
Symfony\Bundle\SecurityBundle\SecurityBundle::class => ['all' => true],
|
||||||
|
Symfony\Bundle\MonologBundle\MonologBundle::class => ['all' => true],
|
||||||
|
Symfony\Bundle\MakerBundle\MakerBundle::class => ['dev' => true],
|
||||||
|
];
|
||||||
11
config/packages/asset_mapper.yaml
Normal file
11
config/packages/asset_mapper.yaml
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
framework:
|
||||||
|
asset_mapper:
|
||||||
|
# The paths to make available to the asset mapper.
|
||||||
|
paths:
|
||||||
|
- assets/
|
||||||
|
missing_import_mode: strict
|
||||||
|
|
||||||
|
when@prod:
|
||||||
|
framework:
|
||||||
|
asset_mapper:
|
||||||
|
missing_import_mode: warn
|
||||||
19
config/packages/cache.yaml
Normal file
19
config/packages/cache.yaml
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
framework:
|
||||||
|
cache:
|
||||||
|
# Unique name of your app: used to compute stable namespaces for cache keys.
|
||||||
|
#prefix_seed: your_vendor_name/app_name
|
||||||
|
|
||||||
|
# The "app" cache stores to the filesystem by default.
|
||||||
|
# The data in this cache should persist between deploys.
|
||||||
|
# Other options include:
|
||||||
|
|
||||||
|
# Redis
|
||||||
|
#app: cache.adapter.redis
|
||||||
|
#default_redis_provider: redis://localhost
|
||||||
|
|
||||||
|
# APCu (not recommended with heavy random-write workloads as memory fragmentation can cause perf issues)
|
||||||
|
#app: cache.adapter.apcu
|
||||||
|
|
||||||
|
# Namespaced pools use the above "app" backend by default
|
||||||
|
#pools:
|
||||||
|
#my.dedicated.cache: null
|
||||||
11
config/packages/csrf.yaml
Normal file
11
config/packages/csrf.yaml
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
# Enable stateless CSRF protection for forms and logins/logouts
|
||||||
|
framework:
|
||||||
|
form:
|
||||||
|
csrf_protection:
|
||||||
|
token_id: submit
|
||||||
|
|
||||||
|
csrf_protection:
|
||||||
|
stateless_token_ids:
|
||||||
|
- submit
|
||||||
|
- authenticate
|
||||||
|
- logout
|
||||||
5
config/packages/debug.yaml
Normal file
5
config/packages/debug.yaml
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
when@dev:
|
||||||
|
debug:
|
||||||
|
# Forwards VarDumper Data clones to a centralized server allowing to inspect dumps on CLI or in your browser.
|
||||||
|
# See the "server:dump" command to start a new server.
|
||||||
|
dump_destination: "tcp://%env(VAR_DUMPER_SERVER)%"
|
||||||
48
config/packages/doctrine.yaml
Normal file
48
config/packages/doctrine.yaml
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
doctrine:
|
||||||
|
dbal:
|
||||||
|
url: '%env(resolve:DATABASE_URL)%'
|
||||||
|
|
||||||
|
# IMPORTANT: You MUST configure your server version,
|
||||||
|
# either here or in the DATABASE_URL env var (see .env file)
|
||||||
|
#server_version: '16'
|
||||||
|
|
||||||
|
profiling_collect_backtrace: '%kernel.debug%'
|
||||||
|
orm:
|
||||||
|
validate_xml_mapping: true
|
||||||
|
naming_strategy: doctrine.orm.naming_strategy.underscore_number_aware
|
||||||
|
identity_generation_preferences:
|
||||||
|
Doctrine\DBAL\Platforms\PostgreSQLPlatform: identity
|
||||||
|
auto_mapping: true
|
||||||
|
mappings:
|
||||||
|
App:
|
||||||
|
type: attribute
|
||||||
|
is_bundle: false
|
||||||
|
dir: '%kernel.project_dir%/src/Entity'
|
||||||
|
prefix: 'App\Entity'
|
||||||
|
alias: App
|
||||||
|
controller_resolver:
|
||||||
|
auto_mapping: false
|
||||||
|
|
||||||
|
when@test:
|
||||||
|
doctrine:
|
||||||
|
dbal:
|
||||||
|
# "TEST_TOKEN" is typically set by ParaTest
|
||||||
|
dbname_suffix: '_test%env(default::TEST_TOKEN)%'
|
||||||
|
|
||||||
|
when@prod:
|
||||||
|
doctrine:
|
||||||
|
orm:
|
||||||
|
query_cache_driver:
|
||||||
|
type: pool
|
||||||
|
pool: doctrine.system_cache_pool
|
||||||
|
result_cache_driver:
|
||||||
|
type: pool
|
||||||
|
pool: doctrine.result_cache_pool
|
||||||
|
|
||||||
|
framework:
|
||||||
|
cache:
|
||||||
|
pools:
|
||||||
|
doctrine.result_cache_pool:
|
||||||
|
adapter: cache.app
|
||||||
|
doctrine.system_cache_pool:
|
||||||
|
adapter: cache.system
|
||||||
6
config/packages/doctrine_migrations.yaml
Normal file
6
config/packages/doctrine_migrations.yaml
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
doctrine_migrations:
|
||||||
|
migrations_paths:
|
||||||
|
# namespace is arbitrary but should be different from App\Migrations
|
||||||
|
# as migrations classes should NOT be autoloaded
|
||||||
|
'DoctrineMigrations': '%kernel.project_dir%/migrations'
|
||||||
|
enable_profiler: false
|
||||||
15
config/packages/framework.yaml
Normal file
15
config/packages/framework.yaml
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
# see https://symfony.com/doc/current/reference/configuration/framework.html
|
||||||
|
framework:
|
||||||
|
secret: '%env(APP_SECRET)%'
|
||||||
|
|
||||||
|
# Note that the session will be started ONLY if you read or write from it.
|
||||||
|
session: true
|
||||||
|
|
||||||
|
#esi: true
|
||||||
|
#fragments: true
|
||||||
|
|
||||||
|
when@test:
|
||||||
|
framework:
|
||||||
|
test: true
|
||||||
|
session:
|
||||||
|
storage_factory_id: session.storage.factory.mock_file
|
||||||
3
config/packages/mailer.yaml
Normal file
3
config/packages/mailer.yaml
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
framework:
|
||||||
|
mailer:
|
||||||
|
dsn: '%env(MAILER_DSN)%'
|
||||||
29
config/packages/messenger.yaml
Normal file
29
config/packages/messenger.yaml
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
framework:
|
||||||
|
messenger:
|
||||||
|
failure_transport: failed
|
||||||
|
|
||||||
|
transports:
|
||||||
|
# https://symfony.com/doc/current/messenger.html#transport-configuration
|
||||||
|
async:
|
||||||
|
dsn: '%env(MESSENGER_TRANSPORT_DSN)%'
|
||||||
|
options:
|
||||||
|
use_notify: true
|
||||||
|
check_delayed_interval: 60000
|
||||||
|
retry_strategy:
|
||||||
|
max_retries: 3
|
||||||
|
multiplier: 2
|
||||||
|
failed: 'doctrine://default?queue_name=failed'
|
||||||
|
# sync: 'sync://'
|
||||||
|
|
||||||
|
default_bus: messenger.bus.default
|
||||||
|
|
||||||
|
buses:
|
||||||
|
messenger.bus.default: []
|
||||||
|
|
||||||
|
routing:
|
||||||
|
Symfony\Component\Mailer\Messenger\SendEmailMessage: async
|
||||||
|
Symfony\Component\Notifier\Message\ChatMessage: async
|
||||||
|
Symfony\Component\Notifier\Message\SmsMessage: async
|
||||||
|
|
||||||
|
# Route your messages to the transports
|
||||||
|
# 'App\Message\YourMessage': async
|
||||||
55
config/packages/monolog.yaml
Normal file
55
config/packages/monolog.yaml
Normal file
@@ -0,0 +1,55 @@
|
|||||||
|
monolog:
|
||||||
|
channels:
|
||||||
|
- deprecation # Deprecations are logged in the dedicated "deprecation" channel when it exists
|
||||||
|
|
||||||
|
when@dev:
|
||||||
|
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"]
|
||||||
|
|
||||||
|
when@test:
|
||||||
|
monolog:
|
||||||
|
handlers:
|
||||||
|
main:
|
||||||
|
type: fingers_crossed
|
||||||
|
action_level: error
|
||||||
|
handler: nested
|
||||||
|
excluded_http_codes: [404, 405]
|
||||||
|
channels: ["!event"]
|
||||||
|
nested:
|
||||||
|
type: stream
|
||||||
|
path: "%kernel.logs_dir%/%kernel.environment%.log"
|
||||||
|
level: debug
|
||||||
|
|
||||||
|
when@prod:
|
||||||
|
monolog:
|
||||||
|
handlers:
|
||||||
|
main:
|
||||||
|
type: fingers_crossed
|
||||||
|
action_level: error
|
||||||
|
handler: nested
|
||||||
|
excluded_http_codes: [404, 405]
|
||||||
|
channels: ["!deprecation"]
|
||||||
|
buffer_size: 50 # How many messages should be saved? Prevent memory leaks
|
||||||
|
nested:
|
||||||
|
type: stream
|
||||||
|
path: php://stderr
|
||||||
|
level: debug
|
||||||
|
formatter: monolog.formatter.json
|
||||||
|
console:
|
||||||
|
type: console
|
||||||
|
process_psr_3_messages: false
|
||||||
|
channels: ["!event", "!doctrine"]
|
||||||
|
deprecation:
|
||||||
|
type: stream
|
||||||
|
channels: [deprecation]
|
||||||
|
path: php://stderr
|
||||||
|
formatter: monolog.formatter.json
|
||||||
12
config/packages/notifier.yaml
Normal file
12
config/packages/notifier.yaml
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
framework:
|
||||||
|
notifier:
|
||||||
|
chatter_transports:
|
||||||
|
texter_transports:
|
||||||
|
channel_policy:
|
||||||
|
# use chat/slack, chat/telegram, sms/twilio or sms/nexmo
|
||||||
|
urgent: ['email']
|
||||||
|
high: ['email']
|
||||||
|
medium: ['email']
|
||||||
|
low: ['email']
|
||||||
|
admin_recipients:
|
||||||
|
- { email: admin@example.com }
|
||||||
3
config/packages/property_info.yaml
Normal file
3
config/packages/property_info.yaml
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
framework:
|
||||||
|
property_info:
|
||||||
|
with_constructor_extractor: true
|
||||||
10
config/packages/routing.yaml
Normal file
10
config/packages/routing.yaml
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
framework:
|
||||||
|
router:
|
||||||
|
# Configure how to generate URLs in non-HTTP contexts, such as CLI commands.
|
||||||
|
# See https://symfony.com/doc/current/routing.html#generating-urls-in-commands
|
||||||
|
default_uri: '%env(DEFAULT_URI)%'
|
||||||
|
|
||||||
|
when@prod:
|
||||||
|
framework:
|
||||||
|
router:
|
||||||
|
strict_requirements: null
|
||||||
39
config/packages/security.yaml
Normal file
39
config/packages/security.yaml
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
security:
|
||||||
|
# https://symfony.com/doc/current/security.html#registering-the-user-hashing-passwords
|
||||||
|
password_hashers:
|
||||||
|
Symfony\Component\Security\Core\User\PasswordAuthenticatedUserInterface: 'auto'
|
||||||
|
|
||||||
|
# https://symfony.com/doc/current/security.html#loading-the-user-the-user-provider
|
||||||
|
providers:
|
||||||
|
users_in_memory: { memory: null }
|
||||||
|
|
||||||
|
firewalls:
|
||||||
|
dev:
|
||||||
|
# Ensure dev tools and static assets are always allowed
|
||||||
|
pattern: ^/(_profiler|_wdt|assets|build)/
|
||||||
|
security: false
|
||||||
|
main:
|
||||||
|
lazy: true
|
||||||
|
provider: users_in_memory
|
||||||
|
|
||||||
|
# Activate different ways to authenticate:
|
||||||
|
# https://symfony.com/doc/current/security.html#the-firewall
|
||||||
|
|
||||||
|
# https://symfony.com/doc/current/security/impersonating_user.html
|
||||||
|
# switch_user: true
|
||||||
|
|
||||||
|
# Note: Only the *first* matching rule is applied
|
||||||
|
access_control:
|
||||||
|
# - { path: ^/admin, roles: ROLE_ADMIN }
|
||||||
|
# - { path: ^/profile, roles: ROLE_USER }
|
||||||
|
|
||||||
|
when@test:
|
||||||
|
security:
|
||||||
|
password_hashers:
|
||||||
|
# Password hashers are resource-intensive by design to ensure security.
|
||||||
|
# In tests, it's safe to reduce their cost to improve performance.
|
||||||
|
Symfony\Component\Security\Core\User\PasswordAuthenticatedUserInterface:
|
||||||
|
algorithm: auto
|
||||||
|
cost: 4 # Lowest possible value for bcrypt
|
||||||
|
time_cost: 3 # Lowest possible value for argon
|
||||||
|
memory_cost: 10 # Lowest possible value for argon
|
||||||
5
config/packages/translation.yaml
Normal file
5
config/packages/translation.yaml
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
framework:
|
||||||
|
default_locale: en
|
||||||
|
translator:
|
||||||
|
default_path: '%kernel.project_dir%/translations'
|
||||||
|
providers:
|
||||||
6
config/packages/twig.yaml
Normal file
6
config/packages/twig.yaml
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
twig:
|
||||||
|
file_name_pattern: '*.twig'
|
||||||
|
|
||||||
|
when@test:
|
||||||
|
twig:
|
||||||
|
strict_variables: true
|
||||||
4
config/packages/ux_turbo.yaml
Normal file
4
config/packages/ux_turbo.yaml
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
# Enable stateless CSRF protection for forms and logins/logouts
|
||||||
|
framework:
|
||||||
|
csrf_protection:
|
||||||
|
check_header: true
|
||||||
11
config/packages/validator.yaml
Normal file
11
config/packages/validator.yaml
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
framework:
|
||||||
|
validation:
|
||||||
|
# Enables validator auto-mapping support.
|
||||||
|
# For instance, basic validation constraints will be inferred from Doctrine's metadata.
|
||||||
|
#auto_mapping:
|
||||||
|
# App\Entity\: []
|
||||||
|
|
||||||
|
when@test:
|
||||||
|
framework:
|
||||||
|
validation:
|
||||||
|
not_compromised_password: false
|
||||||
13
config/packages/web_profiler.yaml
Normal file
13
config/packages/web_profiler.yaml
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
when@dev:
|
||||||
|
web_profiler:
|
||||||
|
toolbar: true
|
||||||
|
|
||||||
|
framework:
|
||||||
|
profiler:
|
||||||
|
collect_serializer_data: true
|
||||||
|
|
||||||
|
when@test:
|
||||||
|
framework:
|
||||||
|
profiler:
|
||||||
|
collect: false
|
||||||
|
collect_serializer_data: true
|
||||||
5
config/preload.php
Normal file
5
config/preload.php
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
if (file_exists(dirname(__DIR__).'/var/cache/prod/App_KernelProdContainer.preload.php')) {
|
||||||
|
require dirname(__DIR__).'/var/cache/prod/App_KernelProdContainer.preload.php';
|
||||||
|
}
|
||||||
1613
config/reference.php
Normal file
1613
config/reference.php
Normal file
File diff suppressed because it is too large
Load Diff
11
config/routes.yaml
Normal file
11
config/routes.yaml
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
# yaml-language-server: $schema=../vendor/symfony/routing/Loader/schema/routing.schema.json
|
||||||
|
|
||||||
|
# This file is the entry point to configure the routes of your app.
|
||||||
|
# Methods with the #[Route] attribute are automatically imported.
|
||||||
|
# See also https://symfony.com/doc/current/routing.html
|
||||||
|
|
||||||
|
# To list all registered routes, run the following command:
|
||||||
|
# bin/console debug:router
|
||||||
|
|
||||||
|
controllers:
|
||||||
|
resource: routing.controllers
|
||||||
4
config/routes/framework.yaml
Normal file
4
config/routes/framework.yaml
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
when@dev:
|
||||||
|
_errors:
|
||||||
|
resource: '@FrameworkBundle/Resources/config/routing/errors.php'
|
||||||
|
prefix: /_error
|
||||||
3
config/routes/security.yaml
Normal file
3
config/routes/security.yaml
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
_security_logout:
|
||||||
|
resource: security.route_loader.logout
|
||||||
|
type: service
|
||||||
8
config/routes/web_profiler.yaml
Normal file
8
config/routes/web_profiler.yaml
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
when@dev:
|
||||||
|
web_profiler_wdt:
|
||||||
|
resource: '@WebProfilerBundle/Resources/config/routing/wdt.php'
|
||||||
|
prefix: /_wdt
|
||||||
|
|
||||||
|
web_profiler_profiler:
|
||||||
|
resource: '@WebProfilerBundle/Resources/config/routing/profiler.php'
|
||||||
|
prefix: /_profiler
|
||||||
23
config/services.yaml
Normal file
23
config/services.yaml
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
# yaml-language-server: $schema=../vendor/symfony/dependency-injection/Loader/schema/services.schema.json
|
||||||
|
|
||||||
|
# This file is the entry point to configure your own services.
|
||||||
|
# Files in the packages/ subdirectory configure your dependencies.
|
||||||
|
# See also https://symfony.com/doc/current/service_container/import.html
|
||||||
|
|
||||||
|
# Put parameters here that don't need to change on each machine where the app is deployed
|
||||||
|
# https://symfony.com/doc/current/best_practices.html#use-parameters-for-application-configuration
|
||||||
|
parameters:
|
||||||
|
|
||||||
|
services:
|
||||||
|
# default configuration for services in *this* file
|
||||||
|
_defaults:
|
||||||
|
autowire: true # Automatically injects dependencies in your services.
|
||||||
|
autoconfigure: true # Automatically registers your services as commands, event subscribers, etc.
|
||||||
|
|
||||||
|
# makes classes in src/ available to be used as services
|
||||||
|
# this creates a service per class whose id is the fully-qualified class name
|
||||||
|
App\:
|
||||||
|
resource: '../src/'
|
||||||
|
|
||||||
|
# add more service definitions when explicit configuration is needed
|
||||||
|
# please note that last definitions always *replace* previous ones
|
||||||
28
importmap.php
Normal file
28
importmap.php
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the importmap for this application.
|
||||||
|
*
|
||||||
|
* - "path" is a path inside the asset mapper system. Use the
|
||||||
|
* "debug:asset-map" command to see the full list of paths.
|
||||||
|
*
|
||||||
|
* - "entrypoint" (JavaScript only) set to true for any module that will
|
||||||
|
* be used as an "entrypoint" (and passed to the importmap() Twig function).
|
||||||
|
*
|
||||||
|
* The "importmap:require" command can be used to add new entries to this file.
|
||||||
|
*/
|
||||||
|
return [
|
||||||
|
'app' => [
|
||||||
|
'path' => './assets/app.js',
|
||||||
|
'entrypoint' => true,
|
||||||
|
],
|
||||||
|
'@hotwired/stimulus' => [
|
||||||
|
'version' => '3.2.2',
|
||||||
|
],
|
||||||
|
'@symfony/stimulus-bundle' => [
|
||||||
|
'path' => './vendor/symfony/stimulus-bundle/assets/dist/loader.js',
|
||||||
|
],
|
||||||
|
'@hotwired/turbo' => [
|
||||||
|
'version' => '7.3.0',
|
||||||
|
],
|
||||||
|
];
|
||||||
0
migrations/.gitignore
vendored
Normal file
0
migrations/.gitignore
vendored
Normal file
44
phpunit.dist.xml
Normal file
44
phpunit.dist.xml
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
|
||||||
|
<!-- https://phpunit.readthedocs.io/en/latest/configuration.html -->
|
||||||
|
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:noNamespaceSchemaLocation="vendor/phpunit/phpunit/phpunit.xsd"
|
||||||
|
colors="true"
|
||||||
|
failOnDeprecation="true"
|
||||||
|
failOnNotice="true"
|
||||||
|
failOnWarning="true"
|
||||||
|
bootstrap="tests/bootstrap.php"
|
||||||
|
cacheDirectory=".phpunit.cache"
|
||||||
|
>
|
||||||
|
<php>
|
||||||
|
<ini name="display_errors" value="1" />
|
||||||
|
<ini name="error_reporting" value="-1" />
|
||||||
|
<server name="APP_ENV" value="test" force="true" />
|
||||||
|
<server name="SHELL_VERBOSITY" value="-1" />
|
||||||
|
</php>
|
||||||
|
|
||||||
|
<testsuites>
|
||||||
|
<testsuite name="Project Test Suite">
|
||||||
|
<directory>tests</directory>
|
||||||
|
</testsuite>
|
||||||
|
</testsuites>
|
||||||
|
|
||||||
|
<source ignoreSuppressionOfDeprecations="true"
|
||||||
|
ignoreIndirectDeprecations="true"
|
||||||
|
restrictNotices="true"
|
||||||
|
restrictWarnings="true"
|
||||||
|
>
|
||||||
|
<include>
|
||||||
|
<directory>src</directory>
|
||||||
|
</include>
|
||||||
|
|
||||||
|
<deprecationTrigger>
|
||||||
|
<method>Doctrine\Deprecations\Deprecation::trigger</method>
|
||||||
|
<method>Doctrine\Deprecations\Deprecation::delegateTriggerToBackend</method>
|
||||||
|
<function>trigger_deprecation</function>
|
||||||
|
</deprecationTrigger>
|
||||||
|
</source>
|
||||||
|
|
||||||
|
<extensions>
|
||||||
|
</extensions>
|
||||||
|
</phpunit>
|
||||||
9
public/index.php
Normal file
9
public/index.php
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use App\Kernel;
|
||||||
|
|
||||||
|
require_once dirname(__DIR__).'/vendor/autoload_runtime.php';
|
||||||
|
|
||||||
|
return function (array $context) {
|
||||||
|
return new Kernel($context['APP_ENV'], (bool) $context['APP_DEBUG']);
|
||||||
|
};
|
||||||
0
src/Controller/.gitignore
vendored
Normal file
0
src/Controller/.gitignore
vendored
Normal file
31
src/Controller/HomepageController.php
Normal file
31
src/Controller/HomepageController.php
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace App\Controller;
|
||||||
|
|
||||||
|
use App\Gateway\TMDBGateway;
|
||||||
|
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
|
||||||
|
use Symfony\Component\HttpClient\Exception\ClientException;
|
||||||
|
use Symfony\Component\HttpFoundation\Response;
|
||||||
|
use Symfony\Component\Routing\Attribute\Route;
|
||||||
|
|
||||||
|
class HomepageController extends AbstractController
|
||||||
|
{
|
||||||
|
public function __construct(
|
||||||
|
private readonly TMDBGateway $TMDBGateway,
|
||||||
|
) {
|
||||||
|
}
|
||||||
|
|
||||||
|
#[Route('/')]
|
||||||
|
public function index(): Response
|
||||||
|
{
|
||||||
|
try {
|
||||||
|
dd($this->TMDBGateway->searchMovie('The Batman'));
|
||||||
|
} catch (ClientException $e) {
|
||||||
|
dd($e->getResponse()->getInfo());
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this->render('homepage/index.html.twig');
|
||||||
|
}
|
||||||
|
}
|
||||||
0
src/Entity/.gitignore
vendored
Normal file
0
src/Entity/.gitignore
vendored
Normal file
38
src/Gateway/TMDBGateway.php
Normal file
38
src/Gateway/TMDBGateway.php
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Gateway;
|
||||||
|
|
||||||
|
use Symfony\Component\DependencyInjection\Attribute\Autowire;
|
||||||
|
use Symfony\Contracts\HttpClient\HttpClientInterface;
|
||||||
|
|
||||||
|
class TMDBGateway
|
||||||
|
{
|
||||||
|
private const TMDB_URL = 'https://api.themoviedb.org/3';
|
||||||
|
private const SEARCH_URI = '/search/movie';
|
||||||
|
|
||||||
|
public function __construct(
|
||||||
|
private readonly HttpClientInterface $client,
|
||||||
|
#[Autowire('%env(TMDB_API_TOKEN)%')]
|
||||||
|
private readonly string $apiToken,
|
||||||
|
) {
|
||||||
|
}
|
||||||
|
|
||||||
|
public function findMovie(string $movieName)
|
||||||
|
{
|
||||||
|
$url = self::TMDB_URL.self::SEARCH_URI.'?'.http_build_query(['query' => $movieName]);
|
||||||
|
|
||||||
|
try {
|
||||||
|
$response = $this->client->request('GET', $url, ['headers' => $this->getHeaders()]);
|
||||||
|
$result = $response->getContent();
|
||||||
|
} catch (\Throwable) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
return json_decode($this->client->request('GET', $url, ['headers' => $this->getHeaders()])->getContent(), associative: true);
|
||||||
|
}
|
||||||
|
|
||||||
|
private function getHeaders(): array
|
||||||
|
{
|
||||||
|
return ['Authorization' => 'Bearer '.$this->apiToken, 'accept' => 'application/json'];
|
||||||
|
}
|
||||||
|
}
|
||||||
11
src/Kernel.php
Normal file
11
src/Kernel.php
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App;
|
||||||
|
|
||||||
|
use Symfony\Bundle\FrameworkBundle\Kernel\MicroKernelTrait;
|
||||||
|
use Symfony\Component\HttpKernel\Kernel as BaseKernel;
|
||||||
|
|
||||||
|
class Kernel extends BaseKernel
|
||||||
|
{
|
||||||
|
use MicroKernelTrait;
|
||||||
|
}
|
||||||
8
src/Model/TMDB/TMDBMovie.php
Normal file
8
src/Model/TMDB/TMDBMovie.php
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Model\TMDB;
|
||||||
|
|
||||||
|
class TMDBMovie
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
0
src/Repository/.gitignore
vendored
Normal file
0
src/Repository/.gitignore
vendored
Normal file
325
symfony.lock
Normal file
325
symfony.lock
Normal file
@@ -0,0 +1,325 @@
|
|||||||
|
{
|
||||||
|
"doctrine/deprecations": {
|
||||||
|
"version": "1.1",
|
||||||
|
"recipe": {
|
||||||
|
"repo": "github.com/symfony/recipes",
|
||||||
|
"branch": "main",
|
||||||
|
"version": "1.0",
|
||||||
|
"ref": "87424683adc81d7dc305eefec1fced883084aab9"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"doctrine/doctrine-bundle": {
|
||||||
|
"version": "3.2",
|
||||||
|
"recipe": {
|
||||||
|
"repo": "github.com/symfony/recipes",
|
||||||
|
"branch": "main",
|
||||||
|
"version": "3.0",
|
||||||
|
"ref": "18ee08e513ba0303fd09a01fc1c934870af06ffa"
|
||||||
|
},
|
||||||
|
"files": [
|
||||||
|
"config/packages/doctrine.yaml",
|
||||||
|
"src/Entity/.gitignore",
|
||||||
|
"src/Repository/.gitignore"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"doctrine/doctrine-migrations-bundle": {
|
||||||
|
"version": "4.0",
|
||||||
|
"recipe": {
|
||||||
|
"repo": "github.com/symfony/recipes",
|
||||||
|
"branch": "main",
|
||||||
|
"version": "3.1",
|
||||||
|
"ref": "1d01ec03c6ecbd67c3375c5478c9a423ae5d6a33"
|
||||||
|
},
|
||||||
|
"files": [
|
||||||
|
"config/packages/doctrine_migrations.yaml",
|
||||||
|
"migrations/.gitignore"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"phpunit/phpunit": {
|
||||||
|
"version": "12.5",
|
||||||
|
"recipe": {
|
||||||
|
"repo": "github.com/symfony/recipes",
|
||||||
|
"branch": "main",
|
||||||
|
"version": "11.1",
|
||||||
|
"ref": "1117deb12541f35793eec9fff7494d7aa12283fc"
|
||||||
|
},
|
||||||
|
"files": [
|
||||||
|
".env.test",
|
||||||
|
"phpunit.dist.xml",
|
||||||
|
"tests/bootstrap.php",
|
||||||
|
"bin/phpunit"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"symfony/asset-mapper": {
|
||||||
|
"version": "8.0",
|
||||||
|
"recipe": {
|
||||||
|
"repo": "github.com/symfony/recipes",
|
||||||
|
"branch": "main",
|
||||||
|
"version": "6.4",
|
||||||
|
"ref": "5ad1308aa756d58f999ffbe1540d1189f5d7d14a"
|
||||||
|
},
|
||||||
|
"files": [
|
||||||
|
"assets/app.js",
|
||||||
|
"assets/styles/app.css",
|
||||||
|
"config/packages/asset_mapper.yaml",
|
||||||
|
"importmap.php"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"symfony/console": {
|
||||||
|
"version": "8.0",
|
||||||
|
"recipe": {
|
||||||
|
"repo": "github.com/symfony/recipes",
|
||||||
|
"branch": "main",
|
||||||
|
"version": "5.3",
|
||||||
|
"ref": "1781ff40d8a17d87cf53f8d4cf0c8346ed2bb461"
|
||||||
|
},
|
||||||
|
"files": [
|
||||||
|
"bin/console"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"symfony/debug-bundle": {
|
||||||
|
"version": "8.0",
|
||||||
|
"recipe": {
|
||||||
|
"repo": "github.com/symfony/recipes",
|
||||||
|
"branch": "main",
|
||||||
|
"version": "5.3",
|
||||||
|
"ref": "5aa8aa48234c8eb6dbdd7b3cd5d791485d2cec4b"
|
||||||
|
},
|
||||||
|
"files": [
|
||||||
|
"config/packages/debug.yaml"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"symfony/flex": {
|
||||||
|
"version": "2.10",
|
||||||
|
"recipe": {
|
||||||
|
"repo": "github.com/symfony/recipes",
|
||||||
|
"branch": "main",
|
||||||
|
"version": "2.4",
|
||||||
|
"ref": "52e9754527a15e2b79d9a610f98185a1fe46622a"
|
||||||
|
},
|
||||||
|
"files": [
|
||||||
|
".env",
|
||||||
|
".env.dev"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"symfony/form": {
|
||||||
|
"version": "8.0",
|
||||||
|
"recipe": {
|
||||||
|
"repo": "github.com/symfony/recipes",
|
||||||
|
"branch": "main",
|
||||||
|
"version": "7.2",
|
||||||
|
"ref": "7d86a6723f4a623f59e2bf966b6aad2fc461d36b"
|
||||||
|
},
|
||||||
|
"files": [
|
||||||
|
"config/packages/csrf.yaml"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"symfony/framework-bundle": {
|
||||||
|
"version": "8.0",
|
||||||
|
"recipe": {
|
||||||
|
"repo": "github.com/symfony/recipes",
|
||||||
|
"branch": "main",
|
||||||
|
"version": "7.4",
|
||||||
|
"ref": "09f6e081c763a206802674ce0cb34a022f0ffc6d"
|
||||||
|
},
|
||||||
|
"files": [
|
||||||
|
"config/packages/cache.yaml",
|
||||||
|
"config/packages/framework.yaml",
|
||||||
|
"config/preload.php",
|
||||||
|
"config/routes/framework.yaml",
|
||||||
|
"config/services.yaml",
|
||||||
|
"public/index.php",
|
||||||
|
"src/Controller/.gitignore",
|
||||||
|
"src/Kernel.php",
|
||||||
|
".editorconfig"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"symfony/mailer": {
|
||||||
|
"version": "8.0",
|
||||||
|
"recipe": {
|
||||||
|
"repo": "github.com/symfony/recipes",
|
||||||
|
"branch": "main",
|
||||||
|
"version": "4.3",
|
||||||
|
"ref": "09051cfde49476e3c12cd3a0e44289ace1c75a4f"
|
||||||
|
},
|
||||||
|
"files": [
|
||||||
|
"config/packages/mailer.yaml"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"symfony/maker-bundle": {
|
||||||
|
"version": "1.65",
|
||||||
|
"recipe": {
|
||||||
|
"repo": "github.com/symfony/recipes",
|
||||||
|
"branch": "main",
|
||||||
|
"version": "1.0",
|
||||||
|
"ref": "fadbfe33303a76e25cb63401050439aa9b1a9c7f"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"symfony/messenger": {
|
||||||
|
"version": "8.0",
|
||||||
|
"recipe": {
|
||||||
|
"repo": "github.com/symfony/recipes",
|
||||||
|
"branch": "main",
|
||||||
|
"version": "6.0",
|
||||||
|
"ref": "d8936e2e2230637ef97e5eecc0eea074eecae58b"
|
||||||
|
},
|
||||||
|
"files": [
|
||||||
|
"config/packages/messenger.yaml"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"symfony/monolog-bundle": {
|
||||||
|
"version": "4.0",
|
||||||
|
"recipe": {
|
||||||
|
"repo": "github.com/symfony/recipes",
|
||||||
|
"branch": "main",
|
||||||
|
"version": "3.7",
|
||||||
|
"ref": "1b9efb10c54cb51c713a9391c9300ff8bceda459"
|
||||||
|
},
|
||||||
|
"files": [
|
||||||
|
"config/packages/monolog.yaml"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"symfony/notifier": {
|
||||||
|
"version": "8.0",
|
||||||
|
"recipe": {
|
||||||
|
"repo": "github.com/symfony/recipes",
|
||||||
|
"branch": "main",
|
||||||
|
"version": "5.0",
|
||||||
|
"ref": "178877daf79d2dbd62129dd03612cb1a2cb407cc"
|
||||||
|
},
|
||||||
|
"files": [
|
||||||
|
"config/packages/notifier.yaml"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"symfony/property-info": {
|
||||||
|
"version": "8.0",
|
||||||
|
"recipe": {
|
||||||
|
"repo": "github.com/symfony/recipes",
|
||||||
|
"branch": "main",
|
||||||
|
"version": "7.3",
|
||||||
|
"ref": "dae70df71978ae9226ae915ffd5fad817f5ca1f7"
|
||||||
|
},
|
||||||
|
"files": [
|
||||||
|
"config/packages/property_info.yaml"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"symfony/routing": {
|
||||||
|
"version": "8.0",
|
||||||
|
"recipe": {
|
||||||
|
"repo": "github.com/symfony/recipes",
|
||||||
|
"branch": "main",
|
||||||
|
"version": "7.4",
|
||||||
|
"ref": "bc94c4fd86f393f3ab3947c18b830ea343e51ded"
|
||||||
|
},
|
||||||
|
"files": [
|
||||||
|
"config/packages/routing.yaml",
|
||||||
|
"config/routes.yaml"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"symfony/security-bundle": {
|
||||||
|
"version": "8.0",
|
||||||
|
"recipe": {
|
||||||
|
"repo": "github.com/symfony/recipes",
|
||||||
|
"branch": "main",
|
||||||
|
"version": "7.4",
|
||||||
|
"ref": "c42fee7802181cdd50f61b8622715829f5d2335c"
|
||||||
|
},
|
||||||
|
"files": [
|
||||||
|
"config/packages/security.yaml",
|
||||||
|
"config/routes/security.yaml"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"symfony/stimulus-bundle": {
|
||||||
|
"version": "2.32",
|
||||||
|
"recipe": {
|
||||||
|
"repo": "github.com/symfony/recipes",
|
||||||
|
"branch": "main",
|
||||||
|
"version": "2.24",
|
||||||
|
"ref": "3357f2fa6627b93658d8e13baa416b2a94a50c5f"
|
||||||
|
},
|
||||||
|
"files": [
|
||||||
|
"assets/controllers.json",
|
||||||
|
"assets/controllers/csrf_protection_controller.js",
|
||||||
|
"assets/controllers/hello_controller.js",
|
||||||
|
"assets/stimulus_bootstrap.js"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"symfony/translation": {
|
||||||
|
"version": "8.0",
|
||||||
|
"recipe": {
|
||||||
|
"repo": "github.com/symfony/recipes",
|
||||||
|
"branch": "main",
|
||||||
|
"version": "6.3",
|
||||||
|
"ref": "620a1b84865ceb2ba304c8f8bf2a185fbf32a843"
|
||||||
|
},
|
||||||
|
"files": [
|
||||||
|
"config/packages/translation.yaml",
|
||||||
|
"translations/.gitignore"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"symfony/twig-bundle": {
|
||||||
|
"version": "8.0",
|
||||||
|
"recipe": {
|
||||||
|
"repo": "github.com/symfony/recipes",
|
||||||
|
"branch": "main",
|
||||||
|
"version": "6.4",
|
||||||
|
"ref": "cab5fd2a13a45c266d45a7d9337e28dee6272877"
|
||||||
|
},
|
||||||
|
"files": [
|
||||||
|
"config/packages/twig.yaml",
|
||||||
|
"templates/base.html.twig"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"symfony/ux-turbo": {
|
||||||
|
"version": "2.32",
|
||||||
|
"recipe": {
|
||||||
|
"repo": "github.com/symfony/recipes",
|
||||||
|
"branch": "main",
|
||||||
|
"version": "2.20",
|
||||||
|
"ref": "287f7c6eb6e9b65e422d34c00795b360a787380b"
|
||||||
|
},
|
||||||
|
"files": [
|
||||||
|
"config/packages/ux_turbo.yaml"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"symfony/validator": {
|
||||||
|
"version": "8.0",
|
||||||
|
"recipe": {
|
||||||
|
"repo": "github.com/symfony/recipes",
|
||||||
|
"branch": "main",
|
||||||
|
"version": "7.0",
|
||||||
|
"ref": "8c1c4e28d26a124b0bb273f537ca8ce443472bfd"
|
||||||
|
},
|
||||||
|
"files": [
|
||||||
|
"config/packages/validator.yaml"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"symfony/web-profiler-bundle": {
|
||||||
|
"version": "8.0",
|
||||||
|
"recipe": {
|
||||||
|
"repo": "github.com/symfony/recipes",
|
||||||
|
"branch": "main",
|
||||||
|
"version": "7.3",
|
||||||
|
"ref": "a363460c1b0b4a4d0242f2ce1a843ca0f6ac9026"
|
||||||
|
},
|
||||||
|
"files": [
|
||||||
|
"config/packages/web_profiler.yaml",
|
||||||
|
"config/routes/web_profiler.yaml"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"symfony/webapp-pack": {
|
||||||
|
"version": "1.4",
|
||||||
|
"recipe": {
|
||||||
|
"repo": "github.com/symfony/recipes",
|
||||||
|
"branch": "main",
|
||||||
|
"version": "1.0",
|
||||||
|
"ref": "7d5c5e282f7e2c36a2c3bbb1504f78456c352407"
|
||||||
|
},
|
||||||
|
"files": [
|
||||||
|
"config/packages/messenger.yaml"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"twig/extra-bundle": {
|
||||||
|
"version": "v3.22.2"
|
||||||
|
}
|
||||||
|
}
|
||||||
17
templates/base.html.twig
Normal file
17
templates/base.html.twig
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<title>{% block title %}Welcome!{% 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>">
|
||||||
|
{% block stylesheets %}
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block javascripts %}
|
||||||
|
{% block importmap %}{{ importmap('app') }}{% endblock %}
|
||||||
|
{% endblock %}
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
{% block body %}{% endblock %}
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
1
templates/homepage/index.html.twig
Normal file
1
templates/homepage/index.html.twig
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{% extends 'base.html.twig' %}
|
||||||
13
tests/bootstrap.php
Normal file
13
tests/bootstrap.php
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use Symfony\Component\Dotenv\Dotenv;
|
||||||
|
|
||||||
|
require dirname(__DIR__).'/vendor/autoload.php';
|
||||||
|
|
||||||
|
if (method_exists(Dotenv::class, 'bootEnv')) {
|
||||||
|
(new Dotenv())->bootEnv(dirname(__DIR__).'/.env');
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($_SERVER['APP_DEBUG']) {
|
||||||
|
umask(0000);
|
||||||
|
}
|
||||||
0
translations/.gitignore
vendored
Normal file
0
translations/.gitignore
vendored
Normal file
Reference in New Issue
Block a user