diff --git a/.env b/.env index 8d812d1..3766ec3 100755 --- a/.env +++ b/.env @@ -1,5 +1,5 @@ # Symfony -APP_ENV=prod +APP_ENV=dev APP_SECRET=changeme APP_SESSIONTIME=1440 @@ -7,28 +7,31 @@ APP_SESSIONTIME=1440 MESSENGER_TRANSPORT_DSN=doctrine://default?auto_setup=0 # Database -DATABASE_URL="postgresql://symfony:ChangeMe@127.0.0.1:5432/ninegate?serverVersion=13&charset=utf8" +DATABASE_URL="postgresql://symfony:ChangeMe@postgresql:5432/nineskeletor?serverVersion=13&charset=utf8" # Redis Session -REDIS_HOST=127.0.0.1 +REDIS_HOST=redis REDIS_PORT=6379 # Mailer MAILER_METHOD=smtp -MAILER_DSN=smtp://127.0.0.1:1025 +MAILER_DSN=smtp://mailer:1025 MAILER_NOREPLY=noreply@noreply.fr # Basic -APP_WEBURL=127.0.0.1:8000 -APP_MASTERIDENTITY=SQL # SQL | SSO | LDAP -APP_AUTH=SQL # SQL | CAS | LDAP | OPENID | à faire SAML +APP_WEBURL=localhost:8005 +APP_MASTERIDENTITY=SQL # SQL | SSO | LDAP +APP_AUTH=OPENID # SQL | CAS | LDAP | OPENID APP_ALIAS=/ APP_NAME=Nineskeletor -APP_MODEREGISTRATION= # null | BYADMIN | BYUSER +APP_MODEREGISTRATION= # null | BYADMIN | BYUSER APP_ADMINS='["admin"]' +# Module = PORTAL | DOCUMENT +APP_MODULES='["PORTAL"]' + # Structure Organisationnelle -APP_NIVEAUUPDATABLE=0 # Quel degres de niveau est modifiable par les utilisateurs seule les admin et modo via console peuvent outre passer ce param +APP_NIVEAUUPDATABLE=0 # Quel degres de niveau est modifiable par les utilisateurs seule les admin et modo via console peuvent outre passer ce param APP_NIVEAU01LABEL="Niveau 01" APP_NIVEAU01LABELS="Niveaux 01" @@ -51,52 +54,52 @@ APP_NIVEAU04MANDATORY='[""]' APP_GROUPUSE=1 APP_GROUPSUBMITER='["ALL"]' -APP_ANNUSCOPEADMIN=ALL # ALL or number of niveau view : 1||2||3||4 -APP_ANNUSCOPEMODO=ALL # ALL or number of niveau view : 1||2||3||4 -APP_ANNUSCOPEMASTER=ALL # ALL or number of niveau view : 1||2||3||4 -APP_ANNUSCOPEMANAGER=ALL # ALL or number of niveau view : 1||2||3||4 -APP_ANNUSCOPEUSER=ALL # ALL or number of niveau view : 1||2||3||4 +APP_ANNUSCOPEADMIN=ALL # ALL or number of niveau view : 1||2||3||4 +APP_ANNUSCOPEMODO=ALL # ALL or number of niveau view : 1||2||3||4 +APP_ANNUSCOPEMASTER=ALL # ALL or number of niveau view : 1||2||3||4 +APP_ANNUSCOPEMANAGER=ALL # ALL or number of niveau view : 1||2||3||4 +APP_ANNUSCOPEUSER=ALL # ALL or number of niveau view : 1||2||3||4 -APP_USERVIEWISVISIBLE=1 # Profil user with isvisible field +APP_USERVIEWISVISIBLE=1 # Profil user with isvisible field # Synchronisation -APP_SYNCHRO= # Synchronisation null | LDAP2NINE | NINE2LDAP | NINE2NINE -APP_SYNDCHROPURGENIVEAU01=1 # Purger les niveau01s obsolète en cas de synchronisation -APP_SYNDCHROPURGENIVEAU02=1 # Purger les niveau02s obsolète en cas de synchronisation -APP_SYNDCHROPURGENIVEAU03=1 # Purger les niveau03s obsolète en cas de synchronisation -APP_SYNDCHROPURGENIVEAU04=1 # Purger les niveau04s obsolète en cas de synchronisation -APP_SYNDCHROPURGEGROUP=1 # Purger les groups obsolète en cas de synchronisation -APP_SYNDCHROPURGEUSER=1 # Purger les users obsolète en cas de synchronisation +APP_SYNCHRO=NINE2LDAP # Synchronisation null | LDAP2NINE | NINE2LDAP | NINE2NINE +APP_SYNDCHROPURGENIVEAU01=1 # Purger les niveau01s obsolète en cas de synchronisation +APP_SYNDCHROPURGENIVEAU02=1 # Purger les niveau02s obsolète en cas de synchronisation +APP_SYNDCHROPURGENIVEAU03=1 # Purger les niveau03s obsolète en cas de synchronisation +APP_SYNDCHROPURGENIVEAU04=1 # Purger les niveau04s obsolète en cas de synchronisation +APP_SYNDCHROPURGEGROUP=1 # Purger les groups obsolète en cas de synchronisation +APP_SYNDCHROPURGEUSER=1 # Purger les users obsolète en cas de synchronisation # LDAP -LDAP_HOST= # host du serveur ldap -LDAP_PORT= # port du serveur ldap -LDAP_USETLS=0 # connection TLS 0/1 -LDAP_USERWRITER=0 # LDAP_USER compte writer ? 0/1 -LDAP_USER= # DN compte access ldap -LDAP_PASSWORD= # Password comte access ldap -LDAP_BASEDN= # Base DN ex:dc=nine,dc=fr -LDAP_BASEORGANISATION= # Base Organisation ex:ou=nineskeletor,dc=nine,dc=fr -LDAP_BASENIVEAU01= # Base Niveau01 ex:ou=niveau01,ou=nineskeletor,dc=nine,dc=fr -LDAP_BASENIVEAU02= # Base Niveau02 ex:ou=niveau02,ou=nineskeletor,dc=nine,dc=fr -LDAP_BASENIVEAU03= # Base Niveau03 ex:ou=niveau03,ou=nineskeletor,dc=nine,dc=fr -LDAP_BASENIVEAU04= # Base Niveau04 ex:ou=niveau04,ou=nineskeletor,dc=nine,dc=fr -LDAP_BASEGROUP= # Base Group ex:ou=groups,ou=nineskeletor,dc=nine,dc=fr -LDAP_BASEUSER= # Base User ex:ou=users,ou=nineskeletor,dc=nine,dc=fr -LDAP_USERNAME=uid # Attribut id d'un user -LDAP_FIRSTNAME=givenname # Attribut firstname d'un user -LDAP_LASTNAME=sn # Attribut lastname d'un user -LDAP_EMAIL=mail # Attribut email d'un user -LDAP_AVATAR= # Attribut avatar d'un user -LDAP_MEMBEROF=memberof # Attribut memberof d'un user -LDAP_GROUPGID=gidnumber # Attribut gid d'un groupe -LDAP_GROUPNAME=cn # Attribut name d'un groupe -LDAP_GROUPMEMBER=memberuid # Attribut stockant les membres d'un groupe -LDAP_GROUPMEMBERISDN=0 # LDAP_GROUPMEMBER stocke un uid ou un dn ? 0/1 -LDAP_FILTERGROUP=(cn=*) # requete ldap pour rechercher les groupes -LDAP_FILTERUSER=(uid=*) # requete ldap pour rechercher les users -LDAP_AUTOSUBMIT=1 # if APP_AUTH = LDAP autocréer les users non existant -LDAP_AUTOUPDATE=1 # if APP_AUTH = LDAP automodifier les users existant +LDAP_HOST=openldap # host du serveur ldap ex:openldap +LDAP_PORT=389 # port du serveur ldap ex:389 +LDAP_USETLS=0 # connection TLS 0/1 +LDAP_USERWRITER=1 # LDAP_USER compte writer ? 0/1 +LDAP_USER="cn=admin,dc=nine,dc=fr" # DN compte access ldap +LDAP_PASSWORD=changeme # Password comte access ldap +LDAP_BASEDN= # Base DN ex:dc=nine,dc=fr +LDAP_BASEORGANISATION="ou=nineskeletor,dc=nine,dc=fr" # Base Organisation ex:ou=nineskeletor,dc=nine,dc=fr +LDAP_BASENIVEAU01="ou=niveau01,ou=nineskeletor,dc=nine,dc=fr" # Base Niveau01 ex:ou=niveau01,ou=nineskeletor,dc=nine,dc=fr +LDAP_BASENIVEAU02="ou=niveau02,ou=nineskeletor,dc=nine,dc=fr" # Base Niveau02 ex:ou=niveau02,ou=nineskeletor,dc=nine,dc=fr +LDAP_BASENIVEAU03="ou=niveau03,ou=nineskeletor,dc=nine,dc=fr" # Base Niveau03 ex:ou=niveau03,ou=nineskeletor,dc=nine,dc=fr +LDAP_BASENIVEAU04="ou=niveau04,ou=nineskeletor,dc=nine,dc=fr" # Base Niveau04 ex:ou=niveau04,ou=nineskeletor,dc=nine,dc=fr +LDAP_BASEGROUP="ou=groups,ou=nineskeletor,dc=nine,dc=fr" # Base Group ex:ou=groups,ou=nineskeletor,dc=nine,dc=fr +LDAP_BASEUSER="ou=users,ou=nineskeletor,dc=nine,dc=fr" # Base User ex:ou=users,ou=nineskeletor,dc=nine,dc=fr +LDAP_USERNAME=uid # Attribut id d'un user +LDAP_FIRSTNAME=givenname # Attribut firstname d'un user +LDAP_LASTNAME=sn # Attribut lastname d'un user +LDAP_EMAIL=mail # Attribut email d'un user +LDAP_AVATAR= # Attribut avatar d'un user +LDAP_MEMBEROF=memberof # Attribut memberof d'un user +LDAP_GROUPGID=gidnumber # Attribut gid d'un groupe +LDAP_GROUPNAME=cn # Attribut name d'un groupe +LDAP_GROUPMEMBER=memberuid # Attribut stockant les membres d'un groupe +LDAP_GROUPMEMBERISDN=0 # LDAP_GROUPMEMBER stocke un uid ou un dn ? 0/1 +LDAP_FILTERGROUP=(cn=*) # requete ldap pour rechercher les groupes +LDAP_FILTERUSER=(uid=*) # requete ldap pour rechercher les users +LDAP_AUTOSUBMIT=1 # if APP_AUTH = LDAP autocréer les users non existant +LDAP_AUTOUPDATE=1 # if APP_AUTH = LDAP automodifier les users existant # If APP_AUTH = CAS CAS_HOST= @@ -109,16 +112,16 @@ CAS_FIRSTNAME=firstname CAS_AVATAR= CAS_NIVEAU01= CAS_GROUP= -CAS_AUTOSUBMIT=1 # if APP_AUTH = CAS autocréer les users non existant -CAS_AUTOUPDATE=1 # if APP_AUTH = CAS automodifier les users existant +CAS_AUTOSUBMIT=1 # if APP_AUTH = CAS autocréer les users non existant +CAS_AUTOUPDATE=1 # if APP_AUTH = CAS automodifier les users existant # If APP_AUTH = OPENID -OAUTH_CLIENTID= -OAUTH_CLIENTSECRET= -OAUTH_LOGINURL= -OAUTH_LOGOUTURL= -OAUTH_TOKENURL= -OAUTH_USERINFO= +OAUTH_CLIENTID=nineskeletor +OAUTH_CLIENTSECRET=changeme +OAUTH_LOGINURL="http://localhost:7080/oauth2/auth" +OAUTH_LOGOUTURL="http://localhost:7080/oauth2/sessions/logout" +OAUTH_TOKENURL="http://hydra:4444/oauth2/token" +OAUTH_USERINFO="http://hydra:4444/userinfo" OAUTH_USERNAME=username OAUTH_EMAIL=email OAUTH_LASTNAME=lastname @@ -126,15 +129,15 @@ OAUTH_FIRSTNAME=firstname OAUTH_AVATAR= OAUTH_NIVEAU01= OAUTH_GROUP= -OAUTH_AUTOSUBMIT=1 # if APP_AUTH = OPENID autocréer les users non existant -OAUTH_AUTOUPDATE=1 # if APP_AUTH = OPENID automodifier les users existant +OAUTH_AUTOSUBMIT=1 # if APP_AUTH = OPENID autocréer les users non existant +OAUTH_AUTOUPDATE=1 # if APP_AUTH = OPENID automodifier les users existant # IF APP_SYNCHRO=NINE2NINE NINE_URL= NINE_SECRET= # If APP_MODEREGISTRATION != NULL -APP_MODEREGISTRATIONTERM=6 # Temps en heure de la durée de validité de l'inscription +APP_MODEREGISTRATIONTERM=6 # Temps en heure de la durée de validité de l'inscription # Proxy PROXY_USE=0 @@ -149,27 +152,27 @@ SONDE_USE=0 SONDE_URL= # Mercure -MERCURE_URL=https://127.0.0.1/.well-known/mercure +MERCURE_URL=https://mercure/.well-known/mercure MERCURE_PUBLIC_URL=https://127.0.0.1/.well-known/mercure MERCURE_JWT_SECRET="!changeme!changeme!changeme!changeme!changeme!changeme!" # Minio -MINIO_URL=http://127.0.0.1:9000 +MINIO_URL=http://nginx:9000 MINIO_KEY=minio MINIO_SECRET=changeme -MINIO_BUCKET=ninegate +MINIO_BUCKET=nineskeletor MINIO_ROOT= MINIO_PATH_STYLE=1 MINIO_SECURE=0 # Hydra apps -HYDRA_LOGINCHALLENGE="http://127.0.0.1:4445/oauth2/auth/requests/login?login_challenge=" -HYDRA_LOGINCHALLENGEACCEPT="http://127.0.0.1:4445/oauth2/auth/requests/login/accept?login_challenge=" -HYDRA_CONSENTCHALLENGE="http://127.0.0.1:4445/oauth2/auth/requests/consent?consent_challenge=" -HYDRA_CONSENTCHALLENGEACCEPT="http://127.0.0.1:4445/oauth2/auth/requests/consent/accept?consent_challenge=" +HYDRA_LOGINCHALLENGE="http://hydra:4445/oauth2/auth/requests/login?login_challenge=" +HYDRA_LOGINCHALLENGEACCEPT="http://hydra:4445/oauth2/auth/requests/login/accept?login_challenge=" +HYDRA_CONSENTCHALLENGE="http://hydra:4445/oauth2/auth/requests/consent?consent_challenge=" +HYDRA_CONSENTCHALLENGEACCEPT="http://hydra:4445/oauth2/auth/requests/consent/accept?consent_challenge=" # Lock -LOCK_DSN="postgresql://symfony:ChangeMe@127.0.0.1:5432/ninegate?serverVersion=13&charset=utf8" +LOCK_DSN="postgresql://symfony:ChangeMe@postgresql:5432/nineskeletor?serverVersion=13&charset=utf8" # Sentry SENTRY_DSN= diff --git a/.gitignore b/.gitignore index 5b27fa1..5a58b54 100755 --- a/.gitignore +++ b/.gitignore @@ -28,4 +28,7 @@ yarn-error.log !/public/uploads/logo/logo.png /public/uploads/ckeditor -.php-cs-fixer.cache \ No newline at end of file +.php-cs-fixer.cache +###> phpstan/phpstan ### +phpstan.neon +###< phpstan/phpstan ### diff --git a/.php-cs-fixer.dist.php b/.php-cs-fixer.dist.php old mode 100755 new mode 100644 index f80dc80..daa8926 --- a/.php-cs-fixer.dist.php +++ b/.php-cs-fixer.dist.php @@ -1,12 +1,45 @@ in(__DIR__.'/src'); + ->in(__DIR__.'/src') + ->name('*.php') +; -$config = new PhpCsFixer\Config(); -return $config->setRules([ +// TODO: Définir les règles de style communes +// spécifiques au projet +return (new PhpCsFixer\Config()) + ->setRules([ '@Symfony' => true, - 'full_opening_tag' => false, + 'concat_space' => ['spacing' => 'none'], + 'array_syntax' => ['syntax' => 'short'], + 'combine_consecutive_issets' => true, + 'explicit_indirect_variable' => true, + 'no_useless_return' => true, + 'ordered_imports' => true, + 'no_unused_imports' => true, + 'no_spaces_after_function_name' => true, + 'no_spaces_inside_parenthesis' => true, + 'ternary_operator_spaces' => true, + 'class_definition' => ['single_line' => true], + 'whitespace_after_comma_in_array' => true, + + // phpdoc + 'phpdoc_add_missing_param_annotation' => ['only_untyped' => true], + 'phpdoc_order' => true, + 'phpdoc_types_order' => [ + 'null_adjustment' => 'always_last', + 'sort_algorithm' => 'alpha', + ], + 'phpdoc_no_empty_return' => false, + 'phpdoc_summary' => false, + 'general_phpdoc_annotation_remove' => [ + 'annotations' => [ + 'expectedExceptionMessageRegExp', + 'expectedException', + 'expectedExceptionMessage', + 'author', + ], + ], ]) ->setFinder($finder) -; \ No newline at end of file +; diff --git a/composer.json b/composer.json index 368719a..4fc17ba 100755 --- a/composer.json +++ b/composer.json @@ -123,6 +123,7 @@ "require-dev": { "doctrine/doctrine-fixtures-bundle": "^3.4", "lasserafn/php-initial-avatar-generator": "^4.2", + "phpstan/phpstan": "^1.11", "phpunit/phpunit": "^9.5", "symfony/browser-kit": "6.1.*", "symfony/css-selector": "6.1.*", diff --git a/composer.lock b/composer.lock index 2fd8a0a..9a412b1 100755 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "479a2464d612243533a7aa3eae4281d9", + "content-hash": "dc1aeeadbcecb4aa48c52c26ec8b74bf", "packages": [ { "name": "aws/aws-crt-php", @@ -11705,6 +11705,64 @@ }, "time": "2022-02-21T01:04:05+00:00" }, + { + "name": "phpstan/phpstan", + "version": "1.11.5", + "source": { + "type": "git", + "url": "https://github.com/phpstan/phpstan.git", + "reference": "490f0ae1c92b082f154681d7849aee776a7c1443" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/490f0ae1c92b082f154681d7849aee776a7c1443", + "reference": "490f0ae1c92b082f154681d7849aee776a7c1443", + "shasum": "" + }, + "require": { + "php": "^7.2|^8.0" + }, + "conflict": { + "phpstan/phpstan-shim": "*" + }, + "bin": [ + "phpstan", + "phpstan.phar" + ], + "type": "library", + "autoload": { + "files": [ + "bootstrap.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "PHPStan - PHP Static Analysis Tool", + "keywords": [ + "dev", + "static analysis" + ], + "support": { + "docs": "https://phpstan.org/user-guide/getting-started", + "forum": "https://github.com/phpstan/phpstan/discussions", + "issues": "https://github.com/phpstan/phpstan/issues", + "security": "https://github.com/phpstan/phpstan/security/policy", + "source": "https://github.com/phpstan/phpstan-src" + }, + "funding": [ + { + "url": "https://github.com/ondrejmirtes", + "type": "github" + }, + { + "url": "https://github.com/phpstan", + "type": "github" + } + ], + "time": "2024-06-17T15:10:54+00:00" + }, { "name": "phpunit/php-code-coverage", "version": "9.2.17", @@ -13596,5 +13654,5 @@ "ext-iconv": "*" }, "platform-dev": [], - "plugin-api-version": "2.3.0" + "plugin-api-version": "2.2.0" } diff --git a/config/packages/twig.yaml b/config/packages/twig.yaml index 18594d5..32b62f0 100755 --- a/config/packages/twig.yaml +++ b/config/packages/twig.yaml @@ -1,35 +1,36 @@ twig: - default_path: '%kernel.project_dir%/templates' - form_themes: - - 'Form/fields.html.twig' - - '@TetranzSelect2Entity/Form/fields.html.twig' - globals: - appAlias: '%appAlias%' - appName: '%appName%' - appMasteridentity: '%appMasteridentity%' - appAuth: '%appAuth%' - appModeregistration: '%appModeregistration%' - appSynchro: '%appSynchro%' - appSynchroPurgeUser: '%appSynchroPurgeUser%' - appNiveau01label: '%appNiveau01label%' - appNiveau01labels: '%appNiveau01labels%' - appNiveau02use: '%appNiveau02use%' - appNiveau02label: '%appNiveau02label%' - appNiveau02labels: '%appNiveau02labels%' - appNiveau02mandatory: '%appNiveau02mandatory%' - appNiveau03use: '%appNiveau03use%' - appNiveau03label: '%appNiveau03label%' - appNiveau03labels: '%appNiveau03labels%' - appNiveau03mandatory: '%appNiveau03mandatory%' - appNiveau04use: '%appNiveau04use%' - appNiveau04label: '%appNiveau04label%' - appNiveau04labels: '%appNiveau04labels%' - appNiveau04mandatory: '%appNiveau04mandatory%' - appGroupuse: '%appGroupuse%' - sondeUse: '%sondeUse%' - sondeUrl: '%sondeUrl%' - auditUse: '%auditUse%' - + default_path: "%kernel.project_dir%/templates" + form_themes: + - "Form/fields.html.twig" + - "@TetranzSelect2Entity/Form/fields.html.twig" + globals: + appAlias: "%appAlias%" + appName: "%appName%" + appMasteridentity: "%appMasteridentity%" + appAuth: "%appAuth%" + appModeregistration: "%appModeregistration%" + appSynchro: "%appSynchro%" + appSynchroPurgeUser: "%appSynchroPurgeUser%" + appNiveau01label: "%appNiveau01label%" + appNiveau01labels: "%appNiveau01labels%" + appNiveau02use: "%appNiveau02use%" + appNiveau02label: "%appNiveau02label%" + appNiveau02labels: "%appNiveau02labels%" + appNiveau02mandatory: "%appNiveau02mandatory%" + appNiveau03use: "%appNiveau03use%" + appNiveau03label: "%appNiveau03label%" + appNiveau03labels: "%appNiveau03labels%" + appNiveau03mandatory: "%appNiveau03mandatory%" + appNiveau04use: "%appNiveau04use%" + appNiveau04label: "%appNiveau04label%" + appNiveau04labels: "%appNiveau04labels%" + appNiveau04mandatory: "%appNiveau04mandatory%" + appModules: "%appModules%" + appGroupuse: "%appGroupuse%" + sondeUse: "%sondeUse%" + sondeUrl: "%sondeUrl%" + auditUse: "%auditUse%" + when@test: - twig: - strict_variables: true + twig: + strict_variables: true diff --git a/config/services.yaml b/config/services.yaml index 16ade73..ff25a45 100755 --- a/config/services.yaml +++ b/config/services.yaml @@ -1,286 +1,317 @@ parameters: + appEnv: "%env(resolve:APP_ENV)%" + appSecret: "%env(resolve:APP_SECRET)%" + appSessiontime: "%env(resolve:APP_SESSIONTIME)%" - appEnv: '%env(resolve:APP_ENV)%' - appSecret: '%env(resolve:APP_SECRET)%' - appSessiontime: '%env(resolve:APP_SESSIONTIME)%' + appWeburl: "%env(resolve:APP_WEBURL)%" + appAuth: "%env(resolve:APP_AUTH)%" + appAlias: "%env(resolve:APP_ALIAS)%" + appName: "%env(resolve:APP_NAME)%" + appMasteridentity: "%env(resolve:APP_MASTERIDENTITY)%" + appModeregistration: "%env(resolve:APP_MODEREGISTRATION)%" + appAdmins: "%env(json:APP_ADMINS)%" - appWeburl: '%env(resolve:APP_WEBURL)%' - appAuth: '%env(resolve:APP_AUTH)%' - appAlias: '%env(resolve:APP_ALIAS)%' - appName: '%env(resolve:APP_NAME)%' - appMasteridentity: '%env(resolve:APP_MASTERIDENTITY)%' - appModeregistration: '%env(resolve:APP_MODEREGISTRATION)%' - appAdmins: '%env(json:APP_ADMINS)%' + appModules: "%env(json:APP_MODULES)%" - appNiveau01label: '%env(resolve:APP_NIVEAU01LABEL)%' - appNiveau01labels: '%env(resolve:APP_NIVEAU01LABELS)%' + appNiveau01label: "%env(resolve:APP_NIVEAU01LABEL)%" + appNiveau01labels: "%env(resolve:APP_NIVEAU01LABELS)%" - appNiveau02use: '%env(resolve:APP_NIVEAU02USE)%' - appNiveau02label: '%env(resolve:APP_NIVEAU02LABEL)%' - appNiveau02labels: '%env(resolve:APP_NIVEAU02LABELS)%' - appNiveau02mandatory: '%env(json:APP_NIVEAU02MANDATORY)%' + appNiveau02use: "%env(resolve:APP_NIVEAU02USE)%" + appNiveau02label: "%env(resolve:APP_NIVEAU02LABEL)%" + appNiveau02labels: "%env(resolve:APP_NIVEAU02LABELS)%" + appNiveau02mandatory: "%env(json:APP_NIVEAU02MANDATORY)%" - appNiveau03use: '%env(resolve:APP_NIVEAU03USE)%' - appNiveau03label: '%env(resolve:APP_NIVEAU03LABEL)%' - appNiveau03labels: '%env(resolve:APP_NIVEAU03LABELS)%' - appNiveau03mandatory: '%env(json:APP_NIVEAU03MANDATORY)%' + appNiveau03use: "%env(resolve:APP_NIVEAU03USE)%" + appNiveau03label: "%env(resolve:APP_NIVEAU03LABEL)%" + appNiveau03labels: "%env(resolve:APP_NIVEAU03LABELS)%" + appNiveau03mandatory: "%env(json:APP_NIVEAU03MANDATORY)%" - appNiveau04use: '%env(resolve:APP_NIVEAU04USE)%' - appNiveau04label: '%env(resolve:APP_NIVEAU04LABEL)%' - appNiveau04labels: '%env(resolve:APP_NIVEAU04LABELS)%' - appNiveau04mandatory: '%env(json:APP_NIVEAU04MANDATORY)%' + appNiveau04use: "%env(resolve:APP_NIVEAU04USE)%" + appNiveau04label: "%env(resolve:APP_NIVEAU04LABEL)%" + appNiveau04labels: "%env(resolve:APP_NIVEAU04LABELS)%" + appNiveau04mandatory: "%env(json:APP_NIVEAU04MANDATORY)%" - appNiveauupdatable: '%env(resolve:APP_NIVEAUUPDATABLE)%' + appNiveauupdatable: "%env(resolve:APP_NIVEAUUPDATABLE)%" - appGroupuse: '%env(resolve:APP_GROUPUSE)%' - appGroupsubmiter: '%env(json:APP_GROUPSUBMITER)%' + appGroupuse: "%env(resolve:APP_GROUPUSE)%" + appGroupsubmiter: "%env(json:APP_GROUPSUBMITER)%" - appAnnuscopeadmin: '%env(resolve:APP_ANNUSCOPEADMIN)%' - appAnnuscopemodo: '%env(resolve:APP_ANNUSCOPEMODO)%' - appAnnuscopemaster: '%env(resolve:APP_ANNUSCOPEMASTER)%' - appAnnuscopemanager: '%env(resolve:APP_ANNUSCOPEMANAGER)%' - appAnnuscopeuser: '%env(resolve:APP_ANNUSCOPEUSER)%' + appAnnuscopeadmin: "%env(resolve:APP_ANNUSCOPEADMIN)%" + appAnnuscopemodo: "%env(resolve:APP_ANNUSCOPEMODO)%" + appAnnuscopemaster: "%env(resolve:APP_ANNUSCOPEMASTER)%" + appAnnuscopemanager: "%env(resolve:APP_ANNUSCOPEMANAGER)%" + appAnnuscopeuser: "%env(resolve:APP_ANNUSCOPEUSER)%" - appUserviewisvisible: '%env(resolve:APP_USERVIEWISVISIBLE)%' + appUserviewisvisible: "%env(resolve:APP_USERVIEWISVISIBLE)%" - appSynchro: '%env(resolve:APP_SYNCHRO)%' - appSynchroPurgeNiveau01: '%env(resolve:APP_SYNDCHROPURGENIVEAU01)%' - appSynchroPurgeNiveau02: '%env(resolve:APP_SYNDCHROPURGENIVEAU02)%' - appSynchroPurgeNiveau03: '%env(resolve:APP_SYNDCHROPURGENIVEAU03)%' - appSynchroPurgeNiveau04: '%env(resolve:APP_SYNDCHROPURGENIVEAU04)%' - appSynchroPurgeGroup: '%env(resolve:APP_SYNDCHROPURGEGROUP)%' - appSynchroPurgeUser: '%env(resolve:APP_SYNDCHROPURGEUSER)%' + appSynchro: "%env(resolve:APP_SYNCHRO)%" + appSynchroPurgeNiveau01: "%env(resolve:APP_SYNDCHROPURGENIVEAU01)%" + appSynchroPurgeNiveau02: "%env(resolve:APP_SYNDCHROPURGENIVEAU02)%" + appSynchroPurgeNiveau03: "%env(resolve:APP_SYNDCHROPURGENIVEAU03)%" + appSynchroPurgeNiveau04: "%env(resolve:APP_SYNDCHROPURGENIVEAU04)%" + appSynchroPurgeGroup: "%env(resolve:APP_SYNDCHROPURGEGROUP)%" + appSynchroPurgeUser: "%env(resolve:APP_SYNDCHROPURGEUSER)%" - databaseUrl: '%env(resolve:DATABASE_URL)%' + databaseUrl: "%env(resolve:DATABASE_URL)%" - appMailmethod: '%env(resolve:MAILER_METHOD)%' - appMaildsn: '%env(resolve:MAILER_DSN)%' - appMailnoreply: '%env(resolve:MAILER_NOREPLY)%' + appMailmethod: "%env(resolve:MAILER_METHOD)%" + appMaildsn: "%env(resolve:MAILER_DSN)%" + appMailnoreply: "%env(resolve:MAILER_NOREPLY)%" - ldapHost: '%env(resolve:LDAP_HOST)%' - ldapPort: '%env(resolve:LDAP_PORT)%' - ldapUsetls: '%env(resolve:LDAP_USETLS)%' - ldapUserwriter: '%env(resolve:LDAP_USERWRITER)%' - ldapUser: '%env(resolve:LDAP_USER)%' - ldapPassword: '%env(resolve:LDAP_PASSWORD)%' - ldapBasedn: '%env(resolve:LDAP_BASEDN)%' - ldapBaseorganisation: '%env(resolve:LDAP_BASEORGANISATION)%' - ldapBaseniveau01: '%env(resolve:LDAP_BASENIVEAU01)%' - ldapBaseniveau02: '%env(resolve:LDAP_BASENIVEAU02)%' - ldapBaseniveau03: '%env(resolve:LDAP_BASENIVEAU03)%' - ldapBaseniveau04: '%env(resolve:LDAP_BASENIVEAU04)%' - ldapBasegroup: '%env(resolve:LDAP_BASEGROUP)%' - ldapBaseuser: '%env(resolve:LDAP_BASEUSER)%' - ldapUsername: '%env(resolve:LDAP_USERNAME)%' - ldapFirstname: '%env(resolve:LDAP_FIRSTNAME)%' - ldapLastname: '%env(resolve:LDAP_LASTNAME)%' - ldapEmail: '%env(resolve:LDAP_EMAIL)%' - ldapAvatar: '%env(resolve:LDAP_AVATAR)%' - ldapMemberof: '%env(resolve:LDAP_MEMBEROF)%' - ldapGroupgid: '%env(resolve:LDAP_GROUPGID)%' - ldapGroupname: '%env(resolve:LDAP_GROUPNAME)%' - ldapGroupmember: '%env(resolve:LDAP_GROUPMEMBER)%' - ldapGroupmemberisdn: '%env(resolve:LDAP_GROUPMEMBERISDN)%' - ldapFiltergroup: '%env(resolve:LDAP_FILTERGROUP)%' - ldapFilteruser: '%env(resolve:LDAP_FILTERUSER)%' - ldapAutosubmit: '%env(resolve:LDAP_AUTOSUBMIT)%' - ldapAutoupdate: '%env(resolve:LDAP_AUTOUPDATE)%' + ldapHost: "%env(resolve:LDAP_HOST)%" + ldapPort: "%env(resolve:LDAP_PORT)%" + ldapUsetls: "%env(resolve:LDAP_USETLS)%" + ldapUserwriter: "%env(resolve:LDAP_USERWRITER)%" + ldapUser: "%env(resolve:LDAP_USER)%" + ldapPassword: "%env(resolve:LDAP_PASSWORD)%" + ldapBasedn: "%env(resolve:LDAP_BASEDN)%" + ldapBaseorganisation: "%env(resolve:LDAP_BASEORGANISATION)%" + ldapBaseniveau01: "%env(resolve:LDAP_BASENIVEAU01)%" + ldapBaseniveau02: "%env(resolve:LDAP_BASENIVEAU02)%" + ldapBaseniveau03: "%env(resolve:LDAP_BASENIVEAU03)%" + ldapBaseniveau04: "%env(resolve:LDAP_BASENIVEAU04)%" + ldapBasegroup: "%env(resolve:LDAP_BASEGROUP)%" + ldapBaseuser: "%env(resolve:LDAP_BASEUSER)%" + ldapUsername: "%env(resolve:LDAP_USERNAME)%" + ldapFirstname: "%env(resolve:LDAP_FIRSTNAME)%" + ldapLastname: "%env(resolve:LDAP_LASTNAME)%" + ldapEmail: "%env(resolve:LDAP_EMAIL)%" + ldapAvatar: "%env(resolve:LDAP_AVATAR)%" + ldapMemberof: "%env(resolve:LDAP_MEMBEROF)%" + ldapGroupgid: "%env(resolve:LDAP_GROUPGID)%" + ldapGroupname: "%env(resolve:LDAP_GROUPNAME)%" + ldapGroupmember: "%env(resolve:LDAP_GROUPMEMBER)%" + ldapGroupmemberisdn: "%env(resolve:LDAP_GROUPMEMBERISDN)%" + ldapFiltergroup: "%env(resolve:LDAP_FILTERGROUP)%" + ldapFilteruser: "%env(resolve:LDAP_FILTERUSER)%" + ldapAutosubmit: "%env(resolve:LDAP_AUTOSUBMIT)%" + ldapAutoupdate: "%env(resolve:LDAP_AUTOUPDATE)%" - casHost: '%env(resolve:CAS_HOST)%' - casPort: '%env(resolve:CAS_PORT)%' - casPath: '%env(resolve:CAS_PATH)%' - casUsername: '%env(resolve:CAS_USERNAME)%' - casEmail: '%env(resolve:CAS_EMAIL)%' - casLastname: '%env(resolve:CAS_LASTNAME)%' - casFirstname: '%env(resolve:CAS_FIRSTNAME)%' - casAvatar: '%env(resolve:CAS_AVATAR)%' - casNiveau01: '%env(resolve:CAS_NIVEAU01)%' - casGroup: '%env(resolve:CAS_GROUP)%' - casAutosubmit: '%env(resolve:CAS_AUTOSUBMIT)%' - casAutoupdate: '%env(resolve:CAS_AUTOUPDATE)%' + casHost: "%env(resolve:CAS_HOST)%" + casPort: "%env(resolve:CAS_PORT)%" + casPath: "%env(resolve:CAS_PATH)%" + casUsername: "%env(resolve:CAS_USERNAME)%" + casEmail: "%env(resolve:CAS_EMAIL)%" + casLastname: "%env(resolve:CAS_LASTNAME)%" + casFirstname: "%env(resolve:CAS_FIRSTNAME)%" + casAvatar: "%env(resolve:CAS_AVATAR)%" + casNiveau01: "%env(resolve:CAS_NIVEAU01)%" + casGroup: "%env(resolve:CAS_GROUP)%" + casAutosubmit: "%env(resolve:CAS_AUTOSUBMIT)%" + casAutoupdate: "%env(resolve:CAS_AUTOUPDATE)%" - oauthClientid: '%env(resolve:OAUTH_CLIENTID)%' - oauthClientsecret: '%env(resolve:OAUTH_CLIENTSECRET)%' - oauthLoginurl: '%env(resolve:OAUTH_LOGINURL)%' - oauthLogouturl: '%env(resolve:OAUTH_LOGOUTURL)%' - oauthTokenurl: '%env(resolve:OAUTH_TOKENURL)%' - oauthUserinfo: '%env(resolve:OAUTH_USERINFO)%' - oauthUsername: '%env(resolve:OAUTH_USERNAME)%' - oauthEmail: '%env(resolve:OAUTH_EMAIL)%' - oauthLastname: '%env(resolve:OAUTH_LASTNAME)%' - oauthFirstname: '%env(resolve:OAUTH_FIRSTNAME)%' - oauthAvatar: '%env(resolve:OAUTH_AVATAR)%' - oauthNiveau01: '%env(resolve:OAUTH_NIVEAU01)%' - oauthGroup: '%env(resolve:OAUTH_GROUP)%' - oauthAutosubmit: '%env(resolve:OAUTH_AUTOSUBMIT)%' - oauthAutoupdate: '%env(resolve:OAUTH_AUTOUPDATE)%' - - nineUrl: '%env(resolve:NINE_URL)%' - nineSecret: '%env(resolve:NINE_SECRET)%' - - appModeregistrationterme: '%env(resolve:APP_MODEREGISTRATIONTERM)%' + oauthClientid: "%env(resolve:OAUTH_CLIENTID)%" + oauthClientsecret: "%env(resolve:OAUTH_CLIENTSECRET)%" + oauthLoginurl: "%env(resolve:OAUTH_LOGINURL)%" + oauthLogouturl: "%env(resolve:OAUTH_LOGOUTURL)%" + oauthTokenurl: "%env(resolve:OAUTH_TOKENURL)%" + oauthUserinfo: "%env(resolve:OAUTH_USERINFO)%" + oauthUsername: "%env(resolve:OAUTH_USERNAME)%" + oauthEmail: "%env(resolve:OAUTH_EMAIL)%" + oauthLastname: "%env(resolve:OAUTH_LASTNAME)%" + oauthFirstname: "%env(resolve:OAUTH_FIRSTNAME)%" + oauthAvatar: "%env(resolve:OAUTH_AVATAR)%" + oauthNiveau01: "%env(resolve:OAUTH_NIVEAU01)%" + oauthGroup: "%env(resolve:OAUTH_GROUP)%" + oauthAutosubmit: "%env(resolve:OAUTH_AUTOSUBMIT)%" + oauthAutoupdate: "%env(resolve:OAUTH_AUTOUPDATE)%" - proxyUse: '%env(resolve:PROXY_USE)%' - proxyHost: '%env(resolve:PROXY_HOST)%' - proxyPort: '%env(resolve:PROXY_PORT)%' + nineUrl: "%env(resolve:NINE_URL)%" + nineSecret: "%env(resolve:NINE_SECRET)%" - minioUrl: '%env(resolve:MINIO_URL)%' - minioKey: '%env(resolve:MINIO_KEY)%' - minioSecret: '%env(resolve:MINIO_SECRET)%' - minioBucket: '%env(resolve:MINIO_BUCKET)%' - minioRoot: '%env(resolve:MINIO_ROOT)%' - minioPathstyle: '%env(resolve:MINIO_PATH_STYLE)%' - minioSecure: '%env(resolve:MINIO_SECURE)%' + appModeregistrationterme: "%env(resolve:APP_MODEREGISTRATIONTERM)%" - hydraLoginchallenge: '%env(resolve:HYDRA_LOGINCHALLENGE)%' - hydraLoginchallengeaccept: '%env(resolve:HYDRA_LOGINCHALLENGEACCEPT)%' - hydraConsentchallenge: '%env(resolve:HYDRA_CONSENTCHALLENGE)%' - hydraConsentchallengeaccept: '%env(resolve:HYDRA_CONSENTCHALLENGEACCEPT)%' - - sondeUse: '%env(resolve:SONDE_USE)%' - sondeUrl: '%env(resolve:SONDE_URL)%' + proxyUse: "%env(resolve:PROXY_USE)%" + proxyHost: "%env(resolve:PROXY_HOST)%" + proxyPort: "%env(resolve:PROXY_PORT)%" - auditUse: '%env(resolve:AUDIT_USE)%' + minioUrl: "%env(resolve:MINIO_URL)%" + minioKey: "%env(resolve:MINIO_KEY)%" + minioSecret: "%env(resolve:MINIO_SECRET)%" + minioBucket: "%env(resolve:MINIO_BUCKET)%" + minioRoot: "%env(resolve:MINIO_ROOT)%" + minioPathstyle: "%env(resolve:MINIO_PATH_STYLE)%" + minioSecure: "%env(resolve:MINIO_SECURE)%" + + hydraLoginchallenge: "%env(resolve:HYDRA_LOGINCHALLENGE)%" + hydraLoginchallengeaccept: "%env(resolve:HYDRA_LOGINCHALLENGEACCEPT)%" + hydraConsentchallenge: "%env(resolve:HYDRA_CONSENTCHALLENGE)%" + hydraConsentchallengeaccept: "%env(resolve:HYDRA_CONSENTCHALLENGEACCEPT)%" + + sondeUse: "%env(resolve:SONDE_USE)%" + sondeUrl: "%env(resolve:SONDE_URL)%" + + auditUse: "%env(resolve:AUDIT_USE)%" services: - _defaults: - autowire: true # Automatically injects dependencies in your services. - autoconfigure: true # Automatically registers your services as commands, event subscribers, etc. + _defaults: + autowire: true # Automatically injects dependencies in your services. + autoconfigure: true # Automatically registers your services as commands, event subscribers, etc. - App\: - resource: '../src/' - exclude: - - '../src/DependencyInjection/' - - '../src/Entity/' - - '../src/Kernel.php' - - App\Controller\: - resource: '../src/Controller' - tags: ['controller.service_arguments'] + App\: + resource: "../src/" + exclude: + - "../src/DependencyInjection/" + - "../src/Entity/" + - "../src/Kernel.php" - Redis: - class: Redis - calls: - - connect: - - '%env(REDIS_HOST)%' - - '%env(int:REDIS_PORT)%' - - Symfony\Component\HttpFoundation\Session\Storage\Handler\RedisSessionHandler: - arguments: - - '@Redis' + App\Controller\: + resource: "../src/Controller" + tags: ["controller.service_arguments"] - App\EventListener\AllSubscriber: - public: true - tags: - - name: 'doctrine.event_subscriber' + Redis: + class: Redis + calls: + - connect: + - "%env(REDIS_HOST)%" + - "%env(int:REDIS_PORT)%" - App\EventListener\PurgefileSubscriber: - public: true - arguments: ['@App\Service\MinioService'] - tags: - - name: 'doctrine.event_subscriber' + Symfony\Component\HttpFoundation\Session\Storage\Handler\RedisSessionHandler: + arguments: + - "@Redis" - App\EventListener\Niveau01Subscriber: - public: true - arguments: ['@doctrine.orm.entity_manager','@App\Service\LdapService'] - tags: - - name: 'doctrine.event_subscriber' + App\EventListener\AllSubscriber: + public: true + tags: + - name: "doctrine.event_subscriber" - App\EventListener\Niveau02Subscriber: - public: true - arguments: ['@doctrine.orm.entity_manager','@App\Service\LdapService'] - tags: - - name: 'doctrine.event_subscriber' + App\EventListener\PurgefileSubscriber: + public: true + arguments: ['@App\Service\MinioService'] + tags: + - name: "doctrine.event_subscriber" - App\EventListener\GroupSubscriber: - public: true - arguments: ['@doctrine.orm.entity_manager','@App\Service\LdapService'] - tags: - - name: 'doctrine.event_subscriber' + App\EventListener\Niveau01Subscriber: + public: true + arguments: ["@doctrine.orm.entity_manager", '@App\Service\LdapService'] + tags: + - name: "doctrine.event_subscriber" - App\EventListener\UserSubscriber: - public: true - arguments: ['@doctrine.orm.entity_manager','@App\Service\LdapService'] - tags: - - name: 'doctrine.event_subscriber' + App\EventListener\Niveau02Subscriber: + public: true + arguments: ["@doctrine.orm.entity_manager", '@App\Service\LdapService'] + tags: + - name: "doctrine.event_subscriber" - App\EventListener\UserGroupSubscriber: - public: true - arguments: ['@doctrine.orm.entity_manager','@App\Service\LdapService'] - tags: - - name: 'doctrine.event_subscriber' + App\EventListener\GroupSubscriber: + public: true + arguments: ["@doctrine.orm.entity_manager", '@App\Service\LdapService'] + tags: + - name: "doctrine.event_subscriber" - App\Entity\User: - public: true - arguments: ['@security.password_hasher'] + App\EventListener\UserSubscriber: + public: true + arguments: ["@doctrine.orm.entity_manager", '@App\Service\LdapService'] + tags: + - name: "doctrine.event_subscriber" - App\Command\InitCommand: - public: true - arguments: ['@service_container','@doctrine.orm.entity_manager'] + App\EventListener\UserGroupSubscriber: + public: true + arguments: ["@doctrine.orm.entity_manager", '@App\Service\LdapService'] + tags: + - name: "doctrine.event_subscriber" - App\Command\SetPasswordCommand: - public: true - arguments: ['@service_container','@doctrine.orm.entity_manager'] + App\Entity\User: + public: true + arguments: ["@security.password_hasher"] - App\Command\CronCommand: - public: true - arguments: ['@service_container','@doctrine.orm.entity_manager'] + App\Command\InitCommand: + public: true + arguments: ["@service_container", "@doctrine.orm.entity_manager"] - App\Command\CleanCommand: - public: true - arguments: ['@service_container','@doctrine.orm.entity_manager'] + App\Command\SetPasswordCommand: + public: true + arguments: ["@service_container", "@doctrine.orm.entity_manager"] - App\Command\CleanRegistrationCommand: - public: true - arguments: ['@service_container','@doctrine.orm.entity_manager'] + App\Command\CronCommand: + public: true + arguments: ["@service_container", "@doctrine.orm.entity_manager"] - App\Command\SynchroCommand: - public: true - arguments: ['@service_container','@doctrine.orm.entity_manager','@App\Service\LdapService'] + App\Command\CleanCommand: + public: true + arguments: ["@service_container", "@doctrine.orm.entity_manager"] - App\Twig\AppExtension: - calls: - - [setContainer, ["@service_container"]] - tags: - - { name: twig.extension } + App\Command\CleanRegistrationCommand: + public: true + arguments: ["@service_container", "@doctrine.orm.entity_manager"] - App\Service\AppSession: - public: true - arguments: ["@service_container","@doctrine.orm.entity_manager","@request_stack","@security.token_storage"] - tags: - - { name: kernel.event_listener, event: kernel.request, method: onDomainParse } + App\Command\SynchroCommand: + public: true + arguments: + [ + "@service_container", + "@doctrine.orm.entity_manager", + '@App\Service\LdapService', + ] - App\Service\UploadListener: - public: true - arguments: ["@doctrine.orm.entity_manager"] - tags: - - { name: kernel.event_listener, event: oneup_uploader.post_persist, method: onUpload } - - App\Service\UploadSamename: - public: true + App\Twig\AppExtension: + calls: + - [setContainer, ["@service_container"]] + tags: + - { name: twig.extension } - App\Service\LdapService: - public: true - arguments: ["@service_container"] + App\Service\AppSession: + public: true + arguments: + [ + "@service_container", + "@doctrine.orm.entity_manager", + "@request_stack", + "@security.token_storage", + ] + tags: + - { + name: kernel.event_listener, + event: kernel.request, + method: onDomainParse, + } - App\Service\MailService: - public: true - arguments: ["@mailer", "@twig"] + App\Service\UploadListener: + public: true + arguments: ["@doctrine.orm.entity_manager"] + tags: + - { + name: kernel.event_listener, + event: oneup_uploader.post_persist, + method: onUpload, + } - App\Service\ApiService: - public: true + App\Service\UploadSamename: + public: true - App\Service\MinioService: - public: true - arguments: ["%kernel.project_dir%","%minioUrl%","%minioKey%","%minioSecret%","%minioBucket%","%minioRoot%","%minioPathstyle%","%minioSecure%","%kernel.environment%"] + App\Service\LdapService: + public: true + arguments: ["@service_container"] - App\Controller\RestController: - public: true - - App\Form\PagewidgetType: - arguments: ["@service_container"] + App\Service\MailService: + public: true + arguments: ["@mailer", "@twig"] - App\Form\Type\FaChoiceType: - arguments: ["%kernel.project_dir%/public/medias/icons-fa5.json"] - tags: - - { name: form.type } \ No newline at end of file + App\Service\ApiService: + public: true + + App\Service\MinioService: + public: true + arguments: + [ + "%kernel.project_dir%", + "%minioUrl%", + "%minioKey%", + "%minioSecret%", + "%minioBucket%", + "%minioRoot%", + "%minioPathstyle%", + "%minioSecure%", + "%kernel.environment%", + ] + + App\Controller\RestController: + public: true + + App\Form\PagewidgetType: + arguments: ["@service_container"] + + App\Form\Type\FaChoiceType: + arguments: ["%kernel.project_dir%/public/medias/icons-fa5.json"] + tags: + - { name: form.type } diff --git a/containers/hydra-dispatcher/hydra/providers.yml b/containers/hydra-dispatcher/hydra/providers.yml index a95de62..075c4d5 100755 --- a/containers/hydra-dispatcher/hydra/providers.yml +++ b/containers/hydra-dispatcher/hydra/providers.yml @@ -1,43 +1,43 @@ hydra: apps: - id: ninesql - title: + title: fr: NINE SQL en: NINE SQL - description: + description: fr: Authentification via NINESQL en: Authentication by NINESQL - icon_url: https://127.0.0.1:8000/medias/icon/icon_bdd.png - login_url: http://127.0.0.1:8000/hydra/loginsql - consent_url: http://127.0.0.1:8000/hydra/consent - logout_url: http://127.0.0.1:8000/hydra/logoutsql + icon_url: http://localhost:8005/medias/icon/icon_bdd.png + login_url: http://localhost:8005/hydra/loginsql + consent_url: http://localhost:8005/hydra/consent + logout_url: http://localhost:8005/hydra/logoutsql attributes_rewrite_rules: - username: + username: - consent.session.id_token.username - email: + email: - consent.session.id_token.email firstname: - consent.session.id_token.firstname lastname: - consent.session.id_token.lastname - - id: nineldap - title: - fr: NINE LDAP - en: NINE LDAP - description: - fr: Authentification via NINELDAP - en: Authentication by NINELDAP - icon_url: https://127.0.0.1:8000/medias/icon/icon_phpldapadmin.png - login_url: http://127.0.0.1:8000/hydra/loginldap - consent_url: http://127.0.0.1:8000/hydra/consent - logout_url: http://127.0.0.1:8000/hydra/logoutldap - attributes_rewrite_rules: - username: - - consent.session.id_token.username - email: - - consent.session.id_token.email - firstname: - - consent.session.id_token.firstname - lastname: - - consent.session.id_token.lastname + #- id: nineldap + # title: + # fr: NINE LDAP + # en: NINE LDAP + # description: + # fr: Authentification via NINELDAP + # en: Authentication by NINELDAP + # icon_url: http://localhost:8005/medias/icon/icon_phpldapadmin.png + # login_url: http://localhost:8005/hydra/loginldap + # consent_url: http://localhost:8005/hydra/consent + # logout_url: http://localhost:8005/hydra/logoutldap + # attributes_rewrite_rules: + # username: + # - consent.session.id_token.username + # email: + # - consent.session.id_token.email + # firstname: + # - consent.session.id_token.firstname + # lastname: + # - consent.session.id_token.lastname diff --git a/containers/hydra/clients.d/nineskeletor.json b/containers/hydra/clients.d/nineskeletor.json index 4e66d72..c071cf5 100755 --- a/containers/hydra/clients.d/nineskeletor.json +++ b/containers/hydra/clients.d/nineskeletor.json @@ -9,11 +9,12 @@ "jwks": {}, "metadata": {}, "token_endpoint_auth_method": "client_secret_post", - "post_logout_redirect_uris": ["https://127.0.0.1:8000"], - "redirect_uris": ["https://127.0.0.1:8000/oauth2/callback"], + "post_logout_redirect_uris": ["http://localhost:8005"], + "redirect_uris": ["http://localhost:8005/oauth2/callback"], "response_types": [ "code" ], - "logo_uri": "https://127.0.0.1:8000/minio/logo", + "logo_uri": "http://localhost:8005/minio/logo", "scope": "openid" + } \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index 4a6a916..96279f6 100755 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,6 +1,7 @@ version: '3' # Port +# 8005 = nineskeletor # 6379 = redis # 5432 = postgresql # 80 = mercure @@ -14,10 +15,28 @@ version: '3' services: + + nineskeletor: + build: + context: . + dockerfile: ./misc/docker/Dockerfile + container_name: nineskeletor-app + image: reg.cadoles.com/envole/nineskeletor + ports: + - "8005:80" + - "5588:5588" + volumes: + - ./src:/app/src:delegated + - ./templates:/app/templates:delegated + - ./config:/app/config:delegated + - ./.env:/app/.env:delegated + - ./public/uploads:/app/public/uploads:delegated + - ./misc:/app/misc:delegated + # Service redis pour le stockage des sessions redis: image: redis:4.0 - container_name: ninegate-redis + container_name: nineskeletor-redis ports: - 6379:6379 environment: @@ -28,10 +47,10 @@ services: # Service postgresql pour le stockage de la bdd applicative postgresql: image: postgres:13-alpine - container_name: ninegate-postgresql - hostname: ninegate-postgresql + container_name: nineskeletor-postgresql + hostname: nineskeletor-postgresql environment: - POSTGRES_MULTIPLE_DATABASES: ninegate,hydra + POSTGRES_MULTIPLE_DATABASES: nineskeletor,hydra POSTGRES_PASSWORD: ChangeMe POSTGRES_USER: symfony ports: @@ -43,7 +62,7 @@ services: # Service websocket mercure: image: dunglas/mercure - container_name: ninegate-mercure + container_name: nineskeletor-mercure restart: unless-stopped ports: - "80" @@ -62,7 +81,7 @@ services: # Service de stockage Minio minio1: image: minio/minio:RELEASE.2021-01-16T02-19-44Z - container_name: ninegate-minio1 + container_name: nineskeletor-minio1 volumes: - data1-1:/data1 - data1-2:/data2 @@ -81,7 +100,7 @@ services: # Service de stockage Minio minio2: image: minio/minio:RELEASE.2021-01-16T02-19-44Z - container_name: ninegate-minio2 + container_name: nineskeletor-minio2 volumes: - data2-1:/data1 - data2-2:/data2 @@ -100,7 +119,7 @@ services: # Service de stockage Minio minio3: image: minio/minio:RELEASE.2021-01-16T02-19-44Z - container_name: ninegate-minio3 + container_name: nineskeletor-minio3 volumes: - data3-1:/data1 - data3-2:/data2 @@ -119,7 +138,7 @@ services: # Service de stockage Minio minio4: image: minio/minio:RELEASE.2021-01-16T02-19-44Z - container_name: ninegate-minio4 + container_name: nineskeletor-minio4 volumes: - data4-1:/data1 - data4-2:/data2 @@ -138,7 +157,7 @@ services: # Service nginx orchestrateur des minio nginx: image: nginx:1.19.2-alpine - container_name: ninegate-nginx + container_name: nineskeletor-nginx volumes: - ./containers/minio/nginx.conf:/etc/nginx/nginx.conf:ro ports: @@ -152,7 +171,7 @@ services: # Service hydra hydra: image: cadoles/hydra-v1 - container_name: ninegate-hydra + container_name: nineskeletor-hydra volumes: - ./containers/hydra/clients.d:/etc/hydra/clients.d ports: @@ -165,10 +184,11 @@ services: restart: on-failure environment: LOG_LEAK_SENSITIVE_VALUES: "true" - HYDRA_URLS_SELF_ISSUER: http://127.0.0.1:7080 - HYDRA_URLS_CONSENT: http://127.0.0.1:7081/consent - HYDRA_URLS_LOGIN: http://127.0.0.1:7081/login - HYDRA_URLS_LOGOUT: http://127.0.0.1:7081/logout + HYDRA_URLS_SELF_ISSUER: http://localhost:7080 + HYDRA_URLS_CONSENT: http://localhost:7081/consent + HYDRA_URLS_LOGIN: http://localhost:7081/login + HYDRA_URLS_LOGOUT: http://localhost:7081/logout + HYDRA_URLS_ERROR: https://localhost:8005 HYDRA_DSN: postgres://symfony:ChangeMe@postgresql:5432/hydra #HYDRA_WAIT4X_DATABASE_TYPE: postgres #HYDRA_WAIT4X_DATABASE_DSN: postgres://symfony:ChangeMe@postgresql:5432/hydra @@ -178,7 +198,7 @@ services: hydra-dispatcher: build: context: ./containers/hydra-dispatcher - container_name: ninegate-hydra-dispatcher + container_name: nineskeletor-hydra-dispatcher links: - hydra ports: @@ -190,7 +210,7 @@ services: - HYDRA_BASE_URL=http://hydra:4444 - HYDRA_ADMIN_BASE_URL=http://hydra:4445 # url dispatcher - - BASE_URL=http://127.0.0.1:7081 + - BASE_URL=http://localhost:7081 - COOKIE_PATH=/ - DEFAULT_LOCALE=fr - APP_LOCALES=fr,en @@ -202,15 +222,15 @@ services: # Service fake smtp = optionnel mailer: image: schickling/mailcatcher - container_name: ninegate-mailer + container_name: nineskeletor-mailer ports: - 1025:1025 - 1080:1080 - # Service fake openldap = optionnel si ninegate a une synchronisation avec un annuaire + # Service fake openldap = optionnel si nineskeletor a une synchronisation avec un annuaire openldap: image: osixia/openldap:1.5.0 - container_name: ninegate-openldap + container_name: nineskeletor-openldap environment: LDAP_LOG_LEVEL: "256" LDAP_ORGANISATION: "nine" @@ -232,7 +252,7 @@ services: # Service tool phpldapadmin = optionnel dans le cas de la présence d'un fake openldap phpldapadmin: image: osixia/phpldapadmin:latest - container_name: ninegate-phpldapadmin + container_name: nineskeletor-phpldapadmin environment: PHPLDAPADMIN_LDAP_HOSTS: "openldap" PHPLDAPADMIN_HTTPS: "false" @@ -244,7 +264,7 @@ services: # Service tool adminer = optionnel adminer: image: adminer - container_name: ninegate-adminer + container_name: nineskeletor-adminer restart: always ports: - 6081:8080 diff --git a/misc/docker/Dockerfile b/misc/docker/Dockerfile new file mode 100644 index 0000000..715e34b --- /dev/null +++ b/misc/docker/Dockerfile @@ -0,0 +1,22 @@ +FROM reg.cadoles.com/envole/nineapache:8.1 + +RUN echo "* * * * * /app/bin/console app:Cron --env=prod" >> /var/spool/cron/crontabs/root + +WORKDIR /app +COPY . . + + +RUN yarn install +RUN yarn encore dev +RUN yarn encore prod + +RUN mkdir -p /app/public/uploads +RUN chown apache /app/public/uploads -R +RUN chmod u+w /app/public/uploads -R + +RUN mkdir -p /app/var +RUN chown apache /app/var -R +RUN chmod u+w /app/var -R + +CMD /app/misc/script/reconfigure.sh && /etc/apache2/apache2.sh +#CMD /etc/apache2/apache2.sh diff --git a/misc/script/reconfigure.sh b/misc/script/reconfigure.sh new file mode 100755 index 0000000..951f42e --- /dev/null +++ b/misc/script/reconfigure.sh @@ -0,0 +1,17 @@ +#!/bin/bash +set -eo pipefail + +# Se positionner sur la racine du projet +DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" +cd ${DIR} +cd ../.. +DIR=$(pwd) + +# Installation des dépendances composer +composer install --no-interaction + +bin/console d:s:u --force --complete + +bin/console app:Init + +exec $@ \ No newline at end of file diff --git a/phpstan.dist.neon b/phpstan.dist.neon new file mode 100644 index 0000000..e0de575 --- /dev/null +++ b/phpstan.dist.neon @@ -0,0 +1,8 @@ +parameters: + level: 6 + paths: + - bin/ + - config/ + - public/ + - src/ + - tests/ diff --git a/src/Controller/HomeController.php b/src/Controller/HomeController.php index 47c1f25..538b319 100755 --- a/src/Controller/HomeController.php +++ b/src/Controller/HomeController.php @@ -18,24 +18,27 @@ class HomeController extends AbstractController // Récupération de la page encours $id = $request->query->get('id'); - // Calcul des pages de l'utilisateur - $em->getRepository("App\Entity\Page")->getPagesUser($this->getUser(), $id, $pagecurrent, $pagesportal, $pagesuser, $groups); + // Application Portal + if (in_array('PORTAL', $this->getParameter('appModules'))) { + // Calcul des pages de l'utilisateur + $em->getRepository("App\Entity\Page")->getPagesUser($this->getUser(), $id, $pagecurrent, $pagesportal, $pagesuser, $groups); - // si aucune page = page par défaut - if ($pagecurrent) { - return $this->render('Page/pages.html.twig', [ - 'useheader' => true, - 'usemenu' => true, - 'usesidebar' => false, - 'entity' => $pagecurrent, - 'access' => 'all', - 'pagesportal' => $pagesportal, - 'pagesuser' => $pagesuser, - 'groups' => $groups, - 'canadd' => true, - 'widgetsuser' => $em->getRepository("App\Entity\Widget")->getWidgetAccess('all'), - 'widgetsgroup' => $em->getRepository("App\Entity\Widget")->getWidgetAccess('group'), - ]); + // si aucune page = page par défaut + if ($pagecurrent) { + return $this->render('Page/pages.html.twig', [ + 'useheader' => true, + 'usemenu' => true, + 'usesidebar' => false, + 'entity' => $pagecurrent, + 'access' => 'all', + 'pagesportal' => $pagesportal, + 'pagesuser' => $pagesuser, + 'groups' => $groups, + 'canadd' => true, + 'widgetsuser' => $em->getRepository("App\Entity\Widget")->getWidgetAccess('all'), + 'widgetsgroup' => $em->getRepository("App\Entity\Widget")->getWidgetAccess('group'), + ]); + } } if (!$this->getUser()) { diff --git a/src/Controller/PagewidgetController.php b/src/Controller/PagewidgetController.php index 4533064..b719794 100644 --- a/src/Controller/PagewidgetController.php +++ b/src/Controller/PagewidgetController.php @@ -252,7 +252,6 @@ class PagewidgetController extends AbstractController 'idpage' => $idpage, 'form' => $form->createView(), 'usage' => $usage, - 'group' => $group, ]); } diff --git a/src/Controller/SecurityController.php b/src/Controller/SecurityController.php index 3d480da..34380cc 100755 --- a/src/Controller/SecurityController.php +++ b/src/Controller/SecurityController.php @@ -237,6 +237,7 @@ class SecurityController extends AbstractController $callback = $this->generateUrl('app_loginopenidcallback', [], UrlGeneratorInterface::ABSOLUTE_URL); $apiurl = $this->getParameter('oauthTokenurl'); + $query = [ 'grant_type' => 'authorization_code', 'code' => $request->get('code'), @@ -244,10 +245,10 @@ class SecurityController extends AbstractController 'client_id' => $this->getParameter('oauthClientid'), 'client_secret' => $this->getParameter('oauthClientsecret'), ]; - $response = $this->apiservice->run('POST', $apiurl, $query, null, 'form'); + $response = $this->apiservice->run('POST', $apiurl, $query, null, 'form'); if (!$response || '200' != $response->code) { - exit('pb openid 01'); + exit('pb openid 01 login'); } $accesstoken = $response->body->access_token; $accesstokentype = $response->body->token_type; @@ -257,10 +258,9 @@ class SecurityController extends AbstractController $request->getSession()->set('oauthIdtoken', $îdtoken); $apiurl = $this->getParameter('oauthUserinfo'); - $response = $this->apiservice->run('GET', $apiurl, null, ['Authorization' => $accesstokentype.' '.$accesstoken]); if (!$response || '200' != $response->code) { - exit('pb openid 02'); + exit('pb openid 02 login'); } $attributes = json_decode(json_encode($response->body), true); diff --git a/src/Service/LdapService.php b/src/Service/LdapService.php index c3cfae2..d0f0709 100755 --- a/src/Service/LdapService.php +++ b/src/Service/LdapService.php @@ -176,14 +176,12 @@ class LdapService return $this->resultToArray($result); } - public function searchdn($dn, $subBranch = '') + public function searchdn($dn) { $connection = $this->connect(); - $tbdn = ldap_explode_dn($dn, 0); - $branch = ($subBranch ? $subBranch : $this->basedn); - $result = ldap_search($connection, $branch, '('.$tbdn[0].')', [], 0, 0, 0); + $result = @ldap_read($connection, $dn, '(objectClass=*)'); if (!$result) { - $this->ldapError(); + return null; } return $this->resultToArray($result); @@ -300,32 +298,32 @@ class LdapService $this->addOrganisation($this->baseorganisation); } - $ldapentrys = $this->searchdn($this->baseniveau01, $this->baseorganisation); + $ldapentrys = $this->searchdn($this->baseniveau01); if (empty($ldapentrys)) { $this->addOrganisation($this->baseniveau01); } - $ldapentrys = $this->searchdn($this->baseniveau02, $this->baseorganisation); + $ldapentrys = $this->searchdn($this->baseniveau02); if (empty($ldapentrys)) { $this->addOrganisation($this->baseniveau02); } - $ldapentrys = $this->searchdn($this->baseniveau03, $this->baseorganisation); + $ldapentrys = $this->searchdn($this->baseniveau03); if (empty($ldapentrys)) { $this->addOrganisation($this->baseniveau03); } - $ldapentrys = $this->searchdn($this->baseniveau04, $this->baseorganisation); + $ldapentrys = $this->searchdn($this->baseniveau04); if (empty($ldapentrys)) { $this->addOrganisation($this->baseniveau04); } - $ldapentrys = $this->searchdn($this->basegroup, $this->baseorganisation); + $ldapentrys = $this->searchdn($this->basegroup); if (empty($ldapentrys)) { $this->addOrganisation($this->basegroup); } - $ldapentrys = $this->searchdn($this->baseuser, $this->baseorganisation); + $ldapentrys = $this->searchdn($this->baseuser); if (empty($ldapentrys)) { $this->addOrganisation($this->baseuser); } diff --git a/symfony.lock b/symfony.lock index 1a5825b..97e6b0f 100755 --- a/symfony.lock +++ b/symfony.lock @@ -97,6 +97,18 @@ "config/routes/oneup_uploader.yaml" ] }, + "phpstan/phpstan": { + "version": "1.11", + "recipe": { + "repo": "github.com/symfony/recipes-contrib", + "branch": "main", + "version": "1.0", + "ref": "5e490cc197fb6bb1ae22e5abbc531ddc633b6767" + }, + "files": [ + "phpstan.dist.neon" + ] + }, "phpunit/phpunit": { "version": "9.5", "recipe": { diff --git a/templates/Include/sidebaradmin.html.twig b/templates/Include/sidebaradmin.html.twig index 8d18f70..be88729 100755 --- a/templates/Include/sidebaradmin.html.twig +++ b/templates/Include/sidebaradmin.html.twig @@ -126,31 +126,38 @@ {% set sectionactive=true %} {% endif %} {% endfor %} + + {% set toshow=true %} + {% if section.name == "PORTAIL" and not ("PORTAL" in appModules) %} + {% set toshow=false %} + {% endif %} - \ No newline at end of file diff --git a/templates/Page/default.html.twig b/templates/Page/default.html.twig index 1f24738..2aa1e3f 100644 --- a/templates/Page/default.html.twig +++ b/templates/Page/default.html.twig @@ -1,6 +1,7 @@ {% extends 'base.html.twig' %} {% block localstyle %} + {% endblock %} {% block body %} -
+
- +

