diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..13566b81b018ad684f3a35fee301741b2734c8f4 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Editor-based HTTP Client requests +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/.idea/iqdevTranningProgram.iml b/.idea/iqdevTranningProgram.iml new file mode 100644 index 0000000000000000000000000000000000000000..54d8720cc242bb9e2d9c1e29990d5988f667bb5b --- /dev/null +++ b/.idea/iqdevTranningProgram.iml @@ -0,0 +1,141 @@ +<?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/cache" /> + <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/masterminds/html5" /> + <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/code-unit" /> + <excludeFolder url="file://$MODULE_DIR$/vendor/sebastian/code-unit-reverse-lookup" /> + <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/resource-operations" /> + <excludeFolder url="file://$MODULE_DIR$/vendor/sebastian/type" /> + <excludeFolder url="file://$MODULE_DIR$/vendor/sebastian/version" /> + <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/phpunit-bridge" /> + <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-php83" /> + <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/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" /> + <excludeFolder url="file://$MODULE_DIR$/var" /> + </content> + <orderEntry type="inheritedJdk" /> + <orderEntry type="sourceFolder" forTests="false" /> + </component> +</module> \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000000000000000000000000000000000000..aedf51d4705090b3af7b4d50da524da260b488fd --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="ProjectModuleManager"> + <modules> + <module fileurl="file://$PROJECT_DIR$/.idea/iqdevTranningProgram.iml" filepath="$PROJECT_DIR$/.idea/iqdevTranningProgram.iml" /> + </modules> + </component> +</project> \ No newline at end of file diff --git a/.idea/php.xml b/.idea/php.xml new file mode 100644 index 0000000000000000000000000000000000000000..762b2dfb47f89213485944d42f43f98703d63d19 --- /dev/null +++ b/.idea/php.xml @@ -0,0 +1,158 @@ +<?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/psr/cache" /> + <path value="$PROJECT_DIR$/vendor/psr/link" /> + <path value="$PROJECT_DIR$/vendor/psr/log" /> + <path value="$PROJECT_DIR$/vendor/psr/container" /> + <path value="$PROJECT_DIR$/vendor/psr/clock" /> + <path value="$PROJECT_DIR$/vendor/psr/event-dispatcher" /> + <path value="$PROJECT_DIR$/vendor/twig/twig" /> + <path value="$PROJECT_DIR$/vendor/twig/extra-bundle" /> + <path value="$PROJECT_DIR$/vendor/nikic/php-parser" /> + <path value="$PROJECT_DIR$/vendor/egulias/email-validator" /> + <path value="$PROJECT_DIR$/vendor/monolog/monolog" /> + <path value="$PROJECT_DIR$/vendor/myclabs/deep-copy" /> + <path value="$PROJECT_DIR$/vendor/phar-io/manifest" /> + <path value="$PROJECT_DIR$/vendor/phar-io/version" /> + <path value="$PROJECT_DIR$/vendor/phpstan/phpdoc-parser" /> + <path value="$PROJECT_DIR$/vendor/phpunit/php-text-template" /> + <path value="$PROJECT_DIR$/vendor/phpunit/php-invoker" /> + <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/symfony/dom-crawler" /> + <path value="$PROJECT_DIR$/vendor/symfony/intl" /> + <path value="$PROJECT_DIR$/vendor/symfony/cache" /> + <path value="$PROJECT_DIR$/vendor/symfony/dependency-injection" /> + <path value="$PROJECT_DIR$/vendor/symfony/mime" /> + <path value="$PROJECT_DIR$/vendor/symfony/polyfill-intl-grapheme" /> + <path value="$PROJECT_DIR$/vendor/symfony/string" /> + <path value="$PROJECT_DIR$/vendor/symfony/asset" /> + <path value="$PROJECT_DIR$/vendor/symfony/security-http" /> + <path value="$PROJECT_DIR$/vendor/symfony/security-csrf" /> + <path value="$PROJECT_DIR$/vendor/symfony/event-dispatcher-contracts" /> + <path value="$PROJECT_DIR$/vendor/symfony/dotenv" /> + <path value="$PROJECT_DIR$/vendor/symfony/translation" /> + <path value="$PROJECT_DIR$/vendor/symfony/translation-contracts" /> + <path value="$PROJECT_DIR$/vendor/symfony/yaml" /> + <path value="$PROJECT_DIR$/vendor/symfony/serializer" /> + <path value="$PROJECT_DIR$/vendor/symfony/doctrine-messenger" /> + <path value="$PROJECT_DIR$/vendor/symfony/error-handler" /> + <path value="$PROJECT_DIR$/vendor/symfony/http-foundation" /> + <path value="$PROJECT_DIR$/vendor/symfony/security-bundle" /> + <path value="$PROJECT_DIR$/vendor/symfony/web-profiler-bundle" /> + <path value="$PROJECT_DIR$/vendor/symfony/var-dumper" /> + <path value="$PROJECT_DIR$/vendor/symfony/config" /> + <path value="$PROJECT_DIR$/vendor/symfony/polyfill-php83" /> + <path value="$PROJECT_DIR$/vendor/symfony/finder" /> + <path value="$PROJECT_DIR$/vendor/symfony/ux-turbo" /> + <path value="$PROJECT_DIR$/vendor/symfony/cache-contracts" /> + <path value="$PROJECT_DIR$/vendor/symfony/polyfill-mbstring" /> + <path value="$PROJECT_DIR$/vendor/symfony/css-selector" /> + <path value="$PROJECT_DIR$/vendor/symfony/security-core" /> + <path value="$PROJECT_DIR$/vendor/symfony/property-access" /> + <path value="$PROJECT_DIR$/vendor/symfony/validator" /> + <path value="$PROJECT_DIR$/vendor/symfony/mailer" /> + <path value="$PROJECT_DIR$/vendor/symfony/monolog-bridge" /> + <path value="$PROJECT_DIR$/vendor/symfony/debug-bundle" /> + <path value="$PROJECT_DIR$/vendor/symfony/filesystem" /> + <path value="$PROJECT_DIR$/vendor/symfony/console" /> + <path value="$PROJECT_DIR$/vendor/symfony/twig-bridge" /> + <path value="$PROJECT_DIR$/vendor/symfony/process" /> + <path value="$PROJECT_DIR$/vendor/symfony/service-contracts" /> + <path value="$PROJECT_DIR$/vendor/symfony/messenger" /> + <path value="$PROJECT_DIR$/vendor/symfony/deprecation-contracts" /> + <path value="$PROJECT_DIR$/vendor/symfony/http-client-contracts" /> + <path value="$PROJECT_DIR$/vendor/symfony/var-exporter" /> + <path value="$PROJECT_DIR$/vendor/symfony/monolog-bundle" /> + <path value="$PROJECT_DIR$/vendor/symfony/http-client" /> + <path value="$PROJECT_DIR$/vendor/symfony/clock" /> + <path value="$PROJECT_DIR$/vendor/symfony/doctrine-bridge" /> + <path value="$PROJECT_DIR$/vendor/symfony/phpunit-bridge" /> + <path value="$PROJECT_DIR$/vendor/symfony/routing" /> + <path value="$PROJECT_DIR$/vendor/symfony/web-link" /> + <path value="$PROJECT_DIR$/vendor/symfony/notifier" /> + <path value="$PROJECT_DIR$/vendor/symfony/property-info" /> + <path value="$PROJECT_DIR$/vendor/symfony/asset-mapper" /> + <path value="$PROJECT_DIR$/vendor/symfony/expression-language" /> + <path value="$PROJECT_DIR$/vendor/symfony/http-kernel" /> + <path value="$PROJECT_DIR$/vendor/symfony/browser-kit" /> + <path value="$PROJECT_DIR$/vendor/symfony/flex" /> + <path value="$PROJECT_DIR$/vendor/symfony/polyfill-intl-idn" /> + <path value="$PROJECT_DIR$/vendor/symfony/twig-bundle" /> + <path value="$PROJECT_DIR$/vendor/symfony/stopwatch" /> + <path value="$PROJECT_DIR$/vendor/symfony/polyfill-intl-icu" /> + <path value="$PROJECT_DIR$/vendor/symfony/polyfill-intl-normalizer" /> + <path value="$PROJECT_DIR$/vendor/symfony/event-dispatcher" /> + <path value="$PROJECT_DIR$/vendor/symfony/stimulus-bundle" /> + <path value="$PROJECT_DIR$/vendor/symfony/options-resolver" /> + <path value="$PROJECT_DIR$/vendor/symfony/password-hasher" /> + <path value="$PROJECT_DIR$/vendor/symfony/maker-bundle" /> + <path value="$PROJECT_DIR$/vendor/symfony/runtime" /> + <path value="$PROJECT_DIR$/vendor/symfony/framework-bundle" /> + <path value="$PROJECT_DIR$/vendor/symfony/form" /> + <path value="$PROJECT_DIR$/vendor/theseer/tokenizer" /> + <path value="$PROJECT_DIR$/vendor/doctrine/cache" /> + <path value="$PROJECT_DIR$/vendor/doctrine/doctrine-bundle" /> + <path value="$PROJECT_DIR$/vendor/doctrine/event-manager" /> + <path value="$PROJECT_DIR$/vendor/doctrine/collections" /> + <path value="$PROJECT_DIR$/vendor/doctrine/deprecations" /> + <path value="$PROJECT_DIR$/vendor/doctrine/lexer" /> + <path value="$PROJECT_DIR$/vendor/doctrine/persistence" /> + <path value="$PROJECT_DIR$/vendor/doctrine/orm" /> + <path value="$PROJECT_DIR$/vendor/doctrine/inflector" /> + <path value="$PROJECT_DIR$/vendor/doctrine/sql-formatter" /> + <path value="$PROJECT_DIR$/vendor/doctrine/doctrine-migrations-bundle" /> + <path value="$PROJECT_DIR$/vendor/doctrine/instantiator" /> + <path value="$PROJECT_DIR$/vendor/doctrine/dbal" /> + <path value="$PROJECT_DIR$/vendor/doctrine/migrations" /> + <path value="$PROJECT_DIR$/vendor/sebastian/environment" /> + <path value="$PROJECT_DIR$/vendor/sebastian/diff" /> + <path value="$PROJECT_DIR$/vendor/sebastian/resource-operations" /> + <path value="$PROJECT_DIR$/vendor/sebastian/recursion-context" /> + <path value="$PROJECT_DIR$/vendor/sebastian/cli-parser" /> + <path value="$PROJECT_DIR$/vendor/sebastian/code-unit" /> + <path value="$PROJECT_DIR$/vendor/sebastian/object-enumerator" /> + <path value="$PROJECT_DIR$/vendor/sebastian/object-reflector" /> + <path value="$PROJECT_DIR$/vendor/sebastian/complexity" /> + <path value="$PROJECT_DIR$/vendor/sebastian/comparator" /> + <path value="$PROJECT_DIR$/vendor/sebastian/lines-of-code" /> + <path value="$PROJECT_DIR$/vendor/sebastian/version" /> + <path value="$PROJECT_DIR$/vendor/sebastian/exporter" /> + <path value="$PROJECT_DIR$/vendor/sebastian/type" /> + <path value="$PROJECT_DIR$/vendor/sebastian/global-state" /> + <path value="$PROJECT_DIR$/vendor/sebastian/code-unit-reverse-lookup" /> + <path value="$PROJECT_DIR$/vendor/webmozart/assert" /> + <path value="$PROJECT_DIR$/vendor/masterminds/html5" /> + <path value="$PROJECT_DIR$/vendor/phpdocumentor/reflection-common" /> + <path value="$PROJECT_DIR$/vendor/phpdocumentor/type-resolver" /> + <path value="$PROJECT_DIR$/vendor/phpdocumentor/reflection-docblock" /> + <path value="$PROJECT_DIR$/vendor/composer" /> + </include_path> + </component> + <component name="PhpProjectSharedConfiguration" php_language_level="8.1" /> + <component name="PhpStanOptionsConfiguration"> + <option name="transferred" value="true" /> + </component> + <component name="PhpUnit"> + <phpunit_settings> + <PhpUnitSettings configuration_file_path="$PROJECT_DIR$/phpunit.xml.dist" custom_loader_path="$PROJECT_DIR$/vendor/autoload.php" use_configuration_file="true" /> + </phpunit_settings> + </component> + <component name="PsalmOptionsConfiguration"> + <option name="transferred" value="true" /> + </component> +</project> \ No newline at end of file diff --git a/.idea/phpunit.xml b/.idea/phpunit.xml new file mode 100644 index 0000000000000000000000000000000000000000..4f8104cfb166aed9afb9fa8317271ebd4f44e5cb --- /dev/null +++ b/.idea/phpunit.xml @@ -0,0 +1,10 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="PHPUnit"> + <option name="directories"> + <list> + <option value="$PROJECT_DIR$/tests" /> + </list> + </option> + </component> +</project> \ No newline at end of file diff --git a/.idea/sonarlint/issuestore/0/e/0e61f67641b441bb3ee38e903c594d99cafa14b4 b/.idea/sonarlint/issuestore/0/e/0e61f67641b441bb3ee38e903c594d99cafa14b4 new file mode 100644 index 0000000000000000000000000000000000000000..ef18277ec815ab66f9347e4276513938f9fc5984 --- /dev/null +++ b/.idea/sonarlint/issuestore/0/e/0e61f67641b441bb3ee38e903c594d99cafa14b4 @@ -0,0 +1,2 @@ + +f php:S4833"QReplace "require_once" with namespace import mechanism through the "use" keyword.(úÕ§ò \ No newline at end of file diff --git a/.idea/sonarlint/issuestore/1/1/11fc5ee351c0edf973b3158acd40705a072901f7 b/.idea/sonarlint/issuestore/1/1/11fc5ee351c0edf973b3158acd40705a072901f7 new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/.idea/sonarlint/issuestore/7/c/7c103dcd8c0314a8821f84f7886754511983a720 b/.idea/sonarlint/issuestore/7/c/7c103dcd8c0314a8821f84f7886754511983a720 new file mode 100644 index 0000000000000000000000000000000000000000..49baffe2daef275d9641cc73fbdcc8705cfd0037 --- /dev/null +++ b/.idea/sonarlint/issuestore/7/c/7c103dcd8c0314a8821f84f7886754511983a720 @@ -0,0 +1,2 @@ + +Œphp:S112"FDefine and throw a dedicated exception instead of using a generic one.(÷¾Þ–ýÿÿÿÿ8¼Èñýë1J$639b0b04-18e2-4d6f-b884-25955f0cf69c \ No newline at end of file diff --git a/.idea/sonarlint/issuestore/d/a/dacdf19231dacf48f340f1ddb51182a025c0e074 b/.idea/sonarlint/issuestore/d/a/dacdf19231dacf48f340f1ddb51182a025c0e074 new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/.idea/sonarlint/issuestore/index.pb b/.idea/sonarlint/issuestore/index.pb new file mode 100644 index 0000000000000000000000000000000000000000..952c8a69794caa637ef4b2d74236ebf8f3ae2674 --- /dev/null +++ b/.idea/sonarlint/issuestore/index.pb @@ -0,0 +1,11 @@ + +_ +/src/Controller/ReadFileLineByLineController.php,1/1/11fc5ee351c0edf973b3158acd40705a072901f7 +F +public/HelloWorld.html,d/a/dacdf19231dacf48f340f1ddb51182a025c0e074 +@ +public/index.php,0/e/0e61f67641b441bb3ee38e903c594d99cafa14b4 +_ +/src/Repository/ReadFileLineByLineRepository.php,7/c/7c103dcd8c0314a8821f84f7886754511983a720 +X +(src/Actions/ReadFileLineByLineAction.php,b/b/bb599184d4f741824c29e585018cdb8069747a80 \ No newline at end of file diff --git a/.idea/sonarlint/securityhotspotstore/0/e/0e61f67641b441bb3ee38e903c594d99cafa14b4 b/.idea/sonarlint/securityhotspotstore/0/e/0e61f67641b441bb3ee38e903c594d99cafa14b4 new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/.idea/sonarlint/securityhotspotstore/1/1/11fc5ee351c0edf973b3158acd40705a072901f7 b/.idea/sonarlint/securityhotspotstore/1/1/11fc5ee351c0edf973b3158acd40705a072901f7 new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/.idea/sonarlint/securityhotspotstore/7/c/7c103dcd8c0314a8821f84f7886754511983a720 b/.idea/sonarlint/securityhotspotstore/7/c/7c103dcd8c0314a8821f84f7886754511983a720 new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/.idea/sonarlint/securityhotspotstore/d/a/dacdf19231dacf48f340f1ddb51182a025c0e074 b/.idea/sonarlint/securityhotspotstore/d/a/dacdf19231dacf48f340f1ddb51182a025c0e074 new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/.idea/sonarlint/securityhotspotstore/index.pb b/.idea/sonarlint/securityhotspotstore/index.pb new file mode 100644 index 0000000000000000000000000000000000000000..952c8a69794caa637ef4b2d74236ebf8f3ae2674 --- /dev/null +++ b/.idea/sonarlint/securityhotspotstore/index.pb @@ -0,0 +1,11 @@ + +_ +/src/Controller/ReadFileLineByLineController.php,1/1/11fc5ee351c0edf973b3158acd40705a072901f7 +F +public/HelloWorld.html,d/a/dacdf19231dacf48f340f1ddb51182a025c0e074 +@ +public/index.php,0/e/0e61f67641b441bb3ee38e903c594d99cafa14b4 +_ +/src/Repository/ReadFileLineByLineRepository.php,7/c/7c103dcd8c0314a8821f84f7886754511983a720 +X +(src/Actions/ReadFileLineByLineAction.php,b/b/bb599184d4f741824c29e585018cdb8069747a80 \ No newline at end of file diff --git a/.idea/symfony2.xml b/.idea/symfony2.xml new file mode 100644 index 0000000000000000000000000000000000000000..329806066e98b4e5d3cac43f8b4f3f10d55bec96 --- /dev/null +++ b/.idea/symfony2.xml @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="Symfony2PluginSettings"> + <option name="pluginEnabled" value="true" /> + <option name="lastServiceGeneratorLanguage" value="yaml" /> + </component> +</project> \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000000000000000000000000000000000000..35eb1ddfbbc029bcab630581847471d7f238ec53 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="VcsDirectoryMappings"> + <mapping directory="" vcs="Git" /> + </component> +</project> \ No newline at end of file diff --git a/public/HelloWorld.html b/public/HelloWorld.html new file mode 100644 index 0000000000000000000000000000000000000000..0e8969623370152066b2484563e8947c08a2d10e --- /dev/null +++ b/public/HelloWorld.html @@ -0,0 +1,12 @@ +<!DOCTYPE html> +<html lang="en"> +<head> + <meta charset="UTF-8"> + <title>Title</title> +</head> +<body> +Hello World! +Hello World !! +Hello World !!! +</body> +</html> \ No newline at end of file diff --git a/src/Actions/ReadFileLineByLineAction.php b/src/Actions/ReadFileLineByLineAction.php new file mode 100644 index 0000000000000000000000000000000000000000..cf7f1f6fd14f715c057fe14ef46e7734e2fb468e --- /dev/null +++ b/src/Actions/ReadFileLineByLineAction.php @@ -0,0 +1,29 @@ +<?php + +namespace App\Actions; + +use Generator; + +class ReadFileLineByLineAction +{ + /** + * Принимает путь до файла, + * проверÑет, что файл ÑущеÑтвует и выводит пользователю поÑтрочный вывод иÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÑ yield + * (файл можешь Ñоздать любой) + * + * @param string $filePath путь до файла + * @return string|Generator */ + public function act(string $filePath): Generator + { + if (!file_exists($filePath)) { + throw new Exception("неверный путь"); + } + + $file = fopen($filePath, 'r'); + while (!feof($file)) { + yield fgets($file); + } + + fclose($file); + } +} diff --git a/src/Controller/ReadFileLineByLineController.php b/src/Controller/ReadFileLineByLineController.php new file mode 100644 index 0000000000000000000000000000000000000000..c6d0f0398a031505d844e51636a858ad469b7bc7 --- /dev/null +++ b/src/Controller/ReadFileLineByLineController.php @@ -0,0 +1,36 @@ +<?php + +namespace App\Controller; + +use App\Actions\ReadFileLineByLineAction; +use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; +use Symfony\Component\HttpFoundation\Request; +use Symfony\Component\HttpFoundation\Response; +use Symfony\Component\Routing\Attribute\Route; + +class ReadFileLineByLineController extends AbstractController +{ + /** + * Принимает путь до файла, + * проверÑет, что файл ÑущеÑтвует и выводит пользователю поÑтрочный вывод иÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÑ yield + * + * @param string $filePath путь до файла + * @return Response */ + #[Route('/readbyline', name: 'app_read_file_line_by_line', methods: ['POST'])] + public function index( + Request $request, + ReadFileLineByLineAction $action + ) : Response { + $file = $request->files->get('File'); + $content = ""; + try{ + foreach ($action->act($file->getRealPath()) as $line) { + $content .= $line; + } + } catch (\Exception $exception) { + return new Response($exception->getMessage(), Response::HTTP_NOT_FOUND); + } + + return new Response($content); + } +} diff --git a/templates/count_friday13/index.html.twig b/templates/count_friday13/index.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..e90908d4154aa6ea087da53532a9996b0a1573f3 --- /dev/null +++ b/templates/count_friday13/index.html.twig @@ -0,0 +1,20 @@ +{% extends 'base.html.twig' %} + +{% block title %}Hello CountFriday13Controller!{% endblock %} + +{% block body %} +<style> + .example-wrapper { margin: 1em auto; max-width: 800px; width: 95%; font: 18px/1.5 sans-serif; } + .example-wrapper code { background: #F5F5F5; padding: 2px 6px; } +</style> + +<div class="example-wrapper"> + <h1>Hello {{ controller_name }}! ✅</h1> + + This friendly message is coming from: + <ul> + <li>Your controller at <code>/home/tamanit/myProj/iqdevTranningProgram/src/Controller/CountFriday13Controller.php</code></li> + <li>Your template at <code>/home/tamanit/myProj/iqdevTranningProgram/templates/count_friday13/index.html.twig</code></li> + </ul> +</div> +{% endblock %} diff --git a/templates/diff_days/index.html.twig b/templates/diff_days/index.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..462ac0bbc54b6e9311447613b99e5457433851c0 --- /dev/null +++ b/templates/diff_days/index.html.twig @@ -0,0 +1,20 @@ +{% extends 'base.html.twig' %} + +{% block title %}Hello DiffDaysController!{% endblock %} + +{% block body %} +<style> + .example-wrapper { margin: 1em auto; max-width: 800px; width: 95%; font: 18px/1.5 sans-serif; } + .example-wrapper code { background: #F5F5F5; padding: 2px 6px; } +</style> + +<div class="example-wrapper"> + <h1>Hello {{ controller_name }}! ✅</h1> + + This friendly message is coming from: + <ul> + <li>Your controller at <code>/home/tamanit/myProj/iqdevTranningProgram/src/Controller/DiffDaysController.php</code></li> + <li>Your template at <code>/home/tamanit/myProj/iqdevTranningProgram/templates/diff_days/index.html.twig</code></li> + </ul> +</div> +{% endblock %} diff --git a/templates/how_days_to_ny/index.html.twig b/templates/how_days_to_ny/index.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..4058510b94b0920e26da7a99e4def23bac7be5d2 --- /dev/null +++ b/templates/how_days_to_ny/index.html.twig @@ -0,0 +1,20 @@ +{% extends 'base.html.twig' %} + +{% block title %}Hello HowDaysToNYController!{% endblock %} + +{% block body %} +<style> + .example-wrapper { margin: 1em auto; max-width: 800px; width: 95%; font: 18px/1.5 sans-serif; } + .example-wrapper code { background: #F5F5F5; padding: 2px 6px; } +</style> + +<div class="example-wrapper"> + <h1>Hello {{ controller_name }}! ✅</h1> + + This friendly message is coming from: + <ul> + <li>Your controller at <code>/home/tamanit/myProj/iqdevTranningProgram/src/Controller/HowDaysToNYController.php</code></li> + <li>Your template at <code>/home/tamanit/myProj/iqdevTranningProgram/templates/how_days_to_ny/index.html.twig</code></li> + </ul> +</div> +{% endblock %} diff --git a/templates/prepare_menu/index.html.twig b/templates/prepare_menu/index.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..ddfd6d14ef4b7191b4413d38aa67b9f4a6bd8137 --- /dev/null +++ b/templates/prepare_menu/index.html.twig @@ -0,0 +1,20 @@ +{% extends 'base.html.twig' %} + +{% block title %}Hello PrepareMenuController!{% endblock %} + +{% block body %} +<style> + .example-wrapper { margin: 1em auto; max-width: 800px; width: 95%; font: 18px/1.5 sans-serif; } + .example-wrapper code { background: #F5F5F5; padding: 2px 6px; } +</style> + +<div class="example-wrapper"> + <h1>Hello {{ controller_name }}! ✅</h1> + + This friendly message is coming from: + <ul> + <li>Your controller at <code>/home/tamanit/myProj/iqdevTranningProgram/src/Controller/PrepareMenuController.php</code></li> + <li>Your template at <code>/home/tamanit/myProj/iqdevTranningProgram/templates/prepare_menu/index.html.twig</code></li> + </ul> +</div> +{% endblock %} diff --git a/templates/read_file_line_by_line/index.html.twig b/templates/read_file_line_by_line/index.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..68aed515aad05ba67fe66ac06faeec8307a21a4f --- /dev/null +++ b/templates/read_file_line_by_line/index.html.twig @@ -0,0 +1,20 @@ +{% extends 'base.html.twig' %} + +{% block title %}Hello ReadFileLineByLineController!{% endblock %} + +{% block body %} +<style> + .example-wrapper { margin: 1em auto; max-width: 800px; width: 95%; font: 18px/1.5 sans-serif; } + .example-wrapper code { background: #F5F5F5; padding: 2px 6px; } +</style> + +<div class="example-wrapper"> + <h1>Hello {{ controller_name }}! ✅</h1> + + This friendly message is coming from: + <ul> + <li>Your controller at <code>/home/tamanit/myProj/iqdevTranningProgram/src/Controller/ReadFileLineByLineController.php</code></li> + <li>Your template at <code>/home/tamanit/myProj/iqdevTranningProgram/templates/read_file_line_by_line/index.html.twig</code></li> + </ul> +</div> +{% endblock %} diff --git a/templates/read_log_file/index.html.twig b/templates/read_log_file/index.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..9f08f19af529af6e8a648246ba6606cce8dcb9fe --- /dev/null +++ b/templates/read_log_file/index.html.twig @@ -0,0 +1,20 @@ +{% extends 'base.html.twig' %} + +{% block title %}Hello ReadLogFileController!{% endblock %} + +{% block body %} +<style> + .example-wrapper { margin: 1em auto; max-width: 800px; width: 95%; font: 18px/1.5 sans-serif; } + .example-wrapper code { background: #F5F5F5; padding: 2px 6px; } +</style> + +<div class="example-wrapper"> + <h1>Hello {{ controller_name }}! ✅</h1> + + This friendly message is coming from: + <ul> + <li>Your controller at <code>/home/tamanit/myProj/iqdevTranningProgram/src/Controller/ReadLogFileController.php</code></li> + <li>Your template at <code>/home/tamanit/myProj/iqdevTranningProgram/templates/read_log_file/index.html.twig</code></li> + </ul> +</div> +{% endblock %} diff --git a/templates/search/index.html.twig b/templates/search/index.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..bd465aa05ce19d1de5e42d822bcf4fb7a6b6e239 --- /dev/null +++ b/templates/search/index.html.twig @@ -0,0 +1,20 @@ +{% extends 'base.html.twig' %} + +{% block title %}Hello SearchController!{% endblock %} + +{% block body %} +<style> + .example-wrapper { margin: 1em auto; max-width: 800px; width: 95%; font: 18px/1.5 sans-serif; } + .example-wrapper code { background: #F5F5F5; padding: 2px 6px; } +</style> + +<div class="example-wrapper"> + <h1>Hello {{ controller_name }}! ✅</h1> + + This friendly message is coming from: + <ul> + <li>Your controller at <code>/home/tamanit/myProj/iqdevTranningProgram/src/Controller/SearchController.php</code></li> + <li>Your template at <code>/home/tamanit/myProj/iqdevTranningProgram/templates/search/index.html.twig</code></li> + </ul> +</div> +{% endblock %} diff --git a/templates/sort_price/index.html.twig b/templates/sort_price/index.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..cd62397e96e6d43936ad35e95dec013ea992cb21 --- /dev/null +++ b/templates/sort_price/index.html.twig @@ -0,0 +1,20 @@ +{% extends 'base.html.twig' %} + +{% block title %}Hello SortPriceController!{% endblock %} + +{% block body %} +<style> + .example-wrapper { margin: 1em auto; max-width: 800px; width: 95%; font: 18px/1.5 sans-serif; } + .example-wrapper code { background: #F5F5F5; padding: 2px 6px; } +</style> + +<div class="example-wrapper"> + <h1>Hello {{ controller_name }}! ✅</h1> + + This friendly message is coming from: + <ul> + <li>Your controller at <code>/home/tamanit/myProj/iqdevTranningProgram/src/Controller/SortPriceController.php</code></li> + <li>Your template at <code>/home/tamanit/myProj/iqdevTranningProgram/templates/sort_price/index.html.twig</code></li> + </ul> +</div> +{% endblock %}