{{ app.session.get('appname') }}

@@ -50,92 +52,4 @@ h3 { Mot de passe oublié ? {% endif %}
- -
-
-
- - -
-

Portail
Profilé

-

Tous les éléments du portail peuvent être distribués en fonction du profil de l'utilisateur.

-

Il est possible de définir le profil de l'utilisateur en fonction : -

    -
  • De son groupe d'appartenance
  • -
  • D'attributs Annuaire
  • -
  • D'attributs SSO
  • -
-

-

En fonction du profil de l'utilisateur, il est possible de distribuer : -

    -
  • Des pages en onglet
  • -
  • Des Flux RSS
  • -
  • Des Annonces
  • -
  • Des Applications Web
  • -
  • Des Calendriers
  • -
-

-
-
-
- -
-
- - -
-

Portail
Personnalisable

-

En fonction de la configuration et de leur profil, les utilisateurs du portail sont libres de créer leur propre page.

-

Les pages de l'utilisateur pouvant prendre plusieurs formes : -

    -
  • Une page pointant sur l'adresse d'un autre site
  • -
  • Une page construite par l'utilisateur via l'utilisation d'un éditeur riche
  • -
  • Une page constituée de widgets qu'il dispose selon son libre choix
  • -
-

-
-
-
- - -
-
- - -
-

Portail
Evolutif

-

Ninegate est évolutif dans le sens où, vous disposerez d'une large bibliothèque de widgets qui composeront vos pages.

-

Voici quelques exemples : -

    -
  • Widget URL
  • -
  • Widget Flux RSS
  • -
  • Widget Editeur de texte
  • -
  • Widget Gestionnaire de tâches
  • -
  • Widget Calendriers
  • -
  • Widget Favoris
  • -
  • Widget Dépôt de Fichiers
  • -
  • Et bien d'autres encore
  • -
-
-
-
- -
-
- - -
-

Portail
Open Source

-

Ce projet est opensource -

    -
  • Vous pouvez à tout moment modifier le code de votre portail
  • -
  • Distribuer {{ app.session.get('appname') }}
  • -
-

-

Ninegate est développé dans le cadre du projet Envole. Vous pourrez trouver le code source de Ninegate sur la forge du projet

-

Ninegate est propulsé par la société Cadoles

-
-
-
-
{% endblock %} \ No newline at end of file diff --git a/tools/php-cs-fixer/.php-cs-fixer.dist.php b/tools/php-cs-fixer/.php-cs-fixer.dist.php new file mode 100644 index 0000000..d7e0218 --- /dev/null +++ b/tools/php-cs-fixer/.php-cs-fixer.dist.php @@ -0,0 +1,45 @@ +in(__DIR__.'/../../src') + ->name('*.php') +; + +// TODO: Définir les règles de style communes +// spécifiques au projet +return (new PhpCsFixer\Config()) + ->setRules([ + '@Symfony' => true, + 'concat_space' => ['spacing' => 'none'], + 'array_syntax' => ['syntax' => 'short'], + 'combine_consecutive_issets' => true, + 'explicit_indirect_variable' => true, + 'no_useless_return' => true, + 'ordered_imports' => true, + 'no_unused_imports' => true, + 'no_spaces_after_function_name' => true, + 'no_spaces_inside_parenthesis' => true, + 'ternary_operator_spaces' => true, + 'class_definition' => ['single_line' => true], + 'whitespace_after_comma_in_array' => true, + + // phpdoc + 'phpdoc_add_missing_param_annotation' => ['only_untyped' => true], + 'phpdoc_order' => true, + 'phpdoc_types_order' => [ + 'null_adjustment' => 'always_last', + 'sort_algorithm' => 'alpha', + ], + 'phpdoc_no_empty_return' => false, + 'phpdoc_summary' => false, + 'general_phpdoc_annotation_remove' => [ + 'annotations' => [ + 'expectedExceptionMessageRegExp', + 'expectedException', + 'expectedExceptionMessage', + 'author', + ], + ], + ]) + ->setFinder($finder) +; diff --git a/tools/php-cs-fixer/composer.json b/tools/php-cs-fixer/composer.json old mode 100755 new mode 100644 index 9558a4c..9519e90 --- a/tools/php-cs-fixer/composer.json +++ b/tools/php-cs-fixer/composer.json @@ -1,5 +1,5 @@ { "require": { - "friendsofphp/php-cs-fixer": "^3.9" + "friendsofphp/php-cs-fixer": "3.4" } } diff --git a/tools/php-cs-fixer/composer.lock b/tools/php-cs-fixer/composer.lock old mode 100755 new mode 100644 index 69f256d..0f9d552 --- a/tools/php-cs-fixer/composer.lock +++ b/tools/php-cs-fixer/composer.lock @@ -4,34 +4,34 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "d6259871d743287ae7052fe34780cc5a", + "content-hash": "2548af5080aac64997dfc54d4110f2f7", "packages": [ { "name": "composer/pcre", - "version": "3.0.0", + "version": "1.0.1", "source": { "type": "git", "url": "https://github.com/composer/pcre.git", - "reference": "e300eb6c535192decd27a85bc72a9290f0d6b3bd" + "reference": "67a32d7d6f9f560b726ab25a061b38ff3a80c560" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/pcre/zipball/e300eb6c535192decd27a85bc72a9290f0d6b3bd", - "reference": "e300eb6c535192decd27a85bc72a9290f0d6b3bd", + "url": "https://api.github.com/repos/composer/pcre/zipball/67a32d7d6f9f560b726ab25a061b38ff3a80c560", + "reference": "67a32d7d6f9f560b726ab25a061b38ff3a80c560", "shasum": "" }, "require": { - "php": "^7.4 || ^8.0" + "php": "^5.3.2 || ^7.0 || ^8.0" }, "require-dev": { "phpstan/phpstan": "^1.3", "phpstan/phpstan-strict-rules": "^1.1", - "symfony/phpunit-bridge": "^5" + "symfony/phpunit-bridge": "^4.2 || ^5" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "3.x-dev" + "dev-main": "1.x-dev" } }, "autoload": { @@ -59,7 +59,7 @@ ], "support": { "issues": "https://github.com/composer/pcre/issues", - "source": "https://github.com/composer/pcre/tree/3.0.0" + "source": "https://github.com/composer/pcre/tree/1.0.1" }, "funding": [ { @@ -75,20 +75,20 @@ "type": "tidelift" } ], - "time": "2022-02-25T20:21:48+00:00" + "time": "2022-01-21T20:24:37+00:00" }, { "name": "composer/semver", - "version": "3.3.2", + "version": "3.2.9", "source": { "type": "git", "url": "https://github.com/composer/semver.git", - "reference": "3953f23262f2bff1919fc82183ad9acb13ff62c9" + "reference": "a951f614bd64dcd26137bc9b7b2637ddcfc57649" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/semver/zipball/3953f23262f2bff1919fc82183ad9acb13ff62c9", - "reference": "3953f23262f2bff1919fc82183ad9acb13ff62c9", + "url": "https://api.github.com/repos/composer/semver/zipball/a951f614bd64dcd26137bc9b7b2637ddcfc57649", + "reference": "a951f614bd64dcd26137bc9b7b2637ddcfc57649", "shasum": "" }, "require": { @@ -140,7 +140,7 @@ "support": { "irc": "irc://irc.freenode.org/composer", "issues": "https://github.com/composer/semver/issues", - "source": "https://github.com/composer/semver/tree/3.3.2" + "source": "https://github.com/composer/semver/tree/3.2.9" }, "funding": [ { @@ -156,31 +156,31 @@ "type": "tidelift" } ], - "time": "2022-04-01T19:23:25+00:00" + "time": "2022-02-04T13:58:43+00:00" }, { "name": "composer/xdebug-handler", - "version": "3.0.3", + "version": "2.0.5", "source": { "type": "git", "url": "https://github.com/composer/xdebug-handler.git", - "reference": "ced299686f41dce890debac69273b47ffe98a40c" + "reference": "9e36aeed4616366d2b690bdce11f71e9178c579a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/ced299686f41dce890debac69273b47ffe98a40c", - "reference": "ced299686f41dce890debac69273b47ffe98a40c", + "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/9e36aeed4616366d2b690bdce11f71e9178c579a", + "reference": "9e36aeed4616366d2b690bdce11f71e9178c579a", "shasum": "" }, "require": { - "composer/pcre": "^1 || ^2 || ^3", - "php": "^7.2.5 || ^8.0", + "composer/pcre": "^1", + "php": "^5.3.2 || ^7.0 || ^8.0", "psr/log": "^1 || ^2 || ^3" }, "require-dev": { "phpstan/phpstan": "^1.0", "phpstan/phpstan-strict-rules": "^1.1", - "symfony/phpunit-bridge": "^6.0" + "symfony/phpunit-bridge": "^4.2 || ^5.0 || ^6.0" }, "type": "library", "autoload": { @@ -206,7 +206,7 @@ "support": { "irc": "irc://irc.freenode.org/composer", "issues": "https://github.com/composer/xdebug-handler/issues", - "source": "https://github.com/composer/xdebug-handler/tree/3.0.3" + "source": "https://github.com/composer/xdebug-handler/tree/2.0.5" }, "funding": [ { @@ -222,20 +222,20 @@ "type": "tidelift" } ], - "time": "2022-02-25T21:32:43+00:00" + "time": "2022-02-24T20:20:32+00:00" }, { "name": "doctrine/annotations", - "version": "1.13.3", + "version": "1.13.2", "source": { "type": "git", "url": "https://github.com/doctrine/annotations.git", - "reference": "648b0343343565c4a056bfc8392201385e8d89f0" + "reference": "5b668aef16090008790395c02c893b1ba13f7e08" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/annotations/zipball/648b0343343565c4a056bfc8392201385e8d89f0", - "reference": "648b0343343565c4a056bfc8392201385e8d89f0", + "url": "https://api.github.com/repos/doctrine/annotations/zipball/5b668aef16090008790395c02c893b1ba13f7e08", + "reference": "5b668aef16090008790395c02c893b1ba13f7e08", "shasum": "" }, "require": { @@ -247,10 +247,9 @@ "require-dev": { "doctrine/cache": "^1.11 || ^2.0", "doctrine/coding-standard": "^6.0 || ^8.1", - "phpstan/phpstan": "^1.4.10 || ^1.8.0", + "phpstan/phpstan": "^0.12.20", "phpunit/phpunit": "^7.5 || ^8.0 || ^9.1.5", - "symfony/cache": "^4.4 || ^5.2", - "vimeo/psalm": "^4.10" + "symfony/cache": "^4.4 || ^5.2" }, "type": "library", "autoload": { @@ -293,9 +292,9 @@ ], "support": { "issues": "https://github.com/doctrine/annotations/issues", - "source": "https://github.com/doctrine/annotations/tree/1.13.3" + "source": "https://github.com/doctrine/annotations/tree/1.13.2" }, - "time": "2022-07-02T10:48:51+00:00" + "time": "2021-08-05T19:00:23+00:00" }, { "name": "doctrine/lexer", @@ -375,52 +374,52 @@ }, { "name": "friendsofphp/php-cs-fixer", - "version": "v3.9.5", + "version": "v3.4.0", "source": { "type": "git", "url": "https://github.com/FriendsOfPHP/PHP-CS-Fixer.git", - "reference": "4465d70ba776806857a1ac2a6f877e582445ff36" + "reference": "47177af1cfb9dab5d1cc4daf91b7179c2efe7fad" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/FriendsOfPHP/PHP-CS-Fixer/zipball/4465d70ba776806857a1ac2a6f877e582445ff36", - "reference": "4465d70ba776806857a1ac2a6f877e582445ff36", + "url": "https://api.github.com/repos/FriendsOfPHP/PHP-CS-Fixer/zipball/47177af1cfb9dab5d1cc4daf91b7179c2efe7fad", + "reference": "47177af1cfb9dab5d1cc4daf91b7179c2efe7fad", "shasum": "" }, "require": { "composer/semver": "^3.2", - "composer/xdebug-handler": "^3.0.3", - "doctrine/annotations": "^1.13", + "composer/xdebug-handler": "^2.0", + "doctrine/annotations": "^1.12", "ext-json": "*", "ext-tokenizer": "*", - "php": "^7.4 || ^8.0", + "php": "^7.2.5 || ^8.0", "php-cs-fixer/diff": "^2.0", - "symfony/console": "^5.4 || ^6.0", - "symfony/event-dispatcher": "^5.4 || ^6.0", - "symfony/filesystem": "^5.4 || ^6.0", - "symfony/finder": "^5.4 || ^6.0", - "symfony/options-resolver": "^5.4 || ^6.0", + "symfony/console": "^4.4.20 || ^5.1.3 || ^6.0", + "symfony/event-dispatcher": "^4.4.20 || ^5.0 || ^6.0", + "symfony/filesystem": "^4.4.20 || ^5.0 || ^6.0", + "symfony/finder": "^4.4.20 || ^5.0 || ^6.0", + "symfony/options-resolver": "^4.4.20 || ^5.0 || ^6.0", "symfony/polyfill-mbstring": "^1.23", - "symfony/polyfill-php80": "^1.25", - "symfony/polyfill-php81": "^1.25", - "symfony/process": "^5.4 || ^6.0", - "symfony/stopwatch": "^5.4 || ^6.0" + "symfony/polyfill-php80": "^1.23", + "symfony/polyfill-php81": "^1.23", + "symfony/process": "^4.4.20 || ^5.0 || ^6.0", + "symfony/stopwatch": "^4.4.20 || ^5.0 || ^6.0" }, "require-dev": { "justinrainbow/json-schema": "^5.2", "keradus/cli-executor": "^1.5", - "mikey179/vfsstream": "^1.6.10", + "mikey179/vfsstream": "^1.6.8", "php-coveralls/php-coveralls": "^2.5.2", "php-cs-fixer/accessible-object": "^1.1", "php-cs-fixer/phpunit-constraint-isidenticalstring": "^1.2", "php-cs-fixer/phpunit-constraint-xmlmatchesxsd": "^1.2.1", "phpspec/prophecy": "^1.15", - "phpspec/prophecy-phpunit": "^2.0", - "phpunit/phpunit": "^9.5", + "phpspec/prophecy-phpunit": "^1.1 || ^2.0", + "phpunit/phpunit": "^8.5.21 || ^9.5", "phpunitgoodpractices/polyfill": "^1.5", "phpunitgoodpractices/traits": "^1.9.1", - "symfony/phpunit-bridge": "^6.0", - "symfony/yaml": "^5.4 || ^6.0" + "symfony/phpunit-bridge": "^5.2.4 || ^6.0", + "symfony/yaml": "^4.4.20 || ^5.0 || ^6.0" }, "suggest": { "ext-dom": "For handling output formats in XML", @@ -452,7 +451,7 @@ "description": "A tool to automatically fix PHP code style", "support": { "issues": "https://github.com/FriendsOfPHP/PHP-CS-Fixer/issues", - "source": "https://github.com/FriendsOfPHP/PHP-CS-Fixer/tree/v3.9.5" + "source": "https://github.com/FriendsOfPHP/PHP-CS-Fixer/tree/v3.4.0" }, "funding": [ { @@ -460,7 +459,7 @@ "type": "github" } ], - "time": "2022-07-22T08:43:51+00:00" + "time": "2021-12-11T16:25:08+00:00" }, { "name": "php-cs-fixer/diff", @@ -565,20 +564,20 @@ }, { "name": "psr/container", - "version": "1.1.2", + "version": "1.1.1", "source": { "type": "git", "url": "https://github.com/php-fig/container.git", - "reference": "513e0666f7216c7459170d56df27dfcefe1689ea" + "reference": "8622567409010282b7aeebe4bb841fe98b58dcaf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/container/zipball/513e0666f7216c7459170d56df27dfcefe1689ea", - "reference": "513e0666f7216c7459170d56df27dfcefe1689ea", + "url": "https://api.github.com/repos/php-fig/container/zipball/8622567409010282b7aeebe4bb841fe98b58dcaf", + "reference": "8622567409010282b7aeebe4bb841fe98b58dcaf", "shasum": "" }, "require": { - "php": ">=7.4.0" + "php": ">=7.2.0" }, "type": "library", "autoload": { @@ -607,9 +606,9 @@ ], "support": { "issues": "https://github.com/php-fig/container/issues", - "source": "https://github.com/php-fig/container/tree/1.1.2" + "source": "https://github.com/php-fig/container/tree/1.1.1" }, - "time": "2021-11-05T16:50:12+00:00" + "time": "2021-03-05T17:36:06+00:00" }, { "name": "psr/event-dispatcher", @@ -713,16 +712,16 @@ }, { "name": "symfony/console", - "version": "v5.4.10", + "version": "v5.4.5", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "4d671ab4ddac94ee439ea73649c69d9d200b5000" + "reference": "d8111acc99876953f52fe16d4c50eb60940d49ad" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/4d671ab4ddac94ee439ea73649c69d9d200b5000", - "reference": "4d671ab4ddac94ee439ea73649c69d9d200b5000", + "url": "https://api.github.com/repos/symfony/console/zipball/d8111acc99876953f52fe16d4c50eb60940d49ad", + "reference": "d8111acc99876953f52fe16d4c50eb60940d49ad", "shasum": "" }, "require": { @@ -792,7 +791,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v5.4.10" + "source": "https://github.com/symfony/console/tree/v5.4.5" }, "funding": [ { @@ -808,20 +807,20 @@ "type": "tidelift" } ], - "time": "2022-06-26T13:00:04+00:00" + "time": "2022-02-24T12:45:35+00:00" }, { "name": "symfony/deprecation-contracts", - "version": "v2.5.2", + "version": "v2.5.0", "source": { "type": "git", "url": "https://github.com/symfony/deprecation-contracts.git", - "reference": "e8b495ea28c1d97b5e0c121748d6f9b53d075c66" + "reference": "6f981ee24cf69ee7ce9736146d1c57c2780598a8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/e8b495ea28c1d97b5e0c121748d6f9b53d075c66", - "reference": "e8b495ea28c1d97b5e0c121748d6f9b53d075c66", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/6f981ee24cf69ee7ce9736146d1c57c2780598a8", + "reference": "6f981ee24cf69ee7ce9736146d1c57c2780598a8", "shasum": "" }, "require": { @@ -859,7 +858,7 @@ "description": "A generic function and convention to trigger deprecation notices", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/deprecation-contracts/tree/v2.5.2" + "source": "https://github.com/symfony/deprecation-contracts/tree/v2.5.0" }, "funding": [ { @@ -875,20 +874,20 @@ "type": "tidelift" } ], - "time": "2022-01-02T09:53:40+00:00" + "time": "2021-07-12T14:48:14+00:00" }, { "name": "symfony/event-dispatcher", - "version": "v5.4.9", + "version": "v5.4.3", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "8e6ce1cc0279e3ff3c8ff0f43813bc88d21ca1bc" + "reference": "dec8a9f58d20df252b9cd89f1c6c1530f747685d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/8e6ce1cc0279e3ff3c8ff0f43813bc88d21ca1bc", - "reference": "8e6ce1cc0279e3ff3c8ff0f43813bc88d21ca1bc", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/dec8a9f58d20df252b9cd89f1c6c1530f747685d", + "reference": "dec8a9f58d20df252b9cd89f1c6c1530f747685d", "shasum": "" }, "require": { @@ -944,7 +943,7 @@ "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/event-dispatcher/tree/v5.4.9" + "source": "https://github.com/symfony/event-dispatcher/tree/v5.4.3" }, "funding": [ { @@ -960,20 +959,20 @@ "type": "tidelift" } ], - "time": "2022-05-05T16:45:39+00:00" + "time": "2022-01-02T09:53:40+00:00" }, { "name": "symfony/event-dispatcher-contracts", - "version": "v2.5.2", + "version": "v2.5.0", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher-contracts.git", - "reference": "f98b54df6ad059855739db6fcbc2d36995283fe1" + "reference": "66bea3b09be61613cd3b4043a65a8ec48cfa6d2a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/f98b54df6ad059855739db6fcbc2d36995283fe1", - "reference": "f98b54df6ad059855739db6fcbc2d36995283fe1", + "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/66bea3b09be61613cd3b4043a65a8ec48cfa6d2a", + "reference": "66bea3b09be61613cd3b4043a65a8ec48cfa6d2a", "shasum": "" }, "require": { @@ -1023,7 +1022,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v2.5.2" + "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v2.5.0" }, "funding": [ { @@ -1039,20 +1038,20 @@ "type": "tidelift" } ], - "time": "2022-01-02T09:53:40+00:00" + "time": "2021-07-12T14:48:14+00:00" }, { "name": "symfony/filesystem", - "version": "v5.4.9", + "version": "v5.4.5", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "36a017fa4cce1eff1b8e8129ff53513abcef05ba" + "reference": "797680071ea8f71b94eb958680c50d0e002638f5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/36a017fa4cce1eff1b8e8129ff53513abcef05ba", - "reference": "36a017fa4cce1eff1b8e8129ff53513abcef05ba", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/797680071ea8f71b94eb958680c50d0e002638f5", + "reference": "797680071ea8f71b94eb958680c50d0e002638f5", "shasum": "" }, "require": { @@ -1087,7 +1086,7 @@ "description": "Provides basic utilities for the filesystem", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/filesystem/tree/v5.4.9" + "source": "https://github.com/symfony/filesystem/tree/v5.4.5" }, "funding": [ { @@ -1103,20 +1102,20 @@ "type": "tidelift" } ], - "time": "2022-05-20T13:55:35+00:00" + "time": "2022-02-27T10:31:47+00:00" }, { "name": "symfony/finder", - "version": "v5.4.8", + "version": "v5.4.3", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "9b630f3427f3ebe7cd346c277a1408b00249dad9" + "reference": "231313534dded84c7ecaa79d14bc5da4ccb69b7d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/9b630f3427f3ebe7cd346c277a1408b00249dad9", - "reference": "9b630f3427f3ebe7cd346c277a1408b00249dad9", + "url": "https://api.github.com/repos/symfony/finder/zipball/231313534dded84c7ecaa79d14bc5da4ccb69b7d", + "reference": "231313534dded84c7ecaa79d14bc5da4ccb69b7d", "shasum": "" }, "require": { @@ -1150,7 +1149,7 @@ "description": "Finds files and directories via an intuitive fluent interface", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/finder/tree/v5.4.8" + "source": "https://github.com/symfony/finder/tree/v5.4.3" }, "funding": [ { @@ -1166,7 +1165,7 @@ "type": "tidelift" } ], - "time": "2022-04-15T08:07:45+00:00" + "time": "2022-01-26T16:34:36+00:00" }, { "name": "symfony/options-resolver", @@ -1239,16 +1238,16 @@ }, { "name": "symfony/polyfill-ctype", - "version": "v1.26.0", + "version": "v1.24.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "6fd1b9a79f6e3cf65f9e679b23af304cd9e010d4" + "reference": "30885182c981ab175d4d034db0f6f469898070ab" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/6fd1b9a79f6e3cf65f9e679b23af304cd9e010d4", - "reference": "6fd1b9a79f6e3cf65f9e679b23af304cd9e010d4", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/30885182c981ab175d4d034db0f6f469898070ab", + "reference": "30885182c981ab175d4d034db0f6f469898070ab", "shasum": "" }, "require": { @@ -1263,7 +1262,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.26-dev" + "dev-main": "1.23-dev" }, "thanks": { "name": "symfony/polyfill", @@ -1301,7 +1300,7 @@ "portable" ], "support": { - "source": "https://github.com/symfony/polyfill-ctype/tree/v1.26.0" + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.24.0" }, "funding": [ { @@ -1317,20 +1316,20 @@ "type": "tidelift" } ], - "time": "2022-05-24T11:49:31+00:00" + "time": "2021-10-20T20:35:02+00:00" }, { "name": "symfony/polyfill-intl-grapheme", - "version": "v1.26.0", + "version": "v1.24.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-grapheme.git", - "reference": "433d05519ce6990bf3530fba6957499d327395c2" + "reference": "81b86b50cf841a64252b439e738e97f4a34e2783" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/433d05519ce6990bf3530fba6957499d327395c2", - "reference": "433d05519ce6990bf3530fba6957499d327395c2", + "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/81b86b50cf841a64252b439e738e97f4a34e2783", + "reference": "81b86b50cf841a64252b439e738e97f4a34e2783", "shasum": "" }, "require": { @@ -1342,7 +1341,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.26-dev" + "dev-main": "1.23-dev" }, "thanks": { "name": "symfony/polyfill", @@ -1382,7 +1381,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.26.0" + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.24.0" }, "funding": [ { @@ -1398,20 +1397,20 @@ "type": "tidelift" } ], - "time": "2022-05-24T11:49:31+00:00" + "time": "2021-11-23T21:10:46+00:00" }, { "name": "symfony/polyfill-intl-normalizer", - "version": "v1.26.0", + "version": "v1.24.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-normalizer.git", - "reference": "219aa369ceff116e673852dce47c3a41794c14bd" + "reference": "8590a5f561694770bdcd3f9b5c69dde6945028e8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/219aa369ceff116e673852dce47c3a41794c14bd", - "reference": "219aa369ceff116e673852dce47c3a41794c14bd", + "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/8590a5f561694770bdcd3f9b5c69dde6945028e8", + "reference": "8590a5f561694770bdcd3f9b5c69dde6945028e8", "shasum": "" }, "require": { @@ -1423,7 +1422,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.26-dev" + "dev-main": "1.23-dev" }, "thanks": { "name": "symfony/polyfill", @@ -1466,7 +1465,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.26.0" + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.24.0" }, "funding": [ { @@ -1482,20 +1481,20 @@ "type": "tidelift" } ], - "time": "2022-05-24T11:49:31+00:00" + "time": "2021-02-19T12:13:01+00:00" }, { "name": "symfony/polyfill-mbstring", - "version": "v1.26.0", + "version": "v1.24.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "9344f9cb97f3b19424af1a21a3b0e75b0a7d8d7e" + "reference": "0abb51d2f102e00a4eefcf46ba7fec406d245825" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/9344f9cb97f3b19424af1a21a3b0e75b0a7d8d7e", - "reference": "9344f9cb97f3b19424af1a21a3b0e75b0a7d8d7e", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/0abb51d2f102e00a4eefcf46ba7fec406d245825", + "reference": "0abb51d2f102e00a4eefcf46ba7fec406d245825", "shasum": "" }, "require": { @@ -1510,7 +1509,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.26-dev" + "dev-main": "1.23-dev" }, "thanks": { "name": "symfony/polyfill", @@ -1549,7 +1548,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.26.0" + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.24.0" }, "funding": [ { @@ -1565,20 +1564,20 @@ "type": "tidelift" } ], - "time": "2022-05-24T11:49:31+00:00" + "time": "2021-11-30T18:21:41+00:00" }, { "name": "symfony/polyfill-php73", - "version": "v1.26.0", + "version": "v1.24.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php73.git", - "reference": "e440d35fa0286f77fb45b79a03fedbeda9307e85" + "reference": "cc5db0e22b3cb4111010e48785a97f670b350ca5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/e440d35fa0286f77fb45b79a03fedbeda9307e85", - "reference": "e440d35fa0286f77fb45b79a03fedbeda9307e85", + "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/cc5db0e22b3cb4111010e48785a97f670b350ca5", + "reference": "cc5db0e22b3cb4111010e48785a97f670b350ca5", "shasum": "" }, "require": { @@ -1587,7 +1586,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.26-dev" + "dev-main": "1.23-dev" }, "thanks": { "name": "symfony/polyfill", @@ -1628,7 +1627,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php73/tree/v1.26.0" + "source": "https://github.com/symfony/polyfill-php73/tree/v1.24.0" }, "funding": [ { @@ -1644,20 +1643,20 @@ "type": "tidelift" } ], - "time": "2022-05-24T11:49:31+00:00" + "time": "2021-06-05T21:20:04+00:00" }, { "name": "symfony/polyfill-php80", - "version": "v1.26.0", + "version": "v1.24.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php80.git", - "reference": "cfa0ae98841b9e461207c13ab093d76b0fa7bace" + "reference": "57b712b08eddb97c762a8caa32c84e037892d2e9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/cfa0ae98841b9e461207c13ab093d76b0fa7bace", - "reference": "cfa0ae98841b9e461207c13ab093d76b0fa7bace", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/57b712b08eddb97c762a8caa32c84e037892d2e9", + "reference": "57b712b08eddb97c762a8caa32c84e037892d2e9", "shasum": "" }, "require": { @@ -1666,7 +1665,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.26-dev" + "dev-main": "1.23-dev" }, "thanks": { "name": "symfony/polyfill", @@ -1711,7 +1710,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php80/tree/v1.26.0" + "source": "https://github.com/symfony/polyfill-php80/tree/v1.24.0" }, "funding": [ { @@ -1727,20 +1726,20 @@ "type": "tidelift" } ], - "time": "2022-05-10T07:21:04+00:00" + "time": "2021-09-13T13:58:33+00:00" }, { "name": "symfony/polyfill-php81", - "version": "v1.26.0", + "version": "v1.24.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php81.git", - "reference": "13f6d1271c663dc5ae9fb843a8f16521db7687a1" + "reference": "5de4ba2d41b15f9bd0e19b2ab9674135813ec98f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/13f6d1271c663dc5ae9fb843a8f16521db7687a1", - "reference": "13f6d1271c663dc5ae9fb843a8f16521db7687a1", + "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/5de4ba2d41b15f9bd0e19b2ab9674135813ec98f", + "reference": "5de4ba2d41b15f9bd0e19b2ab9674135813ec98f", "shasum": "" }, "require": { @@ -1749,7 +1748,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.26-dev" + "dev-main": "1.23-dev" }, "thanks": { "name": "symfony/polyfill", @@ -1790,7 +1789,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php81/tree/v1.26.0" + "source": "https://github.com/symfony/polyfill-php81/tree/v1.24.0" }, "funding": [ { @@ -1806,20 +1805,20 @@ "type": "tidelift" } ], - "time": "2022-05-24T11:49:31+00:00" + "time": "2021-09-13T13:58:11+00:00" }, { "name": "symfony/process", - "version": "v5.4.8", + "version": "v5.4.5", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "597f3fff8e3e91836bb0bd38f5718b56ddbde2f3" + "reference": "95440409896f90a5f85db07a32b517ecec17fa4c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/597f3fff8e3e91836bb0bd38f5718b56ddbde2f3", - "reference": "597f3fff8e3e91836bb0bd38f5718b56ddbde2f3", + "url": "https://api.github.com/repos/symfony/process/zipball/95440409896f90a5f85db07a32b517ecec17fa4c", + "reference": "95440409896f90a5f85db07a32b517ecec17fa4c", "shasum": "" }, "require": { @@ -1852,7 +1851,7 @@ "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/process/tree/v5.4.8" + "source": "https://github.com/symfony/process/tree/v5.4.5" }, "funding": [ { @@ -1868,26 +1867,26 @@ "type": "tidelift" } ], - "time": "2022-04-08T05:07:18+00:00" + "time": "2022-01-30T18:16:22+00:00" }, { "name": "symfony/service-contracts", - "version": "v2.5.2", + "version": "v2.5.0", "source": { "type": "git", "url": "https://github.com/symfony/service-contracts.git", - "reference": "4b426aac47d6427cc1a1d0f7e2ac724627f5966c" + "reference": "1ab11b933cd6bc5464b08e81e2c5b07dec58b0fc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/4b426aac47d6427cc1a1d0f7e2ac724627f5966c", - "reference": "4b426aac47d6427cc1a1d0f7e2ac724627f5966c", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/1ab11b933cd6bc5464b08e81e2c5b07dec58b0fc", + "reference": "1ab11b933cd6bc5464b08e81e2c5b07dec58b0fc", "shasum": "" }, "require": { "php": ">=7.2.5", "psr/container": "^1.1", - "symfony/deprecation-contracts": "^2.1|^3" + "symfony/deprecation-contracts": "^2.1" }, "conflict": { "ext-psr": "<1.1|>=2" @@ -1935,7 +1934,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/service-contracts/tree/v2.5.2" + "source": "https://github.com/symfony/service-contracts/tree/v2.5.0" }, "funding": [ { @@ -1951,7 +1950,7 @@ "type": "tidelift" } ], - "time": "2022-05-30T19:17:29+00:00" + "time": "2021-11-04T16:48:04+00:00" }, { "name": "symfony/stopwatch", @@ -2017,16 +2016,16 @@ }, { "name": "symfony/string", - "version": "v5.4.10", + "version": "v5.4.3", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "4432bc7df82a554b3e413a8570ce2fea90e94097" + "reference": "92043b7d8383e48104e411bc9434b260dbeb5a10" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/4432bc7df82a554b3e413a8570ce2fea90e94097", - "reference": "4432bc7df82a554b3e413a8570ce2fea90e94097", + "url": "https://api.github.com/repos/symfony/string/zipball/92043b7d8383e48104e411bc9434b260dbeb5a10", + "reference": "92043b7d8383e48104e411bc9434b260dbeb5a10", "shasum": "" }, "require": { @@ -2083,7 +2082,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v5.4.10" + "source": "https://github.com/symfony/string/tree/v5.4.3" }, "funding": [ { @@ -2099,7 +2098,7 @@ "type": "tidelift" } ], - "time": "2022-06-26T15:57:47+00:00" + "time": "2022-01-02T09:53:40+00:00" } ], "packages-dev": [], @@ -2110,5 +2109,5 @@ "prefer-lowest": false, "platform": [], "platform-dev": [], - "plugin-api-version": "2.3.0" + "plugin-api-version": "2.2.0" }