Compare commits
15 Commits
docker
...
pkg/stable
| Author | SHA1 | Date | |
|---|---|---|---|
| 349f5c26e7 | |||
| 18d993f307 | |||
| f8b4d0446d | |||
| b14fc3d0e1 | |||
| 697c7a8f1c | |||
| 24ecd6c87e | |||
| b17024cccd | |||
| a0b87b907f | |||
| dfa5a993ce | |||
| 937ec6f4ca | |||
| 7e988ff7a9 | |||
| c66962097d | |||
| db11d66ae0 | |||
| 2d42e3016d | |||
| ba4acc1b89 |
@@ -1,39 +0,0 @@
|
||||
# Dépendances locales (elles seront réinstallées dans l’image)
|
||||
vendor/
|
||||
node_modules/
|
||||
|
||||
# Fichiers de config locaux ou secrets
|
||||
.env.local
|
||||
.env.*.local
|
||||
|
||||
# Cache et logs Symfony
|
||||
var
|
||||
|
||||
# Build front-end
|
||||
public/build/
|
||||
public/bundles/
|
||||
|
||||
# Tests
|
||||
phpunit.xml
|
||||
phpunit.xml.dist
|
||||
tests/
|
||||
|
||||
# IDE & OS
|
||||
*.log
|
||||
*.md
|
||||
*.swp
|
||||
.idea/
|
||||
.vscode/
|
||||
.DS_Store
|
||||
Thumbs.db
|
||||
|
||||
# Git
|
||||
.git
|
||||
.gitignore
|
||||
|
||||
# uploads
|
||||
uploads/
|
||||
public/uploads/
|
||||
|
||||
# Volume
|
||||
volume/
|
||||
42
.env
42
.env
@@ -1,42 +0,0 @@
|
||||
# Basic
|
||||
APP_ENV=PROD
|
||||
APP_SECRET=changeme
|
||||
|
||||
APP_ALIAS=schedule
|
||||
APP_AUTH=MYSQL
|
||||
APP_NAME=Schedule
|
||||
APP_CRON=true
|
||||
|
||||
# Office hours
|
||||
OFFICE_HOUR_START=09:00
|
||||
OFFICE_HOUR_END=17:30
|
||||
|
||||
# MAIL sendmail / smtp
|
||||
MAILER_METHOD=sendmail
|
||||
MAILER_URL=
|
||||
MAILER_NOREPLY=noreply@noreply.fr
|
||||
MAILER_DEFAULT_NOTIF=
|
||||
MAILER_URL=null://localhost
|
||||
|
||||
# BDD
|
||||
DATABASE_HOST=mariadb
|
||||
DATABASE_NAME=schedule
|
||||
DATABASE_USER=user
|
||||
DATABASE_PASSWORD=changeme
|
||||
|
||||
# If APP_AUTH = CAS
|
||||
CAS_HOST=
|
||||
CAS_PORT=
|
||||
CAS_PATH=
|
||||
CAS_USERNAME=username
|
||||
CAS_EMAIL=email
|
||||
CAS_LASTNAME=lastname
|
||||
CAS_FIRSTNAME=firstname
|
||||
|
||||
## Sentry DSN
|
||||
SENTRY_DSN=
|
||||
|
||||
# Dolibar
|
||||
DOLIBARR_ACTIVE=false
|
||||
DOLIBARR_API_KEY=
|
||||
DOLIBARR_URI=
|
||||
28
.gitignore
vendored
28
.gitignore
vendored
@@ -1,27 +1 @@
|
||||
|
||||
###> symfony/framework-bundle ###
|
||||
/.env.local
|
||||
/.env.local.php
|
||||
/.env.*.local
|
||||
/config/secrets/prod/prod.decrypt.private.php
|
||||
/public/bundles/
|
||||
/var/
|
||||
/vendor/
|
||||
###< symfony/framework-bundle ###
|
||||
|
||||
###> symfony/phpunit-bridge ###
|
||||
.phpunit
|
||||
.phpunit.result.cache
|
||||
/phpunit.xml
|
||||
###< symfony/phpunit-bridge ###
|
||||
|
||||
###> symfony/webpack-encore-bundle ###
|
||||
/node_modules/
|
||||
npm-debug.log
|
||||
yarn-error.log
|
||||
###< symfony/webpack-encore-bundle ###
|
||||
|
||||
###> uploads ###
|
||||
/public/uploads
|
||||
/uploads
|
||||
###> uploads ###
|
||||
*~
|
||||
|
||||
@@ -1,53 +0,0 @@
|
||||
<?php
|
||||
|
||||
$finder = PhpCsFixer\Finder::create()
|
||||
->in(__DIR__)
|
||||
->exclude([
|
||||
'vendor',
|
||||
'var',
|
||||
'web',
|
||||
'app/DoctrineMigrations',
|
||||
'bin',
|
||||
'doc',
|
||||
])
|
||||
->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)
|
||||
;
|
||||
3
.vscode/settings.json
vendored
3
.vscode/settings.json
vendored
@@ -1,3 +0,0 @@
|
||||
{
|
||||
"php.version": "7.4"
|
||||
}
|
||||
26
Makefile
Normal file
26
Makefile
Normal file
@@ -0,0 +1,26 @@
|
||||
################################
|
||||
# Makefile
|
||||
################################
|
||||
|
||||
SOURCE=schedule
|
||||
VERSION=2.0
|
||||
EOLE_VERSION=2.7
|
||||
EOLE_RELEASE=2.7.1
|
||||
PKGAPPS=web
|
||||
|
||||
################################
|
||||
# Début de zone à ne pas éditer
|
||||
################################
|
||||
|
||||
include eole.mk
|
||||
include apps.mk
|
||||
|
||||
################################
|
||||
# Fin de zone à ne pas éditer
|
||||
################################
|
||||
|
||||
# Makefile rules dedicated to application
|
||||
# if exists
|
||||
ifneq (, $(strip $(wildcard $(SOURCE).mk)))
|
||||
include $(SOURCE).mk
|
||||
endif
|
||||
64
apps.mk
Normal file
64
apps.mk
Normal file
@@ -0,0 +1,64 @@
|
||||
#
|
||||
# NE PAS EDITER CE FICHIER
|
||||
#
|
||||
# Voir Makefile
|
||||
|
||||
|
||||
##########################
|
||||
# Application web envole #
|
||||
##########################
|
||||
ifneq (, $(filter oui web, $(PKGAPPS)))
|
||||
#
|
||||
# Sanity check
|
||||
#
|
||||
ifeq (, $(filter-out X.X, $(strip $(VERSION))))
|
||||
$(error $$(VERSION) variable has incorrect value '$(VERSION)')
|
||||
endif
|
||||
|
||||
# Where to store web application files
|
||||
WEB_PATH := $(DESTDIR)/var/www/html
|
||||
|
||||
# Envole
|
||||
sharenvole_PROG_DIR := $(DESTDIR)/usr/share/envole/$(SOURCE)
|
||||
|
||||
src_$(SOURCE)-$(VERSION)_REC_DIR := $(WEB_PATH)/$(SOURCE)
|
||||
src_plugins-$(VERSION)_REC_DIR := $(WEB_PATH)/$(SOURCE)/plugin
|
||||
src_lang-$(VERSION)_REC_DIR := $(WEB_PATH)/$(SOURCE)/lang
|
||||
|
||||
endif
|
||||
|
||||
##########################
|
||||
# Application EOLE flask #
|
||||
##########################
|
||||
ifneq (, $(filter flask, $(PKGAPPS)))
|
||||
#
|
||||
# Sanity check
|
||||
#
|
||||
ifeq (, $(filter-out XXX, $(strip $(FLASK_MODULE))))
|
||||
$(error $$(FLASK_MODULE) variable has incorrect value '$(FLASK_MODULE)')
|
||||
endif
|
||||
|
||||
ifeq (, $(strip $(wildcard src/$(FLASK_MODULE).conf)))
|
||||
$(error missing eoleflask configuration file 'src/$(FLASK_MODULE).conf')
|
||||
endif
|
||||
|
||||
# Everything is related to mount point
|
||||
APPS_MOUNT_POINT := $(shell sed -ne 's|^"MOUNT_POINT"[[:space:]]*:[[:space:]]*"/\([^"]*\)",|\1|p' \
|
||||
src/$(FLASK_MODULE).conf)
|
||||
|
||||
ifeq (, $(strip $(APPS_MOUNT_POINT)))
|
||||
$(error no "MOUNT_POINT" in eoleflask configuration file 'src/$(FLASK_MODULE).conf')
|
||||
endif
|
||||
|
||||
# eole-flask configuration
|
||||
src_DATA_DIR := $(DESTDIR)/etc/eole/flask/available
|
||||
|
||||
# Where to store flask application files
|
||||
FLASK_PATH := $(eole_DIR)/flask/$(APPS_MOUNT_POINT)
|
||||
|
||||
# static files
|
||||
src_$(FLASK_MODULE)_static_REC_DIR := $(FLASK_PATH)/static
|
||||
src_$(FLASK_MODULE)_templates_REC_DIR := $(FLASK_PATH)/templates
|
||||
src_$(FLASK_MODULE)_instance_REC_DIR := $(FLASK_PATH)/resources
|
||||
|
||||
endif
|
||||
@@ -1,10 +0,0 @@
|
||||
import Dropzone from 'dropzone';
|
||||
import 'dropzone/dist/dropzone.css'
|
||||
|
||||
/*
|
||||
document.addEventListener('DOMContentLoaded', function() {
|
||||
var elt = document.getElementById('mydropzone');
|
||||
var mydropzone = new Dropzone(elt, { url: "upload"});
|
||||
global.mydropzone=mydropzone;
|
||||
});
|
||||
*/
|
||||
@@ -1,41 +0,0 @@
|
||||
// Fullcalendar
|
||||
require('@fullcalendar/core/main.css');
|
||||
require('@fullcalendar/daygrid/main.css');
|
||||
require('@fullcalendar/daygrid/main.css');
|
||||
|
||||
import { Calendar } from '@fullcalendar/core';
|
||||
import frLocale from '@fullcalendar/core/locales/fr.js';
|
||||
import interactionPlugin from '@fullcalendar/interaction';
|
||||
import dayGridPlugin from '@fullcalendar/daygrid';
|
||||
|
||||
var calendar;
|
||||
var e = document.getElementById("sideuser");
|
||||
var iduser = e.value;
|
||||
document.addEventListener('DOMContentLoaded', function() {
|
||||
var calendarEl = document.getElementById('fullcalendar');
|
||||
calendar = new Calendar(calendarEl, {
|
||||
plugins: [ interactionPlugin, dayGridPlugin ],
|
||||
locale: frLocale,
|
||||
weekNumbers: true,
|
||||
selectable: true,
|
||||
eventSources: [{
|
||||
'id': 1,
|
||||
'url': 'event/load/'+iduser,
|
||||
}],
|
||||
eventLimit:8,
|
||||
eventDrop: function(info) {
|
||||
info.revert();
|
||||
},
|
||||
eventRender: function (info) {
|
||||
eventRender(info);
|
||||
},
|
||||
select: function(selectionInfo) {
|
||||
eventSelect(selectionInfo);
|
||||
},
|
||||
eventClick: function(info) {
|
||||
eventClick(info);
|
||||
}
|
||||
});
|
||||
global.calendar = calendar;
|
||||
calendar.render();
|
||||
});
|
||||
@@ -1,99 +0,0 @@
|
||||
{
|
||||
"type": "project",
|
||||
"license": "proprietary",
|
||||
"require": {
|
||||
"php": "^7.1.3",
|
||||
"ext-ctype": "*",
|
||||
"ext-iconv": "*",
|
||||
"doctrine/annotations": "^1.8",
|
||||
"friendsofsymfony/ckeditor-bundle": "^2.2",
|
||||
"friendsofsymfony/rest-bundle": "^2.7",
|
||||
"jasig/phpcas": "^1.3",
|
||||
"knplabs/knp-snappy-bundle": "^1.7",
|
||||
"nategood/httpful": "^0.3.2",
|
||||
"nelmio/api-doc-bundle": "^3.6",
|
||||
"oneup/uploader-bundle": "^2.2",
|
||||
"sensio/framework-extra-bundle": "^5.1",
|
||||
"sentry/sentry-symfony": "^3.5",
|
||||
"symfony/apache-pack": "^1.0",
|
||||
"symfony/asset": "4.4.*",
|
||||
"symfony/console": "4.4.*",
|
||||
"symfony/dotenv": "4.4.*",
|
||||
"symfony/expression-language": "4.4.*",
|
||||
"symfony/flex": "^1.3.1",
|
||||
"symfony/form": "4.4.*",
|
||||
"symfony/framework-bundle": "4.4.*",
|
||||
"symfony/http-client": "4.4.*",
|
||||
"symfony/intl": "4.4.*",
|
||||
"symfony/lock": "4.4.*",
|
||||
"symfony/mailer": "4.4.*",
|
||||
"symfony/maker-bundle": "^1.14",
|
||||
"symfony/monolog-bundle": "^3.5",
|
||||
"symfony/orm-pack": "^1.0",
|
||||
"symfony/process": "4.4.*",
|
||||
"symfony/profiler-pack": "^1.0",
|
||||
"symfony/security-bundle": "4.4.*",
|
||||
"symfony/serializer-pack": "*",
|
||||
"symfony/swiftmailer-bundle": "^3.4",
|
||||
"symfony/translation": "4.4.*",
|
||||
"symfony/twig-pack": "*",
|
||||
"symfony/validator": "4.4.*",
|
||||
"symfony/web-link": "4.4.*",
|
||||
"symfony/webpack-encore-bundle": "^1.7",
|
||||
"symfony/yaml": "4.4.*",
|
||||
"tetranz/select2entity-bundle": "^3.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"friendsofphp/php-cs-fixer": "*",
|
||||
"symfony/debug-pack": "*",
|
||||
"symfony/test-pack": "*"
|
||||
},
|
||||
"config": {
|
||||
"preferred-install": {
|
||||
"*": "dist"
|
||||
},
|
||||
"sort-packages": true,
|
||||
"allow-plugins": {
|
||||
"symfony/flex": true
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"App\\": "src/"
|
||||
}
|
||||
},
|
||||
"autoload-dev": {
|
||||
"psr-4": {
|
||||
"App\\Tests\\": "tests/"
|
||||
}
|
||||
},
|
||||
"replace": {
|
||||
"paragonie/random_compat": "2.*",
|
||||
"symfony/polyfill-ctype": "*",
|
||||
"symfony/polyfill-iconv": "*",
|
||||
"symfony/polyfill-php71": "*",
|
||||
"symfony/polyfill-php70": "*",
|
||||
"symfony/polyfill-php56": "*"
|
||||
},
|
||||
"scripts": {
|
||||
"auto-scripts": {
|
||||
"cache:clear": "symfony-cmd",
|
||||
"assets:install %PUBLIC_DIR%": "symfony-cmd"
|
||||
},
|
||||
"post-install-cmd": [
|
||||
"@auto-scripts"
|
||||
],
|
||||
"post-update-cmd": [
|
||||
"@auto-scripts"
|
||||
]
|
||||
},
|
||||
"conflict": {
|
||||
"symfony/symfony": "*"
|
||||
},
|
||||
"extra": {
|
||||
"symfony": {
|
||||
"allow-contrib": true,
|
||||
"require": "4.4.*"
|
||||
}
|
||||
}
|
||||
}
|
||||
9388
composer.lock
generated
9388
composer.lock
generated
@@ -1,9388 +0,0 @@
|
||||
{
|
||||
"_readme": [
|
||||
"This file locks the dependencies of your project to a known state",
|
||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||
"This file is @generated automatically"
|
||||
],
|
||||
"content-hash": "b88b4bb7a5b2d82324133b372e47e930",
|
||||
"packages": [
|
||||
{
|
||||
"name": "clue/stream-filter",
|
||||
"version": "v1.5.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/clue/php-stream-filter.git",
|
||||
"reference": "aeb7d8ea49c7963d3b581378955dbf5bc49aa320"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/clue/php-stream-filter/zipball/aeb7d8ea49c7963d3b581378955dbf5bc49aa320",
|
||||
"reference": "aeb7d8ea49c7963d3b581378955dbf5bc49aa320",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.3"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "^9.3 || ^5.7 || ^4.8.36"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Clue\\StreamFilter\\": "src/"
|
||||
},
|
||||
"files": [
|
||||
"src/functions_include.php"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Christian Lück",
|
||||
"email": "christian@clue.engineering"
|
||||
}
|
||||
],
|
||||
"description": "A simple and modern approach to stream filtering in PHP",
|
||||
"homepage": "https://github.com/clue/php-stream-filter",
|
||||
"keywords": [
|
||||
"bucket brigade",
|
||||
"callback",
|
||||
"filter",
|
||||
"php_user_filter",
|
||||
"stream",
|
||||
"stream_filter_append",
|
||||
"stream_filter_register"
|
||||
],
|
||||
"time": "2020-10-02T12:38:20+00:00"
|
||||
},
|
||||
{
|
||||
"name": "composer/package-versions-deprecated",
|
||||
"version": "1.11.99",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/composer/package-versions-deprecated.git",
|
||||
"reference": "c8c9aa8a14cc3d3bec86d0a8c3fa52ea79936855"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/composer/package-versions-deprecated/zipball/c8c9aa8a14cc3d3bec86d0a8c3fa52ea79936855",
|
||||
"reference": "c8c9aa8a14cc3d3bec86d0a8c3fa52ea79936855",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"composer-plugin-api": "^1.1.0 || ^2.0",
|
||||
"php": "^7 || ^8"
|
||||
},
|
||||
"replace": {
|
||||
"ocramius/package-versions": "1.11.99"
|
||||
},
|
||||
"require-dev": {
|
||||
"composer/composer": "^1.9.3 || ^2.0@dev",
|
||||
"ext-zip": "^1.13",
|
||||
"phpunit/phpunit": "^6.5 || ^7"
|
||||
},
|
||||
"type": "composer-plugin",
|
||||
"extra": {
|
||||
"class": "PackageVersions\\Installer",
|
||||
"branch-alias": {
|
||||
"dev-master": "1.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"PackageVersions\\": "src/PackageVersions"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Marco Pivetta",
|
||||
"email": "ocramius@gmail.com"
|
||||
},
|
||||
{
|
||||
"name": "Jordi Boggiano",
|
||||
"email": "j.boggiano@seld.be"
|
||||
}
|
||||
],
|
||||
"description": "Composer plugin that provides efficient querying for installed package versions (no runtime IO)",
|
||||
"time": "2020-08-25T05:50:16+00:00"
|
||||
},
|
||||
{
|
||||
"name": "doctrine/annotations",
|
||||
"version": "1.10.4",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/doctrine/annotations.git",
|
||||
"reference": "bfe91e31984e2ba76df1c1339681770401ec262f"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/doctrine/annotations/zipball/bfe91e31984e2ba76df1c1339681770401ec262f",
|
||||
"reference": "bfe91e31984e2ba76df1c1339681770401ec262f",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"doctrine/lexer": "1.*",
|
||||
"ext-tokenizer": "*",
|
||||
"php": "^7.1 || ^8.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"doctrine/cache": "1.*",
|
||||
"phpstan/phpstan": "^0.12.20",
|
||||
"phpunit/phpunit": "^7.5 || ^9.1.5"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.9.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Doctrine\\Common\\Annotations\\": "lib/Doctrine/Common/Annotations"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Guilherme Blanco",
|
||||
"email": "guilhermeblanco@gmail.com"
|
||||
},
|
||||
{
|
||||
"name": "Roman Borschel",
|
||||
"email": "roman@code-factory.org"
|
||||
},
|
||||
{
|
||||
"name": "Benjamin Eberlei",
|
||||
"email": "kontakt@beberlei.de"
|
||||
},
|
||||
{
|
||||
"name": "Jonathan Wage",
|
||||
"email": "jonwage@gmail.com"
|
||||
},
|
||||
{
|
||||
"name": "Johannes Schmitt",
|
||||
"email": "schmittjoh@gmail.com"
|
||||
}
|
||||
],
|
||||
"description": "Docblock Annotations Parser",
|
||||
"homepage": "http://www.doctrine-project.org",
|
||||
"keywords": [
|
||||
"annotations",
|
||||
"docblock",
|
||||
"parser"
|
||||
],
|
||||
"time": "2020-08-10T19:35:50+00:00"
|
||||
},
|
||||
{
|
||||
"name": "doctrine/cache",
|
||||
"version": "1.10.2",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/doctrine/cache.git",
|
||||
"reference": "13e3381b25847283a91948d04640543941309727"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/doctrine/cache/zipball/13e3381b25847283a91948d04640543941309727",
|
||||
"reference": "13e3381b25847283a91948d04640543941309727",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": "~7.1 || ^8.0"
|
||||
},
|
||||
"conflict": {
|
||||
"doctrine/common": ">2.2,<2.4"
|
||||
},
|
||||
"require-dev": {
|
||||
"alcaeus/mongo-php-adapter": "^1.1",
|
||||
"doctrine/coding-standard": "^6.0",
|
||||
"mongodb/mongodb": "^1.1",
|
||||
"phpunit/phpunit": "^7.0",
|
||||
"predis/predis": "~1.0"
|
||||
},
|
||||
"suggest": {
|
||||
"alcaeus/mongo-php-adapter": "Required to use legacy MongoDB driver"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.9.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Doctrine\\Common\\Cache\\": "lib/Doctrine/Common/Cache"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Guilherme Blanco",
|
||||
"email": "guilhermeblanco@gmail.com"
|
||||
},
|
||||
{
|
||||
"name": "Roman Borschel",
|
||||
"email": "roman@code-factory.org"
|
||||
},
|
||||
{
|
||||
"name": "Benjamin Eberlei",
|
||||
"email": "kontakt@beberlei.de"
|
||||
},
|
||||
{
|
||||
"name": "Jonathan Wage",
|
||||
"email": "jonwage@gmail.com"
|
||||
},
|
||||
{
|
||||
"name": "Johannes Schmitt",
|
||||
"email": "schmittjoh@gmail.com"
|
||||
}
|
||||
],
|
||||
"description": "PHP Doctrine Cache library is a popular cache implementation that supports many different drivers such as redis, memcache, apc, mongodb and others.",
|
||||
"homepage": "https://www.doctrine-project.org/projects/cache.html",
|
||||
"keywords": [
|
||||
"abstraction",
|
||||
"apcu",
|
||||
"cache",
|
||||
"caching",
|
||||
"couchdb",
|
||||
"memcached",
|
||||
"php",
|
||||
"redis",
|
||||
"xcache"
|
||||
],
|
||||
"time": "2020-07-07T18:54:01+00:00"
|
||||
},
|
||||
{
|
||||
"name": "doctrine/collections",
|
||||
"version": "1.6.7",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/doctrine/collections.git",
|
||||
"reference": "55f8b799269a1a472457bd1a41b4f379d4cfba4a"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/doctrine/collections/zipball/55f8b799269a1a472457bd1a41b4f379d4cfba4a",
|
||||
"reference": "55f8b799269a1a472457bd1a41b4f379d4cfba4a",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": "^7.1.3 || ^8.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"doctrine/coding-standard": "^6.0",
|
||||
"phpstan/phpstan-shim": "^0.9.2",
|
||||
"phpunit/phpunit": "^7.0",
|
||||
"vimeo/psalm": "^3.8.1"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Doctrine\\Common\\Collections\\": "lib/Doctrine/Common/Collections"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Guilherme Blanco",
|
||||
"email": "guilhermeblanco@gmail.com"
|
||||
},
|
||||
{
|
||||
"name": "Roman Borschel",
|
||||
"email": "roman@code-factory.org"
|
||||
},
|
||||
{
|
||||
"name": "Benjamin Eberlei",
|
||||
"email": "kontakt@beberlei.de"
|
||||
},
|
||||
{
|
||||
"name": "Jonathan Wage",
|
||||
"email": "jonwage@gmail.com"
|
||||
},
|
||||
{
|
||||
"name": "Johannes Schmitt",
|
||||
"email": "schmittjoh@gmail.com"
|
||||
}
|
||||
],
|
||||
"description": "PHP Doctrine Collections library that adds additional functionality on top of PHP arrays.",
|
||||
"homepage": "https://www.doctrine-project.org/projects/collections.html",
|
||||
"keywords": [
|
||||
"array",
|
||||
"collections",
|
||||
"iterators",
|
||||
"php"
|
||||
],
|
||||
"time": "2020-07-27T17:53:49+00:00"
|
||||
},
|
||||
{
|
||||
"name": "doctrine/common",
|
||||
"version": "2.13.3",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/doctrine/common.git",
|
||||
"reference": "f3812c026e557892c34ef37f6ab808a6b567da7f"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/doctrine/common/zipball/f3812c026e557892c34ef37f6ab808a6b567da7f",
|
||||
"reference": "f3812c026e557892c34ef37f6ab808a6b567da7f",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"doctrine/annotations": "^1.0",
|
||||
"doctrine/cache": "^1.0",
|
||||
"doctrine/collections": "^1.0",
|
||||
"doctrine/event-manager": "^1.0",
|
||||
"doctrine/inflector": "^1.0",
|
||||
"doctrine/lexer": "^1.0",
|
||||
"doctrine/persistence": "^1.3.3",
|
||||
"doctrine/reflection": "^1.0",
|
||||
"php": "^7.1 || ^8.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"doctrine/coding-standard": "^1.0",
|
||||
"phpstan/phpstan": "^0.11",
|
||||
"phpstan/phpstan-phpunit": "^0.11",
|
||||
"phpunit/phpunit": "^7.0",
|
||||
"squizlabs/php_codesniffer": "^3.0",
|
||||
"symfony/phpunit-bridge": "^4.0.5"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "2.11.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Doctrine\\Common\\": "lib/Doctrine/Common"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Guilherme Blanco",
|
||||
"email": "guilhermeblanco@gmail.com"
|
||||
},
|
||||
{
|
||||
"name": "Roman Borschel",
|
||||
"email": "roman@code-factory.org"
|
||||
},
|
||||
{
|
||||
"name": "Benjamin Eberlei",
|
||||
"email": "kontakt@beberlei.de"
|
||||
},
|
||||
{
|
||||
"name": "Jonathan Wage",
|
||||
"email": "jonwage@gmail.com"
|
||||
},
|
||||
{
|
||||
"name": "Johannes Schmitt",
|
||||
"email": "schmittjoh@gmail.com"
|
||||
},
|
||||
{
|
||||
"name": "Marco Pivetta",
|
||||
"email": "ocramius@gmail.com"
|
||||
}
|
||||
],
|
||||
"description": "PHP Doctrine Common project is a library that provides additional functionality that other Doctrine projects depend on such as better reflection support, persistence interfaces, proxies, event system and much more.",
|
||||
"homepage": "https://www.doctrine-project.org/projects/common.html",
|
||||
"keywords": [
|
||||
"common",
|
||||
"doctrine",
|
||||
"php"
|
||||
],
|
||||
"time": "2020-06-05T16:46:05+00:00"
|
||||
},
|
||||
{
|
||||
"name": "doctrine/dbal",
|
||||
"version": "2.10.4",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/doctrine/dbal.git",
|
||||
"reference": "47433196b6390d14409a33885ee42b6208160643"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/doctrine/dbal/zipball/47433196b6390d14409a33885ee42b6208160643",
|
||||
"reference": "47433196b6390d14409a33885ee42b6208160643",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"doctrine/cache": "^1.0",
|
||||
"doctrine/event-manager": "^1.0",
|
||||
"ext-pdo": "*",
|
||||
"php": "^7.2"
|
||||
},
|
||||
"require-dev": {
|
||||
"doctrine/coding-standard": "^8.1",
|
||||
"jetbrains/phpstorm-stubs": "^2019.1",
|
||||
"nikic/php-parser": "^4.4",
|
||||
"phpstan/phpstan": "^0.12.40",
|
||||
"phpunit/phpunit": "^8.5.5",
|
||||
"psalm/plugin-phpunit": "^0.10.0",
|
||||
"symfony/console": "^2.0.5|^3.0|^4.0|^5.0",
|
||||
"vimeo/psalm": "^3.14.2"
|
||||
},
|
||||
"suggest": {
|
||||
"symfony/console": "For helpful console commands such as SQL execution and import of files."
|
||||
},
|
||||
"bin": [
|
||||
"bin/doctrine-dbal"
|
||||
],
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "2.10.x-dev",
|
||||
"dev-develop": "3.0.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Doctrine\\DBAL\\": "lib/Doctrine/DBAL"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Guilherme Blanco",
|
||||
"email": "guilhermeblanco@gmail.com"
|
||||
},
|
||||
{
|
||||
"name": "Roman Borschel",
|
||||
"email": "roman@code-factory.org"
|
||||
},
|
||||
{
|
||||
"name": "Benjamin Eberlei",
|
||||
"email": "kontakt@beberlei.de"
|
||||
},
|
||||
{
|
||||
"name": "Jonathan Wage",
|
||||
"email": "jonwage@gmail.com"
|
||||
}
|
||||
],
|
||||
"description": "Powerful PHP database abstraction layer (DBAL) with many features for database schema introspection and management.",
|
||||
"homepage": "https://www.doctrine-project.org/projects/dbal.html",
|
||||
"keywords": [
|
||||
"abstraction",
|
||||
"database",
|
||||
"db2",
|
||||
"dbal",
|
||||
"mariadb",
|
||||
"mssql",
|
||||
"mysql",
|
||||
"oci8",
|
||||
"oracle",
|
||||
"pdo",
|
||||
"pgsql",
|
||||
"postgresql",
|
||||
"queryobject",
|
||||
"sasql",
|
||||
"sql",
|
||||
"sqlanywhere",
|
||||
"sqlite",
|
||||
"sqlserver",
|
||||
"sqlsrv"
|
||||
],
|
||||
"time": "2020-09-12T21:20:41+00:00"
|
||||
},
|
||||
{
|
||||
"name": "doctrine/doctrine-bundle",
|
||||
"version": "2.1.2",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/doctrine/DoctrineBundle.git",
|
||||
"reference": "f5153089993e1230f5d8acbd8e126014d5a63e17"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/doctrine/DoctrineBundle/zipball/f5153089993e1230f5d8acbd8e126014d5a63e17",
|
||||
"reference": "f5153089993e1230f5d8acbd8e126014d5a63e17",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"doctrine/dbal": "^2.9.0|^3.0",
|
||||
"doctrine/persistence": "^1.3.3|^2.0",
|
||||
"doctrine/sql-formatter": "^1.0.1",
|
||||
"php": "^7.1 || ^8.0",
|
||||
"symfony/cache": "^4.3.3|^5.0",
|
||||
"symfony/config": "^4.3.3|^5.0",
|
||||
"symfony/console": "^3.4.30|^4.3.3|^5.0",
|
||||
"symfony/dependency-injection": "^4.3.3|^5.0",
|
||||
"symfony/doctrine-bridge": "^4.3.7|^5.0",
|
||||
"symfony/framework-bundle": "^3.4.30|^4.3.3|^5.0",
|
||||
"symfony/service-contracts": "^1.1.1|^2.0"
|
||||
},
|
||||
"conflict": {
|
||||
"doctrine/orm": "<2.6",
|
||||
"twig/twig": "<1.34|>=2.0,<2.4"
|
||||
},
|
||||
"require-dev": {
|
||||
"doctrine/coding-standard": "^6.0",
|
||||
"doctrine/orm": "^2.6",
|
||||
"ocramius/proxy-manager": "^2.1",
|
||||
"phpunit/phpunit": "^7.5",
|
||||
"symfony/phpunit-bridge": "^4.2",
|
||||
"symfony/property-info": "^4.3.3|^5.0",
|
||||
"symfony/proxy-manager-bridge": "^3.4|^4.3.3|^5.0",
|
||||
"symfony/twig-bridge": "^3.4.30|^4.3.3|^5.0",
|
||||
"symfony/validator": "^3.4.30|^4.3.3|^5.0",
|
||||
"symfony/web-profiler-bundle": "^3.4.30|^4.3.3|^5.0",
|
||||
"symfony/yaml": "^3.4.30|^4.3.3|^5.0",
|
||||
"twig/twig": "^1.34|^2.12"
|
||||
},
|
||||
"suggest": {
|
||||
"doctrine/orm": "The Doctrine ORM integration is optional in the bundle.",
|
||||
"symfony/web-profiler-bundle": "To use the data collector."
|
||||
},
|
||||
"type": "symfony-bundle",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "2.1.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Doctrine\\Bundle\\DoctrineBundle\\": ""
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Fabien Potencier",
|
||||
"email": "fabien@symfony.com"
|
||||
},
|
||||
{
|
||||
"name": "Benjamin Eberlei",
|
||||
"email": "kontakt@beberlei.de"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "http://symfony.com/contributors"
|
||||
},
|
||||
{
|
||||
"name": "Doctrine Project",
|
||||
"homepage": "http://www.doctrine-project.org/"
|
||||
}
|
||||
],
|
||||
"description": "Symfony DoctrineBundle",
|
||||
"homepage": "http://www.doctrine-project.org",
|
||||
"keywords": [
|
||||
"database",
|
||||
"dbal",
|
||||
"orm",
|
||||
"persistence"
|
||||
],
|
||||
"time": "2020-08-25T10:57:15+00:00"
|
||||
},
|
||||
{
|
||||
"name": "doctrine/doctrine-migrations-bundle",
|
||||
"version": "2.2.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/doctrine/DoctrineMigrationsBundle.git",
|
||||
"reference": "5efa29df768abaafe29b34e73dac68efbedcaa4d"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/doctrine/DoctrineMigrationsBundle/zipball/5efa29df768abaafe29b34e73dac68efbedcaa4d",
|
||||
"reference": "5efa29df768abaafe29b34e73dac68efbedcaa4d",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"doctrine/doctrine-bundle": "~1.0|~2.0",
|
||||
"doctrine/migrations": "^2.2",
|
||||
"php": "^7.1",
|
||||
"symfony/framework-bundle": "~3.4|~4.0|~5.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"doctrine/coding-standard": "^5.0",
|
||||
"mikey179/vfsstream": "^1.6",
|
||||
"phpstan/phpstan": "^0.9.2",
|
||||
"phpstan/phpstan-strict-rules": "^0.9",
|
||||
"phpunit/phpunit": "^6.4|^7.0"
|
||||
},
|
||||
"type": "symfony-bundle",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "2.1.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Doctrine\\Bundle\\MigrationsBundle\\": ""
|
||||
},
|
||||
"exclude-from-classmap": [
|
||||
"/Tests/"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Fabien Potencier",
|
||||
"email": "fabien@symfony.com"
|
||||
},
|
||||
{
|
||||
"name": "Doctrine Project",
|
||||
"homepage": "http://www.doctrine-project.org"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "http://symfony.com/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Symfony DoctrineMigrationsBundle",
|
||||
"homepage": "https://www.doctrine-project.org",
|
||||
"keywords": [
|
||||
"dbal",
|
||||
"migrations",
|
||||
"schema"
|
||||
],
|
||||
"time": "2020-06-25T19:36:08+00:00"
|
||||
},
|
||||
{
|
||||
"name": "doctrine/event-manager",
|
||||
"version": "1.1.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/doctrine/event-manager.git",
|
||||
"reference": "41370af6a30faa9dc0368c4a6814d596e81aba7f"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/doctrine/event-manager/zipball/41370af6a30faa9dc0368c4a6814d596e81aba7f",
|
||||
"reference": "41370af6a30faa9dc0368c4a6814d596e81aba7f",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": "^7.1 || ^8.0"
|
||||
},
|
||||
"conflict": {
|
||||
"doctrine/common": "<2.9@dev"
|
||||
},
|
||||
"require-dev": {
|
||||
"doctrine/coding-standard": "^6.0",
|
||||
"phpunit/phpunit": "^7.0"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.0.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Doctrine\\Common\\": "lib/Doctrine/Common"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Guilherme Blanco",
|
||||
"email": "guilhermeblanco@gmail.com"
|
||||
},
|
||||
{
|
||||
"name": "Roman Borschel",
|
||||
"email": "roman@code-factory.org"
|
||||
},
|
||||
{
|
||||
"name": "Benjamin Eberlei",
|
||||
"email": "kontakt@beberlei.de"
|
||||
},
|
||||
{
|
||||
"name": "Jonathan Wage",
|
||||
"email": "jonwage@gmail.com"
|
||||
},
|
||||
{
|
||||
"name": "Johannes Schmitt",
|
||||
"email": "schmittjoh@gmail.com"
|
||||
},
|
||||
{
|
||||
"name": "Marco Pivetta",
|
||||
"email": "ocramius@gmail.com"
|
||||
}
|
||||
],
|
||||
"description": "The Doctrine Event Manager is a simple PHP event system that was built to be used with the various Doctrine projects.",
|
||||
"homepage": "https://www.doctrine-project.org/projects/event-manager.html",
|
||||
"keywords": [
|
||||
"event",
|
||||
"event dispatcher",
|
||||
"event manager",
|
||||
"event system",
|
||||
"events"
|
||||
],
|
||||
"time": "2020-05-29T18:28:51+00:00"
|
||||
},
|
||||
{
|
||||
"name": "doctrine/inflector",
|
||||
"version": "1.4.3",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/doctrine/inflector.git",
|
||||
"reference": "4650c8b30c753a76bf44fb2ed00117d6f367490c"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/doctrine/inflector/zipball/4650c8b30c753a76bf44fb2ed00117d6f367490c",
|
||||
"reference": "4650c8b30c753a76bf44fb2ed00117d6f367490c",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": "^7.2 || ^8.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"doctrine/coding-standard": "^7.0",
|
||||
"phpstan/phpstan": "^0.11",
|
||||
"phpstan/phpstan-phpunit": "^0.11",
|
||||
"phpstan/phpstan-strict-rules": "^0.11",
|
||||
"phpunit/phpunit": "^7.0 || ^8.0 || ^9.0"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "2.0.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Doctrine\\Common\\Inflector\\": "lib/Doctrine/Common/Inflector",
|
||||
"Doctrine\\Inflector\\": "lib/Doctrine/Inflector"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Guilherme Blanco",
|
||||
"email": "guilhermeblanco@gmail.com"
|
||||
},
|
||||
{
|
||||
"name": "Roman Borschel",
|
||||
"email": "roman@code-factory.org"
|
||||
},
|
||||
{
|
||||
"name": "Benjamin Eberlei",
|
||||
"email": "kontakt@beberlei.de"
|
||||
},
|
||||
{
|
||||
"name": "Jonathan Wage",
|
||||
"email": "jonwage@gmail.com"
|
||||
},
|
||||
{
|
||||
"name": "Johannes Schmitt",
|
||||
"email": "schmittjoh@gmail.com"
|
||||
}
|
||||
],
|
||||
"description": "PHP Doctrine Inflector is a small library that can perform string manipulations with regard to upper/lowercase and singular/plural forms of words.",
|
||||
"homepage": "https://www.doctrine-project.org/projects/inflector.html",
|
||||
"keywords": [
|
||||
"inflection",
|
||||
"inflector",
|
||||
"lowercase",
|
||||
"manipulation",
|
||||
"php",
|
||||
"plural",
|
||||
"singular",
|
||||
"strings",
|
||||
"uppercase",
|
||||
"words"
|
||||
],
|
||||
"time": "2020-05-29T07:19:59+00:00"
|
||||
},
|
||||
{
|
||||
"name": "doctrine/instantiator",
|
||||
"version": "1.3.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/doctrine/instantiator.git",
|
||||
"reference": "f350df0268e904597e3bd9c4685c53e0e333feea"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/doctrine/instantiator/zipball/f350df0268e904597e3bd9c4685c53e0e333feea",
|
||||
"reference": "f350df0268e904597e3bd9c4685c53e0e333feea",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": "^7.1 || ^8.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"doctrine/coding-standard": "^6.0",
|
||||
"ext-pdo": "*",
|
||||
"ext-phar": "*",
|
||||
"phpbench/phpbench": "^0.13",
|
||||
"phpstan/phpstan-phpunit": "^0.11",
|
||||
"phpstan/phpstan-shim": "^0.11",
|
||||
"phpunit/phpunit": "^7.0"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.2.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Marco Pivetta",
|
||||
"email": "ocramius@gmail.com",
|
||||
"homepage": "http://ocramius.github.com/"
|
||||
}
|
||||
],
|
||||
"description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors",
|
||||
"homepage": "https://www.doctrine-project.org/projects/instantiator.html",
|
||||
"keywords": [
|
||||
"constructor",
|
||||
"instantiate"
|
||||
],
|
||||
"time": "2020-05-29T17:27:14+00:00"
|
||||
},
|
||||
{
|
||||
"name": "doctrine/lexer",
|
||||
"version": "1.2.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/doctrine/lexer.git",
|
||||
"reference": "e864bbf5904cb8f5bb334f99209b48018522f042"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/doctrine/lexer/zipball/e864bbf5904cb8f5bb334f99209b48018522f042",
|
||||
"reference": "e864bbf5904cb8f5bb334f99209b48018522f042",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": "^7.2 || ^8.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"doctrine/coding-standard": "^6.0",
|
||||
"phpstan/phpstan": "^0.11.8",
|
||||
"phpunit/phpunit": "^8.2"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.2.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Doctrine\\Common\\Lexer\\": "lib/Doctrine/Common/Lexer"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Guilherme Blanco",
|
||||
"email": "guilhermeblanco@gmail.com"
|
||||
},
|
||||
{
|
||||
"name": "Roman Borschel",
|
||||
"email": "roman@code-factory.org"
|
||||
},
|
||||
{
|
||||
"name": "Johannes Schmitt",
|
||||
"email": "schmittjoh@gmail.com"
|
||||
}
|
||||
],
|
||||
"description": "PHP Doctrine Lexer parser library that can be used in Top-Down, Recursive Descent Parsers.",
|
||||
"homepage": "https://www.doctrine-project.org/projects/lexer.html",
|
||||
"keywords": [
|
||||
"annotations",
|
||||
"docblock",
|
||||
"lexer",
|
||||
"parser",
|
||||
"php"
|
||||
],
|
||||
"time": "2020-05-25T17:44:05+00:00"
|
||||
},
|
||||
{
|
||||
"name": "doctrine/migrations",
|
||||
"version": "2.2.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/doctrine/migrations.git",
|
||||
"reference": "a3987131febeb0e9acb3c47ab0df0af004588934"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/doctrine/migrations/zipball/a3987131febeb0e9acb3c47ab0df0af004588934",
|
||||
"reference": "a3987131febeb0e9acb3c47ab0df0af004588934",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"doctrine/dbal": "^2.9",
|
||||
"ocramius/package-versions": "^1.3",
|
||||
"ocramius/proxy-manager": "^2.0.2",
|
||||
"php": "^7.1",
|
||||
"symfony/console": "^3.4||^4.0||^5.0",
|
||||
"symfony/stopwatch": "^3.4||^4.0||^5.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"doctrine/coding-standard": "^6.0",
|
||||
"doctrine/orm": "^2.6",
|
||||
"ext-pdo_sqlite": "*",
|
||||
"jdorn/sql-formatter": "^1.1",
|
||||
"mikey179/vfsstream": "^1.6",
|
||||
"phpstan/phpstan": "^0.10",
|
||||
"phpstan/phpstan-deprecation-rules": "^0.10",
|
||||
"phpstan/phpstan-phpunit": "^0.10",
|
||||
"phpstan/phpstan-strict-rules": "^0.10",
|
||||
"phpunit/phpunit": "^7.0",
|
||||
"symfony/process": "^3.4||^4.0||^5.0",
|
||||
"symfony/yaml": "^3.4||^4.0||^5.0"
|
||||
},
|
||||
"suggest": {
|
||||
"jdorn/sql-formatter": "Allows to generate formatted SQL with the diff command.",
|
||||
"symfony/yaml": "Allows the use of yaml for migration configuration files."
|
||||
},
|
||||
"bin": [
|
||||
"bin/doctrine-migrations"
|
||||
],
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "2.2.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Doctrine\\Migrations\\": "lib/Doctrine/Migrations"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Benjamin Eberlei",
|
||||
"email": "kontakt@beberlei.de"
|
||||
},
|
||||
{
|
||||
"name": "Jonathan Wage",
|
||||
"email": "jonwage@gmail.com"
|
||||
},
|
||||
{
|
||||
"name": "Michael Simonson",
|
||||
"email": "contact@mikesimonson.com"
|
||||
}
|
||||
],
|
||||
"description": "PHP Doctrine Migrations project offer additional functionality on top of the database abstraction layer (DBAL) for versioning your database schema and easily deploying changes to it. It is a very easy to use and a powerful tool.",
|
||||
"homepage": "https://www.doctrine-project.org/projects/migrations.html",
|
||||
"keywords": [
|
||||
"database",
|
||||
"dbal",
|
||||
"migrations",
|
||||
"php"
|
||||
],
|
||||
"time": "2019-12-04T06:09:14+00:00"
|
||||
},
|
||||
{
|
||||
"name": "doctrine/orm",
|
||||
"version": "v2.7.3",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/doctrine/orm.git",
|
||||
"reference": "d95e03ba660d50d785a9925f41927fef0ee553cf"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/doctrine/orm/zipball/d95e03ba660d50d785a9925f41927fef0ee553cf",
|
||||
"reference": "d95e03ba660d50d785a9925f41927fef0ee553cf",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"doctrine/annotations": "^1.8",
|
||||
"doctrine/cache": "^1.9.1",
|
||||
"doctrine/collections": "^1.5",
|
||||
"doctrine/common": "^2.11 || ^3.0",
|
||||
"doctrine/dbal": "^2.9.3",
|
||||
"doctrine/event-manager": "^1.1",
|
||||
"doctrine/inflector": "^1.0",
|
||||
"doctrine/instantiator": "^1.3",
|
||||
"doctrine/lexer": "^1.0",
|
||||
"doctrine/persistence": "^1.3.3 || ^2.0",
|
||||
"ext-pdo": "*",
|
||||
"ocramius/package-versions": "^1.2",
|
||||
"php": "^7.1",
|
||||
"symfony/console": "^3.0|^4.0|^5.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"doctrine/coding-standard": "^5.0",
|
||||
"phpstan/phpstan": "^0.12.18",
|
||||
"phpunit/phpunit": "^7.5",
|
||||
"symfony/yaml": "^3.4|^4.0|^5.0",
|
||||
"vimeo/psalm": "^3.11"
|
||||
},
|
||||
"suggest": {
|
||||
"symfony/yaml": "If you want to use YAML Metadata Mapping Driver"
|
||||
},
|
||||
"bin": [
|
||||
"bin/doctrine"
|
||||
],
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "2.7.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Doctrine\\ORM\\": "lib/Doctrine/ORM"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Guilherme Blanco",
|
||||
"email": "guilhermeblanco@gmail.com"
|
||||
},
|
||||
{
|
||||
"name": "Roman Borschel",
|
||||
"email": "roman@code-factory.org"
|
||||
},
|
||||
{
|
||||
"name": "Benjamin Eberlei",
|
||||
"email": "kontakt@beberlei.de"
|
||||
},
|
||||
{
|
||||
"name": "Jonathan Wage",
|
||||
"email": "jonwage@gmail.com"
|
||||
},
|
||||
{
|
||||
"name": "Marco Pivetta",
|
||||
"email": "ocramius@gmail.com"
|
||||
}
|
||||
],
|
||||
"description": "Object-Relational-Mapper for PHP",
|
||||
"homepage": "https://www.doctrine-project.org/projects/orm.html",
|
||||
"keywords": [
|
||||
"database",
|
||||
"orm"
|
||||
],
|
||||
"time": "2020-05-26T16:03:49+00:00"
|
||||
},
|
||||
{
|
||||
"name": "doctrine/persistence",
|
||||
"version": "1.3.8",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/doctrine/persistence.git",
|
||||
"reference": "7a6eac9fb6f61bba91328f15aa7547f4806ca288"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/doctrine/persistence/zipball/7a6eac9fb6f61bba91328f15aa7547f4806ca288",
|
||||
"reference": "7a6eac9fb6f61bba91328f15aa7547f4806ca288",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"doctrine/annotations": "^1.0",
|
||||
"doctrine/cache": "^1.0",
|
||||
"doctrine/collections": "^1.0",
|
||||
"doctrine/event-manager": "^1.0",
|
||||
"doctrine/reflection": "^1.2",
|
||||
"php": "^7.1 || ^8.0"
|
||||
},
|
||||
"conflict": {
|
||||
"doctrine/common": "<2.10@dev"
|
||||
},
|
||||
"require-dev": {
|
||||
"doctrine/coding-standard": "^6.0",
|
||||
"phpstan/phpstan": "^0.11",
|
||||
"phpunit/phpunit": "^7.0 || ^8.0 || ^9.0",
|
||||
"vimeo/psalm": "^3.11"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.3.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Doctrine\\Common\\": "lib/Doctrine/Common",
|
||||
"Doctrine\\Persistence\\": "lib/Doctrine/Persistence"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Guilherme Blanco",
|
||||
"email": "guilhermeblanco@gmail.com"
|
||||
},
|
||||
{
|
||||
"name": "Roman Borschel",
|
||||
"email": "roman@code-factory.org"
|
||||
},
|
||||
{
|
||||
"name": "Benjamin Eberlei",
|
||||
"email": "kontakt@beberlei.de"
|
||||
},
|
||||
{
|
||||
"name": "Jonathan Wage",
|
||||
"email": "jonwage@gmail.com"
|
||||
},
|
||||
{
|
||||
"name": "Johannes Schmitt",
|
||||
"email": "schmittjoh@gmail.com"
|
||||
},
|
||||
{
|
||||
"name": "Marco Pivetta",
|
||||
"email": "ocramius@gmail.com"
|
||||
}
|
||||
],
|
||||
"description": "The Doctrine Persistence project is a set of shared interfaces and functionality that the different Doctrine object mappers share.",
|
||||
"homepage": "https://doctrine-project.org/projects/persistence.html",
|
||||
"keywords": [
|
||||
"mapper",
|
||||
"object",
|
||||
"odm",
|
||||
"orm",
|
||||
"persistence"
|
||||
],
|
||||
"time": "2020-06-20T12:56:16+00:00"
|
||||
},
|
||||
{
|
||||
"name": "doctrine/reflection",
|
||||
"version": "1.2.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/doctrine/reflection.git",
|
||||
"reference": "55e71912dfcd824b2fdd16f2d9afe15684cfce79"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/doctrine/reflection/zipball/55e71912dfcd824b2fdd16f2d9afe15684cfce79",
|
||||
"reference": "55e71912dfcd824b2fdd16f2d9afe15684cfce79",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"doctrine/annotations": "^1.0",
|
||||
"ext-tokenizer": "*",
|
||||
"php": "^7.1"
|
||||
},
|
||||
"conflict": {
|
||||
"doctrine/common": "<2.9"
|
||||
},
|
||||
"require-dev": {
|
||||
"doctrine/coding-standard": "^5.0",
|
||||
"doctrine/common": "^2.10",
|
||||
"phpstan/phpstan": "^0.11.0",
|
||||
"phpstan/phpstan-phpunit": "^0.11.0",
|
||||
"phpunit/phpunit": "^7.0"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.2.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Doctrine\\Common\\": "lib/Doctrine/Common"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Guilherme Blanco",
|
||||
"email": "guilhermeblanco@gmail.com"
|
||||
},
|
||||
{
|
||||
"name": "Roman Borschel",
|
||||
"email": "roman@code-factory.org"
|
||||
},
|
||||
{
|
||||
"name": "Benjamin Eberlei",
|
||||
"email": "kontakt@beberlei.de"
|
||||
},
|
||||
{
|
||||
"name": "Jonathan Wage",
|
||||
"email": "jonwage@gmail.com"
|
||||
},
|
||||
{
|
||||
"name": "Johannes Schmitt",
|
||||
"email": "schmittjoh@gmail.com"
|
||||
},
|
||||
{
|
||||
"name": "Marco Pivetta",
|
||||
"email": "ocramius@gmail.com"
|
||||
}
|
||||
],
|
||||
"description": "The Doctrine Reflection project is a simple library used by the various Doctrine projects which adds some additional functionality on top of the reflection functionality that comes with PHP. It allows you to get the reflection information about classes, methods and properties statically.",
|
||||
"homepage": "https://www.doctrine-project.org/projects/reflection.html",
|
||||
"keywords": [
|
||||
"reflection",
|
||||
"static"
|
||||
],
|
||||
"time": "2020-03-27T11:06:43+00:00"
|
||||
},
|
||||
{
|
||||
"name": "doctrine/sql-formatter",
|
||||
"version": "1.1.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/doctrine/sql-formatter.git",
|
||||
"reference": "56070bebac6e77230ed7d306ad13528e60732871"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/doctrine/sql-formatter/zipball/56070bebac6e77230ed7d306ad13528e60732871",
|
||||
"reference": "56070bebac6e77230ed7d306ad13528e60732871",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": "^7.1 || ^8.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"bamarni/composer-bin-plugin": "^1.4"
|
||||
},
|
||||
"bin": [
|
||||
"bin/sql-formatter"
|
||||
],
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Doctrine\\SqlFormatter\\": "src"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Jeremy Dorn",
|
||||
"email": "jeremy@jeremydorn.com",
|
||||
"homepage": "http://jeremydorn.com/"
|
||||
}
|
||||
],
|
||||
"description": "a PHP SQL highlighting library",
|
||||
"homepage": "https://github.com/doctrine/sql-formatter/",
|
||||
"keywords": [
|
||||
"highlight",
|
||||
"sql"
|
||||
],
|
||||
"time": "2020-07-30T16:57:33+00:00"
|
||||
},
|
||||
{
|
||||
"name": "egulias/email-validator",
|
||||
"version": "2.1.22",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/egulias/EmailValidator.git",
|
||||
"reference": "68e418ec08fbfc6f58f6fd2eea70ca8efc8cc7d5"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/egulias/EmailValidator/zipball/68e418ec08fbfc6f58f6fd2eea70ca8efc8cc7d5",
|
||||
"reference": "68e418ec08fbfc6f58f6fd2eea70ca8efc8cc7d5",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"doctrine/lexer": "^1.0.1",
|
||||
"php": ">=5.5",
|
||||
"symfony/polyfill-intl-idn": "^1.10"
|
||||
},
|
||||
"require-dev": {
|
||||
"dominicsayers/isemail": "^3.0.7",
|
||||
"phpunit/phpunit": "^4.8.36|^7.5.15",
|
||||
"satooshi/php-coveralls": "^1.0.1"
|
||||
},
|
||||
"suggest": {
|
||||
"ext-intl": "PHP Internationalization Libraries are required to use the SpoofChecking validation"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "2.1.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Egulias\\EmailValidator\\": "src"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Eduardo Gulias Davis"
|
||||
}
|
||||
],
|
||||
"description": "A library for validating emails against several RFCs",
|
||||
"homepage": "https://github.com/egulias/EmailValidator",
|
||||
"keywords": [
|
||||
"email",
|
||||
"emailvalidation",
|
||||
"emailvalidator",
|
||||
"validation",
|
||||
"validator"
|
||||
],
|
||||
"time": "2020-09-26T15:48:38+00:00"
|
||||
},
|
||||
{
|
||||
"name": "exsyst/swagger",
|
||||
"version": "v0.4.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/GuilhemN/swagger.git",
|
||||
"reference": "a02984db5edacdce2b4e09dae5ba8fe17a0e449e"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/GuilhemN/swagger/zipball/a02984db5edacdce2b4e09dae5ba8fe17a0e449e",
|
||||
"reference": "a02984db5edacdce2b4e09dae5ba8fe17a0e449e",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": "^7.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "^6.5"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"EXSyst\\Component\\Swagger\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Ener-Getick",
|
||||
"email": "egetick@gmail.com"
|
||||
}
|
||||
],
|
||||
"description": "A php library to manipulate Swagger specifications",
|
||||
"time": "2018-07-27T06:40:00+00:00"
|
||||
},
|
||||
{
|
||||
"name": "friendsofsymfony/ckeditor-bundle",
|
||||
"version": "2.2.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/FriendsOfSymfony/FOSCKEditorBundle.git",
|
||||
"reference": "7e1cfe2a83faba0be02661d44289d35e940bb5ea"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/FriendsOfSymfony/FOSCKEditorBundle/zipball/7e1cfe2a83faba0be02661d44289d35e940bb5ea",
|
||||
"reference": "7e1cfe2a83faba0be02661d44289d35e940bb5ea",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"ext-json": "*",
|
||||
"ext-zip": "*",
|
||||
"php": "^7.1",
|
||||
"symfony/asset": "^3.4 || ^4.0 || ^5.0",
|
||||
"symfony/config": "^3.4 || ^4.0 || ^5.0",
|
||||
"symfony/dependency-injection": "^3.4 || ^4.0 || ^5.0",
|
||||
"symfony/expression-language": "^3.4 || ^4.0 || ^5.0",
|
||||
"symfony/form": "^3.4 || ^4.0 || ^5.0",
|
||||
"symfony/framework-bundle": "^3.4 || ^4.0 || ^5.0",
|
||||
"symfony/http-foundation": "^3.4 || ^4.0 || ^5.0",
|
||||
"symfony/http-kernel": "^3.4 || ^4.0 || ^5.0",
|
||||
"symfony/options-resolver": "^3.4 || ^4.0 || ^5.0",
|
||||
"symfony/property-access": "^3.4 || ^4.0 || ^5.0",
|
||||
"symfony/routing": "^3.4 || ^4.0 || ^5.0",
|
||||
"symfony/twig-bundle": "^3.4 || ^4.0 || ^5.0",
|
||||
"twig/twig": "^2.4 || ^3.0"
|
||||
},
|
||||
"conflict": {
|
||||
"sebastian/environment": "<1.3.4",
|
||||
"sebastian/exporter": "<2.0.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"friendsofphp/php-cs-fixer": "^2.0",
|
||||
"matthiasnoback/symfony-dependency-injection-test": "^1.0 || ^2.0",
|
||||
"phpunit/phpunit": "^6.0",
|
||||
"symfony/console": "^3.4 || ^4.0 || ^5.0",
|
||||
"symfony/phpunit-bridge": "^4.1 || ^5.0",
|
||||
"symfony/yaml": "^3.4 || ^4.0 || ^5.0"
|
||||
},
|
||||
"suggest": {
|
||||
"egeloen/form-extra-bundle": "Allows to load CKEditor asynchronously"
|
||||
},
|
||||
"type": "symfony-bundle",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "2.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"FOS\\CKEditorBundle\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Eric GELOEN",
|
||||
"email": "geloen.eric@gmail.com"
|
||||
},
|
||||
{
|
||||
"name": "FriendsOfSymfony Community",
|
||||
"homepage": "https://github.com/FriendsOfSymfony/FOSCKEditorBundle/graphs/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Provides a CKEditor integration for your Symfony project.",
|
||||
"keywords": [
|
||||
"CKEditor"
|
||||
],
|
||||
"time": "2019-12-23T15:31:36+00:00"
|
||||
},
|
||||
{
|
||||
"name": "friendsofsymfony/rest-bundle",
|
||||
"version": "2.8.3",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/FriendsOfSymfony/FOSRestBundle.git",
|
||||
"reference": "2000204f4ac6bf5515222fc5d9be1652ed138e8f"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/FriendsOfSymfony/FOSRestBundle/zipball/2000204f4ac6bf5515222fc5d9be1652ed138e8f",
|
||||
"reference": "2000204f4ac6bf5515222fc5d9be1652ed138e8f",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"doctrine/inflector": "^1.0",
|
||||
"php": "^7.1|^8.0",
|
||||
"psr/log": "^1.0",
|
||||
"symfony/config": "^3.4|^4.3",
|
||||
"symfony/debug": "^3.4|^4.3",
|
||||
"symfony/dependency-injection": "^3.4|^4.3",
|
||||
"symfony/event-dispatcher": "^3.4|^4.3",
|
||||
"symfony/finder": "^3.4|^4.3",
|
||||
"symfony/framework-bundle": "^3.4|^4.3",
|
||||
"symfony/http-foundation": "^3.4|^4.3",
|
||||
"symfony/http-kernel": "^3.4|^4.3",
|
||||
"symfony/routing": "^3.4|^4.3",
|
||||
"symfony/security-core": "^3.4|^4.3",
|
||||
"willdurand/jsonp-callback-validator": "^1.0",
|
||||
"willdurand/negotiation": "^2.0"
|
||||
},
|
||||
"conflict": {
|
||||
"doctrine/inflector": "1.4.0",
|
||||
"jms/serializer": "<1.13.0",
|
||||
"jms/serializer-bundle": "<2.0.0",
|
||||
"sensio/framework-extra-bundle": "<3.0.13"
|
||||
},
|
||||
"require-dev": {
|
||||
"friendsofphp/php-cs-fixer": "^2.0",
|
||||
"jms/serializer": "^1.13|^2.0|^3.0",
|
||||
"jms/serializer-bundle": "^2.3.1|^3.0",
|
||||
"phpoption/phpoption": "^1.1",
|
||||
"psr/http-message": "^1.0",
|
||||
"sensio/framework-extra-bundle": "^3.0.13|^4.0|^5.0",
|
||||
"symfony/asset": "^3.4|^4.3",
|
||||
"symfony/browser-kit": "^3.4|^4.3",
|
||||
"symfony/css-selector": "^3.4|^4.3",
|
||||
"symfony/expression-language": "^3.4|^4.3",
|
||||
"symfony/form": "^3.4|^4.3",
|
||||
"symfony/phpunit-bridge": "^4.1.8",
|
||||
"symfony/security-bundle": "^3.4|^4.3",
|
||||
"symfony/serializer": "^3.4|^4.3",
|
||||
"symfony/templating": "^3.4|^4.3",
|
||||
"symfony/twig-bundle": "^3.4|^4.3",
|
||||
"symfony/validator": "^3.4|^4.3",
|
||||
"symfony/web-profiler-bundle": "^3.4|^4.3",
|
||||
"symfony/yaml": "^3.4|^4.3"
|
||||
},
|
||||
"suggest": {
|
||||
"jms/serializer-bundle": "Add support for advanced serialization capabilities, recommended, requires ^2.0|^3.0",
|
||||
"sensio/framework-extra-bundle": "Add support for the request body converter and the view response listener, requires ^3.0",
|
||||
"symfony/expression-language": "Add support for using the expression language in the routing, requires ^2.7|^3.0",
|
||||
"symfony/serializer": "Add support for basic serialization capabilities and xml decoding, requires ^2.7|^3.0",
|
||||
"symfony/validator": "Add support for validation capabilities in the ParamFetcher, requires ^2.7|^3.0"
|
||||
},
|
||||
"type": "symfony-bundle",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"2.x-dev": "2.8-dev",
|
||||
"dev-master": "2.7-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"FOS\\RestBundle\\": ""
|
||||
},
|
||||
"exclude-from-classmap": [
|
||||
"Resources/",
|
||||
"Tests/"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Lukas Kahwe Smith",
|
||||
"email": "smith@pooteeweet.org"
|
||||
},
|
||||
{
|
||||
"name": "Konstantin Kudryashov",
|
||||
"email": "ever.zet@gmail.com"
|
||||
},
|
||||
{
|
||||
"name": "FriendsOfSymfony Community",
|
||||
"homepage": "https://github.com/friendsofsymfony/FOSRestBundle/contributors"
|
||||
}
|
||||
],
|
||||
"description": "This Bundle provides various tools to rapidly develop RESTful API's with Symfony",
|
||||
"homepage": "http://friendsofsymfony.github.com",
|
||||
"keywords": [
|
||||
"rest"
|
||||
],
|
||||
"time": "2020-09-10T06:51:53+00:00"
|
||||
},
|
||||
{
|
||||
"name": "guzzlehttp/promises",
|
||||
"version": "1.4.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/guzzle/promises.git",
|
||||
"reference": "60d379c243457e073cff02bc323a2a86cb355631"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/guzzle/promises/zipball/60d379c243457e073cff02bc323a2a86cb355631",
|
||||
"reference": "60d379c243457e073cff02bc323a2a86cb355631",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.5"
|
||||
},
|
||||
"require-dev": {
|
||||
"symfony/phpunit-bridge": "^4.4 || ^5.1"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.4-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"GuzzleHttp\\Promise\\": "src/"
|
||||
},
|
||||
"files": [
|
||||
"src/functions_include.php"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Michael Dowling",
|
||||
"email": "mtdowling@gmail.com",
|
||||
"homepage": "https://github.com/mtdowling"
|
||||
}
|
||||
],
|
||||
"description": "Guzzle promises library",
|
||||
"keywords": [
|
||||
"promise"
|
||||
],
|
||||
"time": "2020-09-30T07:37:28+00:00"
|
||||
},
|
||||
{
|
||||
"name": "guzzlehttp/psr7",
|
||||
"version": "1.7.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/guzzle/psr7.git",
|
||||
"reference": "53330f47520498c0ae1f61f7e2c90f55690c06a3"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/guzzle/psr7/zipball/53330f47520498c0ae1f61f7e2c90f55690c06a3",
|
||||
"reference": "53330f47520498c0ae1f61f7e2c90f55690c06a3",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.4.0",
|
||||
"psr/http-message": "~1.0",
|
||||
"ralouphie/getallheaders": "^2.0.5 || ^3.0.0"
|
||||
},
|
||||
"provide": {
|
||||
"psr/http-message-implementation": "1.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"ext-zlib": "*",
|
||||
"phpunit/phpunit": "~4.8.36 || ^5.7.27 || ^6.5.14 || ^7.5.20 || ^8.5.8 || ^9.3.10"
|
||||
},
|
||||
"suggest": {
|
||||
"laminas/laminas-httphandlerrunner": "Emit PSR-7 responses"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.7-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"GuzzleHttp\\Psr7\\": "src/"
|
||||
},
|
||||
"files": [
|
||||
"src/functions_include.php"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Michael Dowling",
|
||||
"email": "mtdowling@gmail.com",
|
||||
"homepage": "https://github.com/mtdowling"
|
||||
},
|
||||
{
|
||||
"name": "Tobias Schultze",
|
||||
"homepage": "https://github.com/Tobion"
|
||||
}
|
||||
],
|
||||
"description": "PSR-7 message implementation that also provides common utility methods",
|
||||
"keywords": [
|
||||
"http",
|
||||
"message",
|
||||
"psr-7",
|
||||
"request",
|
||||
"response",
|
||||
"stream",
|
||||
"uri",
|
||||
"url"
|
||||
],
|
||||
"time": "2020-09-30T07:37:11+00:00"
|
||||
},
|
||||
{
|
||||
"name": "http-interop/http-factory-guzzle",
|
||||
"version": "1.0.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/http-interop/http-factory-guzzle.git",
|
||||
"reference": "34861658efb9899a6618cef03de46e2a52c80fc0"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/http-interop/http-factory-guzzle/zipball/34861658efb9899a6618cef03de46e2a52c80fc0",
|
||||
"reference": "34861658efb9899a6618cef03de46e2a52c80fc0",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"guzzlehttp/psr7": "^1.4.2",
|
||||
"psr/http-factory": "^1.0"
|
||||
},
|
||||
"provide": {
|
||||
"psr/http-factory-implementation": "^1.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"http-interop/http-factory-tests": "^0.5",
|
||||
"phpunit/phpunit": "^6.5"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Http\\Factory\\Guzzle\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "PHP-FIG",
|
||||
"homepage": "http://www.php-fig.org/"
|
||||
}
|
||||
],
|
||||
"description": "An HTTP Factory using Guzzle PSR7",
|
||||
"keywords": [
|
||||
"factory",
|
||||
"http",
|
||||
"psr-17",
|
||||
"psr-7"
|
||||
],
|
||||
"time": "2018-07-31T19:32:56+00:00"
|
||||
},
|
||||
{
|
||||
"name": "jasig/phpcas",
|
||||
"version": "1.3.8",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/apereo/phpCAS.git",
|
||||
"reference": "40c0769ce05a30c8172b36ceab11124375c8366e"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/apereo/phpCAS/zipball/40c0769ce05a30c8172b36ceab11124375c8366e",
|
||||
"reference": "40c0769ce05a30c8172b36ceab11124375c8366e",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"ext-curl": "*",
|
||||
"php": ">=5.4.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "~3.7.10"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.3.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"classmap": [
|
||||
"source/"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"Apache-2.0"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Joachim Fritschi",
|
||||
"homepage": "https://wiki.jasig.org/display/~fritschi"
|
||||
},
|
||||
{
|
||||
"name": "Adam Franco",
|
||||
"homepage": "https://wiki.jasig.org/display/~adamfranco"
|
||||
}
|
||||
],
|
||||
"description": "Provides a simple API for authenticating users against a CAS server",
|
||||
"homepage": "https://wiki.jasig.org/display/CASC/phpCAS",
|
||||
"keywords": [
|
||||
"apereo",
|
||||
"cas",
|
||||
"jasig"
|
||||
],
|
||||
"time": "2019-08-18T20:01:55+00:00"
|
||||
},
|
||||
{
|
||||
"name": "jean85/pretty-package-versions",
|
||||
"version": "1.5.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/Jean85/pretty-package-versions.git",
|
||||
"reference": "a917488320c20057da87f67d0d40543dd9427f7a"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/Jean85/pretty-package-versions/zipball/a917488320c20057da87f67d0d40543dd9427f7a",
|
||||
"reference": "a917488320c20057da87f67d0d40543dd9427f7a",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"composer/package-versions-deprecated": "^1.8.0",
|
||||
"php": "^7.0|^8.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "^6.0|^8.5|^9.2"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Jean85\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Alessandro Lai",
|
||||
"email": "alessandro.lai85@gmail.com"
|
||||
}
|
||||
],
|
||||
"description": "A wrapper for ocramius/package-versions to get pretty versions strings",
|
||||
"keywords": [
|
||||
"composer",
|
||||
"package",
|
||||
"release",
|
||||
"versions"
|
||||
],
|
||||
"time": "2020-09-14T08:43:34+00:00"
|
||||
},
|
||||
{
|
||||
"name": "knplabs/knp-snappy",
|
||||
"version": "v1.2.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/KnpLabs/snappy.git",
|
||||
"reference": "7bac60fb729147b7ccd8532c07df3f52a4afa8a4"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/KnpLabs/snappy/zipball/7bac60fb729147b7ccd8532c07df3f52a4afa8a4",
|
||||
"reference": "7bac60fb729147b7ccd8532c07df3f52a4afa8a4",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=7.1",
|
||||
"psr/log": "^1.0",
|
||||
"symfony/process": "~3.4||~4.3||~5.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "~7.4"
|
||||
},
|
||||
"suggest": {
|
||||
"h4cc/wkhtmltoimage-amd64": "Provides wkhtmltoimage-amd64 binary for Linux-compatible machines, use version `~0.12` as dependency",
|
||||
"h4cc/wkhtmltoimage-i386": "Provides wkhtmltoimage-i386 binary for Linux-compatible machines, use version `~0.12` as dependency",
|
||||
"h4cc/wkhtmltopdf-amd64": "Provides wkhtmltopdf-amd64 binary for Linux-compatible machines, use version `~0.12` as dependency",
|
||||
"h4cc/wkhtmltopdf-i386": "Provides wkhtmltopdf-i386 binary for Linux-compatible machines, use version `~0.12` as dependency",
|
||||
"wemersonjanuario/wkhtmltopdf-windows": "Provides wkhtmltopdf executable for Windows, use version `~0.12` as dependency"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Knp\\Snappy\\": "src/Knp/Snappy"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "KnpLabs Team",
|
||||
"homepage": "http://knplabs.com"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "http://github.com/KnpLabs/snappy/contributors"
|
||||
}
|
||||
],
|
||||
"description": "PHP5 library allowing thumbnail, snapshot or PDF generation from a url or a html page. Wrapper for wkhtmltopdf/wkhtmltoimage.",
|
||||
"homepage": "http://github.com/KnpLabs/snappy",
|
||||
"keywords": [
|
||||
"knp",
|
||||
"knplabs",
|
||||
"pdf",
|
||||
"snapshot",
|
||||
"thumbnail",
|
||||
"wkhtmltopdf"
|
||||
],
|
||||
"time": "2020-01-20T08:30:30+00:00"
|
||||
},
|
||||
{
|
||||
"name": "knplabs/knp-snappy-bundle",
|
||||
"version": "v1.7.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/KnpLabs/KnpSnappyBundle.git",
|
||||
"reference": "89a633d30d39b71b38511b70e1f0495164140933"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/KnpLabs/KnpSnappyBundle/zipball/89a633d30d39b71b38511b70e1f0495164140933",
|
||||
"reference": "89a633d30d39b71b38511b70e1f0495164140933",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"knplabs/knp-snappy": "~1.0,>=1.0.1",
|
||||
"php": ">=7.1",
|
||||
"symfony/framework-bundle": "^3.4|^4.3|^5.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"doctrine/annotations": "~1.0",
|
||||
"symfony/asset": "^3.4|^4.3|^5.0",
|
||||
"symfony/finder": "^3.4|^4.3|^5.0",
|
||||
"symfony/phpunit-bridge": "^4.3|^5.0",
|
||||
"symfony/security-csrf": "^3.4|^4.3|^5.0",
|
||||
"symfony/templating": "^3.4|^4.3|^5.0",
|
||||
"symfony/validator": "^3.4|^4.3|^5.0",
|
||||
"symfony/yaml": "^3.4|^4.3|^5.0"
|
||||
},
|
||||
"type": "symfony-bundle",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Knp\\Bundle\\SnappyBundle\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "KnpLabs Team",
|
||||
"homepage": "http://knplabs.com"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "http://github.com/KnpLabs/KnpSnappyBundle/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Easily create PDF and images in Symfony by converting Twig/HTML templates.",
|
||||
"homepage": "http://github.com/KnpLabs/KnpSnappyBundle",
|
||||
"keywords": [
|
||||
"bundle",
|
||||
"knp",
|
||||
"knplabs",
|
||||
"pdf",
|
||||
"snappy"
|
||||
],
|
||||
"time": "2020-09-11T12:51:46+00:00"
|
||||
},
|
||||
{
|
||||
"name": "monolog/monolog",
|
||||
"version": "1.25.5",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/Seldaek/monolog.git",
|
||||
"reference": "1817faadd1846cd08be9a49e905dc68823bc38c0"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/Seldaek/monolog/zipball/1817faadd1846cd08be9a49e905dc68823bc38c0",
|
||||
"reference": "1817faadd1846cd08be9a49e905dc68823bc38c0",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.3.0",
|
||||
"psr/log": "~1.0"
|
||||
},
|
||||
"provide": {
|
||||
"psr/log-implementation": "1.0.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"aws/aws-sdk-php": "^2.4.9 || ^3.0",
|
||||
"doctrine/couchdb": "~1.0@dev",
|
||||
"graylog2/gelf-php": "~1.0",
|
||||
"php-amqplib/php-amqplib": "~2.4",
|
||||
"php-console/php-console": "^3.1.3",
|
||||
"php-parallel-lint/php-parallel-lint": "^1.0",
|
||||
"phpunit/phpunit": "~4.5",
|
||||
"ruflin/elastica": ">=0.90 <3.0",
|
||||
"sentry/sentry": "^0.13",
|
||||
"swiftmailer/swiftmailer": "^5.3|^6.0"
|
||||
},
|
||||
"suggest": {
|
||||
"aws/aws-sdk-php": "Allow sending log messages to AWS services like DynamoDB",
|
||||
"doctrine/couchdb": "Allow sending log messages to a CouchDB server",
|
||||
"ext-amqp": "Allow sending log messages to an AMQP server (1.0+ required)",
|
||||
"ext-mongo": "Allow sending log messages to a MongoDB server",
|
||||
"graylog2/gelf-php": "Allow sending log messages to a GrayLog2 server",
|
||||
"mongodb/mongodb": "Allow sending log messages to a MongoDB server via PHP Driver",
|
||||
"php-amqplib/php-amqplib": "Allow sending log messages to an AMQP server using php-amqplib",
|
||||
"php-console/php-console": "Allow sending log messages to Google Chrome",
|
||||
"rollbar/rollbar": "Allow sending log messages to Rollbar",
|
||||
"ruflin/elastica": "Allow sending log messages to an Elastic Search server",
|
||||
"sentry/sentry": "Allow sending log messages to a Sentry server"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "2.0.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Monolog\\": "src/Monolog"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Jordi Boggiano",
|
||||
"email": "j.boggiano@seld.be",
|
||||
"homepage": "http://seld.be"
|
||||
}
|
||||
],
|
||||
"description": "Sends your logs to files, sockets, inboxes, databases and various web services",
|
||||
"homepage": "http://github.com/Seldaek/monolog",
|
||||
"keywords": [
|
||||
"log",
|
||||
"logging",
|
||||
"psr-3"
|
||||
],
|
||||
"time": "2020-07-23T08:35:51+00:00"
|
||||
},
|
||||
{
|
||||
"name": "nategood/httpful",
|
||||
"version": "0.3.2",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/nategood/httpful.git",
|
||||
"reference": "0cded3ea97ba905600de9ceb9ef13f3ab681587c"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/nategood/httpful/zipball/0cded3ea97ba905600de9ceb9ef13f3ab681587c",
|
||||
"reference": "0cded3ea97ba905600de9ceb9ef13f3ab681587c",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"ext-curl": "*",
|
||||
"php": ">=7.2"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "*"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"psr-0": {
|
||||
"Httpful": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Nate Good",
|
||||
"email": "me@nategood.com",
|
||||
"homepage": "http://nategood.com"
|
||||
}
|
||||
],
|
||||
"description": "A Readable, Chainable, REST friendly, PHP HTTP Client",
|
||||
"homepage": "http://github.com/nategood/httpful",
|
||||
"keywords": [
|
||||
"api",
|
||||
"curl",
|
||||
"http",
|
||||
"requests",
|
||||
"rest",
|
||||
"restful"
|
||||
],
|
||||
"time": "2020-01-25T01:13:13+00:00"
|
||||
},
|
||||
{
|
||||
"name": "nelmio/api-doc-bundle",
|
||||
"version": "v3.7.4",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/nelmio/NelmioApiDocBundle.git",
|
||||
"reference": "290df23dc0060c4daaed95a7f37845f16a287ebd"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/nelmio/NelmioApiDocBundle/zipball/290df23dc0060c4daaed95a7f37845f16a287ebd",
|
||||
"reference": "290df23dc0060c4daaed95a7f37845f16a287ebd",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"exsyst/swagger": "^0.4.1",
|
||||
"php": "^7.1",
|
||||
"phpdocumentor/reflection-docblock": "^3.1|^4.0|^5.0",
|
||||
"symfony/framework-bundle": "^3.4|^4.0|^5.0",
|
||||
"symfony/options-resolver": "^3.4.4|^4.0|^5.0",
|
||||
"symfony/property-info": "^3.4|^4.0|^5.0",
|
||||
"zircote/swagger-php": "^2.0.9"
|
||||
},
|
||||
"conflict": {
|
||||
"symfony/framework-bundle": "4.2.7"
|
||||
},
|
||||
"require-dev": {
|
||||
"api-platform/core": "^2.1.2",
|
||||
"doctrine/annotations": "^1.2",
|
||||
"doctrine/common": "^2.4",
|
||||
"friendsofsymfony/rest-bundle": "^2.0|^3.0@beta",
|
||||
"jms/serializer": "^1.14|^3.0",
|
||||
"jms/serializer-bundle": "^2.3|^3.0",
|
||||
"sensio/framework-extra-bundle": "^3.0.13|^4.0|^5.0",
|
||||
"symfony/asset": "^3.4|^4.0|^5.0",
|
||||
"symfony/browser-kit": "^3.4|^4.0|^5.0",
|
||||
"symfony/cache": "^3.4|^4.0|^5.0",
|
||||
"symfony/config": "^3.4|^4.0|^5.0",
|
||||
"symfony/console": "^3.4|^4.0|^5.0",
|
||||
"symfony/dom-crawler": "^3.4|^4.0|^5.0",
|
||||
"symfony/form": "^3.4|^4.0|^5.0",
|
||||
"symfony/phpunit-bridge": "^3.4.24|^4.0|^5.0",
|
||||
"symfony/property-access": "^3.4|^4.0|^5.0",
|
||||
"symfony/routing": "^3.4.42|^4.0|^5.0",
|
||||
"symfony/stopwatch": "^3.4|^4.0|^5.0",
|
||||
"symfony/templating": "^3.4|^4.0|^5.0",
|
||||
"symfony/twig-bundle": "^3.4|^4.0|^5.0",
|
||||
"symfony/validator": "^3.4|^4.0|^5.0",
|
||||
"willdurand/hateoas-bundle": "^1.0|^2.0"
|
||||
},
|
||||
"suggest": {
|
||||
"api-platform/core": "For using an API oriented framework.",
|
||||
"friendsofsymfony/rest-bundle": "For using the parameters annotations."
|
||||
},
|
||||
"type": "symfony-bundle",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-3.x": "3.7.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Nelmio\\ApiDocBundle\\": ""
|
||||
},
|
||||
"exclude-from-classmap": [
|
||||
"/Tests/"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Nelmio",
|
||||
"homepage": "http://nelm.io"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "https://github.com/nelmio/NelmioApiDocBundle/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Generates documentation for your REST API from annotations",
|
||||
"keywords": [
|
||||
"api",
|
||||
"doc",
|
||||
"documentation",
|
||||
"rest"
|
||||
],
|
||||
"time": "2020-09-29T10:30:21+00:00"
|
||||
},
|
||||
{
|
||||
"name": "nikic/php-parser",
|
||||
"version": "v4.10.2",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/nikic/PHP-Parser.git",
|
||||
"reference": "658f1be311a230e0907f5dfe0213742aff0596de"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/658f1be311a230e0907f5dfe0213742aff0596de",
|
||||
"reference": "658f1be311a230e0907f5dfe0213742aff0596de",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"ext-tokenizer": "*",
|
||||
"php": ">=7.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"ircmaxell/php-yacc": "^0.0.7",
|
||||
"phpunit/phpunit": "^6.5 || ^7.0 || ^8.0 || ^9.0"
|
||||
},
|
||||
"bin": [
|
||||
"bin/php-parse"
|
||||
],
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "4.9-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"PhpParser\\": "lib/PhpParser"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"BSD-3-Clause"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Nikita Popov"
|
||||
}
|
||||
],
|
||||
"description": "A PHP parser written in PHP",
|
||||
"keywords": [
|
||||
"parser",
|
||||
"php"
|
||||
],
|
||||
"time": "2020-09-26T10:30:38+00:00"
|
||||
},
|
||||
{
|
||||
"name": "ocramius/proxy-manager",
|
||||
"version": "2.2.3",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/Ocramius/ProxyManager.git",
|
||||
"reference": "4d154742e31c35137d5374c998e8f86b54db2e2f"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/Ocramius/ProxyManager/zipball/4d154742e31c35137d5374c998e8f86b54db2e2f",
|
||||
"reference": "4d154742e31c35137d5374c998e8f86b54db2e2f",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"ocramius/package-versions": "^1.1.3",
|
||||
"php": "^7.2.0",
|
||||
"zendframework/zend-code": "^3.3.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"couscous/couscous": "^1.6.1",
|
||||
"ext-phar": "*",
|
||||
"humbug/humbug": "1.0.0-RC.0@RC",
|
||||
"nikic/php-parser": "^3.1.1",
|
||||
"padraic/phpunit-accelerator": "dev-master@DEV",
|
||||
"phpbench/phpbench": "^0.12.2",
|
||||
"phpstan/phpstan": "dev-master#856eb10a81c1d27c701a83f167dc870fd8f4236a as 0.9.999",
|
||||
"phpstan/phpstan-phpunit": "dev-master#5629c0a1f4a9c417cb1077cf6693ad9753895761",
|
||||
"phpunit/phpunit": "^6.4.3",
|
||||
"squizlabs/php_codesniffer": "^2.9.1"
|
||||
},
|
||||
"suggest": {
|
||||
"ocramius/generated-hydrator": "To have very fast object to array to object conversion for ghost objects",
|
||||
"zendframework/zend-json": "To have the JsonRpc adapter (Remote Object feature)",
|
||||
"zendframework/zend-soap": "To have the Soap adapter (Remote Object feature)",
|
||||
"zendframework/zend-xmlrpc": "To have the XmlRpc adapter (Remote Object feature)"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "3.0.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-0": {
|
||||
"ProxyManager\\": "src"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Marco Pivetta",
|
||||
"email": "ocramius@gmail.com",
|
||||
"homepage": "http://ocramius.github.io/"
|
||||
}
|
||||
],
|
||||
"description": "A library providing utilities to generate, instantiate and generally operate with Object Proxies",
|
||||
"homepage": "https://github.com/Ocramius/ProxyManager",
|
||||
"keywords": [
|
||||
"aop",
|
||||
"lazy loading",
|
||||
"proxy",
|
||||
"proxy pattern",
|
||||
"service proxies"
|
||||
],
|
||||
"time": "2019-08-10T08:37:15+00:00"
|
||||
},
|
||||
{
|
||||
"name": "oneup/uploader-bundle",
|
||||
"version": "2.2.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/1up-lab/OneupUploaderBundle.git",
|
||||
"reference": "8bd74b2d5f07f9ee6280f0b90ed8199471f57f52"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/1up-lab/OneupUploaderBundle/zipball/8bd74b2d5f07f9ee6280f0b90ed8199471f57f52",
|
||||
"reference": "8bd74b2d5f07f9ee6280f0b90ed8199471f57f52",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": "^7.1",
|
||||
"symfony/asset": "^3.0|^4.0",
|
||||
"symfony/finder": "^3.0|^4.0",
|
||||
"symfony/framework-bundle": "^3.0|^4.0",
|
||||
"symfony/http-foundation": "^3.0|^4.0",
|
||||
"symfony/templating": "^3.0|^4.0",
|
||||
"symfony/translation": "^3.0|^4.0",
|
||||
"symfony/yaml": "^3.0|^4.0",
|
||||
"twig/twig": "^1.41|^2.10|^3.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"amazonwebservices/aws-sdk-for-php": "1.5.*",
|
||||
"knplabs/gaufrette": "^0.9",
|
||||
"oneup/flysystem-bundle": "^1.2|^2.0|^3.0",
|
||||
"phpunit/phpunit": "^7.5",
|
||||
"sensio/framework-extra-bundle": "^5.0",
|
||||
"symfony/browser-kit": "^3.0|^4.0",
|
||||
"symfony/class-loader": "^3.0|^4.0",
|
||||
"symfony/phpunit-bridge": "^5.0",
|
||||
"symfony/security-bundle": "^3.0|^4.0",
|
||||
"symfony/var-dumper": "^3.0|^4.0",
|
||||
"twistor/flysystem-stream-wrapper": "^1.0"
|
||||
},
|
||||
"suggest": {
|
||||
"knplabs/knp-gaufrette-bundle": "0.1.*",
|
||||
"oneup/flysystem-bundle": "^3.0",
|
||||
"twistor/flysystem-stream-wrapper": "^1.0 (Required when using Flysystem)"
|
||||
},
|
||||
"type": "symfony-bundle",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Oneup\\UploaderBundle\\": ""
|
||||
},
|
||||
"classmap": [
|
||||
"Tests/App/AppKernel.php"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Jim Schmid",
|
||||
"email": "js@1up.io",
|
||||
"homepage": "http://1up.io",
|
||||
"role": "Developer"
|
||||
},
|
||||
{
|
||||
"name": "David Greminger",
|
||||
"email": "dg@1up.io",
|
||||
"homepage": "http://1up.io",
|
||||
"role": "Developer"
|
||||
}
|
||||
],
|
||||
"description": "Handles multi file uploads in Symfony2. Features included: Chunked upload, Orphans management, Gaufrette support.",
|
||||
"homepage": "http://1up.io",
|
||||
"keywords": [
|
||||
"FancyUpload",
|
||||
"FineUploader",
|
||||
"MooUpload",
|
||||
"Uploadify",
|
||||
"YUI3 Uploader",
|
||||
"blueimp",
|
||||
"dropzone",
|
||||
"fileupload",
|
||||
"jQuery File Uploader",
|
||||
"plupload",
|
||||
"upload"
|
||||
],
|
||||
"time": "2020-02-06T09:12:03+00:00"
|
||||
},
|
||||
{
|
||||
"name": "php-http/client-common",
|
||||
"version": "2.3.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/php-http/client-common.git",
|
||||
"reference": "e37e46c610c87519753135fb893111798c69076a"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/php-http/client-common/zipball/e37e46c610c87519753135fb893111798c69076a",
|
||||
"reference": "e37e46c610c87519753135fb893111798c69076a",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": "^7.1 || ^8.0",
|
||||
"php-http/httplug": "^2.0",
|
||||
"php-http/message": "^1.6",
|
||||
"php-http/message-factory": "^1.0",
|
||||
"psr/http-client": "^1.0",
|
||||
"psr/http-factory": "^1.0",
|
||||
"psr/http-message": "^1.0",
|
||||
"symfony/options-resolver": "^2.6 || ^3.4.20 || ~4.0.15 || ~4.1.9 || ^4.2.1 || ^5.0",
|
||||
"symfony/polyfill-php80": "^1.17"
|
||||
},
|
||||
"require-dev": {
|
||||
"doctrine/instantiator": "^1.1",
|
||||
"guzzlehttp/psr7": "^1.4",
|
||||
"nyholm/psr7": "^1.2",
|
||||
"phpspec/phpspec": "^5.1 || ^6.0",
|
||||
"phpspec/prophecy": "^1.10.2",
|
||||
"phpunit/phpunit": "^7.5.15 || ^8.5 || ^9.3"
|
||||
},
|
||||
"suggest": {
|
||||
"ext-json": "To detect JSON responses with the ContentTypePlugin",
|
||||
"ext-libxml": "To detect XML responses with the ContentTypePlugin",
|
||||
"php-http/cache-plugin": "PSR-6 Cache plugin",
|
||||
"php-http/logger-plugin": "PSR-3 Logger plugin",
|
||||
"php-http/stopwatch-plugin": "Symfony Stopwatch plugin"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "2.3.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Http\\Client\\Common\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Márk Sági-Kazár",
|
||||
"email": "mark.sagikazar@gmail.com"
|
||||
}
|
||||
],
|
||||
"description": "Common HTTP Client implementations and tools for HTTPlug",
|
||||
"homepage": "http://httplug.io",
|
||||
"keywords": [
|
||||
"client",
|
||||
"common",
|
||||
"http",
|
||||
"httplug"
|
||||
],
|
||||
"time": "2020-07-21T10:04:13+00:00"
|
||||
},
|
||||
{
|
||||
"name": "php-http/discovery",
|
||||
"version": "1.12.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/php-http/discovery.git",
|
||||
"reference": "4366bf1bc39b663aa87459bd725501d2f1988b6c"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/php-http/discovery/zipball/4366bf1bc39b663aa87459bd725501d2f1988b6c",
|
||||
"reference": "4366bf1bc39b663aa87459bd725501d2f1988b6c",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": "^7.1 || ^8.0"
|
||||
},
|
||||
"conflict": {
|
||||
"nyholm/psr7": "<1.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"graham-campbell/phpspec-skip-example-extension": "^5.0",
|
||||
"php-http/httplug": "^1.0 || ^2.0",
|
||||
"php-http/message-factory": "^1.0",
|
||||
"phpspec/phpspec": "^5.1 || ^6.1",
|
||||
"puli/composer-plugin": "1.0.0-beta10"
|
||||
},
|
||||
"suggest": {
|
||||
"php-http/message": "Allow to use Guzzle, Diactoros or Slim Framework factories",
|
||||
"puli/composer-plugin": "Sets up Puli which is recommended for Discovery to work. Check http://docs.php-http.org/en/latest/discovery.html for more details."
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.9-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Http\\Discovery\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Márk Sági-Kazár",
|
||||
"email": "mark.sagikazar@gmail.com"
|
||||
}
|
||||
],
|
||||
"description": "Finds installed HTTPlug implementations and PSR-7 message factories",
|
||||
"homepage": "http://php-http.org",
|
||||
"keywords": [
|
||||
"adapter",
|
||||
"client",
|
||||
"discovery",
|
||||
"factory",
|
||||
"http",
|
||||
"message",
|
||||
"psr7"
|
||||
],
|
||||
"time": "2020-09-22T13:31:04+00:00"
|
||||
},
|
||||
{
|
||||
"name": "php-http/httplug",
|
||||
"version": "2.2.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/php-http/httplug.git",
|
||||
"reference": "191a0a1b41ed026b717421931f8d3bd2514ffbf9"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/php-http/httplug/zipball/191a0a1b41ed026b717421931f8d3bd2514ffbf9",
|
||||
"reference": "191a0a1b41ed026b717421931f8d3bd2514ffbf9",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": "^7.1 || ^8.0",
|
||||
"php-http/promise": "^1.1",
|
||||
"psr/http-client": "^1.0",
|
||||
"psr/http-message": "^1.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"friends-of-phpspec/phpspec-code-coverage": "^4.1",
|
||||
"phpspec/phpspec": "^5.1 || ^6.0"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "2.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Http\\Client\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Eric GELOEN",
|
||||
"email": "geloen.eric@gmail.com"
|
||||
},
|
||||
{
|
||||
"name": "Márk Sági-Kazár",
|
||||
"email": "mark.sagikazar@gmail.com",
|
||||
"homepage": "https://sagikazarmark.hu"
|
||||
}
|
||||
],
|
||||
"description": "HTTPlug, the HTTP client abstraction for PHP",
|
||||
"homepage": "http://httplug.io",
|
||||
"keywords": [
|
||||
"client",
|
||||
"http"
|
||||
],
|
||||
"time": "2020-07-13T15:43:23+00:00"
|
||||
},
|
||||
{
|
||||
"name": "php-http/message",
|
||||
"version": "1.9.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/php-http/message.git",
|
||||
"reference": "2c7256e3c1aba0bfca70f099810f1c7712e00945"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/php-http/message/zipball/2c7256e3c1aba0bfca70f099810f1c7712e00945",
|
||||
"reference": "2c7256e3c1aba0bfca70f099810f1c7712e00945",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"clue/stream-filter": "^1.4.1",
|
||||
"php": "^7.1",
|
||||
"php-http/message-factory": "^1.0.2",
|
||||
"psr/http-message": "^1.0"
|
||||
},
|
||||
"provide": {
|
||||
"php-http/message-factory-implementation": "1.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"akeneo/phpspec-skip-example-extension": "^1.0",
|
||||
"coduo/phpspec-data-provider-extension": "^1.0",
|
||||
"ergebnis/composer-normalize": "^2.1",
|
||||
"ext-zlib": "*",
|
||||
"guzzlehttp/psr7": "^1.0",
|
||||
"henrikbjorn/phpspec-code-coverage": "^1.0",
|
||||
"phpspec/phpspec": "^2.4",
|
||||
"slim/slim": "^3.0",
|
||||
"zendframework/zend-diactoros": "^1.0"
|
||||
},
|
||||
"suggest": {
|
||||
"ext-zlib": "Used with compressor/decompressor streams",
|
||||
"guzzlehttp/psr7": "Used with Guzzle PSR-7 Factories",
|
||||
"slim/slim": "Used with Slim Framework PSR-7 implementation",
|
||||
"zendframework/zend-diactoros": "Used with Diactoros Factories"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.8-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Http\\Message\\": "src/"
|
||||
},
|
||||
"files": [
|
||||
"src/filters.php"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Márk Sági-Kazár",
|
||||
"email": "mark.sagikazar@gmail.com"
|
||||
}
|
||||
],
|
||||
"description": "HTTP Message related tools",
|
||||
"homepage": "http://php-http.org",
|
||||
"keywords": [
|
||||
"http",
|
||||
"message",
|
||||
"psr-7"
|
||||
],
|
||||
"time": "2020-08-17T06:33:14+00:00"
|
||||
},
|
||||
{
|
||||
"name": "php-http/message-factory",
|
||||
"version": "v1.0.2",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/php-http/message-factory.git",
|
||||
"reference": "a478cb11f66a6ac48d8954216cfed9aa06a501a1"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/php-http/message-factory/zipball/a478cb11f66a6ac48d8954216cfed9aa06a501a1",
|
||||
"reference": "a478cb11f66a6ac48d8954216cfed9aa06a501a1",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.4",
|
||||
"psr/http-message": "^1.0"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.0-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Http\\Message\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Márk Sági-Kazár",
|
||||
"email": "mark.sagikazar@gmail.com"
|
||||
}
|
||||
],
|
||||
"description": "Factory interfaces for PSR-7 HTTP Message",
|
||||
"homepage": "http://php-http.org",
|
||||
"keywords": [
|
||||
"factory",
|
||||
"http",
|
||||
"message",
|
||||
"stream",
|
||||
"uri"
|
||||
],
|
||||
"time": "2015-12-19T14:08:53+00:00"
|
||||
},
|
||||
{
|
||||
"name": "php-http/promise",
|
||||
"version": "1.1.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/php-http/promise.git",
|
||||
"reference": "4c4c1f9b7289a2ec57cde7f1e9762a5789506f88"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/php-http/promise/zipball/4c4c1f9b7289a2ec57cde7f1e9762a5789506f88",
|
||||
"reference": "4c4c1f9b7289a2ec57cde7f1e9762a5789506f88",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": "^7.1 || ^8.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"friends-of-phpspec/phpspec-code-coverage": "^4.3.2",
|
||||
"phpspec/phpspec": "^5.1.2 || ^6.2"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.1-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Http\\Promise\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Joel Wurtz",
|
||||
"email": "joel.wurtz@gmail.com"
|
||||
},
|
||||
{
|
||||
"name": "Márk Sági-Kazár",
|
||||
"email": "mark.sagikazar@gmail.com"
|
||||
}
|
||||
],
|
||||
"description": "Promise used for asynchronous HTTP requests",
|
||||
"homepage": "http://httplug.io",
|
||||
"keywords": [
|
||||
"promise"
|
||||
],
|
||||
"time": "2020-07-07T09:29:14+00:00"
|
||||
},
|
||||
{
|
||||
"name": "phpdocumentor/reflection-common",
|
||||
"version": "2.2.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/phpDocumentor/ReflectionCommon.git",
|
||||
"reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/1d01c49d4ed62f25aa84a747ad35d5a16924662b",
|
||||
"reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": "^7.2 || ^8.0"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-2.x": "2.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"phpDocumentor\\Reflection\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Jaap van Otterdijk",
|
||||
"email": "opensource@ijaap.nl"
|
||||
}
|
||||
],
|
||||
"description": "Common reflection classes used by phpdocumentor to reflect the code structure",
|
||||
"homepage": "http://www.phpdoc.org",
|
||||
"keywords": [
|
||||
"FQSEN",
|
||||
"phpDocumentor",
|
||||
"phpdoc",
|
||||
"reflection",
|
||||
"static analysis"
|
||||
],
|
||||
"time": "2020-06-27T09:03:43+00:00"
|
||||
},
|
||||
{
|
||||
"name": "phpdocumentor/reflection-docblock",
|
||||
"version": "5.2.2",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/phpDocumentor/ReflectionDocBlock.git",
|
||||
"reference": "069a785b2141f5bcf49f3e353548dc1cce6df556"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/069a785b2141f5bcf49f3e353548dc1cce6df556",
|
||||
"reference": "069a785b2141f5bcf49f3e353548dc1cce6df556",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"ext-filter": "*",
|
||||
"php": "^7.2 || ^8.0",
|
||||
"phpdocumentor/reflection-common": "^2.2",
|
||||
"phpdocumentor/type-resolver": "^1.3",
|
||||
"webmozart/assert": "^1.9.1"
|
||||
},
|
||||
"require-dev": {
|
||||
"mockery/mockery": "~1.3.2"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "5.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"phpDocumentor\\Reflection\\": "src"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Mike van Riel",
|
||||
"email": "me@mikevanriel.com"
|
||||
},
|
||||
{
|
||||
"name": "Jaap van Otterdijk",
|
||||
"email": "account@ijaap.nl"
|
||||
}
|
||||
],
|
||||
"description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.",
|
||||
"time": "2020-09-03T19:13:55+00:00"
|
||||
},
|
||||
{
|
||||
"name": "phpdocumentor/type-resolver",
|
||||
"version": "1.4.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/phpDocumentor/TypeResolver.git",
|
||||
"reference": "6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0",
|
||||
"reference": "6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": "^7.2 || ^8.0",
|
||||
"phpdocumentor/reflection-common": "^2.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"ext-tokenizer": "*"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-1.x": "1.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"phpDocumentor\\Reflection\\": "src"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Mike van Riel",
|
||||
"email": "me@mikevanriel.com"
|
||||
}
|
||||
],
|
||||
"description": "A PSR-5 based resolver of Class names, Types and Structural Element Names",
|
||||
"time": "2020-09-17T18:55:26+00:00"
|
||||
},
|
||||
{
|
||||
"name": "psr/cache",
|
||||
"version": "1.0.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/php-fig/cache.git",
|
||||
"reference": "d11b50ad223250cf17b86e38383413f5a6764bf8"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/php-fig/cache/zipball/d11b50ad223250cf17b86e38383413f5a6764bf8",
|
||||
"reference": "d11b50ad223250cf17b86e38383413f5a6764bf8",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.3.0"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.0.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Psr\\Cache\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "PHP-FIG",
|
||||
"homepage": "http://www.php-fig.org/"
|
||||
}
|
||||
],
|
||||
"description": "Common interface for caching libraries",
|
||||
"keywords": [
|
||||
"cache",
|
||||
"psr",
|
||||
"psr-6"
|
||||
],
|
||||
"time": "2016-08-06T20:24:11+00:00"
|
||||
},
|
||||
{
|
||||
"name": "psr/container",
|
||||
"version": "1.0.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/php-fig/container.git",
|
||||
"reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/php-fig/container/zipball/b7ce3b176482dbbc1245ebf52b181af44c2cf55f",
|
||||
"reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.3.0"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.0.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Psr\\Container\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "PHP-FIG",
|
||||
"homepage": "http://www.php-fig.org/"
|
||||
}
|
||||
],
|
||||
"description": "Common Container Interface (PHP FIG PSR-11)",
|
||||
"homepage": "https://github.com/php-fig/container",
|
||||
"keywords": [
|
||||
"PSR-11",
|
||||
"container",
|
||||
"container-interface",
|
||||
"container-interop",
|
||||
"psr"
|
||||
],
|
||||
"time": "2017-02-14T16:28:37+00:00"
|
||||
},
|
||||
{
|
||||
"name": "psr/http-client",
|
||||
"version": "1.0.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/php-fig/http-client.git",
|
||||
"reference": "2dfb5f6c5eff0e91e20e913f8c5452ed95b86621"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/php-fig/http-client/zipball/2dfb5f6c5eff0e91e20e913f8c5452ed95b86621",
|
||||
"reference": "2dfb5f6c5eff0e91e20e913f8c5452ed95b86621",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": "^7.0 || ^8.0",
|
||||
"psr/http-message": "^1.0"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.0.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Psr\\Http\\Client\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "PHP-FIG",
|
||||
"homepage": "http://www.php-fig.org/"
|
||||
}
|
||||
],
|
||||
"description": "Common interface for HTTP clients",
|
||||
"homepage": "https://github.com/php-fig/http-client",
|
||||
"keywords": [
|
||||
"http",
|
||||
"http-client",
|
||||
"psr",
|
||||
"psr-18"
|
||||
],
|
||||
"time": "2020-06-29T06:28:15+00:00"
|
||||
},
|
||||
{
|
||||
"name": "psr/http-factory",
|
||||
"version": "1.0.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/php-fig/http-factory.git",
|
||||
"reference": "12ac7fcd07e5b077433f5f2bee95b3a771bf61be"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/php-fig/http-factory/zipball/12ac7fcd07e5b077433f5f2bee95b3a771bf61be",
|
||||
"reference": "12ac7fcd07e5b077433f5f2bee95b3a771bf61be",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=7.0.0",
|
||||
"psr/http-message": "^1.0"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.0.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Psr\\Http\\Message\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "PHP-FIG",
|
||||
"homepage": "http://www.php-fig.org/"
|
||||
}
|
||||
],
|
||||
"description": "Common interfaces for PSR-7 HTTP message factories",
|
||||
"keywords": [
|
||||
"factory",
|
||||
"http",
|
||||
"message",
|
||||
"psr",
|
||||
"psr-17",
|
||||
"psr-7",
|
||||
"request",
|
||||
"response"
|
||||
],
|
||||
"time": "2019-04-30T12:38:16+00:00"
|
||||
},
|
||||
{
|
||||
"name": "psr/http-message",
|
||||
"version": "1.0.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/php-fig/http-message.git",
|
||||
"reference": "f6561bf28d520154e4b0ec72be95418abe6d9363"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363",
|
||||
"reference": "f6561bf28d520154e4b0ec72be95418abe6d9363",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.3.0"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.0.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Psr\\Http\\Message\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "PHP-FIG",
|
||||
"homepage": "http://www.php-fig.org/"
|
||||
}
|
||||
],
|
||||
"description": "Common interface for HTTP messages",
|
||||
"homepage": "https://github.com/php-fig/http-message",
|
||||
"keywords": [
|
||||
"http",
|
||||
"http-message",
|
||||
"psr",
|
||||
"psr-7",
|
||||
"request",
|
||||
"response"
|
||||
],
|
||||
"time": "2016-08-06T14:39:51+00:00"
|
||||
},
|
||||
{
|
||||
"name": "psr/link",
|
||||
"version": "1.0.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/php-fig/link.git",
|
||||
"reference": "eea8e8662d5cd3ae4517c9b864493f59fca95562"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/php-fig/link/zipball/eea8e8662d5cd3ae4517c9b864493f59fca95562",
|
||||
"reference": "eea8e8662d5cd3ae4517c9b864493f59fca95562",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.3.0"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.0.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Psr\\Link\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "PHP-FIG",
|
||||
"homepage": "http://www.php-fig.org/"
|
||||
}
|
||||
],
|
||||
"description": "Common interfaces for HTTP links",
|
||||
"keywords": [
|
||||
"http",
|
||||
"http-link",
|
||||
"link",
|
||||
"psr",
|
||||
"psr-13",
|
||||
"rest"
|
||||
],
|
||||
"time": "2016-10-28T16:06:13+00:00"
|
||||
},
|
||||
{
|
||||
"name": "psr/log",
|
||||
"version": "1.1.3",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/php-fig/log.git",
|
||||
"reference": "0f73288fd15629204f9d42b7055f72dacbe811fc"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/php-fig/log/zipball/0f73288fd15629204f9d42b7055f72dacbe811fc",
|
||||
"reference": "0f73288fd15629204f9d42b7055f72dacbe811fc",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.3.0"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.1.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Psr\\Log\\": "Psr/Log/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "PHP-FIG",
|
||||
"homepage": "http://www.php-fig.org/"
|
||||
}
|
||||
],
|
||||
"description": "Common interface for logging libraries",
|
||||
"homepage": "https://github.com/php-fig/log",
|
||||
"keywords": [
|
||||
"log",
|
||||
"psr",
|
||||
"psr-3"
|
||||
],
|
||||
"time": "2020-03-23T09:12:05+00:00"
|
||||
},
|
||||
{
|
||||
"name": "ralouphie/getallheaders",
|
||||
"version": "3.0.3",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/ralouphie/getallheaders.git",
|
||||
"reference": "120b605dfeb996808c31b6477290a714d356e822"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/ralouphie/getallheaders/zipball/120b605dfeb996808c31b6477290a714d356e822",
|
||||
"reference": "120b605dfeb996808c31b6477290a714d356e822",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.6"
|
||||
},
|
||||
"require-dev": {
|
||||
"php-coveralls/php-coveralls": "^2.1",
|
||||
"phpunit/phpunit": "^5 || ^6.5"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"files": [
|
||||
"src/getallheaders.php"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Ralph Khattar",
|
||||
"email": "ralph.khattar@gmail.com"
|
||||
}
|
||||
],
|
||||
"description": "A polyfill for getallheaders.",
|
||||
"time": "2019-03-08T08:55:37+00:00"
|
||||
},
|
||||
{
|
||||
"name": "sensio/framework-extra-bundle",
|
||||
"version": "v5.6.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/sensiolabs/SensioFrameworkExtraBundle.git",
|
||||
"reference": "430d14c01836b77c28092883d195a43ce413ee32"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/sensiolabs/SensioFrameworkExtraBundle/zipball/430d14c01836b77c28092883d195a43ce413ee32",
|
||||
"reference": "430d14c01836b77c28092883d195a43ce413ee32",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"doctrine/annotations": "^1.0",
|
||||
"php": ">=7.2.5",
|
||||
"symfony/config": "^4.4|^5.0",
|
||||
"symfony/dependency-injection": "^4.4|^5.0",
|
||||
"symfony/framework-bundle": "^4.4|^5.0",
|
||||
"symfony/http-kernel": "^4.4|^5.0"
|
||||
},
|
||||
"conflict": {
|
||||
"doctrine/doctrine-cache-bundle": "<1.3.1",
|
||||
"doctrine/persistence": "<1.3"
|
||||
},
|
||||
"require-dev": {
|
||||
"doctrine/dbal": "^2.10|^3.0",
|
||||
"doctrine/doctrine-bundle": "^1.11|^2.0",
|
||||
"doctrine/orm": "^2.5",
|
||||
"nyholm/psr7": "^1.1",
|
||||
"symfony/browser-kit": "^4.4|^5.0",
|
||||
"symfony/doctrine-bridge": "^4.4|^5.0",
|
||||
"symfony/dom-crawler": "^4.4|^5.0",
|
||||
"symfony/expression-language": "^4.4|^5.0",
|
||||
"symfony/finder": "^4.4|^5.0",
|
||||
"symfony/monolog-bridge": "^4.0|^5.0",
|
||||
"symfony/monolog-bundle": "^3.2",
|
||||
"symfony/phpunit-bridge": "^4.4.9|^5.0.9",
|
||||
"symfony/psr-http-message-bridge": "^1.1",
|
||||
"symfony/security-bundle": "^4.4|^5.0",
|
||||
"symfony/twig-bundle": "^4.4|^5.0",
|
||||
"symfony/yaml": "^4.4|^5.0",
|
||||
"twig/twig": "^1.34|^2.4|^3.0"
|
||||
},
|
||||
"type": "symfony-bundle",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "5.6.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Sensio\\Bundle\\FrameworkExtraBundle\\": "src/"
|
||||
},
|
||||
"exclude-from-classmap": [
|
||||
"/tests/"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Fabien Potencier",
|
||||
"email": "fabien@symfony.com"
|
||||
}
|
||||
],
|
||||
"description": "This bundle provides a way to configure your controllers with annotations",
|
||||
"keywords": [
|
||||
"annotations",
|
||||
"controllers"
|
||||
],
|
||||
"time": "2020-08-25T19:10:18+00:00"
|
||||
},
|
||||
{
|
||||
"name": "sentry/sdk",
|
||||
"version": "2.2.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/getsentry/sentry-php-sdk.git",
|
||||
"reference": "089858b1b27d3705a5fd1c32d8d10beb55980190"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/getsentry/sentry-php-sdk/zipball/089858b1b27d3705a5fd1c32d8d10beb55980190",
|
||||
"reference": "089858b1b27d3705a5fd1c32d8d10beb55980190",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"http-interop/http-factory-guzzle": "^1.0",
|
||||
"sentry/sentry": "^2.5",
|
||||
"symfony/http-client": "^4.3|^5.0"
|
||||
},
|
||||
"type": "metapackage",
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Sentry",
|
||||
"email": "accounts@sentry.io"
|
||||
}
|
||||
],
|
||||
"description": "This is a metapackage shipping sentry/sentry with a recommended HTTP client.",
|
||||
"homepage": "http://sentry.io",
|
||||
"keywords": [
|
||||
"crash-reporting",
|
||||
"crash-reports",
|
||||
"error-handler",
|
||||
"error-monitoring",
|
||||
"log",
|
||||
"logging",
|
||||
"sentry"
|
||||
],
|
||||
"time": "2020-09-14T09:30:55+00:00"
|
||||
},
|
||||
{
|
||||
"name": "sentry/sentry",
|
||||
"version": "2.5.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/getsentry/sentry-php.git",
|
||||
"reference": "bab5b73dbaf5f0ff62317e1611d952764d5514a9"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/getsentry/sentry-php/zipball/bab5b73dbaf5f0ff62317e1611d952764d5514a9",
|
||||
"reference": "bab5b73dbaf5f0ff62317e1611d952764d5514a9",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"ext-json": "*",
|
||||
"ext-mbstring": "*",
|
||||
"guzzlehttp/promises": "^1.3",
|
||||
"guzzlehttp/psr7": "^1.6",
|
||||
"jean85/pretty-package-versions": "^1.2",
|
||||
"php": "^7.1",
|
||||
"php-http/async-client-implementation": "^1.0",
|
||||
"php-http/client-common": "^1.5|^2.0",
|
||||
"php-http/discovery": "^1.6.1",
|
||||
"php-http/httplug": "^1.1|^2.0",
|
||||
"php-http/message": "^1.5",
|
||||
"psr/http-factory": "^1.0",
|
||||
"psr/http-message-implementation": "^1.0",
|
||||
"psr/log": "^1.0",
|
||||
"symfony/options-resolver": "^2.7|^3.0|^4.0|^5.0",
|
||||
"symfony/polyfill-uuid": "^1.13.1"
|
||||
},
|
||||
"conflict": {
|
||||
"php-http/client-common": "1.8.0",
|
||||
"raven/raven": "*"
|
||||
},
|
||||
"require-dev": {
|
||||
"friendsofphp/php-cs-fixer": "^2.16",
|
||||
"monolog/monolog": "^1.3|^2.0",
|
||||
"php-http/mock-client": "^1.3",
|
||||
"phpstan/extension-installer": "^1.0",
|
||||
"phpstan/phpstan": "^0.12",
|
||||
"phpstan/phpstan-phpunit": "^0.12",
|
||||
"phpunit/phpunit": "^7.5.18",
|
||||
"symfony/phpunit-bridge": "^4.3|^5.0",
|
||||
"vimeo/psalm": "^3.4"
|
||||
},
|
||||
"suggest": {
|
||||
"monolog/monolog": "Allow sending log messages to Sentry by using the included Monolog handler."
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "2.5.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"files": [
|
||||
"src/functions.php"
|
||||
],
|
||||
"psr-4": {
|
||||
"Sentry\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"BSD-3-Clause"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Sentry",
|
||||
"email": "accounts@sentry.io"
|
||||
}
|
||||
],
|
||||
"description": "A PHP SDK for Sentry (http://sentry.io)",
|
||||
"homepage": "http://sentry.io",
|
||||
"keywords": [
|
||||
"crash-reporting",
|
||||
"crash-reports",
|
||||
"error-handler",
|
||||
"error-monitoring",
|
||||
"log",
|
||||
"logging",
|
||||
"sentry"
|
||||
],
|
||||
"time": "2020-09-14T07:02:40+00:00"
|
||||
},
|
||||
{
|
||||
"name": "sentry/sentry-symfony",
|
||||
"version": "3.5.2",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/getsentry/sentry-symfony.git",
|
||||
"reference": "ed178a9cff1cff2e8816d5b279ab311e43b16371"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/getsentry/sentry-symfony/zipball/ed178a9cff1cff2e8816d5b279ab311e43b16371",
|
||||
"reference": "ed178a9cff1cff2e8816d5b279ab311e43b16371",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"jean85/pretty-package-versions": "^1.5",
|
||||
"php": "^7.1",
|
||||
"sentry/sdk": "^2.1",
|
||||
"symfony/config": "^3.4||^4.0||^5.0",
|
||||
"symfony/console": "^3.4||^4.0||^5.0",
|
||||
"symfony/dependency-injection": "^3.4||^4.0||^5.0",
|
||||
"symfony/event-dispatcher": "^3.4||^4.0||^5.0",
|
||||
"symfony/http-kernel": "^3.4||^4.0||^5.0",
|
||||
"symfony/security-core": "^3.4||^4.0||^5.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"friendsofphp/php-cs-fixer": "^2.8",
|
||||
"jangregor/phpstan-prophecy": "^0.6.2",
|
||||
"monolog/monolog": "^1.11||^2.0",
|
||||
"php-http/mock-client": "^1.0",
|
||||
"phpspec/prophecy": "!=1.11.0",
|
||||
"phpstan/extension-installer": "^1.0",
|
||||
"phpstan/phpstan": "^0.12.19",
|
||||
"phpstan/phpstan-phpunit": "^0.12.8",
|
||||
"phpunit/phpunit": "^7.5||^8.5",
|
||||
"symfony/browser-kit": "^3.4||^4.0||^5.0",
|
||||
"symfony/expression-language": "^3.4||^4.0||^5.0",
|
||||
"symfony/framework-bundle": "^3.4||^4.0||^5.0",
|
||||
"symfony/messenger": "^4.3||^5.0",
|
||||
"symfony/monolog-bundle": "^3.4",
|
||||
"symfony/phpunit-bridge": "^5.0",
|
||||
"symfony/yaml": "^3.4||^4.0||^5.0"
|
||||
},
|
||||
"suggest": {
|
||||
"monolog/monolog": "Required to use the Monolog handler"
|
||||
},
|
||||
"type": "symfony-bundle",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"master": "3.x-dev",
|
||||
"releases/3.2.x": "3.2.x-dev",
|
||||
"releases/2.x": "2.x-dev",
|
||||
"releases/1.x": "1.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Sentry\\SentryBundle\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"Apache-2.0"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "David Cramer",
|
||||
"email": "dcramer@gmail.com"
|
||||
},
|
||||
{
|
||||
"name": "Alessandro Lai",
|
||||
"email": "alessandro.lai85@gmail.com"
|
||||
}
|
||||
],
|
||||
"description": "Symfony integration for Sentry (http://getsentry.com)",
|
||||
"homepage": "http://getsentry.com",
|
||||
"keywords": [
|
||||
"errors",
|
||||
"logging",
|
||||
"sentry",
|
||||
"symfony"
|
||||
],
|
||||
"time": "2020-07-08T10:36:55+00:00"
|
||||
},
|
||||
{
|
||||
"name": "swiftmailer/swiftmailer",
|
||||
"version": "v6.2.3",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/swiftmailer/swiftmailer.git",
|
||||
"reference": "149cfdf118b169f7840bbe3ef0d4bc795d1780c9"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/swiftmailer/swiftmailer/zipball/149cfdf118b169f7840bbe3ef0d4bc795d1780c9",
|
||||
"reference": "149cfdf118b169f7840bbe3ef0d4bc795d1780c9",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"egulias/email-validator": "~2.0",
|
||||
"php": ">=7.0.0",
|
||||
"symfony/polyfill-iconv": "^1.0",
|
||||
"symfony/polyfill-intl-idn": "^1.10",
|
||||
"symfony/polyfill-mbstring": "^1.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"mockery/mockery": "~0.9.1",
|
||||
"symfony/phpunit-bridge": "^3.4.19|^4.1.8"
|
||||
},
|
||||
"suggest": {
|
||||
"ext-intl": "Needed to support internationalized email addresses",
|
||||
"true/punycode": "Needed to support internationalized email addresses, if ext-intl is not installed"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "6.2-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"files": [
|
||||
"lib/swift_required.php"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Chris Corbyn"
|
||||
},
|
||||
{
|
||||
"name": "Fabien Potencier",
|
||||
"email": "fabien@symfony.com"
|
||||
}
|
||||
],
|
||||
"description": "Swiftmailer, free feature-rich PHP mailer",
|
||||
"homepage": "https://swiftmailer.symfony.com",
|
||||
"keywords": [
|
||||
"email",
|
||||
"mail",
|
||||
"mailer"
|
||||
],
|
||||
"time": "2019-11-12T09:31:26+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/apache-pack",
|
||||
"version": "v1.0.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/apache-pack.git",
|
||||
"reference": "3aa5818d73ad2551281fc58a75afd9ca82622e6c"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/apache-pack/zipball/3aa5818d73ad2551281fc58a75afd9ca82622e6c",
|
||||
"reference": "3aa5818d73ad2551281fc58a75afd9ca82622e6c",
|
||||
"shasum": ""
|
||||
},
|
||||
"type": "symfony-pack",
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"description": "A pack for Apache support in Symfony",
|
||||
"time": "2017-12-12T01:46:35+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/asset",
|
||||
"version": "v4.4.15",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/asset.git",
|
||||
"reference": "9b446eb7c16347088663dc18d38fb0f3b536b7e2"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/asset/zipball/9b446eb7c16347088663dc18d38fb0f3b536b7e2",
|
||||
"reference": "9b446eb7c16347088663dc18d38fb0f3b536b7e2",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=7.1.3"
|
||||
},
|
||||
"require-dev": {
|
||||
"symfony/http-foundation": "^3.4|^4.0|^5.0",
|
||||
"symfony/http-kernel": "^3.4|^4.0|^5.0"
|
||||
},
|
||||
"suggest": {
|
||||
"symfony/http-foundation": ""
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "4.4-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Symfony\\Component\\Asset\\": ""
|
||||
},
|
||||
"exclude-from-classmap": [
|
||||
"/Tests/"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Fabien Potencier",
|
||||
"email": "fabien@symfony.com"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "https://symfony.com/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Symfony Asset Component",
|
||||
"homepage": "https://symfony.com",
|
||||
"time": "2020-09-02T16:08:58+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/cache",
|
||||
"version": "v4.4.15",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/cache.git",
|
||||
"reference": "969a76c2dbce7e4306684f5376718147d1ec4ae7"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/cache/zipball/969a76c2dbce7e4306684f5376718147d1ec4ae7",
|
||||
"reference": "969a76c2dbce7e4306684f5376718147d1ec4ae7",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=7.1.3",
|
||||
"psr/cache": "~1.0",
|
||||
"psr/log": "~1.0",
|
||||
"symfony/cache-contracts": "^1.1.7|^2",
|
||||
"symfony/service-contracts": "^1.1|^2",
|
||||
"symfony/var-exporter": "^4.2|^5.0"
|
||||
},
|
||||
"conflict": {
|
||||
"doctrine/dbal": "<2.5",
|
||||
"symfony/dependency-injection": "<3.4",
|
||||
"symfony/http-kernel": "<4.4",
|
||||
"symfony/var-dumper": "<4.4"
|
||||
},
|
||||
"provide": {
|
||||
"psr/cache-implementation": "1.0",
|
||||
"psr/simple-cache-implementation": "1.0",
|
||||
"symfony/cache-implementation": "1.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"cache/integration-tests": "dev-master",
|
||||
"doctrine/cache": "^1.6",
|
||||
"doctrine/dbal": "^2.5|^3.0",
|
||||
"predis/predis": "^1.1",
|
||||
"psr/simple-cache": "^1.0",
|
||||
"symfony/config": "^4.2|^5.0",
|
||||
"symfony/dependency-injection": "^3.4|^4.1|^5.0",
|
||||
"symfony/var-dumper": "^4.4|^5.0"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "4.4-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Symfony\\Component\\Cache\\": ""
|
||||
},
|
||||
"exclude-from-classmap": [
|
||||
"/Tests/"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Nicolas Grekas",
|
||||
"email": "p@tchwork.com"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "https://symfony.com/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Symfony Cache component with PSR-6, PSR-16, and tags",
|
||||
"homepage": "https://symfony.com",
|
||||
"keywords": [
|
||||
"caching",
|
||||
"psr6"
|
||||
],
|
||||
"time": "2020-09-27T12:40:39+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/cache-contracts",
|
||||
"version": "v2.2.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/cache-contracts.git",
|
||||
"reference": "8034ca0b61d4dd967f3698aaa1da2507b631d0cb"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/cache-contracts/zipball/8034ca0b61d4dd967f3698aaa1da2507b631d0cb",
|
||||
"reference": "8034ca0b61d4dd967f3698aaa1da2507b631d0cb",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=7.2.5",
|
||||
"psr/cache": "^1.0"
|
||||
},
|
||||
"suggest": {
|
||||
"symfony/cache-implementation": ""
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "2.2-dev"
|
||||
},
|
||||
"thanks": {
|
||||
"name": "symfony/contracts",
|
||||
"url": "https://github.com/symfony/contracts"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Symfony\\Contracts\\Cache\\": ""
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Nicolas Grekas",
|
||||
"email": "p@tchwork.com"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "https://symfony.com/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Generic abstractions related to caching",
|
||||
"homepage": "https://symfony.com",
|
||||
"keywords": [
|
||||
"abstractions",
|
||||
"contracts",
|
||||
"decoupling",
|
||||
"interfaces",
|
||||
"interoperability",
|
||||
"standards"
|
||||
],
|
||||
"time": "2020-09-07T11:33:47+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/config",
|
||||
"version": "v4.4.15",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/config.git",
|
||||
"reference": "7c5a1002178a612787c291a4f515f87b19176b61"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/config/zipball/7c5a1002178a612787c291a4f515f87b19176b61",
|
||||
"reference": "7c5a1002178a612787c291a4f515f87b19176b61",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=7.1.3",
|
||||
"symfony/filesystem": "^3.4|^4.0|^5.0",
|
||||
"symfony/polyfill-ctype": "~1.8"
|
||||
},
|
||||
"conflict": {
|
||||
"symfony/finder": "<3.4"
|
||||
},
|
||||
"require-dev": {
|
||||
"symfony/event-dispatcher": "^3.4|^4.0|^5.0",
|
||||
"symfony/finder": "^3.4|^4.0|^5.0",
|
||||
"symfony/messenger": "^4.1|^5.0",
|
||||
"symfony/service-contracts": "^1.1|^2",
|
||||
"symfony/yaml": "^3.4|^4.0|^5.0"
|
||||
},
|
||||
"suggest": {
|
||||
"symfony/yaml": "To use the yaml reference dumper"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "4.4-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Symfony\\Component\\Config\\": ""
|
||||
},
|
||||
"exclude-from-classmap": [
|
||||
"/Tests/"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Fabien Potencier",
|
||||
"email": "fabien@symfony.com"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "https://symfony.com/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Symfony Config Component",
|
||||
"homepage": "https://symfony.com",
|
||||
"time": "2020-10-02T07:34:48+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/console",
|
||||
"version": "v4.4.15",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/console.git",
|
||||
"reference": "90933b39c7b312fc3ceaa1ddeac7eb48cb953124"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/console/zipball/90933b39c7b312fc3ceaa1ddeac7eb48cb953124",
|
||||
"reference": "90933b39c7b312fc3ceaa1ddeac7eb48cb953124",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=7.1.3",
|
||||
"symfony/polyfill-mbstring": "~1.0",
|
||||
"symfony/polyfill-php73": "^1.8",
|
||||
"symfony/polyfill-php80": "^1.15",
|
||||
"symfony/service-contracts": "^1.1|^2"
|
||||
},
|
||||
"conflict": {
|
||||
"symfony/dependency-injection": "<3.4",
|
||||
"symfony/event-dispatcher": "<4.3|>=5",
|
||||
"symfony/lock": "<4.4",
|
||||
"symfony/process": "<3.3"
|
||||
},
|
||||
"provide": {
|
||||
"psr/log-implementation": "1.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"psr/log": "~1.0",
|
||||
"symfony/config": "^3.4|^4.0|^5.0",
|
||||
"symfony/dependency-injection": "^3.4|^4.0|^5.0",
|
||||
"symfony/event-dispatcher": "^4.3",
|
||||
"symfony/lock": "^4.4|^5.0",
|
||||
"symfony/process": "^3.4|^4.0|^5.0",
|
||||
"symfony/var-dumper": "^4.3|^5.0"
|
||||
},
|
||||
"suggest": {
|
||||
"psr/log": "For using the console logger",
|
||||
"symfony/event-dispatcher": "",
|
||||
"symfony/lock": "",
|
||||
"symfony/process": ""
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "4.4-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Symfony\\Component\\Console\\": ""
|
||||
},
|
||||
"exclude-from-classmap": [
|
||||
"/Tests/"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Fabien Potencier",
|
||||
"email": "fabien@symfony.com"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "https://symfony.com/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Symfony Console Component",
|
||||
"homepage": "https://symfony.com",
|
||||
"time": "2020-09-15T07:58:55+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/debug",
|
||||
"version": "v4.4.15",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/debug.git",
|
||||
"reference": "726b85e69342e767d60e3853b98559a68ff74183"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/debug/zipball/726b85e69342e767d60e3853b98559a68ff74183",
|
||||
"reference": "726b85e69342e767d60e3853b98559a68ff74183",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=7.1.3",
|
||||
"psr/log": "~1.0",
|
||||
"symfony/polyfill-php80": "^1.15"
|
||||
},
|
||||
"conflict": {
|
||||
"symfony/http-kernel": "<3.4"
|
||||
},
|
||||
"require-dev": {
|
||||
"symfony/http-kernel": "^3.4|^4.0|^5.0"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "4.4-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Symfony\\Component\\Debug\\": ""
|
||||
},
|
||||
"exclude-from-classmap": [
|
||||
"/Tests/"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Fabien Potencier",
|
||||
"email": "fabien@symfony.com"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "https://symfony.com/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Symfony Debug Component",
|
||||
"homepage": "https://symfony.com",
|
||||
"time": "2020-09-09T05:20:36+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/dependency-injection",
|
||||
"version": "v4.4.15",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/dependency-injection.git",
|
||||
"reference": "89274c8847dff2ed703e481843eb9159ca25cc6e"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/dependency-injection/zipball/89274c8847dff2ed703e481843eb9159ca25cc6e",
|
||||
"reference": "89274c8847dff2ed703e481843eb9159ca25cc6e",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=7.1.3",
|
||||
"psr/container": "^1.0",
|
||||
"symfony/service-contracts": "^1.1.6|^2"
|
||||
},
|
||||
"conflict": {
|
||||
"symfony/config": "<4.3|>=5.0",
|
||||
"symfony/finder": "<3.4",
|
||||
"symfony/proxy-manager-bridge": "<3.4",
|
||||
"symfony/yaml": "<3.4"
|
||||
},
|
||||
"provide": {
|
||||
"psr/container-implementation": "1.0",
|
||||
"symfony/service-implementation": "1.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"symfony/config": "^4.3",
|
||||
"symfony/expression-language": "^3.4|^4.0|^5.0",
|
||||
"symfony/yaml": "^3.4|^4.0|^5.0"
|
||||
},
|
||||
"suggest": {
|
||||
"symfony/config": "",
|
||||
"symfony/expression-language": "For using expressions in service container configuration",
|
||||
"symfony/finder": "For using double-star glob patterns or when GLOB_BRACE portability is required",
|
||||
"symfony/proxy-manager-bridge": "Generate service proxies to lazy load them",
|
||||
"symfony/yaml": ""
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "4.4-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Symfony\\Component\\DependencyInjection\\": ""
|
||||
},
|
||||
"exclude-from-classmap": [
|
||||
"/Tests/"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Fabien Potencier",
|
||||
"email": "fabien@symfony.com"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "https://symfony.com/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Symfony DependencyInjection Component",
|
||||
"homepage": "https://symfony.com",
|
||||
"time": "2020-09-10T10:08:39+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/doctrine-bridge",
|
||||
"version": "v4.4.15",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/doctrine-bridge.git",
|
||||
"reference": "98c60d6dbaafeaf6204d3476ab1b54335ff7f540"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/doctrine-bridge/zipball/98c60d6dbaafeaf6204d3476ab1b54335ff7f540",
|
||||
"reference": "98c60d6dbaafeaf6204d3476ab1b54335ff7f540",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"doctrine/event-manager": "~1.0",
|
||||
"doctrine/persistence": "^1.3|^2",
|
||||
"php": ">=7.1.3",
|
||||
"symfony/polyfill-ctype": "~1.8",
|
||||
"symfony/polyfill-mbstring": "~1.0",
|
||||
"symfony/service-contracts": "^1.1|^2"
|
||||
},
|
||||
"conflict": {
|
||||
"phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0",
|
||||
"symfony/dependency-injection": "<3.4",
|
||||
"symfony/form": "<4.4",
|
||||
"symfony/http-kernel": "<4.3.7",
|
||||
"symfony/messenger": "<4.3",
|
||||
"symfony/security-core": "<4.4",
|
||||
"symfony/validator": "<4.4.2|<5.0.2,>=5.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"composer/package-versions-deprecated": "^1.8",
|
||||
"doctrine/annotations": "~1.7",
|
||||
"doctrine/cache": "~1.6",
|
||||
"doctrine/collections": "~1.0",
|
||||
"doctrine/data-fixtures": "^1.1",
|
||||
"doctrine/dbal": "~2.4|^3.0",
|
||||
"doctrine/orm": "^2.6.3",
|
||||
"doctrine/reflection": "~1.0",
|
||||
"symfony/config": "^4.2|^5.0",
|
||||
"symfony/dependency-injection": "^3.4|^4.0|^5.0",
|
||||
"symfony/expression-language": "^3.4|^4.0|^5.0",
|
||||
"symfony/form": "^4.4.11|^5.0.11",
|
||||
"symfony/http-kernel": "^4.3.7",
|
||||
"symfony/messenger": "^4.4|^5.0",
|
||||
"symfony/property-access": "^3.4|^4.0|^5.0",
|
||||
"symfony/property-info": "^3.4|^4.0|^5.0",
|
||||
"symfony/proxy-manager-bridge": "^3.4|^4.0|^5.0",
|
||||
"symfony/security-core": "^4.4|^5.0",
|
||||
"symfony/stopwatch": "^3.4|^4.0|^5.0",
|
||||
"symfony/translation": "^3.4|^4.0|^5.0",
|
||||
"symfony/validator": "^4.4.2|^5.0.2",
|
||||
"symfony/var-dumper": "^3.4|^4.0|^5.0"
|
||||
},
|
||||
"suggest": {
|
||||
"doctrine/data-fixtures": "",
|
||||
"doctrine/dbal": "",
|
||||
"doctrine/orm": "",
|
||||
"symfony/form": "",
|
||||
"symfony/property-info": "",
|
||||
"symfony/validator": ""
|
||||
},
|
||||
"type": "symfony-bridge",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "4.4-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Symfony\\Bridge\\Doctrine\\": ""
|
||||
},
|
||||
"exclude-from-classmap": [
|
||||
"/Tests/"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Fabien Potencier",
|
||||
"email": "fabien@symfony.com"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "https://symfony.com/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Symfony Doctrine Bridge",
|
||||
"homepage": "https://symfony.com",
|
||||
"time": "2020-09-27T14:14:06+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/dotenv",
|
||||
"version": "v4.4.15",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/dotenv.git",
|
||||
"reference": "f17675595fd7527c57d11bd3d733eb5d41600128"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/dotenv/zipball/f17675595fd7527c57d11bd3d733eb5d41600128",
|
||||
"reference": "f17675595fd7527c57d11bd3d733eb5d41600128",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=7.1.3"
|
||||
},
|
||||
"require-dev": {
|
||||
"symfony/process": "^3.4.2|^4.0|^5.0"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "4.4-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Symfony\\Component\\Dotenv\\": ""
|
||||
},
|
||||
"exclude-from-classmap": [
|
||||
"/Tests/"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Fabien Potencier",
|
||||
"email": "fabien@symfony.com"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "https://symfony.com/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Registers environment variables from a .env file",
|
||||
"homepage": "https://symfony.com",
|
||||
"keywords": [
|
||||
"dotenv",
|
||||
"env",
|
||||
"environment"
|
||||
],
|
||||
"time": "2020-09-02T16:08:58+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/error-handler",
|
||||
"version": "v4.4.15",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/error-handler.git",
|
||||
"reference": "c8be4a5c70af70fec82e762dd93e3bbcf95c035f"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/error-handler/zipball/c8be4a5c70af70fec82e762dd93e3bbcf95c035f",
|
||||
"reference": "c8be4a5c70af70fec82e762dd93e3bbcf95c035f",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=7.1.3",
|
||||
"psr/log": "~1.0",
|
||||
"symfony/debug": "^4.4.5",
|
||||
"symfony/polyfill-php80": "^1.15",
|
||||
"symfony/var-dumper": "^4.4|^5.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"symfony/http-kernel": "^4.4|^5.0",
|
||||
"symfony/serializer": "^4.4|^5.0"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "4.4-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Symfony\\Component\\ErrorHandler\\": ""
|
||||
},
|
||||
"exclude-from-classmap": [
|
||||
"/Tests/"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Fabien Potencier",
|
||||
"email": "fabien@symfony.com"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "https://symfony.com/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Symfony ErrorHandler Component",
|
||||
"homepage": "https://symfony.com",
|
||||
"time": "2020-10-01T16:21:20+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/event-dispatcher",
|
||||
"version": "v4.4.15",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/event-dispatcher.git",
|
||||
"reference": "e17bb5e0663dc725f7cdcafc932132735b4725cd"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/e17bb5e0663dc725f7cdcafc932132735b4725cd",
|
||||
"reference": "e17bb5e0663dc725f7cdcafc932132735b4725cd",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=7.1.3",
|
||||
"symfony/event-dispatcher-contracts": "^1.1"
|
||||
},
|
||||
"conflict": {
|
||||
"symfony/dependency-injection": "<3.4"
|
||||
},
|
||||
"provide": {
|
||||
"psr/event-dispatcher-implementation": "1.0",
|
||||
"symfony/event-dispatcher-implementation": "1.1"
|
||||
},
|
||||
"require-dev": {
|
||||
"psr/log": "~1.0",
|
||||
"symfony/config": "^3.4|^4.0|^5.0",
|
||||
"symfony/dependency-injection": "^3.4|^4.0|^5.0",
|
||||
"symfony/error-handler": "~3.4|~4.4",
|
||||
"symfony/expression-language": "^3.4|^4.0|^5.0",
|
||||
"symfony/http-foundation": "^3.4|^4.0|^5.0",
|
||||
"symfony/service-contracts": "^1.1|^2",
|
||||
"symfony/stopwatch": "^3.4|^4.0|^5.0"
|
||||
},
|
||||
"suggest": {
|
||||
"symfony/dependency-injection": "",
|
||||
"symfony/http-kernel": ""
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "4.4-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Symfony\\Component\\EventDispatcher\\": ""
|
||||
},
|
||||
"exclude-from-classmap": [
|
||||
"/Tests/"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Fabien Potencier",
|
||||
"email": "fabien@symfony.com"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "https://symfony.com/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Symfony EventDispatcher Component",
|
||||
"homepage": "https://symfony.com",
|
||||
"time": "2020-09-18T14:07:46+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/event-dispatcher-contracts",
|
||||
"version": "v1.1.9",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/event-dispatcher-contracts.git",
|
||||
"reference": "84e23fdcd2517bf37aecbd16967e83f0caee25a7"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/84e23fdcd2517bf37aecbd16967e83f0caee25a7",
|
||||
"reference": "84e23fdcd2517bf37aecbd16967e83f0caee25a7",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=7.1.3"
|
||||
},
|
||||
"suggest": {
|
||||
"psr/event-dispatcher": "",
|
||||
"symfony/event-dispatcher-implementation": ""
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.1-dev"
|
||||
},
|
||||
"thanks": {
|
||||
"name": "symfony/contracts",
|
||||
"url": "https://github.com/symfony/contracts"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Symfony\\Contracts\\EventDispatcher\\": ""
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Nicolas Grekas",
|
||||
"email": "p@tchwork.com"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "https://symfony.com/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Generic abstractions related to dispatching event",
|
||||
"homepage": "https://symfony.com",
|
||||
"keywords": [
|
||||
"abstractions",
|
||||
"contracts",
|
||||
"decoupling",
|
||||
"interfaces",
|
||||
"interoperability",
|
||||
"standards"
|
||||
],
|
||||
"time": "2020-07-06T13:19:58+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/expression-language",
|
||||
"version": "v4.4.15",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/expression-language.git",
|
||||
"reference": "54b118a1c91991b90e67919146db66093def1bf9"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/expression-language/zipball/54b118a1c91991b90e67919146db66093def1bf9",
|
||||
"reference": "54b118a1c91991b90e67919146db66093def1bf9",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=7.1.3",
|
||||
"symfony/cache": "^3.4|^4.0|^5.0",
|
||||
"symfony/service-contracts": "^1.1|^2"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "4.4-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Symfony\\Component\\ExpressionLanguage\\": ""
|
||||
},
|
||||
"exclude-from-classmap": [
|
||||
"/Tests/"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Fabien Potencier",
|
||||
"email": "fabien@symfony.com"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "https://symfony.com/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Symfony ExpressionLanguage Component",
|
||||
"homepage": "https://symfony.com",
|
||||
"time": "2020-09-02T16:08:58+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/filesystem",
|
||||
"version": "v4.4.15",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/filesystem.git",
|
||||
"reference": "ebc51494739d3b081ea543ed7c462fa73a4f74db"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/filesystem/zipball/ebc51494739d3b081ea543ed7c462fa73a4f74db",
|
||||
"reference": "ebc51494739d3b081ea543ed7c462fa73a4f74db",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=7.1.3",
|
||||
"symfony/polyfill-ctype": "~1.8"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "4.4-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Symfony\\Component\\Filesystem\\": ""
|
||||
},
|
||||
"exclude-from-classmap": [
|
||||
"/Tests/"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Fabien Potencier",
|
||||
"email": "fabien@symfony.com"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "https://symfony.com/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Symfony Filesystem Component",
|
||||
"homepage": "https://symfony.com",
|
||||
"time": "2020-09-27T13:54:16+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/finder",
|
||||
"version": "v4.4.15",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/finder.git",
|
||||
"reference": "60d08560f9aa72997c44077c40d47aa28a963230"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/finder/zipball/60d08560f9aa72997c44077c40d47aa28a963230",
|
||||
"reference": "60d08560f9aa72997c44077c40d47aa28a963230",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=7.1.3"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "4.4-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Symfony\\Component\\Finder\\": ""
|
||||
},
|
||||
"exclude-from-classmap": [
|
||||
"/Tests/"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Fabien Potencier",
|
||||
"email": "fabien@symfony.com"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "https://symfony.com/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Symfony Finder Component",
|
||||
"homepage": "https://symfony.com",
|
||||
"time": "2020-10-02T07:34:48+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/flex",
|
||||
"version": "v1.9.4",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/flex.git",
|
||||
"reference": "115e67f76ba95d70946a6e0b15d4578bf04927c3"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/flex/zipball/115e67f76ba95d70946a6e0b15d4578bf04927c3",
|
||||
"reference": "115e67f76ba95d70946a6e0b15d4578bf04927c3",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"composer-plugin-api": "^1.0|^2.0",
|
||||
"php": ">=7.1"
|
||||
},
|
||||
"require-dev": {
|
||||
"composer/composer": "^1.0.2|^2.0",
|
||||
"symfony/dotenv": "^4.4|^5.0",
|
||||
"symfony/phpunit-bridge": "^4.4|^5.0",
|
||||
"symfony/process": "^3.4|^4.4|^5.0"
|
||||
},
|
||||
"type": "composer-plugin",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.8-dev"
|
||||
},
|
||||
"class": "Symfony\\Flex\\Flex"
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Symfony\\Flex\\": "src"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Fabien Potencier",
|
||||
"email": "fabien.potencier@gmail.com"
|
||||
}
|
||||
],
|
||||
"description": "Composer plugin for Symfony",
|
||||
"time": "2020-09-14T14:58:36+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/form",
|
||||
"version": "v4.4.15",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/form.git",
|
||||
"reference": "54d9ec68b65440a4a5937bd6b76ac92214dcd210"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/form/zipball/54d9ec68b65440a4a5937bd6b76ac92214dcd210",
|
||||
"reference": "54d9ec68b65440a4a5937bd6b76ac92214dcd210",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=7.1.3",
|
||||
"symfony/event-dispatcher": "^4.3",
|
||||
"symfony/intl": "^4.4|^5.0",
|
||||
"symfony/options-resolver": "~4.3|^5.0",
|
||||
"symfony/polyfill-ctype": "~1.8",
|
||||
"symfony/polyfill-mbstring": "~1.0",
|
||||
"symfony/property-access": "^3.4.40|^4.4.8|^5.0.8",
|
||||
"symfony/service-contracts": "^1.1|^2"
|
||||
},
|
||||
"conflict": {
|
||||
"phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0",
|
||||
"symfony/console": "<4.3",
|
||||
"symfony/dependency-injection": "<3.4",
|
||||
"symfony/doctrine-bridge": "<3.4",
|
||||
"symfony/framework-bundle": "<3.4",
|
||||
"symfony/http-kernel": "<4.4",
|
||||
"symfony/intl": "<4.3",
|
||||
"symfony/translation": "<4.2",
|
||||
"symfony/twig-bridge": "<3.4.5|<4.0.5,>=4.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"doctrine/collections": "~1.0",
|
||||
"symfony/config": "^3.4|^4.0|^5.0",
|
||||
"symfony/console": "^4.3|^5.0",
|
||||
"symfony/dependency-injection": "^3.4|^4.0|^5.0",
|
||||
"symfony/expression-language": "^3.4|^4.0|^5.0",
|
||||
"symfony/http-foundation": "^3.4|^4.0|^5.0",
|
||||
"symfony/http-kernel": "^4.4",
|
||||
"symfony/security-csrf": "^3.4|^4.0|^5.0",
|
||||
"symfony/translation": "^4.2|^5.0",
|
||||
"symfony/validator": "^3.4.44|^4.3.4|^5.0",
|
||||
"symfony/var-dumper": "^4.3|^5.0"
|
||||
},
|
||||
"suggest": {
|
||||
"symfony/security-csrf": "For protecting forms against CSRF attacks.",
|
||||
"symfony/twig-bridge": "For templating with Twig.",
|
||||
"symfony/validator": "For form validation."
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "4.4-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Symfony\\Component\\Form\\": ""
|
||||
},
|
||||
"exclude-from-classmap": [
|
||||
"/Tests/"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Fabien Potencier",
|
||||
"email": "fabien@symfony.com"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "https://symfony.com/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Symfony Form Component",
|
||||
"homepage": "https://symfony.com",
|
||||
"time": "2020-10-02T12:43:11+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/framework-bundle",
|
||||
"version": "v4.4.15",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/framework-bundle.git",
|
||||
"reference": "01c517f48814a1f599ce721814435f2dc548ce4c"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/framework-bundle/zipball/01c517f48814a1f599ce721814435f2dc548ce4c",
|
||||
"reference": "01c517f48814a1f599ce721814435f2dc548ce4c",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"ext-xml": "*",
|
||||
"php": ">=7.1.3",
|
||||
"symfony/cache": "^4.4|^5.0",
|
||||
"symfony/config": "^4.3.4|^5.0",
|
||||
"symfony/dependency-injection": "^4.4.1|^5.0.1",
|
||||
"symfony/error-handler": "^4.4.1|^5.0.1",
|
||||
"symfony/filesystem": "^3.4|^4.0|^5.0",
|
||||
"symfony/finder": "^3.4|^4.0|^5.0",
|
||||
"symfony/http-foundation": "^4.4|^5.0",
|
||||
"symfony/http-kernel": "^4.4",
|
||||
"symfony/polyfill-mbstring": "~1.0",
|
||||
"symfony/routing": "^4.4|^5.0"
|
||||
},
|
||||
"conflict": {
|
||||
"doctrine/persistence": "<1.3",
|
||||
"phpdocumentor/reflection-docblock": "<3.0",
|
||||
"phpdocumentor/type-resolver": "<0.2.1",
|
||||
"phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0",
|
||||
"symfony/asset": "<3.4",
|
||||
"symfony/browser-kit": "<4.3",
|
||||
"symfony/console": "<4.3",
|
||||
"symfony/dom-crawler": "<4.3",
|
||||
"symfony/dotenv": "<4.3.6",
|
||||
"symfony/form": "<4.3.5",
|
||||
"symfony/http-client": "<4.4",
|
||||
"symfony/lock": "<4.4",
|
||||
"symfony/mailer": "<4.4",
|
||||
"symfony/messenger": "<4.4",
|
||||
"symfony/mime": "<4.4",
|
||||
"symfony/property-info": "<3.4",
|
||||
"symfony/security-bundle": "<4.4",
|
||||
"symfony/serializer": "<4.4",
|
||||
"symfony/stopwatch": "<3.4",
|
||||
"symfony/translation": "<4.4",
|
||||
"symfony/twig-bridge": "<4.1.1",
|
||||
"symfony/twig-bundle": "<4.4",
|
||||
"symfony/validator": "<4.4",
|
||||
"symfony/web-profiler-bundle": "<4.4",
|
||||
"symfony/workflow": "<4.3.6"
|
||||
},
|
||||
"require-dev": {
|
||||
"doctrine/annotations": "~1.7",
|
||||
"doctrine/cache": "~1.0",
|
||||
"paragonie/sodium_compat": "^1.8",
|
||||
"phpdocumentor/reflection-docblock": "^3.0|^4.0",
|
||||
"symfony/asset": "^3.4|^4.0|^5.0",
|
||||
"symfony/browser-kit": "^4.3|^5.0",
|
||||
"symfony/console": "^4.3.4|^5.0",
|
||||
"symfony/css-selector": "^3.4|^4.0|^5.0",
|
||||
"symfony/dom-crawler": "^4.3|^5.0",
|
||||
"symfony/dotenv": "^4.3.6|^5.0",
|
||||
"symfony/expression-language": "^3.4|^4.0|^5.0",
|
||||
"symfony/form": "^4.3.5|^5.0",
|
||||
"symfony/http-client": "^4.4|^5.0",
|
||||
"symfony/lock": "^4.4|^5.0",
|
||||
"symfony/mailer": "^4.4|^5.0",
|
||||
"symfony/messenger": "^4.4|^5.0",
|
||||
"symfony/mime": "^4.4|^5.0",
|
||||
"symfony/polyfill-intl-icu": "~1.0",
|
||||
"symfony/process": "^3.4|^4.0|^5.0",
|
||||
"symfony/property-info": "^3.4|^4.0|^5.0",
|
||||
"symfony/security-csrf": "^3.4|^4.0|^5.0",
|
||||
"symfony/security-http": "^3.4|^4.0|^5.0",
|
||||
"symfony/serializer": "^4.4|^5.0",
|
||||
"symfony/stopwatch": "^3.4|^4.0|^5.0",
|
||||
"symfony/templating": "^3.4|^4.0|^5.0",
|
||||
"symfony/translation": "^4.4|^5.0",
|
||||
"symfony/twig-bundle": "^4.4|^5.0",
|
||||
"symfony/validator": "^4.4|^5.0",
|
||||
"symfony/web-link": "^4.4|^5.0",
|
||||
"symfony/workflow": "^4.3.6|^5.0",
|
||||
"symfony/yaml": "^3.4|^4.0|^5.0",
|
||||
"twig/twig": "^1.41|^2.10|^3.0"
|
||||
},
|
||||
"suggest": {
|
||||
"ext-apcu": "For best performance of the system caches",
|
||||
"symfony/console": "For using the console commands",
|
||||
"symfony/form": "For using forms",
|
||||
"symfony/property-info": "For using the property_info service",
|
||||
"symfony/serializer": "For using the serializer service",
|
||||
"symfony/validator": "For using validation",
|
||||
"symfony/web-link": "For using web links, features such as preloading, prefetching or prerendering",
|
||||
"symfony/yaml": "For using the debug:config and lint:yaml commands"
|
||||
},
|
||||
"type": "symfony-bundle",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "4.4-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Symfony\\Bundle\\FrameworkBundle\\": ""
|
||||
},
|
||||
"exclude-from-classmap": [
|
||||
"/Tests/"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Fabien Potencier",
|
||||
"email": "fabien@symfony.com"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "https://symfony.com/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Symfony FrameworkBundle",
|
||||
"homepage": "https://symfony.com",
|
||||
"time": "2020-09-29T09:51:46+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/http-client",
|
||||
"version": "v4.4.15",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/http-client.git",
|
||||
"reference": "b1cb966898aaf8df37280fde537a27b6724b3bc4"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/http-client/zipball/b1cb966898aaf8df37280fde537a27b6724b3bc4",
|
||||
"reference": "b1cb966898aaf8df37280fde537a27b6724b3bc4",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=7.1.3",
|
||||
"psr/log": "^1.0",
|
||||
"symfony/http-client-contracts": "^1.1.10|^2",
|
||||
"symfony/polyfill-php73": "^1.11",
|
||||
"symfony/service-contracts": "^1.0|^2"
|
||||
},
|
||||
"provide": {
|
||||
"php-http/async-client-implementation": "*",
|
||||
"php-http/client-implementation": "*",
|
||||
"psr/http-client-implementation": "1.0",
|
||||
"symfony/http-client-implementation": "1.1"
|
||||
},
|
||||
"require-dev": {
|
||||
"guzzlehttp/promises": "^1.3.1",
|
||||
"nyholm/psr7": "^1.0",
|
||||
"php-http/httplug": "^1.0|^2.0",
|
||||
"psr/http-client": "^1.0",
|
||||
"symfony/dependency-injection": "^4.3|^5.0",
|
||||
"symfony/http-kernel": "^4.4.13",
|
||||
"symfony/process": "^4.2|^5.0"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "4.4-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Symfony\\Component\\HttpClient\\": ""
|
||||
},
|
||||
"exclude-from-classmap": [
|
||||
"/Tests/"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Nicolas Grekas",
|
||||
"email": "p@tchwork.com"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "https://symfony.com/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Symfony HttpClient component",
|
||||
"homepage": "https://symfony.com",
|
||||
"time": "2020-10-02T13:41:48+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/http-client-contracts",
|
||||
"version": "v2.2.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/http-client-contracts.git",
|
||||
"reference": "3a5d0fe7908daaa23e3dbf4cee3ba4bfbb19fdd3"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/http-client-contracts/zipball/3a5d0fe7908daaa23e3dbf4cee3ba4bfbb19fdd3",
|
||||
"reference": "3a5d0fe7908daaa23e3dbf4cee3ba4bfbb19fdd3",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=7.2.5"
|
||||
},
|
||||
"suggest": {
|
||||
"symfony/http-client-implementation": ""
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "2.2-dev"
|
||||
},
|
||||
"thanks": {
|
||||
"name": "symfony/contracts",
|
||||
"url": "https://github.com/symfony/contracts"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Symfony\\Contracts\\HttpClient\\": ""
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Nicolas Grekas",
|
||||
"email": "p@tchwork.com"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "https://symfony.com/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Generic abstractions related to HTTP clients",
|
||||
"homepage": "https://symfony.com",
|
||||
"keywords": [
|
||||
"abstractions",
|
||||
"contracts",
|
||||
"decoupling",
|
||||
"interfaces",
|
||||
"interoperability",
|
||||
"standards"
|
||||
],
|
||||
"time": "2020-09-07T11:33:47+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/http-foundation",
|
||||
"version": "v4.4.15",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/http-foundation.git",
|
||||
"reference": "10683b407c3b6087c64619ebc97a87e36ea62c92"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/http-foundation/zipball/10683b407c3b6087c64619ebc97a87e36ea62c92",
|
||||
"reference": "10683b407c3b6087c64619ebc97a87e36ea62c92",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=7.1.3",
|
||||
"symfony/mime": "^4.3|^5.0",
|
||||
"symfony/polyfill-mbstring": "~1.1"
|
||||
},
|
||||
"require-dev": {
|
||||
"predis/predis": "~1.0",
|
||||
"symfony/expression-language": "^3.4|^4.0|^5.0"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "4.4-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Symfony\\Component\\HttpFoundation\\": ""
|
||||
},
|
||||
"exclude-from-classmap": [
|
||||
"/Tests/"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Fabien Potencier",
|
||||
"email": "fabien@symfony.com"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "https://symfony.com/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Symfony HttpFoundation Component",
|
||||
"homepage": "https://symfony.com",
|
||||
"time": "2020-09-27T14:14:06+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/http-kernel",
|
||||
"version": "v4.4.15",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/http-kernel.git",
|
||||
"reference": "6544745997b06c7dcecf0d4a70f09e5de1db7ca8"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/http-kernel/zipball/6544745997b06c7dcecf0d4a70f09e5de1db7ca8",
|
||||
"reference": "6544745997b06c7dcecf0d4a70f09e5de1db7ca8",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=7.1.3",
|
||||
"psr/log": "~1.0",
|
||||
"symfony/error-handler": "^4.4",
|
||||
"symfony/event-dispatcher": "^4.4",
|
||||
"symfony/http-client-contracts": "^1.1|^2",
|
||||
"symfony/http-foundation": "^4.4|^5.0",
|
||||
"symfony/polyfill-ctype": "^1.8",
|
||||
"symfony/polyfill-php73": "^1.9",
|
||||
"symfony/polyfill-php80": "^1.15"
|
||||
},
|
||||
"conflict": {
|
||||
"symfony/browser-kit": "<4.3",
|
||||
"symfony/config": "<3.4",
|
||||
"symfony/console": ">=5",
|
||||
"symfony/dependency-injection": "<4.3",
|
||||
"symfony/translation": "<4.2",
|
||||
"twig/twig": "<1.34|<2.4,>=2"
|
||||
},
|
||||
"provide": {
|
||||
"psr/log-implementation": "1.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"psr/cache": "~1.0",
|
||||
"symfony/browser-kit": "^4.3|^5.0",
|
||||
"symfony/config": "^3.4|^4.0|^5.0",
|
||||
"symfony/console": "^3.4|^4.0",
|
||||
"symfony/css-selector": "^3.4|^4.0|^5.0",
|
||||
"symfony/dependency-injection": "^4.3|^5.0",
|
||||
"symfony/dom-crawler": "^3.4|^4.0|^5.0",
|
||||
"symfony/expression-language": "^3.4|^4.0|^5.0",
|
||||
"symfony/finder": "^3.4|^4.0|^5.0",
|
||||
"symfony/process": "^3.4|^4.0|^5.0",
|
||||
"symfony/routing": "^3.4|^4.0|^5.0",
|
||||
"symfony/stopwatch": "^3.4|^4.0|^5.0",
|
||||
"symfony/templating": "^3.4|^4.0|^5.0",
|
||||
"symfony/translation": "^4.2|^5.0",
|
||||
"symfony/translation-contracts": "^1.1|^2",
|
||||
"twig/twig": "^1.34|^2.4|^3.0"
|
||||
},
|
||||
"suggest": {
|
||||
"symfony/browser-kit": "",
|
||||
"symfony/config": "",
|
||||
"symfony/console": "",
|
||||
"symfony/dependency-injection": ""
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "4.4-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Symfony\\Component\\HttpKernel\\": ""
|
||||
},
|
||||
"exclude-from-classmap": [
|
||||
"/Tests/"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Fabien Potencier",
|
||||
"email": "fabien@symfony.com"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "https://symfony.com/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Symfony HttpKernel Component",
|
||||
"homepage": "https://symfony.com",
|
||||
"time": "2020-10-04T07:48:13+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/inflector",
|
||||
"version": "v4.4.15",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/inflector.git",
|
||||
"reference": "3330be44724db42f0aa493002ae63f5d29f8d5f7"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/inflector/zipball/3330be44724db42f0aa493002ae63f5d29f8d5f7",
|
||||
"reference": "3330be44724db42f0aa493002ae63f5d29f8d5f7",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=7.1.3",
|
||||
"symfony/polyfill-ctype": "~1.8"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "4.4-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Symfony\\Component\\Inflector\\": ""
|
||||
},
|
||||
"exclude-from-classmap": [
|
||||
"/Tests/"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Bernhard Schussek",
|
||||
"email": "bschussek@gmail.com"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "https://symfony.com/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Symfony Inflector Component",
|
||||
"homepage": "https://symfony.com",
|
||||
"keywords": [
|
||||
"inflection",
|
||||
"pluralize",
|
||||
"singularize",
|
||||
"string",
|
||||
"symfony",
|
||||
"words"
|
||||
],
|
||||
"time": "2020-05-20T08:37:50+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/intl",
|
||||
"version": "v4.4.15",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/intl.git",
|
||||
"reference": "0da1f7f08072ddb9185b02ce30ce098fa61f4042"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/intl/zipball/0da1f7f08072ddb9185b02ce30ce098fa61f4042",
|
||||
"reference": "0da1f7f08072ddb9185b02ce30ce098fa61f4042",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=7.1.3",
|
||||
"symfony/polyfill-intl-icu": "~1.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"symfony/filesystem": "^3.4|^4.0|^5.0"
|
||||
},
|
||||
"suggest": {
|
||||
"ext-intl": "to use the component with locales other than \"en\""
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "4.4-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Symfony\\Component\\Intl\\": ""
|
||||
},
|
||||
"classmap": [
|
||||
"Resources/stubs"
|
||||
],
|
||||
"exclude-from-classmap": [
|
||||
"/Tests/"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Bernhard Schussek",
|
||||
"email": "bschussek@gmail.com"
|
||||
},
|
||||
{
|
||||
"name": "Eriksen Costa",
|
||||
"email": "eriksen.costa@infranology.com.br"
|
||||
},
|
||||
{
|
||||
"name": "Igor Wiedler",
|
||||
"email": "igor@wiedler.ch"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "https://symfony.com/contributors"
|
||||
}
|
||||
],
|
||||
"description": "A PHP replacement layer for the C intl extension that includes additional data from the ICU library.",
|
||||
"homepage": "https://symfony.com",
|
||||
"keywords": [
|
||||
"i18n",
|
||||
"icu",
|
||||
"internationalization",
|
||||
"intl",
|
||||
"l10n",
|
||||
"localization"
|
||||
],
|
||||
"time": "2020-09-27T03:36:23+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/lock",
|
||||
"version": "v4.4.15",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/lock.git",
|
||||
"reference": "9d7e8148dd399f392b9b4920832b632c04ffdf64"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/lock/zipball/9d7e8148dd399f392b9b4920832b632c04ffdf64",
|
||||
"reference": "9d7e8148dd399f392b9b4920832b632c04ffdf64",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=7.1.3",
|
||||
"psr/log": "~1.0"
|
||||
},
|
||||
"conflict": {
|
||||
"doctrine/dbal": "<2.5"
|
||||
},
|
||||
"require-dev": {
|
||||
"doctrine/dbal": "^2.5|^3.0",
|
||||
"predis/predis": "~1.0"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "4.4-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Symfony\\Component\\Lock\\": ""
|
||||
},
|
||||
"exclude-from-classmap": [
|
||||
"/Tests/"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Jérémy Derussé",
|
||||
"email": "jeremy@derusse.com"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "https://symfony.com/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Symfony Lock Component",
|
||||
"homepage": "https://symfony.com",
|
||||
"keywords": [
|
||||
"cas",
|
||||
"flock",
|
||||
"locking",
|
||||
"mutex",
|
||||
"redlock",
|
||||
"semaphore"
|
||||
],
|
||||
"time": "2020-10-03T06:31:32+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/mailer",
|
||||
"version": "v4.4.15",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/mailer.git",
|
||||
"reference": "c1018952b49058802c2aa1ea831935e996b7f5d3"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/mailer/zipball/c1018952b49058802c2aa1ea831935e996b7f5d3",
|
||||
"reference": "c1018952b49058802c2aa1ea831935e996b7f5d3",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"egulias/email-validator": "^2.1.10",
|
||||
"php": ">=7.1.3",
|
||||
"psr/log": "~1.0",
|
||||
"symfony/event-dispatcher": "^4.3",
|
||||
"symfony/mime": "^4.4|^5.0",
|
||||
"symfony/service-contracts": "^1.1|^2"
|
||||
},
|
||||
"conflict": {
|
||||
"symfony/http-kernel": "<4.4",
|
||||
"symfony/sendgrid-mailer": "<4.4"
|
||||
},
|
||||
"require-dev": {
|
||||
"symfony/amazon-mailer": "^4.4|^5.0",
|
||||
"symfony/google-mailer": "^4.4|^5.0",
|
||||
"symfony/http-client-contracts": "^1.1|^2",
|
||||
"symfony/mailchimp-mailer": "^4.4|^5.0",
|
||||
"symfony/mailgun-mailer": "^4.4|^5.0",
|
||||
"symfony/messenger": "^4.4|^5.0",
|
||||
"symfony/postmark-mailer": "^4.4|^5.0",
|
||||
"symfony/sendgrid-mailer": "^4.4|^5.0"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "4.4-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Symfony\\Component\\Mailer\\": ""
|
||||
},
|
||||
"exclude-from-classmap": [
|
||||
"/Tests/"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Fabien Potencier",
|
||||
"email": "fabien@symfony.com"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "https://symfony.com/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Symfony Mailer Component",
|
||||
"homepage": "https://symfony.com",
|
||||
"time": "2020-09-06T17:12:23+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/maker-bundle",
|
||||
"version": "v1.21.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/maker-bundle.git",
|
||||
"reference": "da629093c7bf9abd9a6a0f232a43bbb1b88de68d"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/maker-bundle/zipball/da629093c7bf9abd9a6a0f232a43bbb1b88de68d",
|
||||
"reference": "da629093c7bf9abd9a6a0f232a43bbb1b88de68d",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"doctrine/inflector": "^1.2",
|
||||
"nikic/php-parser": "^4.0",
|
||||
"php": "^7.1.3",
|
||||
"symfony/config": "^3.4|^4.0|^5.0",
|
||||
"symfony/console": "^3.4|^4.0|^5.0",
|
||||
"symfony/dependency-injection": "^3.4|^4.0|^5.0",
|
||||
"symfony/filesystem": "^3.4|^4.0|^5.0",
|
||||
"symfony/finder": "^3.4|^4.0|^5.0",
|
||||
"symfony/framework-bundle": "^3.4|^4.0|^5.0",
|
||||
"symfony/http-kernel": "^3.4|^4.0|^5.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"composer/semver": "^3.0@dev",
|
||||
"doctrine/doctrine-bundle": "^1.8|^2.0",
|
||||
"doctrine/orm": "^2.3",
|
||||
"friendsofphp/php-cs-fixer": "^2.8",
|
||||
"friendsoftwig/twigcs": "^3.1.2",
|
||||
"symfony/http-client": "^4.3|^5.0",
|
||||
"symfony/phpunit-bridge": "^4.3|^5.0",
|
||||
"symfony/process": "^3.4|^4.0|^5.0",
|
||||
"symfony/security-core": "^3.4|^4.0|^5.0",
|
||||
"symfony/yaml": "^3.4|^4.0|^5.0"
|
||||
},
|
||||
"type": "symfony-bundle",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.0-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Symfony\\Bundle\\MakerBundle\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "https://symfony.com/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Symfony Maker helps you create empty commands, controllers, form classes, tests and more so you can forget about writing boilerplate code.",
|
||||
"homepage": "https://symfony.com/doc/current/bundles/SymfonyMakerBundle/index.html",
|
||||
"keywords": [
|
||||
"code generator",
|
||||
"generator",
|
||||
"scaffold",
|
||||
"scaffolding"
|
||||
],
|
||||
"time": "2020-08-29T18:05:46+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/mime",
|
||||
"version": "v4.4.15",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/mime.git",
|
||||
"reference": "42df2507eb8e6cd9795f51c99dd52bab543a918f"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/mime/zipball/42df2507eb8e6cd9795f51c99dd52bab543a918f",
|
||||
"reference": "42df2507eb8e6cd9795f51c99dd52bab543a918f",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=7.1.3",
|
||||
"symfony/polyfill-intl-idn": "^1.10",
|
||||
"symfony/polyfill-mbstring": "^1.0"
|
||||
},
|
||||
"conflict": {
|
||||
"symfony/mailer": "<4.4"
|
||||
},
|
||||
"require-dev": {
|
||||
"egulias/email-validator": "^2.1.10",
|
||||
"symfony/dependency-injection": "^3.4|^4.1|^5.0"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "4.4-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Symfony\\Component\\Mime\\": ""
|
||||
},
|
||||
"exclude-from-classmap": [
|
||||
"/Tests/"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Fabien Potencier",
|
||||
"email": "fabien@symfony.com"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "https://symfony.com/contributors"
|
||||
}
|
||||
],
|
||||
"description": "A library to manipulate MIME messages",
|
||||
"homepage": "https://symfony.com",
|
||||
"keywords": [
|
||||
"mime",
|
||||
"mime-type"
|
||||
],
|
||||
"time": "2020-09-02T16:08:58+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/monolog-bridge",
|
||||
"version": "v4.4.15",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/monolog-bridge.git",
|
||||
"reference": "267085e15c00ea5e8059dbf1cd7ba8f5f7541221"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/monolog-bridge/zipball/267085e15c00ea5e8059dbf1cd7ba8f5f7541221",
|
||||
"reference": "267085e15c00ea5e8059dbf1cd7ba8f5f7541221",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"monolog/monolog": "^1.25.1",
|
||||
"php": ">=7.1.3",
|
||||
"symfony/http-kernel": "^4.3",
|
||||
"symfony/service-contracts": "^1.1|^2"
|
||||
},
|
||||
"conflict": {
|
||||
"symfony/console": "<3.4",
|
||||
"symfony/http-foundation": "<3.4"
|
||||
},
|
||||
"require-dev": {
|
||||
"symfony/console": "^3.4|^4.0|^5.0",
|
||||
"symfony/http-client": "^4.4|^5.0",
|
||||
"symfony/security-core": "^3.4|^4.0|^5.0",
|
||||
"symfony/var-dumper": "^3.4|^4.0|^5.0"
|
||||
},
|
||||
"suggest": {
|
||||
"symfony/console": "For the possibility to show log messages in console commands depending on verbosity settings.",
|
||||
"symfony/http-kernel": "For using the debugging handlers together with the response life cycle of the HTTP kernel.",
|
||||
"symfony/var-dumper": "For using the debugging handlers like the console handler or the log server handler."
|
||||
},
|
||||
"type": "symfony-bridge",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "4.4-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Symfony\\Bridge\\Monolog\\": ""
|
||||
},
|
||||
"exclude-from-classmap": [
|
||||
"/Tests/"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Fabien Potencier",
|
||||
"email": "fabien@symfony.com"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "https://symfony.com/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Symfony Monolog Bridge",
|
||||
"homepage": "https://symfony.com",
|
||||
"time": "2020-10-02T07:34:48+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/monolog-bundle",
|
||||
"version": "v3.6.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/monolog-bundle.git",
|
||||
"reference": "e495f5c7e4e672ffef4357d4a4d85f010802f940"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/monolog-bundle/zipball/e495f5c7e4e672ffef4357d4a4d85f010802f940",
|
||||
"reference": "e495f5c7e4e672ffef4357d4a4d85f010802f940",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"monolog/monolog": "~1.22 || ~2.0",
|
||||
"php": ">=5.6",
|
||||
"symfony/config": "~3.4 || ~4.0 || ^5.0",
|
||||
"symfony/dependency-injection": "~3.4.10 || ^4.0.10 || ^5.0",
|
||||
"symfony/http-kernel": "~3.4 || ~4.0 || ^5.0",
|
||||
"symfony/monolog-bridge": "~3.4 || ~4.0 || ^5.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"symfony/console": "~3.4 || ~4.0 || ^5.0",
|
||||
"symfony/phpunit-bridge": "^4.4 || ^5.0",
|
||||
"symfony/yaml": "~3.4 || ~4.0 || ^5.0"
|
||||
},
|
||||
"type": "symfony-bundle",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "3.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Symfony\\Bundle\\MonologBundle\\": ""
|
||||
},
|
||||
"exclude-from-classmap": [
|
||||
"/Tests/"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Fabien Potencier",
|
||||
"email": "fabien@symfony.com"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "http://symfony.com/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Symfony MonologBundle",
|
||||
"homepage": "http://symfony.com",
|
||||
"keywords": [
|
||||
"log",
|
||||
"logging"
|
||||
],
|
||||
"time": "2020-10-06T15:12:11+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/options-resolver",
|
||||
"version": "v4.4.15",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/options-resolver.git",
|
||||
"reference": "02b120a79ff06b779819f1594a300226bfc75105"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/options-resolver/zipball/02b120a79ff06b779819f1594a300226bfc75105",
|
||||
"reference": "02b120a79ff06b779819f1594a300226bfc75105",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=7.1.3"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "4.4-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Symfony\\Component\\OptionsResolver\\": ""
|
||||
},
|
||||
"exclude-from-classmap": [
|
||||
"/Tests/"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Fabien Potencier",
|
||||
"email": "fabien@symfony.com"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "https://symfony.com/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Symfony OptionsResolver Component",
|
||||
"homepage": "https://symfony.com",
|
||||
"keywords": [
|
||||
"config",
|
||||
"configuration",
|
||||
"options"
|
||||
],
|
||||
"time": "2020-09-24T16:40:22+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/orm-pack",
|
||||
"version": "v1.2.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/orm-pack.git",
|
||||
"reference": "21ac491414b5815e5ebb7425908c1d1568d2e775"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/orm-pack/zipball/21ac491414b5815e5ebb7425908c1d1568d2e775",
|
||||
"reference": "21ac491414b5815e5ebb7425908c1d1568d2e775",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"composer/package-versions-deprecated": "*",
|
||||
"doctrine/common": "^2",
|
||||
"doctrine/doctrine-bundle": "^2",
|
||||
"doctrine/doctrine-migrations-bundle": "^2",
|
||||
"doctrine/orm": "^2"
|
||||
},
|
||||
"type": "symfony-pack",
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"description": "A pack for the Doctrine ORM",
|
||||
"time": "2020-08-31T10:20:18+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/polyfill-intl-icu",
|
||||
"version": "v1.18.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/polyfill-intl-icu.git",
|
||||
"reference": "4e45a6e39041a9cc78835b11abc47874ae302a55"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-intl-icu/zipball/4e45a6e39041a9cc78835b11abc47874ae302a55",
|
||||
"reference": "4e45a6e39041a9cc78835b11abc47874ae302a55",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.3.3",
|
||||
"symfony/intl": "~2.3|~3.0|~4.0|~5.0"
|
||||
},
|
||||
"suggest": {
|
||||
"ext-intl": "For best performance"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.18-dev"
|
||||
},
|
||||
"thanks": {
|
||||
"name": "symfony/polyfill",
|
||||
"url": "https://github.com/symfony/polyfill"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"files": [
|
||||
"bootstrap.php"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Nicolas Grekas",
|
||||
"email": "p@tchwork.com"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "https://symfony.com/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Symfony polyfill for intl's ICU-related data and classes",
|
||||
"homepage": "https://symfony.com",
|
||||
"keywords": [
|
||||
"compatibility",
|
||||
"icu",
|
||||
"intl",
|
||||
"polyfill",
|
||||
"portable",
|
||||
"shim"
|
||||
],
|
||||
"time": "2020-07-14T12:35:20+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/polyfill-intl-idn",
|
||||
"version": "v1.18.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/polyfill-intl-idn.git",
|
||||
"reference": "5dcab1bc7146cf8c1beaa4502a3d9be344334251"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/5dcab1bc7146cf8c1beaa4502a3d9be344334251",
|
||||
"reference": "5dcab1bc7146cf8c1beaa4502a3d9be344334251",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.3.3",
|
||||
"symfony/polyfill-intl-normalizer": "^1.10",
|
||||
"symfony/polyfill-php70": "^1.10",
|
||||
"symfony/polyfill-php72": "^1.10"
|
||||
},
|
||||
"suggest": {
|
||||
"ext-intl": "For best performance"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.18-dev"
|
||||
},
|
||||
"thanks": {
|
||||
"name": "symfony/polyfill",
|
||||
"url": "https://github.com/symfony/polyfill"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Symfony\\Polyfill\\Intl\\Idn\\": ""
|
||||
},
|
||||
"files": [
|
||||
"bootstrap.php"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Laurent Bassin",
|
||||
"email": "laurent@bassin.info"
|
||||
},
|
||||
{
|
||||
"name": "Trevor Rowbotham",
|
||||
"email": "trevor.rowbotham@pm.me"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "https://symfony.com/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Symfony polyfill for intl's idn_to_ascii and idn_to_utf8 functions",
|
||||
"homepage": "https://symfony.com",
|
||||
"keywords": [
|
||||
"compatibility",
|
||||
"idn",
|
||||
"intl",
|
||||
"polyfill",
|
||||
"portable",
|
||||
"shim"
|
||||
],
|
||||
"time": "2020-08-04T06:02:08+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/polyfill-intl-normalizer",
|
||||
"version": "v1.18.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/polyfill-intl-normalizer.git",
|
||||
"reference": "37078a8dd4a2a1e9ab0231af7c6cb671b2ed5a7e"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/37078a8dd4a2a1e9ab0231af7c6cb671b2ed5a7e",
|
||||
"reference": "37078a8dd4a2a1e9ab0231af7c6cb671b2ed5a7e",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.3.3"
|
||||
},
|
||||
"suggest": {
|
||||
"ext-intl": "For best performance"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.18-dev"
|
||||
},
|
||||
"thanks": {
|
||||
"name": "symfony/polyfill",
|
||||
"url": "https://github.com/symfony/polyfill"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Symfony\\Polyfill\\Intl\\Normalizer\\": ""
|
||||
},
|
||||
"files": [
|
||||
"bootstrap.php"
|
||||
],
|
||||
"classmap": [
|
||||
"Resources/stubs"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Nicolas Grekas",
|
||||
"email": "p@tchwork.com"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "https://symfony.com/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Symfony polyfill for intl's Normalizer class and related functions",
|
||||
"homepage": "https://symfony.com",
|
||||
"keywords": [
|
||||
"compatibility",
|
||||
"intl",
|
||||
"normalizer",
|
||||
"polyfill",
|
||||
"portable",
|
||||
"shim"
|
||||
],
|
||||
"time": "2020-07-14T12:35:20+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/polyfill-mbstring",
|
||||
"version": "v1.18.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/polyfill-mbstring.git",
|
||||
"reference": "a6977d63bf9a0ad4c65cd352709e230876f9904a"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/a6977d63bf9a0ad4c65cd352709e230876f9904a",
|
||||
"reference": "a6977d63bf9a0ad4c65cd352709e230876f9904a",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.3.3"
|
||||
},
|
||||
"suggest": {
|
||||
"ext-mbstring": "For best performance"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.18-dev"
|
||||
},
|
||||
"thanks": {
|
||||
"name": "symfony/polyfill",
|
||||
"url": "https://github.com/symfony/polyfill"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Symfony\\Polyfill\\Mbstring\\": ""
|
||||
},
|
||||
"files": [
|
||||
"bootstrap.php"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Nicolas Grekas",
|
||||
"email": "p@tchwork.com"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "https://symfony.com/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Symfony polyfill for the Mbstring extension",
|
||||
"homepage": "https://symfony.com",
|
||||
"keywords": [
|
||||
"compatibility",
|
||||
"mbstring",
|
||||
"polyfill",
|
||||
"portable",
|
||||
"shim"
|
||||
],
|
||||
"time": "2020-07-14T12:35:20+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/polyfill-php72",
|
||||
"version": "v1.18.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/polyfill-php72.git",
|
||||
"reference": "639447d008615574653fb3bc60d1986d7172eaae"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/639447d008615574653fb3bc60d1986d7172eaae",
|
||||
"reference": "639447d008615574653fb3bc60d1986d7172eaae",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.3.3"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.18-dev"
|
||||
},
|
||||
"thanks": {
|
||||
"name": "symfony/polyfill",
|
||||
"url": "https://github.com/symfony/polyfill"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Symfony\\Polyfill\\Php72\\": ""
|
||||
},
|
||||
"files": [
|
||||
"bootstrap.php"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Nicolas Grekas",
|
||||
"email": "p@tchwork.com"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "https://symfony.com/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Symfony polyfill backporting some PHP 7.2+ features to lower PHP versions",
|
||||
"homepage": "https://symfony.com",
|
||||
"keywords": [
|
||||
"compatibility",
|
||||
"polyfill",
|
||||
"portable",
|
||||
"shim"
|
||||
],
|
||||
"time": "2020-07-14T12:35:20+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/polyfill-php73",
|
||||
"version": "v1.18.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/polyfill-php73.git",
|
||||
"reference": "fffa1a52a023e782cdcc221d781fe1ec8f87fcca"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/fffa1a52a023e782cdcc221d781fe1ec8f87fcca",
|
||||
"reference": "fffa1a52a023e782cdcc221d781fe1ec8f87fcca",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.3.3"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.18-dev"
|
||||
},
|
||||
"thanks": {
|
||||
"name": "symfony/polyfill",
|
||||
"url": "https://github.com/symfony/polyfill"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Symfony\\Polyfill\\Php73\\": ""
|
||||
},
|
||||
"files": [
|
||||
"bootstrap.php"
|
||||
],
|
||||
"classmap": [
|
||||
"Resources/stubs"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Nicolas Grekas",
|
||||
"email": "p@tchwork.com"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "https://symfony.com/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Symfony polyfill backporting some PHP 7.3+ features to lower PHP versions",
|
||||
"homepage": "https://symfony.com",
|
||||
"keywords": [
|
||||
"compatibility",
|
||||
"polyfill",
|
||||
"portable",
|
||||
"shim"
|
||||
],
|
||||
"time": "2020-07-14T12:35:20+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/polyfill-php80",
|
||||
"version": "v1.18.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/polyfill-php80.git",
|
||||
"reference": "d87d5766cbf48d72388a9f6b85f280c8ad51f981"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/d87d5766cbf48d72388a9f6b85f280c8ad51f981",
|
||||
"reference": "d87d5766cbf48d72388a9f6b85f280c8ad51f981",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=7.0.8"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.18-dev"
|
||||
},
|
||||
"thanks": {
|
||||
"name": "symfony/polyfill",
|
||||
"url": "https://github.com/symfony/polyfill"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Symfony\\Polyfill\\Php80\\": ""
|
||||
},
|
||||
"files": [
|
||||
"bootstrap.php"
|
||||
],
|
||||
"classmap": [
|
||||
"Resources/stubs"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Ion Bazan",
|
||||
"email": "ion.bazan@gmail.com"
|
||||
},
|
||||
{
|
||||
"name": "Nicolas Grekas",
|
||||
"email": "p@tchwork.com"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "https://symfony.com/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions",
|
||||
"homepage": "https://symfony.com",
|
||||
"keywords": [
|
||||
"compatibility",
|
||||
"polyfill",
|
||||
"portable",
|
||||
"shim"
|
||||
],
|
||||
"time": "2020-07-14T12:35:20+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/polyfill-uuid",
|
||||
"version": "v1.18.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/polyfill-uuid.git",
|
||||
"reference": "da48e2cccd323e48c16c26481bf5800f6ab1c49d"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-uuid/zipball/da48e2cccd323e48c16c26481bf5800f6ab1c49d",
|
||||
"reference": "da48e2cccd323e48c16c26481bf5800f6ab1c49d",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"paragonie/random_compat": "~1.0|~2.0|~9.99",
|
||||
"php": ">=5.3.3"
|
||||
},
|
||||
"suggest": {
|
||||
"ext-uuid": "For best performance"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.18-dev"
|
||||
},
|
||||
"thanks": {
|
||||
"name": "symfony/polyfill",
|
||||
"url": "https://github.com/symfony/polyfill"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Symfony\\Polyfill\\Uuid\\": ""
|
||||
},
|
||||
"files": [
|
||||
"bootstrap.php"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Grégoire Pineau",
|
||||
"email": "lyrixx@lyrixx.info"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "https://symfony.com/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Symfony polyfill for uuid functions",
|
||||
"homepage": "https://symfony.com",
|
||||
"keywords": [
|
||||
"compatibility",
|
||||
"polyfill",
|
||||
"portable",
|
||||
"uuid"
|
||||
],
|
||||
"time": "2020-07-14T12:35:20+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/process",
|
||||
"version": "v4.4.15",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/process.git",
|
||||
"reference": "9b887acc522935f77555ae8813495958c7771ba7"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/process/zipball/9b887acc522935f77555ae8813495958c7771ba7",
|
||||
"reference": "9b887acc522935f77555ae8813495958c7771ba7",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=7.1.3"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "4.4-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Symfony\\Component\\Process\\": ""
|
||||
},
|
||||
"exclude-from-classmap": [
|
||||
"/Tests/"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Fabien Potencier",
|
||||
"email": "fabien@symfony.com"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "https://symfony.com/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Symfony Process Component",
|
||||
"homepage": "https://symfony.com",
|
||||
"time": "2020-09-02T16:08:58+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/profiler-pack",
|
||||
"version": "v1.0.5",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/profiler-pack.git",
|
||||
"reference": "29ec66471082b4eb068db11eb4f0a48c277653f7"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/profiler-pack/zipball/29ec66471082b4eb068db11eb4f0a48c277653f7",
|
||||
"reference": "29ec66471082b4eb068db11eb4f0a48c277653f7",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"symfony/stopwatch": "*",
|
||||
"symfony/twig-bundle": "*",
|
||||
"symfony/web-profiler-bundle": "*"
|
||||
},
|
||||
"type": "symfony-pack",
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"description": "A pack for the Symfony web profiler",
|
||||
"time": "2020-08-12T06:50:46+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/property-access",
|
||||
"version": "v4.4.15",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/property-access.git",
|
||||
"reference": "ecc35239f0f665fd7a8e3a2ecaad7e4ee2668ab6"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/property-access/zipball/ecc35239f0f665fd7a8e3a2ecaad7e4ee2668ab6",
|
||||
"reference": "ecc35239f0f665fd7a8e3a2ecaad7e4ee2668ab6",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=7.1.3",
|
||||
"symfony/inflector": "^3.4|^4.0|^5.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"symfony/cache": "^3.4|^4.0|^5.0"
|
||||
},
|
||||
"suggest": {
|
||||
"psr/cache-implementation": "To cache access methods."
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "4.4-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Symfony\\Component\\PropertyAccess\\": ""
|
||||
},
|
||||
"exclude-from-classmap": [
|
||||
"/Tests/"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Fabien Potencier",
|
||||
"email": "fabien@symfony.com"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "https://symfony.com/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Symfony PropertyAccess Component",
|
||||
"homepage": "https://symfony.com",
|
||||
"keywords": [
|
||||
"access",
|
||||
"array",
|
||||
"extraction",
|
||||
"index",
|
||||
"injection",
|
||||
"object",
|
||||
"property",
|
||||
"property path",
|
||||
"reflection"
|
||||
],
|
||||
"time": "2020-09-02T16:08:58+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/property-info",
|
||||
"version": "v4.4.15",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/property-info.git",
|
||||
"reference": "387c5823e37f14271a499d1b9844c2009cb79d44"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/property-info/zipball/387c5823e37f14271a499d1b9844c2009cb79d44",
|
||||
"reference": "387c5823e37f14271a499d1b9844c2009cb79d44",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=7.1.3",
|
||||
"symfony/inflector": "^3.4|^4.0|^5.0"
|
||||
},
|
||||
"conflict": {
|
||||
"phpdocumentor/reflection-docblock": "<3.0||>=3.2.0,<3.2.2",
|
||||
"phpdocumentor/type-resolver": "<0.3.0",
|
||||
"symfony/dependency-injection": "<3.4"
|
||||
},
|
||||
"require-dev": {
|
||||
"doctrine/annotations": "~1.7",
|
||||
"phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0",
|
||||
"symfony/cache": "^3.4|^4.0|^5.0",
|
||||
"symfony/dependency-injection": "^3.4|^4.0|^5.0",
|
||||
"symfony/serializer": "^3.4|^4.0|^5.0"
|
||||
},
|
||||
"suggest": {
|
||||
"phpdocumentor/reflection-docblock": "To use the PHPDoc",
|
||||
"psr/cache-implementation": "To cache results",
|
||||
"symfony/doctrine-bridge": "To use Doctrine metadata",
|
||||
"symfony/serializer": "To use Serializer metadata"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "4.4-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Symfony\\Component\\PropertyInfo\\": ""
|
||||
},
|
||||
"exclude-from-classmap": [
|
||||
"/Tests/"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Kévin Dunglas",
|
||||
"email": "dunglas@gmail.com"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "https://symfony.com/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Symfony Property Info Component",
|
||||
"homepage": "https://symfony.com",
|
||||
"keywords": [
|
||||
"doctrine",
|
||||
"phpdoc",
|
||||
"property",
|
||||
"symfony",
|
||||
"type",
|
||||
"validator"
|
||||
],
|
||||
"time": "2020-09-03T00:26:19+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/routing",
|
||||
"version": "v4.4.15",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/routing.git",
|
||||
"reference": "006b2d06672b8650998f328fc603eb6f3feb979f"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/routing/zipball/006b2d06672b8650998f328fc603eb6f3feb979f",
|
||||
"reference": "006b2d06672b8650998f328fc603eb6f3feb979f",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=7.1.3"
|
||||
},
|
||||
"conflict": {
|
||||
"symfony/config": "<4.2",
|
||||
"symfony/dependency-injection": "<3.4",
|
||||
"symfony/yaml": "<3.4"
|
||||
},
|
||||
"require-dev": {
|
||||
"doctrine/annotations": "~1.2",
|
||||
"psr/log": "~1.0",
|
||||
"symfony/config": "^4.2|^5.0",
|
||||
"symfony/dependency-injection": "^3.4|^4.0|^5.0",
|
||||
"symfony/expression-language": "^3.4|^4.0|^5.0",
|
||||
"symfony/http-foundation": "^3.4|^4.0|^5.0",
|
||||
"symfony/yaml": "^3.4|^4.0|^5.0"
|
||||
},
|
||||
"suggest": {
|
||||
"doctrine/annotations": "For using the annotation loader",
|
||||
"symfony/config": "For using the all-in-one router or any loader",
|
||||
"symfony/expression-language": "For using expression matching",
|
||||
"symfony/http-foundation": "For using a Symfony Request object",
|
||||
"symfony/yaml": "For using the YAML loader"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "4.4-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Symfony\\Component\\Routing\\": ""
|
||||
},
|
||||
"exclude-from-classmap": [
|
||||
"/Tests/"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Fabien Potencier",
|
||||
"email": "fabien@symfony.com"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "https://symfony.com/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Symfony Routing Component",
|
||||
"homepage": "https://symfony.com",
|
||||
"keywords": [
|
||||
"router",
|
||||
"routing",
|
||||
"uri",
|
||||
"url"
|
||||
],
|
||||
"time": "2020-10-01T16:25:17+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/security-bundle",
|
||||
"version": "v4.4.15",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/security-bundle.git",
|
||||
"reference": "274b0eb10dfc9067175cb4d1bcc68f8b37ebee14"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/security-bundle/zipball/274b0eb10dfc9067175cb4d1bcc68f8b37ebee14",
|
||||
"reference": "274b0eb10dfc9067175cb4d1bcc68f8b37ebee14",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"ext-xml": "*",
|
||||
"php": ">=7.1.3",
|
||||
"symfony/config": "^4.2|^5.0",
|
||||
"symfony/dependency-injection": "^4.4|^5.0",
|
||||
"symfony/http-kernel": "^4.4",
|
||||
"symfony/security-core": "^4.4",
|
||||
"symfony/security-csrf": "^4.2|^5.0",
|
||||
"symfony/security-guard": "^4.2|^5.0",
|
||||
"symfony/security-http": "^4.4.5"
|
||||
},
|
||||
"conflict": {
|
||||
"symfony/browser-kit": "<4.2",
|
||||
"symfony/console": "<3.4",
|
||||
"symfony/framework-bundle": "<4.4",
|
||||
"symfony/ldap": "<4.4",
|
||||
"symfony/twig-bundle": "<4.4"
|
||||
},
|
||||
"require-dev": {
|
||||
"doctrine/doctrine-bundle": "^1.5|^2.0",
|
||||
"symfony/asset": "^3.4|^4.0|^5.0",
|
||||
"symfony/browser-kit": "^4.2|^5.0",
|
||||
"symfony/console": "^3.4|^4.0|^5.0",
|
||||
"symfony/css-selector": "^3.4|^4.0|^5.0",
|
||||
"symfony/dom-crawler": "^3.4|^4.0|^5.0",
|
||||
"symfony/expression-language": "^3.4|^4.0|^5.0",
|
||||
"symfony/form": "^3.4|^4.0|^5.0",
|
||||
"symfony/framework-bundle": "^4.4|^5.0",
|
||||
"symfony/process": "^3.4|^4.0|^5.0",
|
||||
"symfony/serializer": "^4.4|^5.0",
|
||||
"symfony/translation": "^3.4|^4.0|^5.0",
|
||||
"symfony/twig-bridge": "^3.4|^4.0|^5.0",
|
||||
"symfony/twig-bundle": "^4.4|^5.0",
|
||||
"symfony/validator": "^3.4|^4.0|^5.0",
|
||||
"symfony/yaml": "^3.4|^4.0|^5.0",
|
||||
"twig/twig": "^1.41|^2.10|^3.0"
|
||||
},
|
||||
"type": "symfony-bundle",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "4.4-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Symfony\\Bundle\\SecurityBundle\\": ""
|
||||
},
|
||||
"exclude-from-classmap": [
|
||||
"/Tests/"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Fabien Potencier",
|
||||
"email": "fabien@symfony.com"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "https://symfony.com/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Symfony SecurityBundle",
|
||||
"homepage": "https://symfony.com",
|
||||
"time": "2020-09-02T16:08:58+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/security-core",
|
||||
"version": "v4.4.15",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/security-core.git",
|
||||
"reference": "264f391b7b172e36884790b4689152303d61e424"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/security-core/zipball/264f391b7b172e36884790b4689152303d61e424",
|
||||
"reference": "264f391b7b172e36884790b4689152303d61e424",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=7.1.3",
|
||||
"symfony/event-dispatcher-contracts": "^1.1|^2",
|
||||
"symfony/service-contracts": "^1.1.6|^2"
|
||||
},
|
||||
"conflict": {
|
||||
"symfony/event-dispatcher": "<4.3|>=5",
|
||||
"symfony/ldap": "<4.4",
|
||||
"symfony/security-guard": "<4.3"
|
||||
},
|
||||
"require-dev": {
|
||||
"psr/container": "^1.0",
|
||||
"psr/log": "~1.0",
|
||||
"symfony/event-dispatcher": "^4.3",
|
||||
"symfony/expression-language": "^3.4|^4.0|^5.0",
|
||||
"symfony/http-foundation": "^3.4|^4.0|^5.0",
|
||||
"symfony/ldap": "^4.4|^5.0",
|
||||
"symfony/validator": "^3.4.31|^4.3.4|^5.0"
|
||||
},
|
||||
"suggest": {
|
||||
"psr/container-implementation": "To instantiate the Security class",
|
||||
"symfony/event-dispatcher": "",
|
||||
"symfony/expression-language": "For using the expression voter",
|
||||
"symfony/http-foundation": "",
|
||||
"symfony/ldap": "For using LDAP integration",
|
||||
"symfony/validator": "For using the user password constraint"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "4.4-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Symfony\\Component\\Security\\Core\\": ""
|
||||
},
|
||||
"exclude-from-classmap": [
|
||||
"/Tests/"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Fabien Potencier",
|
||||
"email": "fabien@symfony.com"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "https://symfony.com/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Symfony Security Component - Core Library",
|
||||
"homepage": "https://symfony.com",
|
||||
"time": "2020-10-04T07:09:09+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/security-csrf",
|
||||
"version": "v4.4.15",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/security-csrf.git",
|
||||
"reference": "59bc56de929b1e1d2cd41c22874f8f57863f0aff"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/security-csrf/zipball/59bc56de929b1e1d2cd41c22874f8f57863f0aff",
|
||||
"reference": "59bc56de929b1e1d2cd41c22874f8f57863f0aff",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=7.1.3",
|
||||
"symfony/security-core": "^3.4|^4.0|^5.0"
|
||||
},
|
||||
"conflict": {
|
||||
"symfony/http-foundation": "<3.4"
|
||||
},
|
||||
"require-dev": {
|
||||
"symfony/http-foundation": "^3.4|^4.0|^5.0"
|
||||
},
|
||||
"suggest": {
|
||||
"symfony/http-foundation": "For using the class SessionTokenStorage."
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "4.4-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Symfony\\Component\\Security\\Csrf\\": ""
|
||||
},
|
||||
"exclude-from-classmap": [
|
||||
"/Tests/"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Fabien Potencier",
|
||||
"email": "fabien@symfony.com"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "https://symfony.com/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Symfony Security Component - CSRF Library",
|
||||
"homepage": "https://symfony.com",
|
||||
"time": "2020-09-02T16:08:58+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/security-guard",
|
||||
"version": "v4.4.15",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/security-guard.git",
|
||||
"reference": "95b7f702c4f07c44504a81c69ef07036e68b96b9"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/security-guard/zipball/95b7f702c4f07c44504a81c69ef07036e68b96b9",
|
||||
"reference": "95b7f702c4f07c44504a81c69ef07036e68b96b9",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=7.1.3",
|
||||
"symfony/security-core": "^3.4.22|^4.2.3|^5.0",
|
||||
"symfony/security-http": "^4.4.1"
|
||||
},
|
||||
"require-dev": {
|
||||
"psr/log": "~1.0"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "4.4-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Symfony\\Component\\Security\\Guard\\": ""
|
||||
},
|
||||
"exclude-from-classmap": [
|
||||
"/Tests/"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Fabien Potencier",
|
||||
"email": "fabien@symfony.com"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "https://symfony.com/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Symfony Security Component - Guard",
|
||||
"homepage": "https://symfony.com",
|
||||
"time": "2020-09-02T16:08:58+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/security-http",
|
||||
"version": "v4.4.15",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/security-http.git",
|
||||
"reference": "eddcd6b7372d430a47091fa5e5d733785b5a582b"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/security-http/zipball/eddcd6b7372d430a47091fa5e5d733785b5a582b",
|
||||
"reference": "eddcd6b7372d430a47091fa5e5d733785b5a582b",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=7.1.3",
|
||||
"symfony/http-foundation": "^3.4.40|^4.4.7|^5.0.7",
|
||||
"symfony/http-kernel": "^4.4",
|
||||
"symfony/property-access": "^3.4|^4.0|^5.0",
|
||||
"symfony/security-core": "^4.4.8"
|
||||
},
|
||||
"conflict": {
|
||||
"symfony/event-dispatcher": ">=5",
|
||||
"symfony/security-csrf": "<3.4.11|~4.0,<4.0.11"
|
||||
},
|
||||
"require-dev": {
|
||||
"psr/log": "~1.0",
|
||||
"symfony/routing": "^3.4|^4.0|^5.0",
|
||||
"symfony/security-csrf": "^3.4.11|^4.0.11|^5.0"
|
||||
},
|
||||
"suggest": {
|
||||
"symfony/routing": "For using the HttpUtils class to create sub-requests, redirect the user, and match URLs",
|
||||
"symfony/security-csrf": "For using tokens to protect authentication/logout attempts"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "4.4-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Symfony\\Component\\Security\\Http\\": ""
|
||||
},
|
||||
"exclude-from-classmap": [
|
||||
"/Tests/"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Fabien Potencier",
|
||||
"email": "fabien@symfony.com"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "https://symfony.com/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Symfony Security Component - HTTP Integration",
|
||||
"homepage": "https://symfony.com",
|
||||
"time": "2020-09-02T16:08:58+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/serializer",
|
||||
"version": "v4.4.15",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/serializer.git",
|
||||
"reference": "8e97a9cfc5a48de83437f286d6d0ab4a2a2c22b0"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/serializer/zipball/8e97a9cfc5a48de83437f286d6d0ab4a2a2c22b0",
|
||||
"reference": "8e97a9cfc5a48de83437f286d6d0ab4a2a2c22b0",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=7.1.3",
|
||||
"symfony/polyfill-ctype": "~1.8"
|
||||
},
|
||||
"conflict": {
|
||||
"phpdocumentor/type-resolver": "<0.2.1",
|
||||
"symfony/dependency-injection": "<3.4",
|
||||
"symfony/property-access": "<3.4",
|
||||
"symfony/property-info": "<3.4",
|
||||
"symfony/yaml": "<3.4"
|
||||
},
|
||||
"require-dev": {
|
||||
"doctrine/annotations": "~1.0",
|
||||
"doctrine/cache": "~1.0",
|
||||
"phpdocumentor/reflection-docblock": "^3.2|^4.0",
|
||||
"symfony/cache": "^3.4|^4.0|^5.0",
|
||||
"symfony/config": "^3.4|^4.0|^5.0",
|
||||
"symfony/dependency-injection": "^3.4|^4.0|^5.0",
|
||||
"symfony/error-handler": "^4.4|^5.0",
|
||||
"symfony/http-foundation": "^3.4|^4.0|^5.0",
|
||||
"symfony/mime": "^4.4|^5.0",
|
||||
"symfony/property-access": "^3.4|^4.0|^5.0",
|
||||
"symfony/property-info": "^3.4.13|~4.0|^5.0",
|
||||
"symfony/validator": "^3.4|^4.0|^5.0",
|
||||
"symfony/yaml": "^3.4|^4.0|^5.0"
|
||||
},
|
||||
"suggest": {
|
||||
"doctrine/annotations": "For using the annotation mapping. You will also need doctrine/cache.",
|
||||
"doctrine/cache": "For using the default cached annotation reader and metadata cache.",
|
||||
"psr/cache-implementation": "For using the metadata cache.",
|
||||
"symfony/config": "For using the XML mapping loader.",
|
||||
"symfony/http-foundation": "For using a MIME type guesser within the DataUriNormalizer.",
|
||||
"symfony/property-access": "For using the ObjectNormalizer.",
|
||||
"symfony/property-info": "To deserialize relations.",
|
||||
"symfony/yaml": "For using the default YAML mapping loader."
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "4.4-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Symfony\\Component\\Serializer\\": ""
|
||||
},
|
||||
"exclude-from-classmap": [
|
||||
"/Tests/"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Fabien Potencier",
|
||||
"email": "fabien@symfony.com"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "https://symfony.com/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Symfony Serializer Component",
|
||||
"homepage": "https://symfony.com",
|
||||
"time": "2020-10-02T20:12:42+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/serializer-pack",
|
||||
"version": "v1.0.3",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/serializer-pack.git",
|
||||
"reference": "9bbce72dcad0cca797b678d3bfb764cf923ab28a"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/serializer-pack/zipball/9bbce72dcad0cca797b678d3bfb764cf923ab28a",
|
||||
"reference": "9bbce72dcad0cca797b678d3bfb764cf923ab28a",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"doctrine/annotations": "^1.0",
|
||||
"php": "^7.0",
|
||||
"phpdocumentor/reflection-docblock": "*",
|
||||
"symfony/property-access": "*",
|
||||
"symfony/property-info": "*",
|
||||
"symfony/serializer": "*"
|
||||
},
|
||||
"type": "symfony-pack",
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"description": "A pack for the Symfony serializer",
|
||||
"time": "2020-03-28T16:26:24+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/service-contracts",
|
||||
"version": "v2.2.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/service-contracts.git",
|
||||
"reference": "d15da7ba4957ffb8f1747218be9e1a121fd298a1"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/service-contracts/zipball/d15da7ba4957ffb8f1747218be9e1a121fd298a1",
|
||||
"reference": "d15da7ba4957ffb8f1747218be9e1a121fd298a1",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=7.2.5",
|
||||
"psr/container": "^1.0"
|
||||
},
|
||||
"suggest": {
|
||||
"symfony/service-implementation": ""
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "2.2-dev"
|
||||
},
|
||||
"thanks": {
|
||||
"name": "symfony/contracts",
|
||||
"url": "https://github.com/symfony/contracts"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Symfony\\Contracts\\Service\\": ""
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Nicolas Grekas",
|
||||
"email": "p@tchwork.com"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "https://symfony.com/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Generic abstractions related to writing services",
|
||||
"homepage": "https://symfony.com",
|
||||
"keywords": [
|
||||
"abstractions",
|
||||
"contracts",
|
||||
"decoupling",
|
||||
"interfaces",
|
||||
"interoperability",
|
||||
"standards"
|
||||
],
|
||||
"time": "2020-09-07T11:33:47+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/stopwatch",
|
||||
"version": "v4.4.15",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/stopwatch.git",
|
||||
"reference": "6f89e19772cf61b3c65bab329fe0e318259fbd91"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/stopwatch/zipball/6f89e19772cf61b3c65bab329fe0e318259fbd91",
|
||||
"reference": "6f89e19772cf61b3c65bab329fe0e318259fbd91",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=7.1.3",
|
||||
"symfony/service-contracts": "^1.0|^2"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "4.4-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Symfony\\Component\\Stopwatch\\": ""
|
||||
},
|
||||
"exclude-from-classmap": [
|
||||
"/Tests/"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Fabien Potencier",
|
||||
"email": "fabien@symfony.com"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "https://symfony.com/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Symfony Stopwatch Component",
|
||||
"homepage": "https://symfony.com",
|
||||
"time": "2020-09-02T16:08:58+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/swiftmailer-bundle",
|
||||
"version": "v3.5.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/swiftmailer-bundle.git",
|
||||
"reference": "933be6a3196fb354615290f53ff7ff61e0bdde58"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/swiftmailer-bundle/zipball/933be6a3196fb354615290f53ff7ff61e0bdde58",
|
||||
"reference": "933be6a3196fb354615290f53ff7ff61e0bdde58",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=7.1",
|
||||
"swiftmailer/swiftmailer": "^6.1.3",
|
||||
"symfony/config": "^4.4|^5.0",
|
||||
"symfony/dependency-injection": "^4.4|^5.0",
|
||||
"symfony/http-kernel": "^4.4|^5.0"
|
||||
},
|
||||
"conflict": {
|
||||
"twig/twig": "<1.41|<2.10"
|
||||
},
|
||||
"require-dev": {
|
||||
"symfony/console": "^4.4|^5.0",
|
||||
"symfony/framework-bundle": "^4.4|^5.0",
|
||||
"symfony/phpunit-bridge": "^4.4|^5.0",
|
||||
"symfony/yaml": "^4.4|^5.0"
|
||||
},
|
||||
"type": "symfony-bundle",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "3.5-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Symfony\\Bundle\\SwiftmailerBundle\\": ""
|
||||
},
|
||||
"exclude-from-classmap": [
|
||||
"/Tests/"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Fabien Potencier",
|
||||
"email": "fabien@symfony.com"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "http://symfony.com/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Symfony SwiftmailerBundle",
|
||||
"homepage": "http://symfony.com",
|
||||
"time": "2020-10-06T05:51:35+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/templating",
|
||||
"version": "v4.4.15",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/templating.git",
|
||||
"reference": "7c5e32de7cf3efe9a11def8eaedc7901ec7b22b6"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/templating/zipball/7c5e32de7cf3efe9a11def8eaedc7901ec7b22b6",
|
||||
"reference": "7c5e32de7cf3efe9a11def8eaedc7901ec7b22b6",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=7.1.3",
|
||||
"symfony/polyfill-ctype": "~1.8"
|
||||
},
|
||||
"require-dev": {
|
||||
"psr/log": "~1.0"
|
||||
},
|
||||
"suggest": {
|
||||
"psr/log-implementation": "For using debug logging in loaders"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "4.4-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Symfony\\Component\\Templating\\": ""
|
||||
},
|
||||
"exclude-from-classmap": [
|
||||
"/Tests/"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Fabien Potencier",
|
||||
"email": "fabien@symfony.com"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "https://symfony.com/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Symfony Templating Component",
|
||||
"homepage": "https://symfony.com",
|
||||
"time": "2020-09-02T16:08:58+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/translation",
|
||||
"version": "v4.4.15",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/translation.git",
|
||||
"reference": "8494fa1bbf9d77fe1e7d50ac8ccfb80a858a98bd"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/translation/zipball/8494fa1bbf9d77fe1e7d50ac8ccfb80a858a98bd",
|
||||
"reference": "8494fa1bbf9d77fe1e7d50ac8ccfb80a858a98bd",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=7.1.3",
|
||||
"symfony/polyfill-mbstring": "~1.0",
|
||||
"symfony/translation-contracts": "^1.1.6|^2"
|
||||
},
|
||||
"conflict": {
|
||||
"symfony/config": "<3.4",
|
||||
"symfony/dependency-injection": "<3.4",
|
||||
"symfony/http-kernel": "<4.4",
|
||||
"symfony/yaml": "<3.4"
|
||||
},
|
||||
"provide": {
|
||||
"symfony/translation-implementation": "1.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"psr/log": "~1.0",
|
||||
"symfony/config": "^3.4|^4.0|^5.0",
|
||||
"symfony/console": "^3.4|^4.0|^5.0",
|
||||
"symfony/dependency-injection": "^3.4|^4.0|^5.0",
|
||||
"symfony/finder": "~2.8|~3.0|~4.0|^5.0",
|
||||
"symfony/http-kernel": "^4.4",
|
||||
"symfony/intl": "^3.4|^4.0|^5.0",
|
||||
"symfony/service-contracts": "^1.1.2|^2",
|
||||
"symfony/yaml": "^3.4|^4.0|^5.0"
|
||||
},
|
||||
"suggest": {
|
||||
"psr/log-implementation": "To use logging capability in translator",
|
||||
"symfony/config": "",
|
||||
"symfony/yaml": ""
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "4.4-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Symfony\\Component\\Translation\\": ""
|
||||
},
|
||||
"exclude-from-classmap": [
|
||||
"/Tests/"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Fabien Potencier",
|
||||
"email": "fabien@symfony.com"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "https://symfony.com/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Symfony Translation Component",
|
||||
"homepage": "https://symfony.com",
|
||||
"time": "2020-10-02T07:34:48+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/translation-contracts",
|
||||
"version": "v2.3.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/translation-contracts.git",
|
||||
"reference": "e2eaa60b558f26a4b0354e1bbb25636efaaad105"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/translation-contracts/zipball/e2eaa60b558f26a4b0354e1bbb25636efaaad105",
|
||||
"reference": "e2eaa60b558f26a4b0354e1bbb25636efaaad105",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=7.2.5"
|
||||
},
|
||||
"suggest": {
|
||||
"symfony/translation-implementation": ""
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "2.3-dev"
|
||||
},
|
||||
"thanks": {
|
||||
"name": "symfony/contracts",
|
||||
"url": "https://github.com/symfony/contracts"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Symfony\\Contracts\\Translation\\": ""
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Nicolas Grekas",
|
||||
"email": "p@tchwork.com"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "https://symfony.com/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Generic abstractions related to translation",
|
||||
"homepage": "https://symfony.com",
|
||||
"keywords": [
|
||||
"abstractions",
|
||||
"contracts",
|
||||
"decoupling",
|
||||
"interfaces",
|
||||
"interoperability",
|
||||
"standards"
|
||||
],
|
||||
"time": "2020-09-28T13:05:58+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/twig-bridge",
|
||||
"version": "v4.4.15",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/twig-bridge.git",
|
||||
"reference": "ac5de06ef28f0638bd87d8fcf515715232db34d2"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/twig-bridge/zipball/ac5de06ef28f0638bd87d8fcf515715232db34d2",
|
||||
"reference": "ac5de06ef28f0638bd87d8fcf515715232db34d2",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=7.1.3",
|
||||
"symfony/translation-contracts": "^1.1|^2",
|
||||
"twig/twig": "^1.41|^2.10|^3.0"
|
||||
},
|
||||
"conflict": {
|
||||
"symfony/console": "<3.4",
|
||||
"symfony/form": "<4.4",
|
||||
"symfony/http-foundation": "<4.3",
|
||||
"symfony/translation": "<4.2",
|
||||
"symfony/workflow": "<4.3"
|
||||
},
|
||||
"require-dev": {
|
||||
"egulias/email-validator": "^2.1.10",
|
||||
"symfony/asset": "^3.4|^4.0|^5.0",
|
||||
"symfony/console": "^3.4|^4.0|^5.0",
|
||||
"symfony/dependency-injection": "^3.4|^4.0|^5.0",
|
||||
"symfony/error-handler": "^4.4|^5.0",
|
||||
"symfony/expression-language": "^3.4|^4.0|^5.0",
|
||||
"symfony/finder": "^3.4|^4.0|^5.0",
|
||||
"symfony/form": "^4.3.5",
|
||||
"symfony/http-foundation": "^4.3|^5.0",
|
||||
"symfony/http-kernel": "^4.4",
|
||||
"symfony/mime": "^4.3|^5.0",
|
||||
"symfony/polyfill-intl-icu": "~1.0",
|
||||
"symfony/routing": "^3.4|^4.0|^5.0",
|
||||
"symfony/security-acl": "^2.8|^3.0",
|
||||
"symfony/security-core": "^3.0|^4.0|^5.0",
|
||||
"symfony/security-csrf": "^3.4|^4.0|^5.0",
|
||||
"symfony/security-http": "^3.4|^4.0|^5.0",
|
||||
"symfony/stopwatch": "^3.4|^4.0|^5.0",
|
||||
"symfony/templating": "^3.4|^4.0|^5.0",
|
||||
"symfony/translation": "^4.2.1|^5.0",
|
||||
"symfony/web-link": "^4.4|^5.0",
|
||||
"symfony/workflow": "^4.3|^5.0",
|
||||
"symfony/yaml": "^3.4|^4.0|^5.0",
|
||||
"twig/cssinliner-extra": "^2.12",
|
||||
"twig/inky-extra": "^2.12",
|
||||
"twig/markdown-extra": "^2.12"
|
||||
},
|
||||
"suggest": {
|
||||
"symfony/asset": "For using the AssetExtension",
|
||||
"symfony/expression-language": "For using the ExpressionExtension",
|
||||
"symfony/finder": "",
|
||||
"symfony/form": "For using the FormExtension",
|
||||
"symfony/http-kernel": "For using the HttpKernelExtension",
|
||||
"symfony/routing": "For using the RoutingExtension",
|
||||
"symfony/security-core": "For using the SecurityExtension",
|
||||
"symfony/security-csrf": "For using the CsrfExtension",
|
||||
"symfony/security-http": "For using the LogoutUrlExtension",
|
||||
"symfony/stopwatch": "For using the StopwatchExtension",
|
||||
"symfony/templating": "For using the TwigEngine",
|
||||
"symfony/translation": "For using the TranslationExtension",
|
||||
"symfony/var-dumper": "For using the DumpExtension",
|
||||
"symfony/web-link": "For using the WebLinkExtension",
|
||||
"symfony/yaml": "For using the YamlExtension"
|
||||
},
|
||||
"type": "symfony-bridge",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "4.4-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Symfony\\Bridge\\Twig\\": ""
|
||||
},
|
||||
"exclude-from-classmap": [
|
||||
"/Tests/"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Fabien Potencier",
|
||||
"email": "fabien@symfony.com"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "https://symfony.com/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Symfony Twig Bridge",
|
||||
"homepage": "https://symfony.com",
|
||||
"time": "2020-09-02T16:08:58+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/twig-bundle",
|
||||
"version": "v4.4.15",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/twig-bundle.git",
|
||||
"reference": "19369cd319700a925c1a736f3059894aab04c387"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/twig-bundle/zipball/19369cd319700a925c1a736f3059894aab04c387",
|
||||
"reference": "19369cd319700a925c1a736f3059894aab04c387",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=7.1.3",
|
||||
"symfony/http-foundation": "^4.3|^5.0",
|
||||
"symfony/http-kernel": "^4.4",
|
||||
"symfony/polyfill-ctype": "~1.8",
|
||||
"symfony/twig-bridge": "^4.4|^5.0",
|
||||
"twig/twig": "^1.41|^2.10|^3.0"
|
||||
},
|
||||
"conflict": {
|
||||
"symfony/dependency-injection": "<4.1",
|
||||
"symfony/framework-bundle": "<4.4",
|
||||
"symfony/translation": "<4.2"
|
||||
},
|
||||
"require-dev": {
|
||||
"doctrine/annotations": "~1.7",
|
||||
"doctrine/cache": "~1.0",
|
||||
"symfony/asset": "^3.4|^4.0|^5.0",
|
||||
"symfony/dependency-injection": "^4.2.5|^5.0",
|
||||
"symfony/expression-language": "^3.4|^4.0|^5.0",
|
||||
"symfony/finder": "^3.4|^4.0|^5.0",
|
||||
"symfony/form": "^3.4|^4.0|^5.0",
|
||||
"symfony/framework-bundle": "^4.4|^5.0",
|
||||
"symfony/routing": "^3.4|^4.0|^5.0",
|
||||
"symfony/stopwatch": "^3.4|^4.0|^5.0",
|
||||
"symfony/templating": "^3.4|^4.0|^5.0",
|
||||
"symfony/translation": "^4.2|^5.0",
|
||||
"symfony/web-link": "^3.4|^4.0|^5.0",
|
||||
"symfony/yaml": "^3.4|^4.0|^5.0"
|
||||
},
|
||||
"type": "symfony-bundle",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "4.4-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Symfony\\Bundle\\TwigBundle\\": ""
|
||||
},
|
||||
"exclude-from-classmap": [
|
||||
"/Tests/"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Fabien Potencier",
|
||||
"email": "fabien@symfony.com"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "https://symfony.com/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Symfony TwigBundle",
|
||||
"homepage": "https://symfony.com",
|
||||
"time": "2020-10-01T13:17:48+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/twig-pack",
|
||||
"version": "v1.0.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/twig-pack.git",
|
||||
"reference": "8b278ea4b61fba7c051f172aacae6d87ef4be0e0"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/twig-pack/zipball/8b278ea4b61fba7c051f172aacae6d87ef4be0e0",
|
||||
"reference": "8b278ea4b61fba7c051f172aacae6d87ef4be0e0",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": "^7.0",
|
||||
"symfony/twig-bundle": "*",
|
||||
"twig/extra-bundle": "^2.12|^3.0",
|
||||
"twig/twig": "^2.12|^3.0"
|
||||
},
|
||||
"type": "symfony-pack",
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"description": "A Twig pack for Symfony projects",
|
||||
"time": "2019-10-17T05:44:22+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/validator",
|
||||
"version": "v4.4.15",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/validator.git",
|
||||
"reference": "8da71f775b7e1ffeed784d27f526527bb8e9504b"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/validator/zipball/8da71f775b7e1ffeed784d27f526527bb8e9504b",
|
||||
"reference": "8da71f775b7e1ffeed784d27f526527bb8e9504b",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=7.1.3",
|
||||
"symfony/polyfill-ctype": "~1.8",
|
||||
"symfony/polyfill-mbstring": "~1.0",
|
||||
"symfony/translation-contracts": "^1.1|^2"
|
||||
},
|
||||
"conflict": {
|
||||
"doctrine/lexer": "<1.0.2",
|
||||
"phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0",
|
||||
"symfony/dependency-injection": "<3.4",
|
||||
"symfony/http-kernel": "<4.4",
|
||||
"symfony/intl": "<4.3",
|
||||
"symfony/translation": ">=5.0",
|
||||
"symfony/yaml": "<3.4"
|
||||
},
|
||||
"require-dev": {
|
||||
"doctrine/annotations": "~1.7",
|
||||
"doctrine/cache": "~1.0",
|
||||
"egulias/email-validator": "^2.1.10",
|
||||
"symfony/cache": "^3.4|^4.0|^5.0",
|
||||
"symfony/config": "^3.4|^4.0|^5.0",
|
||||
"symfony/dependency-injection": "^3.4|^4.0|^5.0",
|
||||
"symfony/expression-language": "^3.4|^4.0|^5.0",
|
||||
"symfony/http-client": "^4.3|^5.0",
|
||||
"symfony/http-foundation": "^4.1|^5.0",
|
||||
"symfony/http-kernel": "^4.4",
|
||||
"symfony/intl": "^4.3|^5.0",
|
||||
"symfony/mime": "^4.4|^5.0",
|
||||
"symfony/property-access": "^3.4|^4.0|^5.0",
|
||||
"symfony/property-info": "^3.4|^4.0|^5.0",
|
||||
"symfony/translation": "^4.2",
|
||||
"symfony/yaml": "^3.4|^4.0|^5.0"
|
||||
},
|
||||
"suggest": {
|
||||
"doctrine/annotations": "For using the annotation mapping. You will also need doctrine/cache.",
|
||||
"doctrine/cache": "For using the default cached annotation reader.",
|
||||
"egulias/email-validator": "Strict (RFC compliant) email validation",
|
||||
"psr/cache-implementation": "For using the mapping cache.",
|
||||
"symfony/config": "",
|
||||
"symfony/expression-language": "For using the Expression validator",
|
||||
"symfony/http-foundation": "",
|
||||
"symfony/intl": "",
|
||||
"symfony/property-access": "For accessing properties within comparison constraints",
|
||||
"symfony/property-info": "To automatically add NotNull and Type constraints",
|
||||
"symfony/translation": "For translating validation errors.",
|
||||
"symfony/yaml": ""
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "4.4-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Symfony\\Component\\Validator\\": ""
|
||||
},
|
||||
"exclude-from-classmap": [
|
||||
"/Tests/"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Fabien Potencier",
|
||||
"email": "fabien@symfony.com"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "https://symfony.com/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Symfony Validator Component",
|
||||
"homepage": "https://symfony.com",
|
||||
"time": "2020-09-27T03:36:23+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/var-dumper",
|
||||
"version": "v4.4.15",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/var-dumper.git",
|
||||
"reference": "0dc22bdf9d1197467bb04d505355180b6f20bcca"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/var-dumper/zipball/0dc22bdf9d1197467bb04d505355180b6f20bcca",
|
||||
"reference": "0dc22bdf9d1197467bb04d505355180b6f20bcca",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=7.1.3",
|
||||
"symfony/polyfill-mbstring": "~1.0",
|
||||
"symfony/polyfill-php72": "~1.5",
|
||||
"symfony/polyfill-php80": "^1.15"
|
||||
},
|
||||
"conflict": {
|
||||
"phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0",
|
||||
"symfony/console": "<3.4"
|
||||
},
|
||||
"require-dev": {
|
||||
"ext-iconv": "*",
|
||||
"symfony/console": "^3.4|^4.0|^5.0",
|
||||
"symfony/process": "^4.4|^5.0",
|
||||
"twig/twig": "^1.34|^2.4|^3.0"
|
||||
},
|
||||
"suggest": {
|
||||
"ext-iconv": "To convert non-UTF-8 strings to UTF-8 (or symfony/polyfill-iconv in case ext-iconv cannot be used).",
|
||||
"ext-intl": "To show region name in time zone dump",
|
||||
"symfony/console": "To use the ServerDumpCommand and/or the bin/var-dump-server script"
|
||||
},
|
||||
"bin": [
|
||||
"Resources/bin/var-dump-server"
|
||||
],
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "4.4-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"files": [
|
||||
"Resources/functions/dump.php"
|
||||
],
|
||||
"psr-4": {
|
||||
"Symfony\\Component\\VarDumper\\": ""
|
||||
},
|
||||
"exclude-from-classmap": [
|
||||
"/Tests/"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Nicolas Grekas",
|
||||
"email": "p@tchwork.com"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "https://symfony.com/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Symfony mechanism for exploring and dumping PHP variables",
|
||||
"homepage": "https://symfony.com",
|
||||
"keywords": [
|
||||
"debug",
|
||||
"dump"
|
||||
],
|
||||
"time": "2020-09-18T08:35:10+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/var-exporter",
|
||||
"version": "v4.4.15",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/var-exporter.git",
|
||||
"reference": "bb6c505d1492bf55534184c0a38826bda529e5e2"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/var-exporter/zipball/bb6c505d1492bf55534184c0a38826bda529e5e2",
|
||||
"reference": "bb6c505d1492bf55534184c0a38826bda529e5e2",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=7.1.3"
|
||||
},
|
||||
"require-dev": {
|
||||
"symfony/var-dumper": "^4.4.9|^5.0.9"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "4.4-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Symfony\\Component\\VarExporter\\": ""
|
||||
},
|
||||
"exclude-from-classmap": [
|
||||
"/Tests/"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Nicolas Grekas",
|
||||
"email": "p@tchwork.com"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "https://symfony.com/contributors"
|
||||
}
|
||||
],
|
||||
"description": "A blend of var_export() + serialize() to turn any serializable data structure to plain PHP code",
|
||||
"homepage": "https://symfony.com",
|
||||
"keywords": [
|
||||
"clone",
|
||||
"construct",
|
||||
"export",
|
||||
"hydrate",
|
||||
"instantiate",
|
||||
"serialize"
|
||||
],
|
||||
"time": "2020-09-07T21:10:21+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/web-link",
|
||||
"version": "v4.4.15",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/web-link.git",
|
||||
"reference": "b862a104ef3a233b6f12fdbf6b57113308af79ff"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/web-link/zipball/b862a104ef3a233b6f12fdbf6b57113308af79ff",
|
||||
"reference": "b862a104ef3a233b6f12fdbf6b57113308af79ff",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=7.1.3",
|
||||
"psr/link": "^1.0",
|
||||
"symfony/polyfill-php72": "^1.5"
|
||||
},
|
||||
"conflict": {
|
||||
"symfony/http-kernel": "<4.3"
|
||||
},
|
||||
"provide": {
|
||||
"psr/link-implementation": "1.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"symfony/http-foundation": "^4.4|^5.0",
|
||||
"symfony/http-kernel": "^4.3|^5.0"
|
||||
},
|
||||
"suggest": {
|
||||
"symfony/http-kernel": ""
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "4.4-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Symfony\\Component\\WebLink\\": ""
|
||||
},
|
||||
"exclude-from-classmap": [
|
||||
"/Tests/"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Kévin Dunglas",
|
||||
"email": "dunglas@gmail.com"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "https://symfony.com/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Symfony WebLink Component",
|
||||
"homepage": "https://symfony.com",
|
||||
"keywords": [
|
||||
"dns-prefetch",
|
||||
"http",
|
||||
"http2",
|
||||
"link",
|
||||
"performance",
|
||||
"prefetch",
|
||||
"preload",
|
||||
"prerender",
|
||||
"psr13",
|
||||
"push"
|
||||
],
|
||||
"time": "2020-05-26T09:42:42+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/web-profiler-bundle",
|
||||
"version": "v4.4.15",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/web-profiler-bundle.git",
|
||||
"reference": "f3b967b34b1db5d3285c415fbe5ce2b9299e6cd6"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/web-profiler-bundle/zipball/f3b967b34b1db5d3285c415fbe5ce2b9299e6cd6",
|
||||
"reference": "f3b967b34b1db5d3285c415fbe5ce2b9299e6cd6",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=7.1.3",
|
||||
"symfony/config": "^4.2|^5.0",
|
||||
"symfony/framework-bundle": "^4.4|^5.0",
|
||||
"symfony/http-kernel": "^4.4",
|
||||
"symfony/routing": "^4.3|^5.0",
|
||||
"symfony/twig-bundle": "^4.2|^5.0",
|
||||
"twig/twig": "^1.41|^2.10|^3.0"
|
||||
},
|
||||
"conflict": {
|
||||
"symfony/form": "<4.3",
|
||||
"symfony/messenger": "<4.2"
|
||||
},
|
||||
"require-dev": {
|
||||
"symfony/browser-kit": "^4.3|^5.0",
|
||||
"symfony/console": "^4.3|^5.0",
|
||||
"symfony/css-selector": "^3.4|^4.0|^5.0",
|
||||
"symfony/dependency-injection": "^3.4|^4.0|^5.0",
|
||||
"symfony/stopwatch": "^3.4|^4.0|^5.0"
|
||||
},
|
||||
"type": "symfony-bundle",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "4.4-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Symfony\\Bundle\\WebProfilerBundle\\": ""
|
||||
},
|
||||
"exclude-from-classmap": [
|
||||
"/Tests/"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Fabien Potencier",
|
||||
"email": "fabien@symfony.com"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "https://symfony.com/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Symfony WebProfilerBundle",
|
||||
"homepage": "https://symfony.com",
|
||||
"time": "2020-09-06T17:41:24+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/webpack-encore-bundle",
|
||||
"version": "v1.7.3",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/webpack-encore-bundle.git",
|
||||
"reference": "5c0f659eceae87271cce54bbdfb05ed8ec9007bd"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/webpack-encore-bundle/zipball/5c0f659eceae87271cce54bbdfb05ed8ec9007bd",
|
||||
"reference": "5c0f659eceae87271cce54bbdfb05ed8ec9007bd",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": "^7.1.3",
|
||||
"symfony/asset": "^3.4 || ^4.0 || ^5.0",
|
||||
"symfony/config": "^3.4 || ^4.0 || ^5.0",
|
||||
"symfony/dependency-injection": "^3.4 || ^4.0 || ^5.0",
|
||||
"symfony/http-kernel": "^3.4 || ^4.0 || ^5.0",
|
||||
"symfony/service-contracts": "^1.0 || ^2.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"symfony/framework-bundle": "^3.4 || ^4.0 || ^5.0",
|
||||
"symfony/phpunit-bridge": "^4.3.5 || ^5.0",
|
||||
"symfony/twig-bundle": "^3.4 || ^4.0 || ^5.0",
|
||||
"symfony/web-link": "^3.4 || ^4.0 || ^5.0"
|
||||
},
|
||||
"type": "symfony-bundle",
|
||||
"extra": {
|
||||
"thanks": {
|
||||
"name": "symfony/webpack-encore",
|
||||
"url": "https://github.com/symfony/webpack-encore"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Symfony\\WebpackEncoreBundle\\": "src"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "https://symfony.com/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Integration with your Symfony app & Webpack Encore!",
|
||||
"time": "2020-01-31T15:31:59+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/yaml",
|
||||
"version": "v4.4.15",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/yaml.git",
|
||||
"reference": "c7885964b1eceb70b0981556d0a9b01d2d97c8d1"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/yaml/zipball/c7885964b1eceb70b0981556d0a9b01d2d97c8d1",
|
||||
"reference": "c7885964b1eceb70b0981556d0a9b01d2d97c8d1",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=7.1.3",
|
||||
"symfony/polyfill-ctype": "~1.8"
|
||||
},
|
||||
"conflict": {
|
||||
"symfony/console": "<3.4"
|
||||
},
|
||||
"require-dev": {
|
||||
"symfony/console": "^3.4|^4.0|^5.0"
|
||||
},
|
||||
"suggest": {
|
||||
"symfony/console": "For validating YAML files using the lint command"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "4.4-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Symfony\\Component\\Yaml\\": ""
|
||||
},
|
||||
"exclude-from-classmap": [
|
||||
"/Tests/"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Fabien Potencier",
|
||||
"email": "fabien@symfony.com"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "https://symfony.com/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Symfony Yaml Component",
|
||||
"homepage": "https://symfony.com",
|
||||
"time": "2020-09-27T03:36:23+00:00"
|
||||
},
|
||||
{
|
||||
"name": "tetranz/select2entity-bundle",
|
||||
"version": "v3.1.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/tetranz/select2entity-bundle.git",
|
||||
"reference": "66f515417c609f20f49ff27d3980ffcf1b8f347b"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/tetranz/select2entity-bundle/zipball/66f515417c609f20f49ff27d3980ffcf1b8f347b",
|
||||
"reference": "66f515417c609f20f49ff27d3980ffcf1b8f347b",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"doctrine/orm": ">=2.4",
|
||||
"php": ">=7.1.3",
|
||||
"symfony/config": ">=4.0",
|
||||
"symfony/dependency-injection": ">=4.0",
|
||||
"symfony/form": ">=4.0",
|
||||
"symfony/http-kernel": ">=4.0",
|
||||
"symfony/property-access": ">=4.0",
|
||||
"symfony/routing": ">=4.0",
|
||||
"twig/twig": ">=2.9"
|
||||
},
|
||||
"type": "symfony-bundle",
|
||||
"extra": {
|
||||
"branch-alias": []
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Tetranz\\Select2EntityBundle\\": ""
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Ross Keatinge",
|
||||
"email": "tetranz@gmail.com"
|
||||
}
|
||||
],
|
||||
"description": "A Symfony bundle that integrates Select2 as a drop-in replacement for a standard entity field on a Symfony form.",
|
||||
"keywords": [
|
||||
"autocomplete",
|
||||
"select2",
|
||||
"symfony",
|
||||
"typeahead"
|
||||
],
|
||||
"time": "2020-09-28T11:42:58+00:00"
|
||||
},
|
||||
{
|
||||
"name": "twig/extra-bundle",
|
||||
"version": "v3.0.5",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/twigphp/twig-extra-bundle.git",
|
||||
"reference": "a7c5799cf742ab0827f5d32df37528ee8bf5a233"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/twigphp/twig-extra-bundle/zipball/a7c5799cf742ab0827f5d32df37528ee8bf5a233",
|
||||
"reference": "a7c5799cf742ab0827f5d32df37528ee8bf5a233",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": "^7.1.3|^8.0",
|
||||
"symfony/framework-bundle": "^4.3|^5.0",
|
||||
"symfony/twig-bundle": "^4.3|^5.0",
|
||||
"twig/twig": "^2.4|^3.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"twig/cssinliner-extra": "^2.12|^3.0",
|
||||
"twig/html-extra": "^2.12|^3.0",
|
||||
"twig/inky-extra": "^2.12|^3.0",
|
||||
"twig/intl-extra": "^2.12|^3.0",
|
||||
"twig/markdown-extra": "^2.12|^3.0"
|
||||
},
|
||||
"type": "symfony-bundle",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "3.0-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Twig\\Extra\\TwigExtraBundle\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Fabien Potencier",
|
||||
"email": "fabien@symfony.com",
|
||||
"homepage": "http://fabien.potencier.org",
|
||||
"role": "Lead Developer"
|
||||
}
|
||||
],
|
||||
"description": "A Symfony bundle for extra Twig extensions",
|
||||
"homepage": "https://twig.symfony.com",
|
||||
"keywords": [
|
||||
"bundle",
|
||||
"extra",
|
||||
"twig"
|
||||
],
|
||||
"time": "2020-05-21T09:56:39+00:00"
|
||||
},
|
||||
{
|
||||
"name": "twig/twig",
|
||||
"version": "v3.0.5",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/twigphp/Twig.git",
|
||||
"reference": "9b76b1535483cdf4edf01bb787b0217b62bd68a5"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/twigphp/Twig/zipball/9b76b1535483cdf4edf01bb787b0217b62bd68a5",
|
||||
"reference": "9b76b1535483cdf4edf01bb787b0217b62bd68a5",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=7.2.5",
|
||||
"symfony/polyfill-ctype": "^1.8",
|
||||
"symfony/polyfill-mbstring": "^1.3"
|
||||
},
|
||||
"require-dev": {
|
||||
"psr/container": "^1.0",
|
||||
"symfony/phpunit-bridge": "^4.4.9|^5.0.9"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "3.0-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Twig\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"BSD-3-Clause"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Fabien Potencier",
|
||||
"email": "fabien@symfony.com",
|
||||
"homepage": "http://fabien.potencier.org",
|
||||
"role": "Lead Developer"
|
||||
},
|
||||
{
|
||||
"name": "Twig Team",
|
||||
"role": "Contributors"
|
||||
},
|
||||
{
|
||||
"name": "Armin Ronacher",
|
||||
"email": "armin.ronacher@active-4.com",
|
||||
"role": "Project Founder"
|
||||
}
|
||||
],
|
||||
"description": "Twig, the flexible, fast, and secure template language for PHP",
|
||||
"homepage": "https://twig.symfony.com",
|
||||
"keywords": [
|
||||
"templating"
|
||||
],
|
||||
"time": "2020-08-05T15:13:19+00:00"
|
||||
},
|
||||
{
|
||||
"name": "webmozart/assert",
|
||||
"version": "1.9.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/webmozart/assert.git",
|
||||
"reference": "bafc69caeb4d49c39fd0779086c03a3738cbb389"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/webmozart/assert/zipball/bafc69caeb4d49c39fd0779086c03a3738cbb389",
|
||||
"reference": "bafc69caeb4d49c39fd0779086c03a3738cbb389",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": "^5.3.3 || ^7.0 || ^8.0",
|
||||
"symfony/polyfill-ctype": "^1.8"
|
||||
},
|
||||
"conflict": {
|
||||
"phpstan/phpstan": "<0.12.20",
|
||||
"vimeo/psalm": "<3.9.1"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "^4.8.36 || ^7.5.13"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Webmozart\\Assert\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Bernhard Schussek",
|
||||
"email": "bschussek@gmail.com"
|
||||
}
|
||||
],
|
||||
"description": "Assertions to validate method input/output with nice error messages.",
|
||||
"keywords": [
|
||||
"assert",
|
||||
"check",
|
||||
"validate"
|
||||
],
|
||||
"time": "2020-07-08T17:02:28+00:00"
|
||||
},
|
||||
{
|
||||
"name": "willdurand/jsonp-callback-validator",
|
||||
"version": "v1.1.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/willdurand/JsonpCallbackValidator.git",
|
||||
"reference": "1a7d388bb521959e612ef50c5c7b1691b097e909"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/willdurand/JsonpCallbackValidator/zipball/1a7d388bb521959e612ef50c5c7b1691b097e909",
|
||||
"reference": "1a7d388bb521959e612ef50c5c7b1691b097e909",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.3.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "~3.7"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"psr-0": {
|
||||
"JsonpCallbackValidator": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "William Durand",
|
||||
"email": "william.durand1@gmail.com",
|
||||
"homepage": "http://www.willdurand.fr"
|
||||
}
|
||||
],
|
||||
"description": "JSONP callback validator.",
|
||||
"time": "2014-01-20T22:35:06+00:00"
|
||||
},
|
||||
{
|
||||
"name": "willdurand/negotiation",
|
||||
"version": "v2.3.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/willdurand/Negotiation.git",
|
||||
"reference": "03436ededa67c6e83b9b12defac15384cb399dc9"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/willdurand/Negotiation/zipball/03436ededa67c6e83b9b12defac15384cb399dc9",
|
||||
"reference": "03436ededa67c6e83b9b12defac15384cb399dc9",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.4.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "~4.5"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "2.3-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Negotiation\\": "src/Negotiation"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "William Durand",
|
||||
"email": "will+git@drnd.me"
|
||||
}
|
||||
],
|
||||
"description": "Content Negotiation tools for PHP provided as a standalone library.",
|
||||
"homepage": "http://williamdurand.fr/Negotiation/",
|
||||
"keywords": [
|
||||
"accept",
|
||||
"content",
|
||||
"format",
|
||||
"header",
|
||||
"negotiation"
|
||||
],
|
||||
"time": "2017-05-14T17:21:12+00:00"
|
||||
},
|
||||
{
|
||||
"name": "zendframework/zend-code",
|
||||
"version": "3.4.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/zendframework/zend-code.git",
|
||||
"reference": "268040548f92c2bfcba164421c1add2ba43abaaa"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/zendframework/zend-code/zipball/268040548f92c2bfcba164421c1add2ba43abaaa",
|
||||
"reference": "268040548f92c2bfcba164421c1add2ba43abaaa",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": "^7.1",
|
||||
"zendframework/zend-eventmanager": "^2.6 || ^3.0"
|
||||
},
|
||||
"conflict": {
|
||||
"phpspec/prophecy": "<1.9.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"doctrine/annotations": "^1.7",
|
||||
"ext-phar": "*",
|
||||
"phpunit/phpunit": "^7.5.16 || ^8.4",
|
||||
"zendframework/zend-coding-standard": "^1.0",
|
||||
"zendframework/zend-stdlib": "^2.7 || ^3.0"
|
||||
},
|
||||
"suggest": {
|
||||
"doctrine/annotations": "Doctrine\\Common\\Annotations >=1.0 for annotation features",
|
||||
"zendframework/zend-stdlib": "Zend\\Stdlib component"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "3.4.x-dev",
|
||||
"dev-develop": "3.5.x-dev",
|
||||
"dev-dev-4.0": "4.0.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Zend\\Code\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"BSD-3-Clause"
|
||||
],
|
||||
"description": "Extensions to the PHP Reflection API, static code scanning, and code generation",
|
||||
"keywords": [
|
||||
"ZendFramework",
|
||||
"code",
|
||||
"zf"
|
||||
],
|
||||
"abandoned": "laminas/laminas-code",
|
||||
"time": "2019-12-10T19:21:15+00:00"
|
||||
},
|
||||
{
|
||||
"name": "zendframework/zend-eventmanager",
|
||||
"version": "3.2.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/zendframework/zend-eventmanager.git",
|
||||
"reference": "a5e2583a211f73604691586b8406ff7296a946dd"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/zendframework/zend-eventmanager/zipball/a5e2583a211f73604691586b8406ff7296a946dd",
|
||||
"reference": "a5e2583a211f73604691586b8406ff7296a946dd",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": "^5.6 || ^7.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"athletic/athletic": "^0.1",
|
||||
"container-interop/container-interop": "^1.1.0",
|
||||
"phpunit/phpunit": "^5.7.27 || ^6.5.8 || ^7.1.2",
|
||||
"zendframework/zend-coding-standard": "~1.0.0",
|
||||
"zendframework/zend-stdlib": "^2.7.3 || ^3.0"
|
||||
},
|
||||
"suggest": {
|
||||
"container-interop/container-interop": "^1.1.0, to use the lazy listeners feature",
|
||||
"zendframework/zend-stdlib": "^2.7.3 || ^3.0, to use the FilterChain feature"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "3.2-dev",
|
||||
"dev-develop": "3.3-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Zend\\EventManager\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"BSD-3-Clause"
|
||||
],
|
||||
"description": "Trigger and listen to events within a PHP application",
|
||||
"homepage": "https://github.com/zendframework/zend-eventmanager",
|
||||
"keywords": [
|
||||
"event",
|
||||
"eventmanager",
|
||||
"events",
|
||||
"zf2"
|
||||
],
|
||||
"abandoned": "laminas/laminas-eventmanager",
|
||||
"time": "2018-04-25T15:33:34+00:00"
|
||||
},
|
||||
{
|
||||
"name": "zircote/swagger-php",
|
||||
"version": "2.0.16",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/zircote/swagger-php.git",
|
||||
"reference": "a25c1bfe508e5f27d5f618648449593a79cbe406"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/zircote/swagger-php/zipball/a25c1bfe508e5f27d5f618648449593a79cbe406",
|
||||
"reference": "a25c1bfe508e5f27d5f618648449593a79cbe406",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"doctrine/annotations": "*",
|
||||
"php": ">=5.6",
|
||||
"symfony/finder": ">=2.2"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": ">=4.8.35 <=5.6",
|
||||
"squizlabs/php_codesniffer": ">=2.7",
|
||||
"zendframework/zend-form": "<2.8"
|
||||
},
|
||||
"bin": [
|
||||
"bin/swagger"
|
||||
],
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Swagger\\": "src"
|
||||
},
|
||||
"files": [
|
||||
"src/functions.php"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"Apache-2.0"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Robert Allen",
|
||||
"email": "zircote@gmail.com",
|
||||
"homepage": "http://www.zircote.com"
|
||||
},
|
||||
{
|
||||
"name": "Bob Fanger",
|
||||
"email": "bfanger@gmail.com",
|
||||
"homepage": "http://bfanger.nl"
|
||||
}
|
||||
],
|
||||
"description": "Swagger-PHP - Generate interactive documentation for your RESTful API using phpdoc annotations",
|
||||
"homepage": "https://github.com/zircote/swagger-php/",
|
||||
"keywords": [
|
||||
"api",
|
||||
"json",
|
||||
"rest",
|
||||
"service discovery"
|
||||
],
|
||||
"time": "2020-05-10T13:42:24+00:00"
|
||||
}
|
||||
],
|
||||
"packages-dev": [
|
||||
{
|
||||
"name": "composer/pcre",
|
||||
"version": "1.0.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/composer/pcre.git",
|
||||
"reference": "67a32d7d6f9f560b726ab25a061b38ff3a80c560"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/composer/pcre/zipball/67a32d7d6f9f560b726ab25a061b38ff3a80c560",
|
||||
"reference": "67a32d7d6f9f560b726ab25a061b38ff3a80c560",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": "^5.3.2 || ^7.0 || ^8.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpstan/phpstan": "^1.3",
|
||||
"phpstan/phpstan-strict-rules": "^1.1",
|
||||
"symfony/phpunit-bridge": "^4.2 || ^5"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-main": "1.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Composer\\Pcre\\": "src"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Jordi Boggiano",
|
||||
"email": "j.boggiano@seld.be",
|
||||
"homepage": "http://seld.be"
|
||||
}
|
||||
],
|
||||
"description": "PCRE wrapping library that offers type-safe preg_* replacements.",
|
||||
"keywords": [
|
||||
"PCRE",
|
||||
"preg",
|
||||
"regex",
|
||||
"regular expression"
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/composer/pcre/issues",
|
||||
"source": "https://github.com/composer/pcre/tree/1.0.1"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
"url": "https://packagist.com",
|
||||
"type": "custom"
|
||||
},
|
||||
{
|
||||
"url": "https://github.com/composer",
|
||||
"type": "github"
|
||||
},
|
||||
{
|
||||
"url": "https://tidelift.com/funding/github/packagist/composer/composer",
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2022-01-21T20:24:37+00:00"
|
||||
},
|
||||
{
|
||||
"name": "composer/semver",
|
||||
"version": "3.4.4",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/composer/semver.git",
|
||||
"reference": "198166618906cb2de69b95d7d47e5fa8aa1b2b95"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/composer/semver/zipball/198166618906cb2de69b95d7d47e5fa8aa1b2b95",
|
||||
"reference": "198166618906cb2de69b95d7d47e5fa8aa1b2b95",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": "^5.3.2 || ^7.0 || ^8.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpstan/phpstan": "^1.11",
|
||||
"symfony/phpunit-bridge": "^3 || ^7"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-main": "3.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Composer\\Semver\\": "src"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Nils Adermann",
|
||||
"email": "naderman@naderman.de",
|
||||
"homepage": "http://www.naderman.de"
|
||||
},
|
||||
{
|
||||
"name": "Jordi Boggiano",
|
||||
"email": "j.boggiano@seld.be",
|
||||
"homepage": "http://seld.be"
|
||||
},
|
||||
{
|
||||
"name": "Rob Bast",
|
||||
"email": "rob.bast@gmail.com",
|
||||
"homepage": "http://robbast.nl"
|
||||
}
|
||||
],
|
||||
"description": "Semver library that offers utilities, version constraint parsing and validation.",
|
||||
"keywords": [
|
||||
"semantic",
|
||||
"semver",
|
||||
"validation",
|
||||
"versioning"
|
||||
],
|
||||
"support": {
|
||||
"irc": "ircs://irc.libera.chat:6697/composer",
|
||||
"issues": "https://github.com/composer/semver/issues",
|
||||
"source": "https://github.com/composer/semver/tree/3.4.4"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
"url": "https://packagist.com",
|
||||
"type": "custom"
|
||||
},
|
||||
{
|
||||
"url": "https://github.com/composer",
|
||||
"type": "github"
|
||||
}
|
||||
],
|
||||
"time": "2025-08-20T19:15:30+00:00"
|
||||
},
|
||||
{
|
||||
"name": "composer/xdebug-handler",
|
||||
"version": "2.0.5",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/composer/xdebug-handler.git",
|
||||
"reference": "9e36aeed4616366d2b690bdce11f71e9178c579a"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/composer/xdebug-handler/zipball/9e36aeed4616366d2b690bdce11f71e9178c579a",
|
||||
"reference": "9e36aeed4616366d2b690bdce11f71e9178c579a",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"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": "^4.2 || ^5.0 || ^6.0"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Composer\\XdebugHandler\\": "src"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "John Stevenson",
|
||||
"email": "john-stevenson@blueyonder.co.uk"
|
||||
}
|
||||
],
|
||||
"description": "Restarts a process without Xdebug.",
|
||||
"keywords": [
|
||||
"Xdebug",
|
||||
"performance"
|
||||
],
|
||||
"support": {
|
||||
"irc": "irc://irc.freenode.org/composer",
|
||||
"issues": "https://github.com/composer/xdebug-handler/issues",
|
||||
"source": "https://github.com/composer/xdebug-handler/tree/2.0.5"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
"url": "https://packagist.com",
|
||||
"type": "custom"
|
||||
},
|
||||
{
|
||||
"url": "https://github.com/composer",
|
||||
"type": "github"
|
||||
},
|
||||
{
|
||||
"url": "https://tidelift.com/funding/github/packagist/composer/composer",
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2022-02-24T20:20:32+00:00"
|
||||
},
|
||||
{
|
||||
"name": "friendsofphp/php-cs-fixer",
|
||||
"version": "v2.19.3",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/FriendsOfPHP/PHP-CS-Fixer.git",
|
||||
"reference": "75ac86f33fab4714ea5a39a396784d83ae3b5ed8"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/FriendsOfPHP/PHP-CS-Fixer/zipball/75ac86f33fab4714ea5a39a396784d83ae3b5ed8",
|
||||
"reference": "75ac86f33fab4714ea5a39a396784d83ae3b5ed8",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"composer/semver": "^1.4 || ^2.0 || ^3.0",
|
||||
"composer/xdebug-handler": "^1.2 || ^2.0",
|
||||
"doctrine/annotations": "^1.2",
|
||||
"ext-json": "*",
|
||||
"ext-tokenizer": "*",
|
||||
"php": "^5.6 || ^7.0 || ^8.0",
|
||||
"php-cs-fixer/diff": "^1.3",
|
||||
"symfony/console": "^3.4.43 || ^4.1.6 || ^5.0",
|
||||
"symfony/event-dispatcher": "^3.0 || ^4.0 || ^5.0",
|
||||
"symfony/filesystem": "^3.0 || ^4.0 || ^5.0",
|
||||
"symfony/finder": "^3.0 || ^4.0 || ^5.0",
|
||||
"symfony/options-resolver": "^3.0 || ^4.0 || ^5.0",
|
||||
"symfony/polyfill-php70": "^1.0",
|
||||
"symfony/polyfill-php72": "^1.4",
|
||||
"symfony/process": "^3.0 || ^4.0 || ^5.0",
|
||||
"symfony/stopwatch": "^3.0 || ^4.0 || ^5.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"justinrainbow/json-schema": "^5.0",
|
||||
"keradus/cli-executor": "^1.4",
|
||||
"mikey179/vfsstream": "^1.6",
|
||||
"php-coveralls/php-coveralls": "^2.4.2",
|
||||
"php-cs-fixer/accessible-object": "^1.0",
|
||||
"php-cs-fixer/phpunit-constraint-isidenticalstring": "^1.2",
|
||||
"php-cs-fixer/phpunit-constraint-xmlmatchesxsd": "^1.2.1",
|
||||
"phpspec/prophecy-phpunit": "^1.1 || ^2.0",
|
||||
"phpunit/phpunit": "^5.7.27 || ^6.5.14 || ^7.5.20 || ^8.5.13 || ^9.5",
|
||||
"phpunitgoodpractices/polyfill": "^1.5",
|
||||
"phpunitgoodpractices/traits": "^1.9.1",
|
||||
"sanmai/phpunit-legacy-adapter": "^6.4 || ^8.2.1",
|
||||
"symfony/phpunit-bridge": "^5.2.1",
|
||||
"symfony/yaml": "^3.0 || ^4.0 || ^5.0"
|
||||
},
|
||||
"suggest": {
|
||||
"ext-dom": "For handling output formats in XML",
|
||||
"ext-mbstring": "For handling non-UTF8 characters.",
|
||||
"php-cs-fixer/phpunit-constraint-isidenticalstring": "For IsIdenticalString constraint.",
|
||||
"php-cs-fixer/phpunit-constraint-xmlmatchesxsd": "For XmlMatchesXsd constraint.",
|
||||
"symfony/polyfill-mbstring": "When enabling `ext-mbstring` is not possible."
|
||||
},
|
||||
"bin": [
|
||||
"php-cs-fixer"
|
||||
],
|
||||
"type": "application",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "2.19-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"PhpCsFixer\\": "src/"
|
||||
},
|
||||
"classmap": [
|
||||
"tests/Test/AbstractFixerTestCase.php",
|
||||
"tests/Test/AbstractIntegrationCaseFactory.php",
|
||||
"tests/Test/AbstractIntegrationTestCase.php",
|
||||
"tests/Test/Assert/AssertTokensTrait.php",
|
||||
"tests/Test/IntegrationCase.php",
|
||||
"tests/Test/IntegrationCaseFactory.php",
|
||||
"tests/Test/IntegrationCaseFactoryInterface.php",
|
||||
"tests/Test/InternalIntegrationCaseFactory.php",
|
||||
"tests/Test/IsIdenticalConstraint.php",
|
||||
"tests/Test/TokensWithObservedTransformers.php",
|
||||
"tests/TestCase.php"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Fabien Potencier",
|
||||
"email": "fabien@symfony.com"
|
||||
},
|
||||
{
|
||||
"name": "Dariusz Rumiński",
|
||||
"email": "dariusz.ruminski@gmail.com"
|
||||
}
|
||||
],
|
||||
"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/v2.19.3"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
"url": "https://github.com/keradus",
|
||||
"type": "github"
|
||||
}
|
||||
],
|
||||
"time": "2021-11-15T17:17:55+00:00"
|
||||
},
|
||||
{
|
||||
"name": "php-cs-fixer/diff",
|
||||
"version": "v1.3.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/PHP-CS-Fixer/diff.git",
|
||||
"reference": "dbd31aeb251639ac0b9e7e29405c1441907f5759"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/PHP-CS-Fixer/diff/zipball/dbd31aeb251639ac0b9e7e29405c1441907f5759",
|
||||
"reference": "dbd31aeb251639ac0b9e7e29405c1441907f5759",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": "^5.6 || ^7.0 || ^8.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "^5.7.23 || ^6.4.3 || ^7.0",
|
||||
"symfony/process": "^3.3"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"classmap": [
|
||||
"src/"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"BSD-3-Clause"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Sebastian Bergmann",
|
||||
"email": "sebastian@phpunit.de"
|
||||
},
|
||||
{
|
||||
"name": "Kore Nordmann",
|
||||
"email": "mail@kore-nordmann.de"
|
||||
},
|
||||
{
|
||||
"name": "SpacePossum"
|
||||
}
|
||||
],
|
||||
"description": "sebastian/diff v2 backport support for PHP5.6",
|
||||
"homepage": "https://github.com/PHP-CS-Fixer",
|
||||
"keywords": [
|
||||
"diff"
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/PHP-CS-Fixer/diff/issues",
|
||||
"source": "https://github.com/PHP-CS-Fixer/diff/tree/v1.3.1"
|
||||
},
|
||||
"abandoned": true,
|
||||
"time": "2020-10-14T08:39:05+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/browser-kit",
|
||||
"version": "v4.4.15",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/browser-kit.git",
|
||||
"reference": "9a1786e5020783605a30cff2ceed9aca030e8d80"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/browser-kit/zipball/9a1786e5020783605a30cff2ceed9aca030e8d80",
|
||||
"reference": "9a1786e5020783605a30cff2ceed9aca030e8d80",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=7.1.3",
|
||||
"symfony/dom-crawler": "^3.4|^4.0|^5.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"symfony/css-selector": "^3.4|^4.0|^5.0",
|
||||
"symfony/http-client": "^4.3|^5.0",
|
||||
"symfony/mime": "^4.3|^5.0",
|
||||
"symfony/process": "^3.4|^4.0|^5.0"
|
||||
},
|
||||
"suggest": {
|
||||
"symfony/process": ""
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "4.4-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Symfony\\Component\\BrowserKit\\": ""
|
||||
},
|
||||
"exclude-from-classmap": [
|
||||
"/Tests/"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Fabien Potencier",
|
||||
"email": "fabien@symfony.com"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "https://symfony.com/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Symfony BrowserKit Component",
|
||||
"homepage": "https://symfony.com",
|
||||
"time": "2020-10-02T08:38:15+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/css-selector",
|
||||
"version": "v4.4.15",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/css-selector.git",
|
||||
"reference": "bf17dc9f6ce144e41f786c32435feea4d8e11dcc"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/css-selector/zipball/bf17dc9f6ce144e41f786c32435feea4d8e11dcc",
|
||||
"reference": "bf17dc9f6ce144e41f786c32435feea4d8e11dcc",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=7.1.3"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "4.4-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Symfony\\Component\\CssSelector\\": ""
|
||||
},
|
||||
"exclude-from-classmap": [
|
||||
"/Tests/"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Fabien Potencier",
|
||||
"email": "fabien@symfony.com"
|
||||
},
|
||||
{
|
||||
"name": "Jean-François Simon",
|
||||
"email": "jeanfrancois.simon@sensiolabs.com"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "https://symfony.com/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Symfony CssSelector Component",
|
||||
"homepage": "https://symfony.com",
|
||||
"time": "2020-07-05T09:39:30+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/debug-bundle",
|
||||
"version": "v4.4.15",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/debug-bundle.git",
|
||||
"reference": "12a020d14b4f6f3a5cfb46cd83836b78be036210"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/debug-bundle/zipball/12a020d14b4f6f3a5cfb46cd83836b78be036210",
|
||||
"reference": "12a020d14b4f6f3a5cfb46cd83836b78be036210",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"ext-xml": "*",
|
||||
"php": ">=7.1.3",
|
||||
"symfony/http-kernel": "^3.4|^4.0|^5.0",
|
||||
"symfony/twig-bridge": "^3.4|^4.0|^5.0",
|
||||
"symfony/var-dumper": "^4.1.1|^5.0"
|
||||
},
|
||||
"conflict": {
|
||||
"symfony/config": "<4.2",
|
||||
"symfony/dependency-injection": "<3.4"
|
||||
},
|
||||
"require-dev": {
|
||||
"symfony/config": "^4.2|^5.0",
|
||||
"symfony/dependency-injection": "^3.4|^4.0|^5.0",
|
||||
"symfony/web-profiler-bundle": "^3.4|^4.0|^5.0"
|
||||
},
|
||||
"suggest": {
|
||||
"symfony/config": "For service container configuration",
|
||||
"symfony/dependency-injection": "For using as a service from the container"
|
||||
},
|
||||
"type": "symfony-bundle",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "4.4-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Symfony\\Bundle\\DebugBundle\\": ""
|
||||
},
|
||||
"exclude-from-classmap": [
|
||||
"/Tests/"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Fabien Potencier",
|
||||
"email": "fabien@symfony.com"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "https://symfony.com/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Symfony DebugBundle",
|
||||
"homepage": "https://symfony.com",
|
||||
"time": "2020-05-20T08:37:50+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/debug-pack",
|
||||
"version": "v1.0.8",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/debug-pack.git",
|
||||
"reference": "7310a66f9f81c9f292ff9089f0b0062386cb83fb"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/debug-pack/zipball/7310a66f9f81c9f292ff9089f0b0062386cb83fb",
|
||||
"reference": "7310a66f9f81c9f292ff9089f0b0062386cb83fb",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": "^7.0",
|
||||
"symfony/debug-bundle": "*",
|
||||
"symfony/monolog-bundle": "^3.0",
|
||||
"symfony/profiler-pack": "*",
|
||||
"symfony/var-dumper": "*"
|
||||
},
|
||||
"type": "symfony-pack",
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"description": "A debug pack for Symfony projects",
|
||||
"time": "2020-04-07T10:08:51+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/dom-crawler",
|
||||
"version": "v4.4.15",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/dom-crawler.git",
|
||||
"reference": "bdcb7633a501770a0daefbf81d2e6b28c3864f2b"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/dom-crawler/zipball/bdcb7633a501770a0daefbf81d2e6b28c3864f2b",
|
||||
"reference": "bdcb7633a501770a0daefbf81d2e6b28c3864f2b",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=7.1.3",
|
||||
"symfony/polyfill-ctype": "~1.8",
|
||||
"symfony/polyfill-mbstring": "~1.0"
|
||||
},
|
||||
"conflict": {
|
||||
"masterminds/html5": "<2.6"
|
||||
},
|
||||
"require-dev": {
|
||||
"masterminds/html5": "^2.6",
|
||||
"symfony/css-selector": "^3.4|^4.0|^5.0"
|
||||
},
|
||||
"suggest": {
|
||||
"symfony/css-selector": ""
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "4.4-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Symfony\\Component\\DomCrawler\\": ""
|
||||
},
|
||||
"exclude-from-classmap": [
|
||||
"/Tests/"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Fabien Potencier",
|
||||
"email": "fabien@symfony.com"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "https://symfony.com/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Symfony DomCrawler Component",
|
||||
"homepage": "https://symfony.com",
|
||||
"time": "2020-10-02T07:34:48+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/phpunit-bridge",
|
||||
"version": "v5.1.7",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/phpunit-bridge.git",
|
||||
"reference": "150aeb91dd9dafe13ec8416abd62e435330ca12d"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/phpunit-bridge/zipball/150aeb91dd9dafe13ec8416abd62e435330ca12d",
|
||||
"reference": "150aeb91dd9dafe13ec8416abd62e435330ca12d",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.5.9"
|
||||
},
|
||||
"conflict": {
|
||||
"phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0|<6.4,>=6.0|9.1.2"
|
||||
},
|
||||
"require-dev": {
|
||||
"symfony/deprecation-contracts": "^2.1"
|
||||
},
|
||||
"suggest": {
|
||||
"symfony/error-handler": "For tracking deprecated interfaces usages at runtime with DebugClassLoader"
|
||||
},
|
||||
"bin": [
|
||||
"bin/simple-phpunit"
|
||||
],
|
||||
"type": "symfony-bridge",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "5.1-dev"
|
||||
},
|
||||
"thanks": {
|
||||
"name": "phpunit/phpunit",
|
||||
"url": "https://github.com/sebastianbergmann/phpunit"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"files": [
|
||||
"bootstrap.php"
|
||||
],
|
||||
"psr-4": {
|
||||
"Symfony\\Bridge\\PhpUnit\\": ""
|
||||
},
|
||||
"exclude-from-classmap": [
|
||||
"/Tests/"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Nicolas Grekas",
|
||||
"email": "p@tchwork.com"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "https://symfony.com/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Symfony PHPUnit Bridge",
|
||||
"homepage": "https://symfony.com",
|
||||
"time": "2020-10-02T12:57:56+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/test-pack",
|
||||
"version": "v1.0.6",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/test-pack.git",
|
||||
"reference": "ff87e800a67d06c423389f77b8209bc9dc469def"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/test-pack/zipball/ff87e800a67d06c423389f77b8209bc9dc469def",
|
||||
"reference": "ff87e800a67d06c423389f77b8209bc9dc469def",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": "^7.0",
|
||||
"symfony/browser-kit": "*",
|
||||
"symfony/css-selector": "*",
|
||||
"symfony/phpunit-bridge": "*"
|
||||
},
|
||||
"type": "symfony-pack",
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"description": "A pack for functional and end-to-end testing within a Symfony app",
|
||||
"time": "2019-06-21T06:27:32+00:00"
|
||||
}
|
||||
],
|
||||
"aliases": [],
|
||||
"minimum-stability": "stable",
|
||||
"stability-flags": {},
|
||||
"prefer-stable": false,
|
||||
"prefer-lowest": false,
|
||||
"platform": {
|
||||
"php": "^7.1.3",
|
||||
"ext-ctype": "*",
|
||||
"ext-iconv": "*"
|
||||
},
|
||||
"platform-dev": {},
|
||||
"plugin-api-version": "2.6.0"
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
# Read the documentation: https://symfony.com/doc/master/bundles/FOSRestBundle/index.html
|
||||
fos_rest:
|
||||
param_fetcher_listener: true
|
||||
body_listener: true
|
||||
|
||||
format_listener:
|
||||
enabled: true
|
||||
rules:
|
||||
- { path: '/rest', priorities: ['json', 'xml'], fallback_format: 'html' }
|
||||
- { path: '/', fallback_format: 'html' }
|
||||
|
||||
@@ -1,9 +0,0 @@
|
||||
nelmio_api_doc:
|
||||
documentation:
|
||||
info:
|
||||
title: '%appName%'
|
||||
description:
|
||||
version: 1.0.0
|
||||
areas: # to filter documented areas
|
||||
path_patterns:
|
||||
- /rest # Accepts routes under /rest except /rest/doc
|
||||
@@ -1,15 +0,0 @@
|
||||
twig:
|
||||
default_path: '%kernel.project_dir%/templates'
|
||||
debug: '%kernel.debug%'
|
||||
strict_variables: '%kernel.debug%'
|
||||
exception_controller: null
|
||||
form_themes:
|
||||
- 'Form/fields.html.twig'
|
||||
- '@TetranzSelect2Entity/Form/fields.html.twig'
|
||||
globals:
|
||||
appAlias: '%appAlias%'
|
||||
appAuth: '%appAuth%'
|
||||
appName: '%appName%'
|
||||
appCron: '%appCron%'
|
||||
doliActive: '%doliActive%'
|
||||
doliUri: '%doliUri%'
|
||||
@@ -1,520 +0,0 @@
|
||||
#== Home ========================================================================================================
|
||||
app_home:
|
||||
path: /
|
||||
defaults: { _controller: App\Controller\HomeController:home }
|
||||
|
||||
app_home_selectmonth:
|
||||
path: /customer/selectmonth
|
||||
defaults: { _controller: App\Controller\HomeController:selectmonth }
|
||||
|
||||
app_home_selectuser:
|
||||
path: /user/selectuser
|
||||
defaults: { _controller: App\Controller\HomeController:selectuser }
|
||||
|
||||
app_home_selectproject:
|
||||
path: /user/selectproject
|
||||
defaults: { _controller: App\Controller\HomeController:selectproject }
|
||||
|
||||
app_home_selectservice:
|
||||
path: /user/selectservice
|
||||
defaults: { _controller: App\Controller\HomeController:selectservice }
|
||||
|
||||
app_home_selectdomaine:
|
||||
path: /user/selectdomaine
|
||||
defaults: { _controller: App\Controller\HomeController:selectdomaine }
|
||||
|
||||
#== Security ====================================================================================================
|
||||
app_login:
|
||||
path: /login
|
||||
defaults: { _controller: App\Controller\SecurityController:login }
|
||||
|
||||
app_logincheck:
|
||||
path: /logincheck
|
||||
defaults: { _controller: App\Controller\SecurityController:logincheck }
|
||||
|
||||
app_logout:
|
||||
path: /logout
|
||||
defaults: { _controller: App\Controller\SecurityController:logout }
|
||||
|
||||
app_logincas:
|
||||
path: /logincas
|
||||
defaults: { _controller: App\Controller\SecurityController:logincas }
|
||||
|
||||
app_logoutcas:
|
||||
path: /logoutcas
|
||||
defaults: { _controller: App\Controller\SecurityController:logoutcas }
|
||||
|
||||
|
||||
#== Crop =========================================================================================================
|
||||
app_crop01:
|
||||
path: /user/crop01
|
||||
defaults: { _controller: App\Controller\CropController:crop01 }
|
||||
|
||||
app_crop02:
|
||||
path: /user/crop02
|
||||
defaults: { _controller: App\Controller\CropController:crop02 }
|
||||
|
||||
oneup_uploader:
|
||||
resource: .
|
||||
type: uploader
|
||||
|
||||
|
||||
#== Cron =================================================================================================================
|
||||
app_cron:
|
||||
path: /admin/cron
|
||||
defaults: { _controller: App\Controller\CronController:list }
|
||||
|
||||
app_cron_ajax_list:
|
||||
path: /admin/cron/ajax/list
|
||||
defaults: { _controller: App\Controller\CronController:ajaxlist }
|
||||
|
||||
app_cron_update:
|
||||
path: /admin/cron/update/{id}
|
||||
defaults: { _controller: App\Controller\CronController:update }
|
||||
|
||||
app_cron_exec:
|
||||
path: /admin/cron/exec/{id}
|
||||
defaults: { _controller: App\Controller\CronController:exec }
|
||||
|
||||
app_cron_log:
|
||||
path: /admin/cron/log
|
||||
defaults: { _controller: App\Controller\CronController:log }
|
||||
|
||||
app_cron_getlog:
|
||||
path: /admin/cron/getlog/{id}
|
||||
defaults: { _controller: App\Controller\CronController:getlog }
|
||||
|
||||
|
||||
#== User ========================================================================================================
|
||||
app_user:
|
||||
path: /admin/user
|
||||
defaults: { _controller: App\Controller\UserController:list }
|
||||
|
||||
app_user_submit:
|
||||
path: /admin/user/submit
|
||||
defaults: { _controller: App\Controller\UserController:submit }
|
||||
|
||||
app_user_update:
|
||||
path: /admin/user/update/{id}
|
||||
defaults: { _controller: App\Controller\UserController:update }
|
||||
|
||||
app_user_delete:
|
||||
path: /admin/user/delete/{id}
|
||||
defaults: { _controller: App\Controller\UserController:delete }
|
||||
|
||||
app_user_profil:
|
||||
path: /user/profil
|
||||
defaults: { _controller: App\Controller\UserController:profil }
|
||||
|
||||
#== Service =====================================================================================================
|
||||
app_service:
|
||||
path: /admin/service
|
||||
defaults: { _controller: App\Controller\ServiceController:list }
|
||||
|
||||
app_service_submit:
|
||||
path: /admin/service/submit
|
||||
defaults: { _controller: App\Controller\ServiceController:submit }
|
||||
|
||||
app_service_update:
|
||||
path: /admin/service/update/{id}
|
||||
defaults: { _controller: App\Controller\ServiceController:update }
|
||||
|
||||
app_service_delete:
|
||||
path: /admin/service/delete/{id}
|
||||
defaults: { _controller: App\Controller\ServiceController:delete }
|
||||
|
||||
#== Domaine =====================================================================================================
|
||||
app_domaine:
|
||||
path: /admin/domaine
|
||||
defaults: { _controller: App\Controller\DomaineController:list }
|
||||
|
||||
app_domaine_submit:
|
||||
path: /admin/domaine/submit
|
||||
defaults: { _controller: App\Controller\DomaineController:submit }
|
||||
|
||||
app_domaine_update:
|
||||
path: /admin/domaine/update/{id}
|
||||
defaults: { _controller: App\Controller\DomaineController:update }
|
||||
|
||||
app_domaine_delete:
|
||||
path: /admin/domaine/delete/{id}
|
||||
defaults: { _controller: App\Controller\DomaineController:delete }
|
||||
|
||||
#== Nature =====================================================================================================
|
||||
app_nature:
|
||||
path: /admin/nature
|
||||
defaults: { _controller: App\Controller\NatureController:list }
|
||||
|
||||
app_nature_submit:
|
||||
path: /admin/nature/submit
|
||||
defaults: { _controller: App\Controller\NatureController:submit }
|
||||
|
||||
app_nature_update:
|
||||
path: /admin/nature/update/{id}
|
||||
defaults: { _controller: App\Controller\NatureController:update }
|
||||
|
||||
app_nature_delete:
|
||||
path: /admin/nature/delete/{id}
|
||||
defaults: { _controller: App\Controller\NatureController:delete }
|
||||
|
||||
#== Customer ===================================================================================================
|
||||
app_customer:
|
||||
path: /master/customer
|
||||
defaults: { _controller: App\Controller\CustomerController:list }
|
||||
|
||||
app_customer_submit:
|
||||
path: /master/customer/submit
|
||||
defaults: { _controller: App\Controller\CustomerController:submit }
|
||||
|
||||
app_customer_update:
|
||||
path: /master/customer/update/{id}
|
||||
defaults: { _controller: App\Controller\CustomerController:update }
|
||||
|
||||
app_customer_delete:
|
||||
path: /master/customer/delete/{id}
|
||||
defaults: { _controller: App\Controller\CustomerController:delete }
|
||||
|
||||
#== Job =====================================================================================================
|
||||
app_job:
|
||||
path: /admin/job
|
||||
defaults: { _controller: App\Controller\JobController:list }
|
||||
|
||||
app_job_submit:
|
||||
path: /admin/job/submit
|
||||
defaults: { _controller: App\Controller\JobController:submit }
|
||||
|
||||
app_job_update:
|
||||
path: /admin/job/update/{id}
|
||||
defaults: { _controller: App\Controller\JobController:update }
|
||||
|
||||
app_job_delete:
|
||||
path: /admin/job/delete/{id}
|
||||
defaults: { _controller: App\Controller\JobController:delete }
|
||||
|
||||
app_job_select:
|
||||
path: /user/job/select
|
||||
defaults: { _controller: App\Controller\JobController:select }
|
||||
|
||||
|
||||
#== Project ====================================================================================================
|
||||
app_project:
|
||||
path: /master/project
|
||||
defaults: { _controller: App\Controller\ProjectController:list }
|
||||
|
||||
app_project_submit:
|
||||
path: /master/project/submit
|
||||
defaults: { _controller: App\Controller\ProjectController:submit }
|
||||
|
||||
app_project_update:
|
||||
path: /master/project/update/{id}
|
||||
defaults: { _controller: App\Controller\ProjectController:update }
|
||||
|
||||
app_project_delete:
|
||||
path: /master/project/delete/{id}
|
||||
defaults: { _controller: App\Controller\ProjectController:delete }
|
||||
|
||||
app_project_activeproject:
|
||||
path: /master/project/activeproject
|
||||
defaults: { _controller: App\Controller\ProjectController:activeproject }
|
||||
|
||||
app_project_viewservice:
|
||||
path: /master/project/viewservice
|
||||
defaults: { _controller: App\Controller\ProjectController:viewservice }
|
||||
|
||||
app_project_select:
|
||||
path: /master/project/select
|
||||
defaults: { _controller: App\Controller\ProjectController:select }
|
||||
|
||||
app_project_users_add:
|
||||
path: /master/project/users/add
|
||||
defaults: { _controller: App\Controller\ProjectController:usersadd }
|
||||
|
||||
app_project_users_del:
|
||||
path: /master/project/users/del
|
||||
defaults: { _controller: App\Controller\ProjectController:usersdel }
|
||||
|
||||
app_project_users:
|
||||
path: /master/project/users/{id}
|
||||
defaults: { _controller: App\Controller\ProjectController:users }
|
||||
|
||||
#== Offer ====================================================================================================
|
||||
app_offer:
|
||||
path: /master/offer
|
||||
defaults: { _controller: App\Controller\OfferController:list }
|
||||
|
||||
app_offer_submit:
|
||||
path: /master/offer/submit
|
||||
defaults: { _controller: App\Controller\OfferController:submit }
|
||||
|
||||
app_offer_update:
|
||||
path: /master/offer/update/{id}
|
||||
defaults: { _controller: App\Controller\OfferController:update }
|
||||
|
||||
app_offer_delete:
|
||||
path: /master/offer/delete/{id}
|
||||
defaults: { _controller: App\Controller\OfferController:delete }
|
||||
|
||||
app_offer_activeproject:
|
||||
path: /master/offer/activeproject
|
||||
defaults: { _controller: App\Controller\OfferController:activeproject }
|
||||
|
||||
app_offer_activeoffer:
|
||||
path: /master/offer/activeoffer
|
||||
defaults: { _controller: App\Controller\OfferController:activeoffer }
|
||||
|
||||
app_offer_viewservice:
|
||||
path: /master/offer/viewservice
|
||||
defaults: { _controller: App\Controller\OfferController:viewservice }
|
||||
|
||||
app_offer_dolibarr:
|
||||
path: /master/offer/dolibarr
|
||||
defaults: { _controller: App\Controller\OfferController:dolibarr }
|
||||
|
||||
app_offer_getdolibarr:
|
||||
path: /master/offer/getdolibarr
|
||||
defaults: { _controller: App\Controller\OfferController:getdolibarr }
|
||||
|
||||
#== Task ====================================================================================================
|
||||
app_task:
|
||||
path: /master/task
|
||||
defaults: { _controller: App\Controller\TaskController:list }
|
||||
|
||||
app_task_submit:
|
||||
path: /master/task/submit
|
||||
defaults: { _controller: App\Controller\TaskController:submit }
|
||||
|
||||
app_task_update:
|
||||
path: /master/task/update/{id}
|
||||
defaults: { _controller: App\Controller\TaskController:update }
|
||||
|
||||
app_task_delete:
|
||||
path: /master/task/delete/{id}
|
||||
defaults: { _controller: App\Controller\TaskController:delete }
|
||||
|
||||
app_task_activeproject:
|
||||
path: /master/task/activeproject
|
||||
defaults: { _controller: App\Controller\TaskController:activeproject }
|
||||
|
||||
app_task_activetask:
|
||||
path: /master/task/activetask
|
||||
defaults: { _controller: App\Controller\TaskController:activetask }
|
||||
|
||||
app_task_viewservice:
|
||||
path: /master/task/viewservice
|
||||
defaults: { _controller: App\Controller\TaskController:viewservice }
|
||||
|
||||
#== Event ====================================================================================================
|
||||
app_event:
|
||||
path: /user/event
|
||||
defaults: { _controller: App\Controller\EventController:list }
|
||||
|
||||
app_event_load:
|
||||
path: /user/event/load/{iduser}
|
||||
defaults: { _controller: App\Controller\EventController:load }
|
||||
|
||||
app_event_submit:
|
||||
path: /user/event/submit
|
||||
defaults: { _controller: App\Controller\EventController:submit }
|
||||
|
||||
app_event_update:
|
||||
path: /user/event/update
|
||||
defaults: { _controller: App\Controller\EventController:update }
|
||||
|
||||
app_event_delete:
|
||||
path: /user/event/delete
|
||||
defaults: { _controller: App\Controller\EventController:delete }
|
||||
|
||||
#== Report ====================================================================================================
|
||||
app_synthese:
|
||||
path: /user/synthese
|
||||
defaults: { _controller: App\Controller\ReportController:synthese }
|
||||
|
||||
app_planning:
|
||||
path: /user/planning
|
||||
defaults: { _controller: App\Controller\ReportController:planning }
|
||||
|
||||
app_report:
|
||||
path: /user/report
|
||||
defaults: { _controller: App\Controller\ReportController:report }
|
||||
|
||||
app_holiday:
|
||||
path: /user/holiday
|
||||
defaults: { _controller: App\Controller\ReportController:holiday }
|
||||
|
||||
app_holiday_activeholiday:
|
||||
path: /user/holiday/activeholiday
|
||||
defaults: { _controller: App\Controller\ReportController:activeholiday }
|
||||
|
||||
#== Breakday =================================================================================================
|
||||
app_breakday:
|
||||
path: /admin/breakday
|
||||
defaults: { _controller: App\Controller\BreakdayController:list }
|
||||
|
||||
app_breakday_submit:
|
||||
path: /admin/breakday/submit
|
||||
defaults: { _controller: App\Controller\BreakdayController:submit }
|
||||
|
||||
app_breakday_update:
|
||||
path: /admin/breakday/update/{id}
|
||||
defaults: { _controller: App\Controller\BreakdayController:update }
|
||||
|
||||
app_breakday_delete:
|
||||
path: /admin/breakday/delete/{id}
|
||||
defaults: { _controller: App\Controller\BreakdayController:delete }
|
||||
|
||||
#== Validation ====================================================================================================
|
||||
app_validation:
|
||||
path: /validator/validation
|
||||
defaults: { _controller: App\Controller\ValidationController:validation }
|
||||
|
||||
app_validation_validate:
|
||||
path: /validator/validate
|
||||
defaults: { _controller: App\Controller\ValidationController:validate }
|
||||
|
||||
app_validation_devalidate:
|
||||
path: /validator/devalidate
|
||||
defaults: { _controller: App\Controller\ValidationController:devalidate }
|
||||
|
||||
#== Validationholiday ====================================================================================================
|
||||
app_validationholiday:
|
||||
path: /validator/validationholiday
|
||||
defaults: { _controller: App\Controller\ValidationController:validationholiday }
|
||||
|
||||
app_validationholiday_validate:
|
||||
path: /validator/validateholiday
|
||||
defaults: { _controller: App\Controller\ValidationController:validateholiday }
|
||||
|
||||
app_validationholiday_devalidate:
|
||||
path: /validator/devalidateholiday
|
||||
defaults: { _controller: App\Controller\ValidationController:devalidateholiday }
|
||||
|
||||
app_validationholiday_activeholiday:
|
||||
path: /validator/validateholiday/activeholiday
|
||||
defaults: { _controller: App\Controller\ValidationController:activeholiday }
|
||||
|
||||
#== Validationtimer ====================================================================================================
|
||||
app_validationtimer:
|
||||
path: /validator/validationtimer
|
||||
defaults: { _controller: App\Controller\ValidationController:validationtimer }
|
||||
|
||||
app_validationtimer_validate:
|
||||
path: /validator/validatetimer
|
||||
defaults: { _controller: App\Controller\ValidationController:validatetimer }
|
||||
|
||||
app_validationtimer_devalidate:
|
||||
path: /validator/devalidatetimer
|
||||
defaults: { _controller: App\Controller\ValidationController:devalidatetimer }
|
||||
|
||||
app_validationtimer_activetimer:
|
||||
path: /validator/validateholiday/activetimer
|
||||
defaults: { _controller: App\Controller\ValidationController:activetimer }
|
||||
|
||||
#== Timer ====================================================================================================
|
||||
app_timer:
|
||||
path: /timer
|
||||
defaults: { _controller: App\Controller\TimerController:list }
|
||||
|
||||
app_timer_view:
|
||||
path: /timer/event
|
||||
defaults: { _controller: App\Controller\TimerController:view }
|
||||
|
||||
app_timer_load:
|
||||
path: /timer/event/load
|
||||
defaults: { _controller: App\Controller\TimerController:load }
|
||||
|
||||
app_timer_submit:
|
||||
path: /timer/submit
|
||||
defaults: { _controller: App\Controller\TimerController:submit }
|
||||
|
||||
app_timer_create:
|
||||
path: /timer/create
|
||||
defaults: { _controller: App\Controller\TimerController:create }
|
||||
|
||||
app_timer_update:
|
||||
path: /timer/update/{id}
|
||||
defaults: { _controller: App\Controller\TimerController:update }
|
||||
|
||||
app_timer_delete:
|
||||
path: /timer/delete/{id}
|
||||
defaults: { _controller: App\Controller\TimerController:delete }
|
||||
|
||||
|
||||
#== Year =====================================================================================================
|
||||
app_year:
|
||||
path: /admin/year
|
||||
defaults: { _controller: App\Controller\YearController:list }
|
||||
|
||||
app_year_submit:
|
||||
path: /admin/year/submit
|
||||
defaults: { _controller: App\Controller\YearController:submit }
|
||||
|
||||
app_year_update:
|
||||
path: /admin/year/update/{id}
|
||||
defaults: { _controller: App\Controller\YearController:update }
|
||||
|
||||
app_year_delete:
|
||||
path: /admin/year/delete/{id}
|
||||
defaults: { _controller: App\Controller\YearController:delete }
|
||||
|
||||
#== Budget =====================================================================================================
|
||||
app_budget_last:
|
||||
path: /master/budget
|
||||
defaults: { _controller: App\Controller\BudgetController:list }
|
||||
|
||||
app_budget:
|
||||
path: /master/budget/{id}
|
||||
defaults: { _controller: App\Controller\BudgetController:list }
|
||||
|
||||
app_budget_update:
|
||||
path: /master/budget/update/{type}/{id}/{year}
|
||||
defaults: { _controller: App\Controller\BudgetController:update }
|
||||
|
||||
|
||||
#== Customer ======================================================================================================
|
||||
app_customer_home:
|
||||
path: /customer
|
||||
defaults: { _controller: App\Controller\HomeController:customer }
|
||||
|
||||
app_customer_report:
|
||||
path: /customer/report/{key}
|
||||
defaults: { _controller: App\Controller\ReportController:report, access: 'customer' }
|
||||
|
||||
app_customer_planning:
|
||||
path: /customer/planning/{key}
|
||||
defaults: { _controller: App\Controller\ReportController:planning, access: 'customer' }
|
||||
|
||||
#== Export ======================================================================================================
|
||||
app_export_view:
|
||||
path: /export
|
||||
defaults: { _controller: App\Controller\ExportController:view }
|
||||
|
||||
app_export_penalty_additional:
|
||||
path: /export/export_penalty_additional
|
||||
defaults: { _controller: App\Controller\ExportController:export_penalty_additional }
|
||||
|
||||
export_project_weekly:
|
||||
path: /export/export_project_weekly
|
||||
defaults: { _controller: App\Controller\ExportController:export_project_weekly }
|
||||
|
||||
export_full_worked_days:
|
||||
path: /export/export_full_worked_days
|
||||
defaults: { _controller: App\Controller\ExportController:export_full_worked_days }
|
||||
|
||||
export_offers:
|
||||
path: /export/export_offers
|
||||
defaults: { _controller: App\Controller\ExportController:export_offers }
|
||||
|
||||
export_month_charged_days:
|
||||
path: /export/export_month_charged_days
|
||||
defaults: { _controller: App\Controller\ExportController:export_month_charged_days }
|
||||
|
||||
|
||||
#== Export ======================================================================================================
|
||||
app_stat_view:
|
||||
path: /user/stat
|
||||
defaults: { _controller: App\Controller\StatController:view }
|
||||
|
||||
#== API ===========================================================================================================
|
||||
app_api:
|
||||
path: /api/{key}
|
||||
defaults: { _controller: App\Controller\ApiController:api }
|
||||
@@ -1,4 +0,0 @@
|
||||
app_swagger_ui:
|
||||
path: /rest
|
||||
methods: GET
|
||||
defaults: { _controller: nelmio_api_doc.controller.swagger_ui }
|
||||
@@ -1,86 +0,0 @@
|
||||
# This file is the entry point to configure your own services.
|
||||
# Files in the packages/ subdirectory configure your dependencies.
|
||||
|
||||
# Put parameters here that don't need to change on each machine where the app is deployed
|
||||
# https://symfony.com/doc/current/best_practices/configuration.html#application-related-configuration
|
||||
parameters:
|
||||
appAlias: '%env(resolve:APP_ALIAS)%'
|
||||
appAuth: '%env(resolve:APP_AUTH)%'
|
||||
appSecret: '%env(resolve:APP_SECRET)%'
|
||||
appName: '%env(resolve:APP_NAME)%'
|
||||
appEnv: '%env(resolve:APP_ENV)%'
|
||||
appCron: '%env(resolve:APP_CRON)%'
|
||||
appMailmethod: '%env(resolve:MAILER_METHOD)%'
|
||||
appMailnoreply: '%env(resolve:MAILER_NOREPLY)%'
|
||||
appMailnotif: '%env(resolve:MAILER_DEFAULT_NOTIF)%'
|
||||
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)%'
|
||||
officeHourStart: '%env(resolve:OFFICE_HOUR_START)%'
|
||||
officeHourEnd: '%env(resolve:OFFICE_HOUR_END)%'
|
||||
doliActive: '%env(resolve:DOLIBARR_ACTIVE)%'
|
||||
doliApiKey: '%env(resolve:DOLIBARR_API_KEY)%'
|
||||
doliUri: '%env(resolve:DOLIBARR_URI)%'
|
||||
databaseName: '%env(resolve:DATABASE_NAME)%'
|
||||
databaseUser: '%env(resolve:DATABASE_USER)%'
|
||||
databasePassword: '%env(resolve:DATABASE_PASSWORD)%'
|
||||
databaseHost: '%env(resolve:DATABASE_HOST)%'
|
||||
|
||||
services:
|
||||
# default configuration for services in *this* file
|
||||
_defaults:
|
||||
autowire: true # Automatically injects dependencies in your services.
|
||||
autoconfigure: true # Automatically registers your services as commands, event subscribers, etc.
|
||||
|
||||
# makes classes in src/ available to be used as services
|
||||
# this creates a service per class whose id is the fully-qualified class name
|
||||
App\:
|
||||
resource: '../src/*'
|
||||
exclude: '../src/{DependencyInjection,Entity,Migrations,Tests,Kernel.php}'
|
||||
|
||||
# controllers are imported separately to make sure services can be injected
|
||||
# as action arguments even if you don't extend any base controller class
|
||||
App\Controller\:
|
||||
resource: '../src/Controller'
|
||||
tags: ['controller.service_arguments']
|
||||
|
||||
# add more service definitions when explicit configuration is needed
|
||||
# please note that last definitions always *replace* previous ones
|
||||
app.password.encoder:
|
||||
public: true
|
||||
class: App\Service\passwordEncoder
|
||||
|
||||
app.ics.service:
|
||||
public: true
|
||||
class: App\Service\icsService
|
||||
|
||||
app.upload.listener:
|
||||
public: true
|
||||
class: App\Service\uploadListener
|
||||
arguments: ["@doctrine.orm.entity_manager","@security.token_storage","@session","@service_container"]
|
||||
tags:
|
||||
- { name: kernel.event_listener, event: oneup_uploader.post_persist, method: onUpload }
|
||||
|
||||
app.session.listener:
|
||||
public: true
|
||||
class: App\Service\sessionListener
|
||||
arguments: ['@service_container','@doctrine.orm.entity_manager',"@security.token_storage"]
|
||||
tags:
|
||||
- { name: kernel.event_listener, event: kernel.request, method: onDomainParse }
|
||||
|
||||
app.sendmail.transport:
|
||||
class: Swift_SendmailTransport
|
||||
public: true
|
||||
arguments: ['/usr/sbin/sendmail -t']
|
||||
|
||||
app.mail.service:
|
||||
public: true
|
||||
class: App\Service\mailService
|
||||
arguments: ["@mailer", "@twig"]
|
||||
|
||||
App\Controller\RestController:
|
||||
public: true
|
||||
5
db/gen/schedule-create-0.sql
Normal file
5
db/gen/schedule-create-0.sql
Normal file
@@ -0,0 +1,5 @@
|
||||
|
||||
|
||||
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
|
||||
CREATE DATABASE schedule DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
|
||||
|
||||
1
debian/compat
vendored
Normal file
1
debian/compat
vendored
Normal file
@@ -0,0 +1 @@
|
||||
7
|
||||
24
debian/control
vendored
Normal file
24
debian/control
vendored
Normal file
@@ -0,0 +1,24 @@
|
||||
Source: eole-schedule
|
||||
Section: web
|
||||
Priority: optional
|
||||
Maintainer: Cadoles <contact@cadoles.com>
|
||||
Build-Depends: debhelper (>= 7.0.50)
|
||||
Standards-Version: 3.8.4
|
||||
Homepage: https://forge.cadoles.com/Cadoles/schedule
|
||||
Vcs-Git: https://forge.cadoles.com/Cadoles/schedule
|
||||
Vcs-Browser: https://forge.cadoles.com/Cadoles/schedule
|
||||
|
||||
Package: schedule-sso
|
||||
Architecture: all
|
||||
Depends: ${misc:Depends}, eole-sso
|
||||
Description: Filtre SSO pour schedule "EOLE".
|
||||
|
||||
Package: eole-schedule
|
||||
Architecture: all
|
||||
Depends: ${misc:Depends}, eole-envole-dependances, schedule-sso
|
||||
Description: Eolisation de l'application schedule.
|
||||
|
||||
Package: schedule-apps
|
||||
Architecture: all
|
||||
Depends: ${misc:Depends}, envole-dependances-apps
|
||||
Description: Sources pour schedule "EOLE".
|
||||
44
debian/copyright
vendored
Normal file
44
debian/copyright
vendored
Normal file
@@ -0,0 +1,44 @@
|
||||
Format: http://dep.debian.net/deps/dep5
|
||||
Upstream-Name: {PROJECT}
|
||||
Source: {URL}
|
||||
|
||||
Files: *
|
||||
Copyright: YEAR {UPSTREAM} {AUTHOR} <{MAIL}>
|
||||
License: {UPSTREAM LICENSE}
|
||||
|
||||
Files: debian/*
|
||||
Copyright: 2012 Équipe EOLE <eole@ac-dijon.fr>
|
||||
License: CeCILL-2
|
||||
|
||||
License: {UPSTREAM LICENSE}
|
||||
{TEXT OF THE LICENSE}
|
||||
|
||||
License: CeCILL-2
|
||||
This software is governed by the CeCILL-2 license under French law and
|
||||
abiding by the rules of distribution of free software. You can use,
|
||||
modify and or redistribute the software under the terms of the CeCILL-2
|
||||
license as circulated by CEA, CNRS and INRIA at the following URL
|
||||
"http://www.cecill.info";.
|
||||
.
|
||||
As a counterpart to the access to the source code and rights to copy,
|
||||
modify and redistribute granted by the license, users are provided only
|
||||
with a limited warranty and the software's author, the holder of the
|
||||
economic rights, and the successive licensors have only limited
|
||||
liability.
|
||||
.
|
||||
In this respect, the user's attention is drawn to the risks associated
|
||||
with loading, using, modifying and/or developing or reproducing the
|
||||
software by the user in light of its specific status of free software,
|
||||
that may mean that it is complicated to manipulate, and that also
|
||||
therefore means that it is reserved for developers and experienced
|
||||
professionals having in-depth computer knowledge. Users are therefore
|
||||
encouraged to load and test the software's suitability as regards their
|
||||
requirements in conditions enabling the security of their systems and/or
|
||||
data to be ensured and, more generally, to use and operate it in the
|
||||
same conditions as regards security.
|
||||
.
|
||||
The fact that you are presently reading this means that you have had
|
||||
knowledge of the CeCILL-2 license and that you accept its terms.
|
||||
.
|
||||
On Eole systems, the complete text of the CeCILL-2 License can be found
|
||||
in '/usr/share/common-licenses/CeCILL-2-en'.
|
||||
1
debian/eole-schedule.install
vendored
Normal file
1
debian/eole-schedule.install
vendored
Normal file
@@ -0,0 +1 @@
|
||||
usr/share/eole
|
||||
3
debian/gbp.conf
vendored
Normal file
3
debian/gbp.conf
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
# Set per distribution debian tag
|
||||
[DEFAULT]
|
||||
debian-tag = debian/envole/%(version)s
|
||||
8
debian/rules
vendored
Executable file
8
debian/rules
vendored
Executable file
@@ -0,0 +1,8 @@
|
||||
#!/usr/bin/make -f
|
||||
# -*- makefile -*-
|
||||
|
||||
# Uncomment this to turn on verbose mode.
|
||||
#export DH_VERBOSE=1
|
||||
|
||||
%:
|
||||
dh $@
|
||||
1
debian/schedule-apps.install
vendored
Normal file
1
debian/schedule-apps.install
vendored
Normal file
@@ -0,0 +1 @@
|
||||
var/www/html
|
||||
1
debian/schedule-sso.install
vendored
Normal file
1
debian/schedule-sso.install
vendored
Normal file
@@ -0,0 +1 @@
|
||||
usr/share/sso
|
||||
1
debian/source/format
vendored
Normal file
1
debian/source/format
vendored
Normal file
@@ -0,0 +1 @@
|
||||
3.0 (native)
|
||||
103
dicos/25_schedule.xml
Normal file
103
dicos/25_schedule.xml
Normal file
@@ -0,0 +1,103 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<creole>
|
||||
<files>
|
||||
<file filelist='schedule' name='/etc/eole/eole-db.d/schedule-db.yml' rm='True' mkdir='True'/>
|
||||
</files>
|
||||
|
||||
<containers>
|
||||
<container name='web'>
|
||||
<!--
|
||||
<package>schedule-apps</package>
|
||||
-->
|
||||
|
||||
<!-- service de configuration apache -->
|
||||
<service method="apache" servicelist="schedule">schedule</service>
|
||||
|
||||
<!-- template -->
|
||||
<file filelist='schedule' name='/etc/apache2/sites-available/schedule' source='schedule-apache.conf' />
|
||||
<file filelist='schedule' name='/var/www/html/schedule/.env.local' source='schedule-env.local' rm='True'/>
|
||||
<file filelist='schedule' name='/var/www/html/schedule/scripts/proxy.sh' source='schedule-proxy.sh' rm='True'/>
|
||||
</container>
|
||||
</containers>
|
||||
|
||||
<variables>
|
||||
<family name='applications web'>
|
||||
<variable name='activer_schedule' type='oui/non' description='Activer schedule'>
|
||||
<value>oui</value>
|
||||
</variable>
|
||||
</family>
|
||||
|
||||
<family name='schedule' mode='expert'>
|
||||
<variable type='string' name='schedule_db_mode' description='Serveur de bases de données à utiliser'/>
|
||||
<variable type='string' name='schedule_dbserver' description='Adresse du serveur de base de données'/>
|
||||
<variable type='number' name='schedule_dbport' description="Port d'écoute du serveur de base de données"/>
|
||||
<variable type='string' name='schedule_allow_hosts' description="Hôtes authorisés à utiliser la base de données" multi='True'/>
|
||||
<variable type='string' name='schedule_dbuser' description='Utilisateur du serveur de base de données'/>
|
||||
<variable type='string' name='schedule_dbpass' description='Fichier de mot de passe du serveur'/>
|
||||
<variable type='string' name='schedule_email_url' description='URL de connexion au serveur smtp'/>
|
||||
<variable type='string' name='schedule_email_global_notif' description='Email pour envoie de notifications'/>
|
||||
<variable type='string' name="schedule_office_hour_start" description="Heure de début d'une journée">
|
||||
<value>09:00</value>
|
||||
</variable>
|
||||
<variable type='string' name="schedule_office_hour_end" description="Heure de fin d'une journée">
|
||||
<value>17:30</value>
|
||||
</variable>
|
||||
<variable type='oui/non' name="schedule_dolibarr_api" description='Activer la récupération des commandes depuis Dolibarr'>
|
||||
<value>non</value>
|
||||
</variable>
|
||||
<variable type='string' name='schedule_dolibarr_apikey' description='Api Key pour Dolibarr'/>
|
||||
<variable type='string' name='schedule_dolibarr_uri' description='Uri du serveur Dolibarr'/>
|
||||
|
||||
<variable type='oui/non' name="schedule_sentry" description='Activer Sentry'>
|
||||
<value>non</value>
|
||||
</variable>
|
||||
<variable type='string' name='schedule_sentry_dsn' description='DSN de Sentry'/>
|
||||
</family>
|
||||
</variables>
|
||||
|
||||
<constraints>
|
||||
<condition name='hidden_if_in' source='activer_apache'>
|
||||
<param>non</param>
|
||||
<target type='filelist'>schedule</target>
|
||||
<target type='servicelist'>schedule</target>
|
||||
</condition>
|
||||
|
||||
<condition name='hidden_if_in' source='activer_schedule'>
|
||||
<param>non</param>
|
||||
<target type='filelist'>schedule</target>
|
||||
<target type='servicelist'>schedule</target>
|
||||
</condition>
|
||||
|
||||
<check name='valid_enum' target='schedule_db_mode'>
|
||||
<param>['default', 'externe', 'local']</param>
|
||||
</check>
|
||||
<condition name='disabled_if_in' source='schedule_db_mode'>
|
||||
<param>local</param>
|
||||
<target type='variable'>schedule_dbserver</target>
|
||||
<target type='variable'>schedule_dbuser</target>
|
||||
<target type='variable'>schedule_dbport</target>
|
||||
<target type='variable'>schedule_dbpass</target>
|
||||
</condition>
|
||||
<condition name='disabled_if_in' source='schedule_db_mode'>
|
||||
<param>default</param>
|
||||
<target type='variable'>schedule_dbserver</target>
|
||||
<target type='variable'>schedule_dbuser</target>
|
||||
<target type='variable'>schedule_dbport</target>
|
||||
<target type='variable'>schedule_dbpass</target>
|
||||
<target type='variable'>schedule_allow_hosts</target>
|
||||
</condition>
|
||||
<condition name='disabled_if_in' source='schedule_dolibarr_api'>
|
||||
<param>non</param>
|
||||
<target type='variable'>schedule_dolibarr_apikey</target>
|
||||
<target type='variable'>schedule_dolibarr_uri</target>
|
||||
</condition>
|
||||
<condition name='disabled_if_in' source='schedule_sentry'>
|
||||
<param>non</param>
|
||||
<target type='variable'>schedule_sentry_dsn</target>
|
||||
</condition>
|
||||
</constraints>
|
||||
|
||||
<help>
|
||||
<variable name='activer_schedule'>Outils de gestion de Planning</variable>
|
||||
</help>
|
||||
</creole>
|
||||
@@ -1,41 +0,0 @@
|
||||
services:
|
||||
mariadb:
|
||||
image: mariadb
|
||||
container_name: schedule-mariadb
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "3306:3306"
|
||||
environment:
|
||||
MYSQL_ROOT_PASSWORD: changeme
|
||||
MYSQL_DATABASE: schedule
|
||||
MYSQL_USER: user
|
||||
MYSQL_PASSWORD: changeme
|
||||
volumes:
|
||||
- mariadb-data:/var/lib/mysql
|
||||
|
||||
adminer:
|
||||
image: adminer
|
||||
container_name: schedule-adminer
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- 6081:8080
|
||||
|
||||
schedule:
|
||||
build:
|
||||
context: .
|
||||
dockerfile: ./misc/docker/Dockerfile
|
||||
container_name: schedule
|
||||
image: reg.cadoles.com/envole/schedule
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- ./src:/app/src:delegated
|
||||
- ./templates:/app/templates:delegated
|
||||
- ./config:/app/config:delegated
|
||||
- ./public/uploads:/app/public/uploads:delegated
|
||||
- ./uploads:/app/uploads:delegated
|
||||
- ./misc:/app/misc:delegated
|
||||
ports:
|
||||
- "8000:80"
|
||||
|
||||
volumes:
|
||||
mariadb-data:
|
||||
231
eole.mk
Normal file
231
eole.mk
Normal file
@@ -0,0 +1,231 @@
|
||||
#
|
||||
# NE PAS EDITER CE FICHIER
|
||||
#
|
||||
# Utiliser <appli>.mk à inclure à la fin de Makefile
|
||||
|
||||
#################
|
||||
# Sanity checks #
|
||||
#################
|
||||
|
||||
ifeq (, $(DESTDIR))
|
||||
$(warning $$(DESTDIR) is empty, installation will be done in /)
|
||||
endif
|
||||
|
||||
ifeq (, $(filter-out XXX-XXX, $(strip $(SOURCE))))
|
||||
$(error $$(SOURCE) variable has incorrect value '$(SOURCE)')
|
||||
endif
|
||||
|
||||
ifeq (, $(filter-out 2.X, $(strip $(EOLE_VERSION))))
|
||||
$(error $$(EOLE_VERSION) variable has incorrect value '$(EOLE_VERSION)')
|
||||
endif
|
||||
|
||||
ifeq (, $(filter-out 2.X.Y, $(strip $(EOLE_RELEASE))))
|
||||
$(error $$(EOLE_RELEASE) variable has incorrect value '$(EOLE_RELEASE)')
|
||||
endif
|
||||
|
||||
#########################
|
||||
# Variables definitions #
|
||||
#########################
|
||||
|
||||
INSTALL := install
|
||||
INSTALL_DATA := install -m 644
|
||||
INSTALL_PROGRAM := install -m 755
|
||||
INSTALL_DIRECTORY := install -m 755 -d
|
||||
INSTALL_RECURSIVE := cp -dr --no-preserve=ownership
|
||||
|
||||
# Standard path
|
||||
bin_PROG_DIR := $(DESTDIR)/usr/bin
|
||||
sbin_PROG_DIR := $(DESTDIR)/usr/sbin
|
||||
man8_DATA_DIR := $(DESTDIR)/usr/share/man/fr.UTF-8/man8
|
||||
|
||||
# Base
|
||||
eole_DIR := $(DESTDIR)/usr/share/eole
|
||||
|
||||
ifeq ($(strip $(EOLE_VERSION)), 2.3)
|
||||
diagnose_PROG_DIR := $(eole_DIR)/diagnose/module
|
||||
else
|
||||
diagnose_PROG_DIR := $(eole_DIR)/diagnose/
|
||||
endif
|
||||
|
||||
# Creole
|
||||
creole_DIR := $(eole_DIR)/creole
|
||||
dicos_DATA_DIR := $(creole_DIR)/dicos
|
||||
tmpl_DATA_DIR := $(creole_DIR)/distrib
|
||||
preservice_PROG_DIR := $(eole_DIR)/preservice
|
||||
pretemplate_PROG_DIR := $(eole_DIR)/pretemplate
|
||||
posttemplate_PROG_DIR := $(eole_DIR)/posttemplate
|
||||
postservice_PROG_DIR := $(eole_DIR)/postservice
|
||||
ifeq ($(strip $(EOLE_VERSION)), 2.3)
|
||||
firewall_DATA_DIR := $(eole_DIR)/firewall
|
||||
endif
|
||||
bacula_restore_DATA_DIR := $(eole_DIR)/bacula/restore
|
||||
bareos_restore_DATA_DIR := $(eole_DIR)/bareos/restore
|
||||
bacula_fichier_DATA_DIR := $(DESTDIR)/etc/bacula/baculafichiers.d
|
||||
bareos_fichier_DATA_DIR := $(DESTDIR)/etc/bareos/bareosfichiers.d
|
||||
ifeq ($(strip $(EOLE_VERSION)), 2.3)
|
||||
schedule_pre_PROG_DIR := $(eole_DIR)/schedule/pre
|
||||
schedule_post_PROG_DIR := $(eole_DIR)/schedule/post
|
||||
else
|
||||
schedule_scripts_PROG_DIR := $(eole_DIR)/schedule/scripts
|
||||
endif
|
||||
extra_REC_DIR := $(creole_DIR)/extra
|
||||
|
||||
# Zéphir
|
||||
zephir_DATA_DIR := $(DESTDIR)/usr/share/zephir
|
||||
zephir_configs_DATA_DIR := $(zephir_DATA_DIR)/monitor/configs
|
||||
zephir_srv_DATA_DIR := $(zephir_configs_DATA_DIR)/services
|
||||
zephir_scripts_PROG_DIR := $(zephir_DATA_DIR)/scripts
|
||||
|
||||
# SSO
|
||||
sso_DATA_DIR := $(DESTDIR)/usr/share/sso
|
||||
sso_filtres_DATA_DIR := $(sso_DATA_DIR)/app_filters
|
||||
sso_user-info_DATA_DIR := $(sso_DATA_DIR)/user_infos
|
||||
|
||||
# EAD
|
||||
ead_DATA_DIR := $(DESTDIR)/usr/share/ead2/backend/config
|
||||
ead_actions_DATA_DIR := $(ead_DATA_DIR)/actions
|
||||
ead_perms_DATA_DIR := $(ead_DATA_DIR)/perms
|
||||
ead_roles_DATA_DIR := $(ead_DATA_DIR)/roles
|
||||
|
||||
# Program libraries goes under /usr/lib/<PROGRAM>/
|
||||
lib_$(SOURCE)_DATA_DIR := $(DESTDIR)/usr/lib/$(SOURCE)
|
||||
|
||||
# Scripts Eole
|
||||
scripts_PROG_DIR := $(eole_DIR)/sbin
|
||||
lib_eole_DATA_DIR := $(DESTDIR)/usr/lib/eole
|
||||
|
||||
# LDAP
|
||||
ldap_passwords_DATA_DIR := $(eole_DIR)/annuaire/password_files
|
||||
|
||||
# LXC
|
||||
lxc_DATA_DIR := $(eole_DIR)/lxc
|
||||
lxc_fstab_DATA_DIR := $(lxc_DATA_DIR)/fstab
|
||||
lxc_hosts_DATA_DIR := $(lxc_DATA_DIR)/hosts
|
||||
|
||||
# SQL
|
||||
sql_DATA_DIR := $(eole_DIR)/mysql/$(SOURCE)
|
||||
sql_gen_DATA_DIR := $(sql_DATA_DIR)/gen
|
||||
sql_updates_DATA_DIR := $(sql_DATA_DIR)/updates
|
||||
|
||||
sql_conf_gen_DATA_DIR := $(eole_DIR)/applications/gen
|
||||
sql_conf_passwords_DATA_DIR := $(eole_DIR)/applications/passwords
|
||||
sql_conf_updates_DATA_DIR := $(eole_DIR)/applications/updates/$(SOURCE)
|
||||
|
||||
# EoleDB sql directory
|
||||
db_DIR := $(eole_DIR)/db
|
||||
db_gen_DATA_DIR := $(eole_DIR)/db/$(SOURCE)/gen
|
||||
db_updates_DATA_DIR := $(eole_DIR)/db/$(SOURCE)/updates
|
||||
|
||||
# Certifs
|
||||
certs_DATA_DIR := $(eole_DIR)/certs
|
||||
|
||||
# Logrotate
|
||||
logrotate_DATA_DIR := $(DESTDIR)/etc/logrotate.d
|
||||
|
||||
# Cron
|
||||
cron_PROG_DIR := $(DESTDIR)/etc/cron.daily
|
||||
|
||||
# Python modules
|
||||
ifneq ($(DESTDIR),)
|
||||
PYTHON_OPTS := --root $(DESTDIR)
|
||||
endif
|
||||
|
||||
# Translation
|
||||
TRANSLATION_SRC := translation
|
||||
TRANSLATION_DEST := $(DESTDIR)/usr/share/locale
|
||||
PO_FILES = $(wildcard $(TRANSLATION_SRC)/*/*.po)
|
||||
MO_FOLDERS = $(addprefix $(TRANSLATION_DEST), $(addsuffix LC_MESSAGES,$(subst $(TRANSLATION_SRC),,$(dir $(PO_FILES)))))
|
||||
|
||||
#############################################
|
||||
# Common directories and files installation #
|
||||
#############################################
|
||||
|
||||
all:
|
||||
|
||||
$(MO_FOLDERS):
|
||||
$(INSTALL_DIRECTORY) $@
|
||||
|
||||
$(PO_FILES): $(MO_FOLDERS)
|
||||
msgfmt -o $(TRANSLATION_DEST)$(subst $(TRANSLATION_SRC),,$(addsuffix LC_MESSAGES,$(dir $@)))/$(notdir $(@:.po=.mo)) $@
|
||||
|
||||
install-lang: $(PO_FILES)
|
||||
|
||||
install:: install-dirs install-files install-lang
|
||||
|
||||
# $1 = command to run
|
||||
# $2 = source directory
|
||||
# $3 = destination directory
|
||||
define fc_install_file
|
||||
if [ -d $2 ]; then \
|
||||
for file in `ls -1 $2/`; do \
|
||||
$1 $2/$$file $3 || true; \
|
||||
done; \
|
||||
fi
|
||||
endef
|
||||
|
||||
##
|
||||
## Directory creation
|
||||
##
|
||||
|
||||
# use % to catch local name in $*
|
||||
# data, program and recursive directory require a corresponding
|
||||
# directory in local sources
|
||||
%_DATA_DIR %_PROG_DIR %REC_DIR:
|
||||
test ! -d $(subst _,/,$*) || $(INSTALL_DIRECTORY) $($@)
|
||||
|
||||
# Create the directory referenced by the variable without a local one.
|
||||
%_DIR:
|
||||
@: # do nothing
|
||||
|
||||
##
|
||||
## Install files present directly under data, program and recursive directories
|
||||
##
|
||||
|
||||
# $* : name of variable
|
||||
# $($*): value of variable
|
||||
%-instdata:
|
||||
$(call fc_install_file, $(INSTALL_DATA), $(subst _,/,$(subst _DATA_DIR,,$*)), $($*))
|
||||
|
||||
%-instprog:
|
||||
$(call fc_install_file, $(INSTALL_PROGRAM), $(subst _,/,$(subst _PROG_DIR,,$*)), $($*))
|
||||
|
||||
%-instrec:
|
||||
$(call fc_install_file, $(INSTALL_RECURSIVE), $(subst _,/,$(subst _REC_DIR,,$*)), $($*))
|
||||
|
||||
|
||||
# Use second expansion as variables may be created in included
|
||||
# Makefiles
|
||||
.SECONDEXPANSION:
|
||||
|
||||
# List of all directories
|
||||
installdirs_LIST = $(foreach V, $(filter %_DIR, $(.VARIABLES)), \
|
||||
$(if $(filter file, $(origin $(V))), \
|
||||
$(V)))
|
||||
# List of data directories
|
||||
installdata_LIST = $(filter %_DATA_DIR, $(installdirs_LIST))
|
||||
# List of program directories
|
||||
installprog_LIST = $(filter %_PROG_DIR, $(installdirs_LIST))
|
||||
# List of recursive directories
|
||||
installrec_LIST = $(filter %_REC_DIR, $(installdirs_LIST))
|
||||
|
||||
# Expand directories to create as dependency
|
||||
# Use double-colon to permit user to define additionnal install-dirs
|
||||
install-dirs:: $$(installdirs_LIST)
|
||||
|
||||
# Expand files to install as dependency
|
||||
# Use double-colon to permit user to define additionnal install-files
|
||||
install-files:: install-data-files install-prog-files install-rec-dirs
|
||||
|
||||
install-data-files: $$(patsubst %,%-instdata,$$(installdata_LIST))
|
||||
|
||||
install-prog-files: $$(patsubst %,%-instprog,$$(installprog_LIST))
|
||||
|
||||
install-rec-dirs: $$(patsubst %,%-instrec,$$(installrec_LIST))
|
||||
|
||||
# Installation of python modules
|
||||
ifeq ($(shell test -f setup.py && echo 0), 0)
|
||||
install-files::
|
||||
python setup.py install --no-compile --install-layout=deb $(PYTHON_OPTS)
|
||||
endif
|
||||
|
||||
.PHONY: install install-dirs install-files install-data-files install-prog-files install-rec-dirs
|
||||
@@ -1,25 +0,0 @@
|
||||
ARG NODE_VERSION=20.12.2
|
||||
FROM node:${NODE_VERSION}-alpine AS node
|
||||
|
||||
FROM reg.cadoles.com/envole/nineapache:7.4
|
||||
COPY ./misc/docker/apache.conf /etc/apache2/conf.d/zapp.conf
|
||||
|
||||
COPY --from=node /usr/lib /usr/lib
|
||||
COPY --from=node /usr/local/lib /usr/local/lib
|
||||
COPY --from=node /usr/local/include /usr/local/include
|
||||
COPY --from=node /usr/local/bin /usr/local/bin
|
||||
|
||||
RUN npm install -g yarn --force
|
||||
RUN composer self-update --1
|
||||
|
||||
RUN echo "* * * * * /app/bin/console app:Cron --env=prod" >> /var/spool/cron/crontabs/root
|
||||
|
||||
WORKDIR /app
|
||||
COPY . .
|
||||
|
||||
RUN export NODE_OPTIONS=--openssl-legacy-provider && yarn install
|
||||
RUN export NODE_OPTIONS=--openssl-legacy-provider && yarn build
|
||||
RUN rm -rf node_modules
|
||||
RUN composer install
|
||||
|
||||
CMD /app/misc/script/reconfigure.sh && /etc/apache2/apache2.sh
|
||||
@@ -1,19 +0,0 @@
|
||||
LoadModule rewrite_module modules/mod_rewrite.so
|
||||
ServerName nineapache.local
|
||||
DocumentRoot "/app/public"
|
||||
Alias /schedule /app/public
|
||||
<Directory "/app/public">
|
||||
Options Indexes FollowSymLinks
|
||||
AllowOverride All
|
||||
Require all granted
|
||||
|
||||
RewriteEngine On
|
||||
RewriteCond %{REQUEST_URI}::$0 ^(/.+)/(.*)::\2$
|
||||
RewriteRule .* - [E=BASE:%1]
|
||||
RewriteCond %{HTTP:Authorization} .+
|
||||
RewriteRule ^ - [E=HTTP_AUTHORIZATION:%0]
|
||||
RewriteCond %{ENV:REDIRECT_STATUS} =""
|
||||
RewriteRule ^index\.php(?:/(.*)|$) %{ENV:BASE}/$1 [R=301,L]
|
||||
RewriteCond %{REQUEST_FILENAME} !-f
|
||||
RewriteRule ^ %{ENV:BASE}/index.php [L]
|
||||
</Directory>
|
||||
@@ -1,28 +0,0 @@
|
||||
#!/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)
|
||||
|
||||
mkdir -p public/uploads/avatar
|
||||
cp public/images/admin.jpg public/uploads/avatar/
|
||||
cp public/images/system.jpg public/uploads/avatar/
|
||||
cp public/images/noavatar.png public/uploads/avatar/
|
||||
chown -R apache:apache public/uploads
|
||||
|
||||
mkdir -p uploads
|
||||
chown -R apache:apache public/uploads
|
||||
|
||||
bin/console d:s:u --force --complete
|
||||
php bin/console app:AppInit --env=prod
|
||||
php bin/console app:CronInit --env=prod
|
||||
php bin/console app:Script --env=prod
|
||||
|
||||
crond -b
|
||||
|
||||
echo
|
||||
|
||||
exec $@
|
||||
37
package.json
37
package.json
@@ -1,37 +0,0 @@
|
||||
{
|
||||
"devDependencies": {
|
||||
"@symfony/webpack-encore": "^0.28.2",
|
||||
"core-js": "^3.14.0",
|
||||
"regenerator-runtime": "^0.13.2",
|
||||
"webpack-notifier": "^1.6.0"
|
||||
},
|
||||
"license": "UNLICENSED",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"dev-server": "encore dev-server",
|
||||
"dev": "encore dev",
|
||||
"watch": "encore dev --watch",
|
||||
"build": "encore production --progress"
|
||||
},
|
||||
"dependencies": {
|
||||
"@fortawesome/fontawesome-free": "^5.12.1",
|
||||
"@fullcalendar/core": "^4.4.0",
|
||||
"@fullcalendar/daygrid": "^4.4.0",
|
||||
"@fullcalendar/interaction": "^4.4.0",
|
||||
"@ttskch/select2-bootstrap4-theme": "^1.3.2",
|
||||
"bootstrap": "^4.4.1",
|
||||
"ckeditor": "^4.12.1",
|
||||
"crop-select-js": "^1.0.1",
|
||||
"datatables.net-bs4": "^1.10.25",
|
||||
"dropzone": "^5.7.0",
|
||||
"html2canvas": "^1.0.0-rc.5",
|
||||
"jquery": "^3.4.1",
|
||||
"jspdf": "^1.5.3",
|
||||
"moment": "^2.24.0",
|
||||
"popper.js": "^1.16.1",
|
||||
"select2": "^4.0.13",
|
||||
"spectrum-colorpicker2": "^2.0.0",
|
||||
"tempusdominus-bootstrap-4": "^5.1.2",
|
||||
"tempusdominus-core": "^5.0.3"
|
||||
}
|
||||
}
|
||||
2
postservice/25-schedule
Executable file
2
postservice/25-schedule
Executable file
@@ -0,0 +1,2 @@
|
||||
#!/bin/bash
|
||||
CreoleRun "/var/www/html/schedule/scripts/reconfigure.sh" web
|
||||
3
pretemplate/25-schedule
Executable file
3
pretemplate/25-schedule
Executable file
@@ -0,0 +1,3 @@
|
||||
#!/bin/bash
|
||||
CreoleRun "/var/www/html/schedule/scripts/genkey.sh" web
|
||||
exit 0
|
||||
@@ -1,77 +0,0 @@
|
||||
# In all environments, the following files are loaded if they exist,
|
||||
# the latter taking precedence over the former:
|
||||
#
|
||||
# * .env contains default values for the environment variables needed by the app
|
||||
# * .env.local uncommitted file with local overrides
|
||||
# * .env.$APP_ENV committed environment-specific defaults
|
||||
# * .env.$APP_ENV.local uncommitted environment-specific overrides
|
||||
#
|
||||
# Real environment variables win over .env files.
|
||||
#
|
||||
# DO NOT DEFINE PRODUCTION SECRETS IN THIS FILE NOR IN ANY OTHER COMMITTED FILES.
|
||||
#
|
||||
# Run "composer dump-env prod" to compile .env files for production use (requires symfony/flex >=1.2).
|
||||
# https://symfony.com/doc/current/best_practices.html#use-environment-variables-for-infrastructure-configuration
|
||||
|
||||
###> symfony/framework-bundle ###
|
||||
APP_SECRET=52c1cb88ee822cd2643abe29e16a68a6
|
||||
#TRUSTED_PROXIES=127.0.0.0/8,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16
|
||||
#TRUSTED_HOSTS='^(localhost|example\.com)$'
|
||||
###< symfony/framework-bundle ###
|
||||
|
||||
###> symfony/mailer ###
|
||||
# MAILER_DSN=smtp://localhost
|
||||
###< symfony/mailer ###
|
||||
|
||||
###< doctrine/doctrine-bundle ###
|
||||
|
||||
# Basic
|
||||
APP_ALIAS=schedule
|
||||
APP_AUTH=MYSQL
|
||||
APP_NAME=Schedule
|
||||
APP_ENV=PROD
|
||||
APP_CRON=true
|
||||
|
||||
# Office hours
|
||||
OFFICE_HOUR_START=09:00
|
||||
OFFICE_HOUR_END=17:30
|
||||
|
||||
# MAIL sendmail / smtp
|
||||
MAILER_METHOD=sendmail
|
||||
MAILER_URL=
|
||||
MAILER_NOREPLY=noreply@noreply.fr
|
||||
MAILER_DEFAULT_NOTIF=
|
||||
|
||||
# BDD
|
||||
DATABASE_NAME=
|
||||
DATABASE_USER=
|
||||
DATABASE_PASSWORD=
|
||||
DATABASE_HOST=
|
||||
|
||||
# If APP_AUTH = CAS
|
||||
CAS_HOST=
|
||||
CAS_PORT=
|
||||
CAS_PATH=
|
||||
CAS_USERNAME=username
|
||||
CAS_EMAIL=email
|
||||
CAS_LASTNAME=lastname
|
||||
CAS_FIRSTNAME=firstname
|
||||
|
||||
## Sentry DSN
|
||||
SENTRY_DSN=
|
||||
|
||||
# Dolibar
|
||||
DOLIBARR_ACTIVE=false
|
||||
DOLIBARR_API_KEY=
|
||||
DOLIBARR_URI=
|
||||
|
||||
###> sentry/sentry-symfony ###
|
||||
SENTRY_DSN=
|
||||
###< sentry/sentry-symfony ###
|
||||
|
||||
###> symfony/swiftmailer-bundle ###
|
||||
# For Gmail as a transport, use: "gmail://username:password@localhost"
|
||||
# For a generic SMTP server, use: "smtp://localhost:25?encryption=&auth_mode="
|
||||
# Delivery is disabled by default via "null://localhost"
|
||||
MAILER_URL=null://localhost
|
||||
###< symfony/swiftmailer-bundle ###
|
||||
@@ -1,13 +0,0 @@
|
||||
<?php
|
||||
|
||||
$requiredVersion = 'version 1'; // La version interdite
|
||||
|
||||
$composerVersion = trim(shell_exec('COMPOSER_ALLOW_SUPERUSER=1 composer --version --no-ansi'));
|
||||
echo $composerVersion."\n";
|
||||
|
||||
if (stripos($composerVersion,$requiredVersion)===false ) {
|
||||
echo "La version de Composer $requiredVersion n'est pas autorisée" . PHP_EOL;
|
||||
echo "Veuillez mettre à jour Composer avec 'composer self-update --1'." . PHP_EOL;
|
||||
echo "Ou executez le scripts/reconfigure.sh" . PHP_EOL;
|
||||
exit(1); // Quitte avec un code d'erreur
|
||||
}
|
||||
@@ -1,2 +0,0 @@
|
||||
#!/bin/bash
|
||||
# Si besoin export des valeurs de HTTP_PROXY et HTTPS_PROXY
|
||||
@@ -1,22 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
cd /var/www/html/schedule
|
||||
|
||||
# Déclaration d'un proxy
|
||||
. scripts/proxy.sh
|
||||
|
||||
# Mise en place du fichier d'environnement model
|
||||
yes 2>/dev/null | cp /var/www/html/schedule/scripts/.env.model $DIR/.env
|
||||
|
||||
# Installation des dépendances composer
|
||||
echo COMPOSER = Install
|
||||
export COMPOSER_ALLOW_SUPERUSER=1
|
||||
composer self-update --1 --quiet
|
||||
composer install --quiet
|
||||
|
||||
php bin/console app:AppInit --env=prod
|
||||
php bin/console app:CronInit --env=prod
|
||||
php bin/console app:Script --env=prod
|
||||
|
||||
# Permissions
|
||||
./scripts/perm.sh www-data
|
||||
@@ -1,145 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Command;
|
||||
use Symfony\Component\Console\Command\Command;
|
||||
use Symfony\Component\Console\Input\InputInterface;
|
||||
use Symfony\Component\Console\Input\InputArgument;
|
||||
use Symfony\Component\Console\Output\OutputInterface;
|
||||
use Symfony\Component\DependencyInjection\ContainerInterface;
|
||||
use Doctrine\ORM\EntityManagerInterface;
|
||||
use Symfony\Component\Filesystem\Filesystem;
|
||||
use Symfony\Component\Console\Input\ArrayInput;
|
||||
|
||||
use Doctrine\ORM\Mapping\ClassMetadata;
|
||||
use Doctrine\ORM\Id\AssignedGenerator;
|
||||
|
||||
use App\Entity\User;
|
||||
use App\Entity\Nature;
|
||||
use App\Entity\Domaine;
|
||||
|
||||
|
||||
|
||||
class AppInitCommand extends Command
|
||||
{
|
||||
private $container;
|
||||
private $em;
|
||||
private $output;
|
||||
private $filesystem;
|
||||
private $rootlog;
|
||||
|
||||
public function __construct(ContainerInterface $container,EntityManagerInterface $em)
|
||||
{
|
||||
parent::__construct();
|
||||
$this->container = $container;
|
||||
$this->em = $em;
|
||||
}
|
||||
|
||||
|
||||
protected function configure()
|
||||
{
|
||||
$this
|
||||
->setName('app:AppInit')
|
||||
->setDescription('Init Data for App')
|
||||
->setHelp('This command Init Data App')
|
||||
;
|
||||
}
|
||||
|
||||
protected function execute(InputInterface $input, OutputInterface $output)
|
||||
{
|
||||
$this->output = $output;
|
||||
$this->filesystem = new Filesystem();
|
||||
$this->rootlog = $this->container->get('kernel')->getProjectDir()."/../var/log/";
|
||||
|
||||
$output->writeln('APP = Default Data');
|
||||
|
||||
// Création des natures par défaut
|
||||
$this->insertNature(-200,"Congés",true);
|
||||
$this->insertNature(-190,"Temps Partiel",false);
|
||||
$this->insertNature(-100,"Non Travaillé",false);
|
||||
$this->insertNature(-90,"Non Facturable",false);
|
||||
$this->insertNature(-80,"Prestation",false);
|
||||
|
||||
// Création domaine par défaut
|
||||
$this->insertDomaine(-100,"Administratif","Administratif");
|
||||
|
||||
// Création du compte admin si non existant
|
||||
$this->insertUser("admin","admin");
|
||||
|
||||
$output->writeln('');
|
||||
|
||||
$this->em->flush();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
protected function insertNature($id,$name,$isvacation) {
|
||||
$metadata = $this->em->getClassMetaData('App:Nature');
|
||||
$metadata->setIdGeneratorType(ClassMetadata::GENERATOR_TYPE_NONE);
|
||||
$metadata->setIdGenerator(new AssignedGenerator());
|
||||
|
||||
$entity = $this->em->getRepository('App:Nature')->find($id);
|
||||
if(!$entity) {
|
||||
$entity = new Nature;
|
||||
$entity->setId($id);
|
||||
$entity->setName($name);
|
||||
$entity->setIsvacation($isvacation);
|
||||
$this->em->persist($entity);
|
||||
$this->em->flush();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
protected function insertDomaine($id,$category,$name) {
|
||||
$metadata = $this->em->getClassMetaData('App:Domaine');
|
||||
$metadata->setIdGeneratorType(ClassMetadata::GENERATOR_TYPE_NONE);
|
||||
$metadata->setIdGenerator(new AssignedGenerator());
|
||||
|
||||
$entity = $this->em->getRepository('App:Domaine')->find($id);
|
||||
if(!$entity) {
|
||||
$entity = new Domaine;
|
||||
$entity->setId($id);
|
||||
$entity->setName($name);
|
||||
$entity->setCategory($category);
|
||||
$this->em->persist($entity);
|
||||
$this->em->flush();
|
||||
}
|
||||
}
|
||||
|
||||
protected function insertUser() {
|
||||
$metadata = $this->em->getClassMetaData('App:User');
|
||||
$metadata->setIdGeneratorType(ClassMetadata::GENERATOR_TYPE_NONE);
|
||||
$metadata->setIdGenerator(new AssignedGenerator());
|
||||
|
||||
|
||||
|
||||
// Job Récupératoin la table de référence des articles
|
||||
// Toute les 1mn
|
||||
$entity = $this->em->getRepository('App:User')->findOneBy(["username"=>"admin"]);
|
||||
if(!$entity) {
|
||||
$this->writelnred('Création du compte admin par défaut avec password admin - Veuillez modifier votre password admin après connexion');
|
||||
$entity = new User;
|
||||
$entity->setId(0);
|
||||
$entity->setUsername("admin");
|
||||
$entity->setPassword("admin");
|
||||
$entity->setFirstname("schedule");
|
||||
$entity->setLastname("admin");
|
||||
$entity->setEmail("admin@noreply@com");
|
||||
$entity->setRoles(["ROLE_ADMIN"]);
|
||||
$entity->setAvatar("admin.jpg");
|
||||
$this->em->persist($entity);
|
||||
}
|
||||
|
||||
// On flush
|
||||
$this->em->flush();
|
||||
|
||||
}
|
||||
|
||||
private function writelnred($string) {
|
||||
$this->output->writeln('<fg=red>'.$string.'</>');
|
||||
$this->filesystem->appendToFile($this->rootlog.'cron.log', $string."\n");
|
||||
}
|
||||
private function writeln($string) {
|
||||
$this->output->writeln($string);
|
||||
$this->filesystem->appendToFile($this->rootlog.'cron.log', $string."\n");
|
||||
}
|
||||
}
|
||||
@@ -1,162 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Command;
|
||||
|
||||
use Symfony\Component\Console\Command\Command;
|
||||
use Symfony\Component\Console\Input\InputInterface;
|
||||
use Symfony\Component\Console\Input\InputArgument;
|
||||
use Symfony\Component\Console\Output\OutputInterface;
|
||||
use Symfony\Component\DependencyInjection\ContainerInterface;
|
||||
use Doctrine\ORM\EntityManagerInterface;
|
||||
use Symfony\Component\Filesystem\Filesystem;
|
||||
use Symfony\Component\Console\Input\ArrayInput;
|
||||
use Symfony\Component\Console\Command\LockableTrait;
|
||||
|
||||
use App\Entity\Cron;
|
||||
|
||||
class CronCommand extends Command
|
||||
{
|
||||
private $container;
|
||||
private $em;
|
||||
private $output;
|
||||
private $filesystem;
|
||||
private $rootlog;
|
||||
use LockableTrait;
|
||||
|
||||
public function __construct(ContainerInterface $container,EntityManagerInterface $em)
|
||||
{
|
||||
parent::__construct();
|
||||
$this->container = $container;
|
||||
$this->em = $em;
|
||||
}
|
||||
|
||||
protected function configure()
|
||||
{
|
||||
$this
|
||||
->setName('app:Cron')
|
||||
->setDescription('Execution of the cron command')
|
||||
;
|
||||
}
|
||||
|
||||
protected function execute(InputInterface $input, OutputInterface $output)
|
||||
{
|
||||
$this->output = $output;
|
||||
$this->filesystem = new Filesystem();
|
||||
$this->rootlog = $this->container->get('kernel')->getProjectDir()."/../var/log/";
|
||||
|
||||
$appCron = $this->container->getParameter('appCron');
|
||||
if(!$appCron)
|
||||
{
|
||||
$this->writelnred('CRON désactivé');
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (!$this->lock()) {
|
||||
$this->output->writeln("CRON LOCK");
|
||||
return 0;
|
||||
}
|
||||
|
||||
$crons = $this->em->getRepository('App:Cron')->toexec();
|
||||
$i=0;
|
||||
|
||||
if($crons) {
|
||||
$now=new \DateTime();
|
||||
$this->writelnred('');
|
||||
$this->writelnred('');
|
||||
$this->writelnred('');
|
||||
$this->writelnred('');
|
||||
$this->writelnred('==========================================================================================================');
|
||||
$this->writelnred('== CRON ==================================================================================================');
|
||||
$this->writelnred('==========================================================================================================');
|
||||
$this->writeln ('Date = '.$now->format('Y-m-d H:i:s'));
|
||||
}
|
||||
|
||||
foreach($crons as $cron) {
|
||||
$i++;
|
||||
|
||||
// Id du cron
|
||||
$idcron = $cron->getId();
|
||||
|
||||
// Flag d'execution en cours
|
||||
$now=new \DateTime();
|
||||
$cron->setStartexecdate($now);
|
||||
//$cron->setStatut(1);
|
||||
$this->em->persist($cron);
|
||||
$this->em->flush();
|
||||
|
||||
// Récupération de la commande
|
||||
$command = $this->getApplication()->find($cron->getCommand());
|
||||
|
||||
// Réccuépration des parametres
|
||||
$jsonparameter=json_decode($cron->getJsonargument(),true);
|
||||
|
||||
// Parametre id du cron actuel
|
||||
$jsonparameter["cronid"]=$cron->getId();
|
||||
|
||||
// Parametre si dernière execution
|
||||
$lastchance=false;
|
||||
if($cron->getRepeatcall()>0)
|
||||
$lastchance=($cron->getRepeatexec()+1==$cron->getRepeatcall());
|
||||
$jsonparameter["lastchance"]=$lastchance;
|
||||
|
||||
// Formater la chaine de parametre
|
||||
$parameter = new ArrayInput($jsonparameter);
|
||||
|
||||
// Executer la commande
|
||||
$returnCode==1;
|
||||
try{
|
||||
$returnCode = $command->run($parameter, $output);
|
||||
|
||||
// Revenir sur le cron encours à cause du clear du manager présent dans la synchro
|
||||
// Sinon le manager se pomme et génère des nouveaux enregistrement plutot que mettre à jour celui en cours
|
||||
$cron=$this->em->getRepository('App:Cron')->find($idcron);
|
||||
}
|
||||
catch(\Exception $e) {
|
||||
$this->writelnred("JOB EN ERREUR");
|
||||
}
|
||||
|
||||
// Flag de fin d'execution
|
||||
$now=new \DateTime();
|
||||
$cron->setEndexecdate($now);
|
||||
|
||||
// Date prochaine execution
|
||||
if($cron->getrepeatinterval()>=0) {
|
||||
// Si interval par heure
|
||||
if(fmod($cron->getRepeatinterval(),3600)==0)
|
||||
$next=clone $cron->getNextexecdate();
|
||||
else
|
||||
$next=new \DateTime();
|
||||
|
||||
$next->add(new \DateInterval('PT'.$cron->getRepeatinterval().'S'));
|
||||
$cron->setNextexecdate($next);
|
||||
}
|
||||
|
||||
// Statut OK/KO/Retry
|
||||
if($returnCode==1) {
|
||||
$cron->setStatut(3);
|
||||
if($cron->getRepeatcall()>0) $cron->setRepeatexec($cron->getRepeatexec()+1);
|
||||
}
|
||||
|
||||
$this->em->persist($cron);
|
||||
$this->em->flush();
|
||||
}
|
||||
|
||||
if($crons) {
|
||||
$this->writelnred("==");
|
||||
$this->writelnred("FIN CRON");
|
||||
$this->writelnred("==");
|
||||
$this->writelnred("");
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
private function writelnred($string) {
|
||||
$this->output->writeln('<fg=red>'.$string.'</>');
|
||||
$this->filesystem->appendToFile($this->rootlog.'cron.log', $string."\n");
|
||||
}
|
||||
private function writeln($string) {
|
||||
$this->output->writeln($string);
|
||||
$this->filesystem->appendToFile($this->rootlog.'cron.log', $string."\n");
|
||||
}
|
||||
}
|
||||
@@ -1,99 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Command;
|
||||
use Symfony\Component\Console\Command\Command;
|
||||
use Symfony\Component\Console\Input\InputInterface;
|
||||
use Symfony\Component\Console\Input\InputArgument;
|
||||
use Symfony\Component\Console\Output\OutputInterface;
|
||||
use Symfony\Component\DependencyInjection\ContainerInterface;
|
||||
use Doctrine\ORM\EntityManagerInterface;
|
||||
use Symfony\Component\Filesystem\Filesystem;
|
||||
|
||||
use Doctrine\ORM\Mapping\ClassMetadata;
|
||||
use Doctrine\ORM\Id\AssignedGenerator;
|
||||
|
||||
use App\Entity\Cron;
|
||||
|
||||
|
||||
class CronInitCommand extends Command
|
||||
{
|
||||
|
||||
private $container;
|
||||
private $em;
|
||||
private $output;
|
||||
private $filesystem;
|
||||
private $rootlog;
|
||||
|
||||
public function __construct(ContainerInterface $container,EntityManagerInterface $em)
|
||||
{
|
||||
parent::__construct();
|
||||
$this->container = $container;
|
||||
$this->em = $em;
|
||||
}
|
||||
|
||||
|
||||
protected function configure()
|
||||
{
|
||||
$this
|
||||
->setName('app:CronInit')
|
||||
->setDescription('Init Data for Cron')
|
||||
->setHelp('This command Init Data Cron')
|
||||
;
|
||||
}
|
||||
|
||||
protected function execute(InputInterface $input, OutputInterface $output)
|
||||
{
|
||||
$appCron = $this->container->getParameter('appCron');
|
||||
if(!$appCron) return 0;
|
||||
|
||||
$output->writeln('CRON = Default Data');
|
||||
|
||||
$this->insertCron();
|
||||
|
||||
$output->writeln('');
|
||||
|
||||
$this->em->flush();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
protected function insertCron() {
|
||||
$metadata = $this->em->getClassMetaData('App:Cron');
|
||||
|
||||
// Job Mail
|
||||
// Toute les minutes
|
||||
$entity = $this->em->getRepository('App:Cron')->findOneBy(["command"=>"app:sendMail"]);
|
||||
if(!$entity) {
|
||||
$entity = new Cron;
|
||||
$entity->setCommand("app:sendMail");
|
||||
$entity->setDescription("Execution du spool de mail en attente");
|
||||
$entity->setStatut(2);
|
||||
$entity->setRepeatcall(0);
|
||||
$entity->setRepeatexec(0);
|
||||
$entity->setRepeatinterval(60);
|
||||
$entity->setNextexecdate($entity->getSubmitdate());
|
||||
$entity->setJsonargument('{"message-limit":"100","env":"prod"}');
|
||||
$this->em->persist($entity);
|
||||
}
|
||||
|
||||
// Job Dump
|
||||
// Toute les 24h à 2h00
|
||||
$entity = $this->em->getRepository('App:Cron')->findOneBy(["command"=>"app:dumpBdd"]);
|
||||
if(!$entity) {
|
||||
$entity = new Cron;
|
||||
$nextdate=$entity->getSubmitdate();
|
||||
$nextdate->setTime(2,0);
|
||||
$entity->setCommand("app:dumpBdd");
|
||||
$entity->setDescription("Sauvegarde de la BDD");
|
||||
$entity->setStatut(2);
|
||||
$entity->setRepeatcall(0);
|
||||
$entity->setRepeatexec(0);
|
||||
$entity->setRepeatinterval(86400);
|
||||
$entity->setNextexecdate($nextdate);
|
||||
$this->em->persist($entity);
|
||||
}
|
||||
|
||||
// On flush
|
||||
$this->em->flush();
|
||||
}
|
||||
}
|
||||
@@ -1,92 +0,0 @@
|
||||
<?php
|
||||
namespace App\Command;
|
||||
|
||||
use Symfony\Component\Console\Command\Command;
|
||||
use Symfony\Component\Console\Input\InputInterface;
|
||||
use Symfony\Component\Console\Input\InputArgument;
|
||||
use Symfony\Component\Console\Output\OutputInterface;
|
||||
use Symfony\Component\DependencyInjection\ContainerInterface;
|
||||
use Doctrine\ORM\EntityManagerInterface;
|
||||
use Symfony\Component\Filesystem\Filesystem;
|
||||
use Symfony\Component\Security\Core\Encoder\EncoderFactory;
|
||||
use Symfony\Component\Security\Core\Encoder\MessageDigestPasswordEncoder;
|
||||
use Symfony\Component\Finder\Finder;
|
||||
|
||||
class DumpBddCommand extends Command
|
||||
{
|
||||
private $container;
|
||||
private $em;
|
||||
private $output;
|
||||
private $filesystem;
|
||||
private $rootlog;
|
||||
private $byexec;
|
||||
|
||||
public function __construct(ContainerInterface $container,EntityManagerInterface $em)
|
||||
{
|
||||
parent::__construct();
|
||||
$this->container = $container;
|
||||
$this->em = $em;
|
||||
}
|
||||
|
||||
protected function configure()
|
||||
{
|
||||
$this
|
||||
->setName('app:dumpBdd')
|
||||
->setDescription('Sauvegarde de la BDD')
|
||||
->setHelp('Sauvegarde de la BDD')
|
||||
->addArgument('cronid', InputArgument::OPTIONAL, 'ID Cron Job')
|
||||
->addArgument('lastchance', InputArgument::OPTIONAL, 'Lastchance to run the cron')
|
||||
;
|
||||
}
|
||||
|
||||
protected function execute(InputInterface $input, OutputInterface $output)
|
||||
{
|
||||
$this->output = $output;
|
||||
$this->filesystem = new Filesystem();
|
||||
$this->rootlog = $this->container->get('kernel')->getLogDir()."/";
|
||||
$alias = $this->container->getParameter('appAlias');
|
||||
|
||||
$this->writelnred('');
|
||||
$this->writelnred('== app:dumpBdd');
|
||||
$this->writelnred('==========================================================================================================');
|
||||
|
||||
$this->datahost = $this->container->getParameter('databaseHost');
|
||||
$this->database = $this->container->getParameter('databaseName') ;
|
||||
$this->username = $this->container->getParameter('databaseUser') ;
|
||||
$this->password = $this->container->getParameter('databasePassword') ;
|
||||
|
||||
$cmd = sprintf('mysqldump -h %s -B %s -u %s --password=%s'
|
||||
, $this->datahost
|
||||
, $this->database
|
||||
, $this->username
|
||||
, $this->password
|
||||
);
|
||||
|
||||
$result = $this->runCommand($cmd);
|
||||
if($result['exit_status'] == 0) {
|
||||
$this->filesystem->dumpFile($this->rootlog.$alias.".sql", implode('', $result['output']));
|
||||
}
|
||||
|
||||
$this->writeln('');
|
||||
return 0;
|
||||
}
|
||||
|
||||
protected function runCommand($command)
|
||||
{
|
||||
$command .=" >&1";
|
||||
exec($command, $output, $exit_status);
|
||||
return array(
|
||||
"output" => $output
|
||||
, "exit_status" => $exit_status
|
||||
);
|
||||
}
|
||||
|
||||
private function writelnred($string) {
|
||||
$this->output->writeln('<fg=red>'.$string.'</>');
|
||||
$this->filesystem->appendToFile($this->rootlog.'cron.log', $string."\n");
|
||||
}
|
||||
private function writeln($string) {
|
||||
$this->output->writeln($string);
|
||||
$this->filesystem->appendToFile($this->rootlog.'cron.log', $string."\n");
|
||||
}
|
||||
}
|
||||
@@ -1,99 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Command;
|
||||
use Symfony\Component\Console\Command\Command;
|
||||
use Symfony\Component\Console\Input\InputInterface;
|
||||
use Symfony\Component\Console\Output\OutputInterface;
|
||||
use Symfony\Component\DependencyInjection\ContainerInterface;
|
||||
use Doctrine\ORM\EntityManagerInterface;
|
||||
use Symfony\Component\Filesystem\Filesystem;
|
||||
use Symfony\Component\Finder\Finder;
|
||||
use Ramsey\Uuid\Uuid;
|
||||
|
||||
use App\Entity\Script;
|
||||
|
||||
class ScriptCommand extends Command
|
||||
{
|
||||
private $container;
|
||||
private $em;
|
||||
private $output;
|
||||
private $filesystem;
|
||||
private $rootlog;
|
||||
|
||||
public function __construct(ContainerInterface $container,EntityManagerInterface $em)
|
||||
{
|
||||
parent::__construct();
|
||||
$this->container = $container;
|
||||
$this->em = $em;
|
||||
}
|
||||
|
||||
|
||||
protected function configure()
|
||||
{
|
||||
$this
|
||||
->setName('app:Script')
|
||||
->setDescription('Script to call')
|
||||
->setHelp('Script to call')
|
||||
;
|
||||
}
|
||||
|
||||
protected function execute(InputInterface $input, OutputInterface $output)
|
||||
{
|
||||
$this->output = $output;
|
||||
$this->filesystem = new Filesystem();
|
||||
$this->rootlog = $this->container->get('kernel')->getLogDir()."/";
|
||||
|
||||
$output->writeln('APP = Scripts');
|
||||
|
||||
$this->callscript("initdomaine");
|
||||
$this->callscript("initofferservice");
|
||||
|
||||
$output->writeln('');
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
private function callscript($name) {
|
||||
$script=$this->em->getRepository("App:Script")->findOneBy(["name"=>$name]);
|
||||
if(!$script) {
|
||||
//$this->writelnred("== SCRIPT = ".$name);
|
||||
$this->$name();
|
||||
|
||||
$script=new Script();
|
||||
$script->setName($name);
|
||||
$this->em->persist($script);
|
||||
$this->em->flush();
|
||||
$this->writeln("");
|
||||
}
|
||||
}
|
||||
|
||||
private function initdomaine() {
|
||||
$domaine=$this->em->getRepository("App:Domaine")->find(-100);
|
||||
$projects=$this->em->getRepository("App:Project")->findBy(["domaine"=>null]);
|
||||
foreach($projects as $project) {
|
||||
$project->setDomaine($domaine);
|
||||
$this->em->persist($project);
|
||||
$this->em->flush();
|
||||
}
|
||||
}
|
||||
|
||||
private function initofferservice() {
|
||||
$offers=$this->em->getRepository("App:Offer")->findBy(["service"=>null]);
|
||||
foreach($offers as $offer) {
|
||||
$offer->setService($offer->getProject()->getService());
|
||||
$this->em->persist($offer);
|
||||
$this->em->flush();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private function writelnred($string) {
|
||||
$this->output->writeln('<fg=red>'.$string.'</>');
|
||||
$this->filesystem->appendToFile($this->rootlog.'cron.log', $string."\n");
|
||||
}
|
||||
private function writeln($string) {
|
||||
$this->output->writeln($string);
|
||||
$this->filesystem->appendToFile($this->rootlog.'cron.log', $string."\n");
|
||||
}
|
||||
}
|
||||
@@ -1,87 +0,0 @@
|
||||
<?php
|
||||
namespace App\Command;
|
||||
|
||||
use Symfony\Component\Console\Command\Command;
|
||||
use Symfony\Component\Console\Input\ArrayInput;
|
||||
use Symfony\Component\Console\Input\InputInterface;
|
||||
use Symfony\Component\Console\Input\InputArgument;
|
||||
use Symfony\Component\Console\Output\OutputInterface;
|
||||
use Symfony\Component\DependencyInjection\ContainerInterface;
|
||||
use Doctrine\ORM\EntityManagerInterface;
|
||||
use Symfony\Component\Filesystem\Filesystem;
|
||||
use Symfony\Component\Security\Core\Encoder\EncoderFactory;
|
||||
use Symfony\Component\Security\Core\Encoder\MessageDigestPasswordEncoder;
|
||||
|
||||
class SendMailCommand extends Command
|
||||
{
|
||||
private $container;
|
||||
private $em;
|
||||
private $output;
|
||||
private $filesystem;
|
||||
private $rootlog;
|
||||
|
||||
public function __construct(ContainerInterface $container,EntityManagerInterface $em)
|
||||
{
|
||||
parent::__construct();
|
||||
$this->container = $container;
|
||||
$this->em = $em;
|
||||
}
|
||||
|
||||
protected function configure()
|
||||
{
|
||||
$this
|
||||
->setName('app:sendMail')
|
||||
->setDescription('Envoi des mails')
|
||||
->setHelp('Envoi des mails')
|
||||
->addArgument('message-limit', InputArgument::OPTIONAL, 'limit message Mail')
|
||||
->addArgument('env', InputArgument::OPTIONAL, 'env Mail')
|
||||
->addArgument('cronid', InputArgument::OPTIONAL, 'ID Cron Job')
|
||||
->addArgument('lastchance', InputArgument::OPTIONAL, 'Lastchance to run the cron')
|
||||
;
|
||||
}
|
||||
|
||||
protected function execute(InputInterface $input, OutputInterface $output)
|
||||
{
|
||||
$this->output = $output;
|
||||
$this->filesystem = new Filesystem();
|
||||
$this->rootlog = $this->container->get('kernel')->getRootDir()."/../var/logs/";
|
||||
|
||||
$this->writelnred('');
|
||||
$this->writelnred('== app:sendMail');
|
||||
$this->writelnred('==========================================================================================================');
|
||||
|
||||
$appMailmethod=$this->container->getParameter("appMailmethod");
|
||||
|
||||
$command = $this->getApplication()->find("swiftmailer:spool:send");
|
||||
$tbparameter["--message-limit"]=100;
|
||||
$tbparameter["--env"]="prod";
|
||||
$tbparameter["--time-limit"]=5;
|
||||
if($appMailmethod=="sendmail") $tbparameter["--transport"]="app.sendmail.transport";
|
||||
|
||||
|
||||
$parameter = new ArrayInput($tbparameter);
|
||||
try{
|
||||
$returnCode = $command->run($parameter, $output);
|
||||
}
|
||||
catch(\Exception $e) {
|
||||
$this->writeln("");
|
||||
$this->writelnred("Impossible d'envoyer des mails");
|
||||
$this->writeln("");
|
||||
return 1;
|
||||
}
|
||||
$this->writeln("");
|
||||
|
||||
return 0;
|
||||
|
||||
}
|
||||
|
||||
private function writelnred($string) {
|
||||
$this->output->writeln('<fg=red>'.$string.'</>');
|
||||
$this->filesystem->appendToFile($this->rootlog.'cron.log', $string."\n");
|
||||
}
|
||||
private function writeln($string) {
|
||||
$this->output->writeln($string);
|
||||
$this->filesystem->appendToFile($this->rootlog.'cron.log', $string."\n");
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,82 +0,0 @@
|
||||
<?php
|
||||
namespace App\Command;
|
||||
|
||||
use Symfony\Component\Console\Command\Command;
|
||||
use Symfony\Component\Console\Input\InputInterface;
|
||||
use Symfony\Component\Console\Input\InputArgument;
|
||||
use Symfony\Component\Console\Output\OutputInterface;
|
||||
use Symfony\Component\DependencyInjection\ContainerInterface;
|
||||
use Doctrine\ORM\EntityManagerInterface;
|
||||
use Symfony\Component\Filesystem\Filesystem;
|
||||
use Symfony\Component\Security\Core\Encoder\EncoderFactory;
|
||||
use Symfony\Component\Security\Core\Encoder\MessageDigestPasswordEncoder;
|
||||
|
||||
|
||||
use Cadoles\CoreBundle\Entity\User;
|
||||
|
||||
class SetPasswordCommand extends Command
|
||||
{
|
||||
private $container;
|
||||
private $em;
|
||||
private $output;
|
||||
private $filesystem;
|
||||
private $rootlog;
|
||||
|
||||
public function __construct(ContainerInterface $container,EntityManagerInterface $em)
|
||||
{
|
||||
parent::__construct();
|
||||
$this->container = $container;
|
||||
$this->em = $em;
|
||||
}
|
||||
|
||||
protected function configure()
|
||||
{
|
||||
$this
|
||||
->setName('app:setPassword')
|
||||
->setDescription("Modifier le password d'un utilisateur")
|
||||
->setHelp("Modifier le password d'un utilisateur")
|
||||
->addArgument('username', InputArgument::OPTIONAL, 'username')
|
||||
->addArgument('password', InputArgument::OPTIONAL, 'password')
|
||||
;
|
||||
}
|
||||
|
||||
protected function execute(InputInterface $input, OutputInterface $output)
|
||||
{
|
||||
$this->output = $output;
|
||||
$this->filesystem = new Filesystem();
|
||||
$this->rootlog = $this->container->get('kernel')->getProjectDir()."/../var/log/";
|
||||
|
||||
$this->writelnred('');
|
||||
$this->writelnred('== app:SetPasword');
|
||||
$this->writelnred('==========================================================================================================');
|
||||
|
||||
$username = $input->getArgument('username');
|
||||
$this->writeln($username);
|
||||
|
||||
$password = $input->getArgument('password');
|
||||
$this->writeln($password);
|
||||
|
||||
$user = $this->em->getRepository('App:User')->findOneBy(array('username' => $username));
|
||||
if($user) {
|
||||
// Set Password
|
||||
$user->setPassword($password);
|
||||
$this->em->persist($user);
|
||||
$this->em->flush();
|
||||
}
|
||||
|
||||
$this->writeln('');
|
||||
return 0;
|
||||
}
|
||||
|
||||
private function writelnred($string) {
|
||||
$this->output->writeln('<fg=red>'.$string.'</>');
|
||||
$this->filesystem->appendToFile($this->rootlog.'cron.log', $string."\n");
|
||||
}
|
||||
private function writeln($string) {
|
||||
$this->output->writeln($string);
|
||||
$this->filesystem->appendToFile($this->rootlog.'cron.log', $string."\n");
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -1,83 +0,0 @@
|
||||
<?php
|
||||
namespace App\Command;
|
||||
|
||||
use Symfony\Component\Console\Command\Command;
|
||||
use Symfony\Component\Console\Input\InputInterface;
|
||||
use Symfony\Component\Console\Input\InputArgument;
|
||||
use Symfony\Component\Console\Output\OutputInterface;
|
||||
use Symfony\Component\DependencyInjection\ContainerInterface;
|
||||
use Doctrine\ORM\EntityManagerInterface;
|
||||
use Symfony\Component\Filesystem\Filesystem;
|
||||
use Symfony\Component\Security\Core\Encoder\EncoderFactory;
|
||||
use Symfony\Component\Security\Core\Encoder\MessageDigestPasswordEncoder;
|
||||
|
||||
|
||||
use Cadoles\CoreBundle\Entity\User;
|
||||
|
||||
class SetRolesCommand extends Command
|
||||
{
|
||||
private $container;
|
||||
private $em;
|
||||
private $output;
|
||||
private $filesystem;
|
||||
private $rootlog;
|
||||
|
||||
public function __construct(ContainerInterface $container,EntityManagerInterface $em)
|
||||
{
|
||||
parent::__construct();
|
||||
$this->container = $container;
|
||||
$this->em = $em;
|
||||
}
|
||||
|
||||
protected function configure()
|
||||
{
|
||||
$this
|
||||
->setName('app:setRoles')
|
||||
->setDescription("Modifier le rôle d'un utilisateur")
|
||||
->setHelp("Modifier le rôle d'un utilisateur")
|
||||
->addArgument('username', InputArgument::OPTIONAL, 'username')
|
||||
->addArgument('roles', InputArgument::OPTIONAL, 'roles')
|
||||
;
|
||||
}
|
||||
|
||||
protected function execute(InputInterface $input, OutputInterface $output)
|
||||
{
|
||||
$this->output = $output;
|
||||
$this->filesystem = new Filesystem();
|
||||
$this->rootlog = $this->container->get('kernel')->getProjectDir()."/../var/log/";
|
||||
|
||||
$this->writelnred('');
|
||||
$this->writelnred('== app:setRoles');
|
||||
$this->writelnred('==========================================================================================================');
|
||||
|
||||
$username = $input->getArgument('username');
|
||||
$this->writeln($username);
|
||||
|
||||
$this->writeln($input->getArgument('roles'));
|
||||
$roles = explode(",",$input->getArgument('roles'));
|
||||
//$this->writeln($roles);
|
||||
|
||||
$user = $this->em->getRepository('App:User')->findOneBy(array('username' => $username));
|
||||
if($user) {
|
||||
// Set Password
|
||||
$user->setRoles($roles);
|
||||
$this->em->persist($user);
|
||||
$this->em->flush();
|
||||
}
|
||||
|
||||
$this->writeln('');
|
||||
return 0;
|
||||
}
|
||||
|
||||
private function writelnred($string) {
|
||||
$this->output->writeln('<fg=red>'.$string.'</>');
|
||||
$this->filesystem->appendToFile($this->rootlog.'cron.log', $string."\n");
|
||||
}
|
||||
private function writeln($string) {
|
||||
$this->output->writeln($string);
|
||||
$this->filesystem->appendToFile($this->rootlog.'cron.log', $string."\n");
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -1,49 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Controller;
|
||||
|
||||
use App\Service\icsService;
|
||||
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
|
||||
use Symfony\Component\HttpFoundation\Response;
|
||||
|
||||
class ApiController extends AbstractController
|
||||
{
|
||||
public function api($key): Response
|
||||
{
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
|
||||
$user = $em->getRepository('App:User')->findBy(['apikey' => $key]);
|
||||
if (!$user) {
|
||||
return new Response('Accès refusé', 403);
|
||||
}
|
||||
|
||||
$ics = new icsService();
|
||||
$ics->debug(false);
|
||||
|
||||
$content = $ics->writeheader();
|
||||
|
||||
$events = $em->getRepository('App:Event')->findBy(['user' => $user]);
|
||||
foreach ($events as $event) {
|
||||
$task = $event->getTask();
|
||||
$project = $task->getProject();
|
||||
$customer = $project->getCustomer();
|
||||
|
||||
$ics->set(
|
||||
[
|
||||
'allday' => $event->getAllday(),
|
||||
'description' => $event->getDescription(),
|
||||
'dtstart' => $event->getStart()->format('Y-m-d H:i:s'),
|
||||
'dtend' => $event->getEnd()->format('Y-m-d H:i:s'),
|
||||
'summary' => $customer->getName().'-'.$project->getName().'-'.$task->getName(),
|
||||
'uid' => 'schedule'.$event->getId(),
|
||||
]
|
||||
);
|
||||
|
||||
$content .= $ics->writeevent();
|
||||
}
|
||||
|
||||
$content .= $ics->writefooter();
|
||||
|
||||
return new Response($content);
|
||||
}
|
||||
}
|
||||
@@ -1,102 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Controller;
|
||||
|
||||
use App\Entity\Breakday;
|
||||
use App\Form\BreakdayType;
|
||||
use App\Repository\BreakdayRepository;
|
||||
use Doctrine\ORM\EntityManagerInterface;
|
||||
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
|
||||
|
||||
class BreakdayController extends AbstractController
|
||||
{
|
||||
private EntityManagerInterface $em;
|
||||
private BreakdayRepository $breakdayRepository;
|
||||
|
||||
public function __construct(EntityManagerInterface $em, BreakdayRepository $breakdayRepository)
|
||||
{
|
||||
$this->em = $em;
|
||||
$this->breakdayRepository = $breakdayRepository;
|
||||
}
|
||||
|
||||
public function list()
|
||||
{
|
||||
$breakdays = $this->breakdayRepository->findAll();
|
||||
|
||||
return $this->render('Breakday/list.html.twig', [
|
||||
'breakdays' => $breakdays,
|
||||
'useheader' => true,
|
||||
'usesidebar' => true,
|
||||
]);
|
||||
}
|
||||
|
||||
public function submit(Request $request)
|
||||
{
|
||||
$breakday = new Breakday();
|
||||
$form = $this->createForm(BreakdayType::class, $breakday, ['mode' => 'submit']);
|
||||
$form->handleRequest($request);
|
||||
if ($form->isSubmitted() && $form->isValid()) {
|
||||
$end = clone $breakday->getStart();
|
||||
$end->add(new \DateInterval('P1D'));
|
||||
$breakday->setEnd($end);
|
||||
$this->em->persist($breakday);
|
||||
$this->em->flush();
|
||||
|
||||
return $this->redirectToRoute('app_breakday');
|
||||
}
|
||||
|
||||
return $this->render('Breakday/edit.html.twig', [
|
||||
'useheader' => true,
|
||||
'usesidebar' => true,
|
||||
'breakday' => $breakday,
|
||||
'mode' => 'submit',
|
||||
'form' => $form->createView(),
|
||||
]);
|
||||
}
|
||||
|
||||
public function update(int $id, Request $request)
|
||||
{
|
||||
$breakday = $this->breakdayRepository->find($id);
|
||||
if (!$breakday) {
|
||||
throw new NotFoundHttpException('La ressource demandée est introuvable.');
|
||||
}
|
||||
$form = $this->createForm(BreakdayType::class, $breakday, ['mode' => 'update']);
|
||||
$form->handleRequest($request);
|
||||
if ($form->isSubmitted() && $form->isValid()) {
|
||||
$breakday = $form->getData();
|
||||
$end = clone $breakday->getStart();
|
||||
$end->add(new \DateInterval('P1D'));
|
||||
$breakday->setEnd($end);
|
||||
$this->em->flush();
|
||||
|
||||
return $this->redirectToRoute('app_breakday');
|
||||
}
|
||||
|
||||
return $this->render('Breakday/edit.html.twig', [
|
||||
'useheader' => true,
|
||||
'usesidebar' => true,
|
||||
'breakday' => $breakday,
|
||||
'mode' => 'update',
|
||||
'form' => $form->createView(),
|
||||
]);
|
||||
}
|
||||
|
||||
public function delete($id)
|
||||
{
|
||||
$breakday = $this->breakdayRepository->find($id);
|
||||
if (!$breakday) {
|
||||
throw new NotFoundHttpException('La ressource demandée est introuvable.');
|
||||
}
|
||||
|
||||
try {
|
||||
$this->em->remove($breakday);
|
||||
$this->em->flush();
|
||||
} catch (\Exception $e) {
|
||||
$this->addflash('error', $e->getMessage());
|
||||
}
|
||||
|
||||
return $this->redirectToRoute('app_breakday');
|
||||
}
|
||||
}
|
||||
@@ -1,409 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Controller;
|
||||
|
||||
use App\Entity\Yeardomaine as Yeardomaine;
|
||||
use App\Entity\Yearproject as Yearproject;
|
||||
use App\Form\YeardomaineType as YeardomaineType;
|
||||
use App\Form\YearprojectType as YearprojectType;
|
||||
use Knp\Bundle\SnappyBundle\Snappy\Response\PdfResponse;
|
||||
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
|
||||
class BudgetController extends AbstractController
|
||||
{
|
||||
private $knpSnappy;
|
||||
|
||||
public function __construct(\Knp\Snappy\Pdf $knpSnappy)
|
||||
{
|
||||
$this->knpSnappy = $knpSnappy;
|
||||
}
|
||||
|
||||
public function list($id = null, Request $request)
|
||||
{
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
|
||||
// Rechercher de l'ensemble des exercices sauf du premier
|
||||
$years = $em
|
||||
->createQueryBuilder('year')
|
||||
->select('year')
|
||||
->from('App:Year', 'year')
|
||||
->orderBy('year.start')
|
||||
->setFirstResult(1)
|
||||
->getQuery()->getResult();
|
||||
|
||||
// Rechercher l'exercice demandé sinon le dernier
|
||||
if ($id) {
|
||||
$n2 = $em->getRepository('App:Year')->find($id);
|
||||
} else {
|
||||
$n2 = $em->getRepository('App:Year')->findOneBy([], ['start' => 'DESC']);
|
||||
}
|
||||
|
||||
// Rechercher l'exercice précendent à celui selectionné
|
||||
$n1 = $em
|
||||
->createQueryBuilder('year')
|
||||
->select('year')
|
||||
->from('App:Year', 'year')
|
||||
->Where('year.end<:start')
|
||||
->setParameter('start', $n2->getStart())
|
||||
->orderBy('year.start', 'DESC')
|
||||
->setFirstResult(0)->setMaxResults(1)
|
||||
->getQuery()->getResult();
|
||||
if (empty($n1)) {
|
||||
$n1 = null;
|
||||
} else {
|
||||
$n1 = $n1[0];
|
||||
}
|
||||
|
||||
if ($n1) {
|
||||
$startn1 = clone $n1->getStart();
|
||||
$startn1->setTime(0, 0, 0);
|
||||
$endn1 = clone $n1->getEnd();
|
||||
$endn1->add(new \DateInterval('P1D'))->setTime(0, 0, 0);
|
||||
}
|
||||
|
||||
if ($n2) {
|
||||
$startn2 = clone $n2->getStart();
|
||||
$startn2->setTime(0, 0, 0);
|
||||
$endn2 = clone $n2->getEnd();
|
||||
$endn2->add(new \DateInterval('P1D'))->setTime(0, 0, 0);
|
||||
}
|
||||
|
||||
// Pour chaque domaine
|
||||
$tbdomaines = [];
|
||||
$domaines = $em->getRepository('App:Domaine')->findBy([], ['category' => 'ASC', 'name' => 'ASC']);
|
||||
foreach ($domaines as $domaine) {
|
||||
// Filtre par Domaine
|
||||
if ('all' != $this->get('session')->get('iddomaine')) {
|
||||
if ($domaine->getId() != $this->get('session')->get('iddomaine')) {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
// On calcume le réel validé pour les deux périodes pour les domaines
|
||||
$tbdomaines[$domaine->getId()] = [
|
||||
'id' => $domaine->getId(),
|
||||
'category' => $domaine->getCategory(),
|
||||
'name' => $domaine->getCategory().' - '.$domaine->getName(),
|
||||
|
||||
'nbdayrealn1' => 0,
|
||||
'nbetprealn1' => 0,
|
||||
'nbcaarealn1' => 0,
|
||||
'nbdaybudgn1' => 0,
|
||||
'nbetpbudgn1' => 0,
|
||||
'nbcaabudgn1' => 0,
|
||||
|
||||
'nbdayrealn2' => 0,
|
||||
'nbetprealn2' => 0,
|
||||
'nbcaarealn2' => 0,
|
||||
'nbdaybudgn2' => 0,
|
||||
'nbetpbudgn2' => 0,
|
||||
'nbcaabudgn2' => 0,
|
||||
|
||||
'projects' => [],
|
||||
];
|
||||
|
||||
// Période précédente n1
|
||||
if ($n1) {
|
||||
// Events
|
||||
$start = clone $n1->getStart();
|
||||
$start->setTime(0, 0, 0);
|
||||
$end = clone $n1->getEnd();
|
||||
$end->add(new \DateInterval('P1D'))->setTime(0, 0, 0);
|
||||
|
||||
$events = $em
|
||||
->createQueryBuilder('event')
|
||||
->select('SUM(event.duration) as somme')
|
||||
->from('App:Project', 'project')
|
||||
->from('App:Task', 'task')
|
||||
->from('App:Event', 'event')
|
||||
->Where('project.domaine=:domaine')
|
||||
->andWhere('task.project=project')
|
||||
->andWhere('event.task=task')
|
||||
->andWhere('event.start >=:start')
|
||||
->andWhere('event.end <=:end')
|
||||
->andWhere('event.validate=:validate')
|
||||
->setParameter('domaine', $domaine)
|
||||
->setParameter('start', $startn1)
|
||||
->setParameter('end', $endn1)
|
||||
->setParameter('validate', true)
|
||||
->getQuery()->getResult();
|
||||
$tbdomaines[$domaine->getId()]['nbdayrealn1'] = ($events[0]['somme'] ? $events[0]['somme'] : 0);
|
||||
$tbdomaines[$domaine->getId()]['nbetprealn1'] = $tbdomaines[$domaine->getId()]['nbdayrealn1'] / $n1->getNbday();
|
||||
|
||||
// Yeardomaine
|
||||
$yeardomaine = $em->getRepository('App:Yeardomaine')->findOneBy(['domaine' => $domaine, 'year' => $n1]);
|
||||
if ($yeardomaine) {
|
||||
$tbdomaines[$domaine->getId()]['nbcaarealn1'] = $yeardomaine->getCareal();
|
||||
|
||||
$tbdomaines[$domaine->getId()]['nbdaybudgn1'] = $yeardomaine->getNbdaybudget();
|
||||
$tbdomaines[$domaine->getId()]['nbetpbudgn1'] = $yeardomaine->getNbdaybudget() / $n1->getNbday();
|
||||
$tbdomaines[$domaine->getId()]['nbcaabudgn1'] = $yeardomaine->getCabudget();
|
||||
}
|
||||
}
|
||||
|
||||
// Période encour n2
|
||||
if ($n2) {
|
||||
$events = $em
|
||||
->createQueryBuilder('event')
|
||||
->select('SUM(event.duration) as somme')
|
||||
->from('App:Project', 'project')
|
||||
->from('App:Task', 'task')
|
||||
->from('App:Event', 'event')
|
||||
->Where('project.domaine=:domaine')
|
||||
->andWhere('task.project=project')
|
||||
->andWhere('event.task=task')
|
||||
->andWhere('event.start >=:start')
|
||||
->andWhere('event.end <=:end')
|
||||
->andWhere('event.validate=:validate')
|
||||
->setParameter('domaine', $domaine)
|
||||
->setParameter('start', $startn2)
|
||||
->setParameter('end', $endn2)
|
||||
->setParameter('validate', true)
|
||||
->getQuery()->getResult();
|
||||
$tbdomaines[$domaine->getId()]['nbdayrealn2'] = ($events[0]['somme'] ? $events[0]['somme'] : 0);
|
||||
$tbdomaines[$domaine->getId()]['nbetprealn2'] = $tbdomaines[$domaine->getId()]['nbdayrealn2'] / $n2->getNbday();
|
||||
|
||||
// Yeardomaine
|
||||
$yeardomaine = $em->getRepository('App:Yeardomaine')->findOneBy(['domaine' => $domaine, 'year' => $n2]);
|
||||
if ($yeardomaine) {
|
||||
$tbdomaines[$domaine->getId()]['nbcaarealn2'] = $yeardomaine->getCareal();
|
||||
|
||||
$tbdomaines[$domaine->getId()]['nbdaybudgn2'] = $yeardomaine->getNbdaybudget();
|
||||
$tbdomaines[$domaine->getId()]['nbetpbudgn2'] = $yeardomaine->getNbdaybudget() / $n2->getNbday();
|
||||
$tbdomaines[$domaine->getId()]['nbcaabudgn2'] = $yeardomaine->getCabudget();
|
||||
}
|
||||
}
|
||||
|
||||
// Pour chaque project du domaine
|
||||
foreach ($domaine->getProjects() as $project) {
|
||||
// On calcume le réel validé pour les deux périodes pour les projects
|
||||
$tbdomaines[$domaine->getId()]['projects'][$project->getId()] = [
|
||||
'id' => $project->getId(),
|
||||
'name' => $project->getCustomer()->getName().' - '.$project->getName(),
|
||||
'nbdayrealn1' => 0,
|
||||
'nbetprealn1' => 0,
|
||||
'nbcaarealn1' => 0,
|
||||
'nbdaybudgn1' => 0,
|
||||
'nbetpbudgn1' => 0,
|
||||
'nbcaabudgn1' => 0,
|
||||
|
||||
'nbdayrealn2' => 0,
|
||||
'nbetprealn2' => 0,
|
||||
'nbcaarealn2' => 0,
|
||||
'nbdaybudgn2' => 0,
|
||||
'nbetpbudgn2' => 0,
|
||||
'nbcaabudgn2' => 0,
|
||||
];
|
||||
|
||||
// Période précédente n1
|
||||
if ($n1) {
|
||||
$events = $em
|
||||
->createQueryBuilder('event')
|
||||
->select('SUM(event.duration) as somme')
|
||||
->from('App:Task', 'task')
|
||||
->from('App:Event', 'event')
|
||||
->Where('task.project=:project')
|
||||
->andWhere('event.task=task')
|
||||
->andWhere('event.start >=:start')
|
||||
->andWhere('event.end <=:end')
|
||||
->andWhere('event.validate=:validate')
|
||||
->setParameter('project', $project)
|
||||
->setParameter('start', $startn1)
|
||||
->setParameter('end', $endn1)
|
||||
->setParameter('validate', true)
|
||||
->getQuery()->getResult();
|
||||
$nbdayrealn1 = ($events[0]['somme'] ? $events[0]['somme'] : 0);
|
||||
$tbdomaines[$domaine->getId()]['projects'][$project->getId()]['nbdayrealn1'] = $nbdayrealn1;
|
||||
$tbdomaines[$domaine->getId()]['projects'][$project->getId()]['nbetprealn1'] = $nbdayrealn1 / $n1->getNbday();
|
||||
|
||||
// Yearproject
|
||||
$yearproject = $em->getRepository('App:Yearproject')->findOneBy(['project' => $project, 'year' => $n1]);
|
||||
if ($yearproject) {
|
||||
$tbdomaines[$domaine->getId()]['projects'][$project->getId()]['nbcaarealn1'] = $yearproject->getCareal();
|
||||
|
||||
$tbdomaines[$domaine->getId()]['projects'][$project->getId()]['nbdaybudgn1'] = $yearproject->getNbdaybudget();
|
||||
$tbdomaines[$domaine->getId()]['projects'][$project->getId()]['nbetpbudgn1'] = $yearproject->getNbdaybudget() / $n1->getNbday();
|
||||
$tbdomaines[$domaine->getId()]['projects'][$project->getId()]['nbcaabudgn1'] = $yearproject->getCabudget();
|
||||
}
|
||||
}
|
||||
|
||||
// Période encour n2
|
||||
if ($n2) {
|
||||
$start = $n2->getStart()->setTime(0, 0, 0);
|
||||
$end = $n2->getEnd()->add(new \DateInterval('P1D'))->setTime(0, 0, 0);
|
||||
$events = $em
|
||||
->createQueryBuilder('event')
|
||||
->select('SUM(event.duration) as somme')
|
||||
->from('App:Task', 'task')
|
||||
->from('App:Event', 'event')
|
||||
->andWhere('task.project=:project')
|
||||
->andWhere('event.task=task')
|
||||
->andWhere('event.start >=:start')
|
||||
->andWhere('event.end <=:end')
|
||||
->andWhere('event.validate=:validate')
|
||||
->setParameter('project', $project)
|
||||
->setParameter('start', $startn2)
|
||||
->setParameter('end', $endn2)
|
||||
->setParameter('validate', true)
|
||||
->getQuery()->getResult();
|
||||
$nbdayrealn2 = ($events[0]['somme'] ? $events[0]['somme'] : 0);
|
||||
$tbdomaines[$domaine->getId()]['projects'][$project->getId()]['nbdayrealn2'] = $nbdayrealn2;
|
||||
$tbdomaines[$domaine->getId()]['projects'][$project->getId()]['nbetprealn2'] = $nbdayrealn2 / $n2->getNbday();
|
||||
|
||||
// Yearproject
|
||||
$yearproject = $em->getRepository('App:Yearproject')->findOneBy(['project' => $project, 'year' => $n2]);
|
||||
if ($yearproject) {
|
||||
$tbdomaines[$domaine->getId()]['projects'][$project->getId()]['nbcaarealn2'] = $yearproject->getCareal();
|
||||
|
||||
$tbdomaines[$domaine->getId()]['projects'][$project->getId()]['nbdaybudgn2'] = $yearproject->getNbdaybudget();
|
||||
$tbdomaines[$domaine->getId()]['projects'][$project->getId()]['nbetpbudgn2'] = $yearproject->getNbdaybudget() / $n2->getNbday();
|
||||
$tbdomaines[$domaine->getId()]['projects'][$project->getId()]['nbcaabudgn2'] = $yearproject->getCabudget();
|
||||
}
|
||||
}
|
||||
|
||||
if (!$project->getActive() && 0 == $nbdayrealn1 && 0 == $nbdayrealn2) {
|
||||
unset($tbdomaines[$domaine->getId()]['projects'][$project->getId()]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ($request->query->get('fgprint')) {
|
||||
$render = $this->renderView('Budget/list.html.twig', [
|
||||
'useheader' => true,
|
||||
'usesidebar' => true,
|
||||
'domaines' => $tbdomaines,
|
||||
'n1' => $n1,
|
||||
'n2' => $n2,
|
||||
'years' => $years,
|
||||
'fgprint' => true,
|
||||
]);
|
||||
|
||||
return new PdfResponse(
|
||||
$this->knpSnappy->getOutputFromHtml($render),
|
||||
'domaines.pdf'
|
||||
);
|
||||
} else {
|
||||
return $this->render('Budget/list.html.twig', [
|
||||
'useheader' => true,
|
||||
'usesidebar' => true,
|
||||
'domaines' => $tbdomaines,
|
||||
'n1' => $n1,
|
||||
'n2' => $n2,
|
||||
'years' => $years,
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
public function update($type, $id, $year, Request $request)
|
||||
{
|
||||
// Initialisation de l'enregistrement
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
|
||||
// Returnto
|
||||
$returnto = $request->get('returnto');
|
||||
|
||||
// Recherche de l'exercice
|
||||
$year = $em->getRepository('App:Year')->find($year);
|
||||
|
||||
// Recherche de la ligne projet/domaine associée à l'exercice
|
||||
if ('project' == $type) {
|
||||
$project = $em->getRepository('App:Project')->find($id);
|
||||
$data = $em->getRepository('App:Yearproject')->findOneBy(['year' => $year, 'project' => $project]);
|
||||
if (!$data) {
|
||||
$data = new Yearproject();
|
||||
$data->setYear($year);
|
||||
$data->setProject($project);
|
||||
$em->persist($data);
|
||||
$em->flush();
|
||||
}
|
||||
|
||||
// Création du formulaire
|
||||
$form = $this->createForm(YearprojectType::class, $data, ['mode' => 'update']);
|
||||
} else {
|
||||
$domaine = $em->getRepository('App:Domaine')->find($id);
|
||||
$data = $em->getRepository('App:Yeardomaine')->findOneBy(['year' => $year, 'domaine' => $domaine]);
|
||||
if (!$data) {
|
||||
$data = new Yeardomaine();
|
||||
$data->setYear($year);
|
||||
$data->setDomaine($domaine);
|
||||
$em->persist($data);
|
||||
$em->flush();
|
||||
}
|
||||
|
||||
// Création du formulaire
|
||||
$form = $this->createForm(YeardomaineType::class, $data, ['mode' => 'update']);
|
||||
}
|
||||
|
||||
// Récupération des data du formulaire
|
||||
$form->handleRequest($request);
|
||||
|
||||
// Sur erreur
|
||||
$this->getErrorForm(null, $form, $request, $data, 'update');
|
||||
|
||||
// Sur validation
|
||||
if ($form->get('submit')->isClicked() && $form->isValid()) {
|
||||
$data = $form->getData();
|
||||
$em->persist($data);
|
||||
$em->flush();
|
||||
|
||||
// Retour à la liste
|
||||
if ($returnto) {
|
||||
return $this->redirectToRoute('app_budget', ['id' => $returnto]);
|
||||
} else {
|
||||
return $this->redirectToRoute('app_budget', ['id' => $year->getId()]);
|
||||
}
|
||||
}
|
||||
|
||||
// Affichage du formulaire
|
||||
if ($request->query->get('fgprint')) {
|
||||
$render = $this->renderView('Budget/edit.html.twig', [
|
||||
'useheader' => true,
|
||||
'usesidebar' => true,
|
||||
'budget' => $data,
|
||||
'type' => $type,
|
||||
'id' => $id,
|
||||
'year' => $year,
|
||||
'mode' => 'update',
|
||||
'form' => $form->createView(),
|
||||
'fgprint' => true,
|
||||
'returnto' => $returnto,
|
||||
]);
|
||||
|
||||
return new PdfResponse(
|
||||
$this->knpSnappy->getOutputFromHtml($render),
|
||||
'budget.pdf'
|
||||
);
|
||||
} else {
|
||||
return $this->render('Budget/edit.html.twig', [
|
||||
'useheader' => true,
|
||||
'usesidebar' => true,
|
||||
'budget' => $data,
|
||||
'type' => $type,
|
||||
'id' => $id,
|
||||
'year' => $year,
|
||||
'mode' => 'update',
|
||||
'form' => $form->createView(),
|
||||
'returnto' => $returnto,
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
protected function getErrorForm($id, $form, $request, $data, $mode)
|
||||
{
|
||||
if ($form->get('submit')->isClicked() && 'delete' == $mode) {
|
||||
}
|
||||
|
||||
if ($form->get('submit')->isClicked() && 'submit' == $mode) {
|
||||
}
|
||||
|
||||
if ($form->get('submit')->isClicked() && !$form->isValid()) {
|
||||
$this->get('session')->getFlashBag()->clear();
|
||||
|
||||
$errors = $form->getErrors();
|
||||
foreach ($errors as $error) {
|
||||
$request->getSession()->getFlashBag()->add('error', $error->getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,83 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Controller;
|
||||
|
||||
use App\Form\CronType;
|
||||
use App\Repository\CronRepository;
|
||||
use Doctrine\ORM\EntityManagerInterface;
|
||||
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
|
||||
use Symfony\Component\HttpFoundation\BinaryFileResponse;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
use Symfony\Component\HttpFoundation\ResponseHeaderBag;
|
||||
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
|
||||
|
||||
class CronController extends AbstractController
|
||||
{
|
||||
private EntityManagerInterface $em;
|
||||
private CronRepository $cronRepository;
|
||||
|
||||
public function __construct(EntityManagerInterface $em, CronRepository $cronRepository)
|
||||
{
|
||||
$this->em = $em;
|
||||
$this->cronRepository = $cronRepository;
|
||||
}
|
||||
|
||||
public function list()
|
||||
{
|
||||
$crons = $this->cronRepository->findAll();
|
||||
|
||||
return $this->render('Cron/list.html.twig', [
|
||||
'crons' => $crons,
|
||||
'useheader' => true,
|
||||
'usesidebar' => true,
|
||||
]);
|
||||
}
|
||||
|
||||
public function update($id, Request $request)
|
||||
{
|
||||
$cron = $this->cronRepository->find($id);
|
||||
if (!$cron) {
|
||||
throw new NotFoundHttpException('La ressource demandée est introuvable.');
|
||||
}
|
||||
|
||||
$form = $this->createForm(CronType::class, $cron, ['mode' => 'update']);
|
||||
$form->handleRequest($request);
|
||||
if ($form->isSubmitted() && $form->isValid()) {
|
||||
$this->em->persist($cron);
|
||||
$this->em->flush();
|
||||
|
||||
return $this->redirectToRoute('app_cron');
|
||||
}
|
||||
|
||||
return $this->render('Cron/edit.html.twig', [
|
||||
'useheader' => true,
|
||||
'usesidebar' => true,
|
||||
'cron' => $cron,
|
||||
'mode' => 'update',
|
||||
'form' => $form->createView(),
|
||||
]);
|
||||
}
|
||||
|
||||
public function log()
|
||||
{
|
||||
return $this->render('Cron/logs.html.twig', [
|
||||
'useheader' => true,
|
||||
'usesidebar' => true,
|
||||
]);
|
||||
}
|
||||
|
||||
public function getlog($id)
|
||||
{
|
||||
$path = $this->getParameter('kernel.project_dir');
|
||||
if ('dump' == $id) {
|
||||
$file = $path.'/var/log/'.$this->getParameter('appAlias').'.sql';
|
||||
} else {
|
||||
$file = $path.'/var/log/'.$id.'.log';
|
||||
}
|
||||
|
||||
$response = new BinaryFileResponse($file);
|
||||
$response->setContentDisposition(ResponseHeaderBag::DISPOSITION_ATTACHMENT);
|
||||
|
||||
return $response;
|
||||
}
|
||||
}
|
||||
@@ -1,184 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Controller;
|
||||
|
||||
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
|
||||
use Symfony\Component\Form\Extension\Core\Type\HiddenType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
|
||||
class CropController extends AbstractController
|
||||
{
|
||||
// Etape 01 - Téléchargement de l'image
|
||||
public function crop01()
|
||||
{
|
||||
return $this->render('Crop/crop01.html.twig', [
|
||||
'useheader' => false,
|
||||
'usemenu' => false,
|
||||
'usesidebar' => false,
|
||||
]);
|
||||
}
|
||||
|
||||
// Etape 02 - Couper votre l'image
|
||||
public function crop02(Request $request)
|
||||
{
|
||||
// Récupération de l'image à cropper
|
||||
$large_image_location = 'uploads/avatar/'.$this->get('session')->get('uploadavatar');
|
||||
|
||||
// Récupérer les tailles de l'image
|
||||
$width = $this->getWidth($large_image_location);
|
||||
$height = $this->getHeight($large_image_location);
|
||||
|
||||
// Définir le pourcentage de réduction de l'image
|
||||
$max_height = 400000;
|
||||
$max_width = 800;
|
||||
$scale = $max_height / $height;
|
||||
if (($width * $scale) > $max_width) {
|
||||
$scale = $max_width / $width;
|
||||
}
|
||||
$this->resizeImage($large_image_location, $width, $height, $scale);
|
||||
|
||||
// Construction du formulaire
|
||||
$form = $this->createFormBuilder()
|
||||
->add('submit', SubmitType::class, ['label' => 'Valider', 'attr' => ['class' => 'btn btn-success', 'onclick' => 'reportThumb()']])
|
||||
->add('x', HiddenType::class)
|
||||
->add('y', HiddenType::class)
|
||||
->add('w', HiddenType::class)
|
||||
->add('h', HiddenType::class)
|
||||
->getForm();
|
||||
|
||||
// Récupération des data du formulaire
|
||||
$form->handleRequest($request);
|
||||
|
||||
// Sur validation on généère la miniature croppée
|
||||
if ($form->isSubmitted() && $form->isValid()) {
|
||||
// Récupération des valeurs du formulaire
|
||||
$data = $form->getData();
|
||||
|
||||
$thumb_image_location = 'uploads/avatar/thumb_'.$this->get('session')->get('uploadavatar');
|
||||
$cropped = $this->resizeThumbnailImage($thumb_image_location, $large_image_location, $data['w'], $data['h'], $data['x'], $data['y'], $scale);
|
||||
}
|
||||
|
||||
return $this->render('Crop/crop02.html.twig', [
|
||||
'useheader' => false,
|
||||
'usemenu' => false,
|
||||
'usesidebar' => false,
|
||||
'form' => $form->createView(),
|
||||
]);
|
||||
}
|
||||
|
||||
// Calcul de la hauteur
|
||||
protected function getHeight($image)
|
||||
{
|
||||
$size = getimagesize($image);
|
||||
$height = $size[1];
|
||||
|
||||
return $height;
|
||||
}
|
||||
|
||||
// Cacul de la largeur
|
||||
protected function getWidth($image)
|
||||
{
|
||||
$size = getimagesize($image);
|
||||
$width = $size[0];
|
||||
|
||||
return $width;
|
||||
}
|
||||
|
||||
protected function resizeImage($image, $width, $height, $scale)
|
||||
{
|
||||
list($imagewidth, $imageheight, $imageType) = getimagesize($image);
|
||||
$imageType = image_type_to_mime_type($imageType);
|
||||
$newImageWidth = ceil($width * $scale);
|
||||
$newImageHeight = ceil($height * $scale);
|
||||
$newImage = imagecreatetruecolor($newImageWidth, $newImageHeight);
|
||||
switch ($imageType) {
|
||||
case 'image/gif':
|
||||
$source = imagecreatefromgif($image);
|
||||
break;
|
||||
case 'image/pjpeg':
|
||||
case 'image/jpeg':
|
||||
case 'image/jpg':
|
||||
$source = imagecreatefromjpeg($image);
|
||||
break;
|
||||
case 'image/png':
|
||||
case 'image/x-png':
|
||||
$source = imagecreatefrompng($image);
|
||||
break;
|
||||
case 'image/webp':
|
||||
$source = imagecreatefromwebp($image);
|
||||
break;
|
||||
}
|
||||
imagecopyresampled($newImage, $source, 0, 0, 0, 0, $newImageWidth, $newImageHeight, $width, $height);
|
||||
|
||||
switch ($imageType) {
|
||||
case 'image/gif':
|
||||
imagegif($newImage, $image);
|
||||
break;
|
||||
case 'image/pjpeg':
|
||||
case 'image/jpeg':
|
||||
case 'image/jpg':
|
||||
imagejpeg($newImage, $image, 90);
|
||||
break;
|
||||
case 'image/png':
|
||||
case 'image/x-png':
|
||||
imagepng($newImage, $image);
|
||||
break;
|
||||
case 'image/webp':
|
||||
imagewebp($newImage, $image, 90);
|
||||
break;
|
||||
}
|
||||
|
||||
chmod($image, 0640);
|
||||
|
||||
return $image;
|
||||
}
|
||||
|
||||
protected function resizeThumbnailImage($thumb_image_name, $image, $width, $height, $start_width, $start_height, $scale)
|
||||
{
|
||||
list($imagewidth, $imageheight, $imageType) = getimagesize($image);
|
||||
$imageType = image_type_to_mime_type($imageType);
|
||||
|
||||
$newImageWidth = ceil($width * $scale);
|
||||
$newImageHeight = ceil($height * $scale);
|
||||
$newImage = imagecreatetruecolor($newImageWidth, $newImageHeight);
|
||||
switch ($imageType) {
|
||||
case 'image/gif':
|
||||
$source = imagecreatefromgif($image);
|
||||
break;
|
||||
case 'image/pjpeg':
|
||||
case 'image/jpeg':
|
||||
case 'image/jpg':
|
||||
$source = imagecreatefromjpeg($image);
|
||||
break;
|
||||
case 'image/png':
|
||||
case 'image/x-png':
|
||||
$source = imagecreatefrompng($image);
|
||||
break;
|
||||
case 'image/webp':
|
||||
$source = imagecreatefromwebp($image);
|
||||
break;
|
||||
}
|
||||
imagecopyresampled($newImage, $source, 0, 0, $start_width, $start_height, $newImageWidth, $newImageHeight, $width, $height);
|
||||
switch ($imageType) {
|
||||
case 'image/gif':
|
||||
imagegif($newImage, $thumb_image_name);
|
||||
break;
|
||||
case 'image/pjpeg':
|
||||
case 'image/jpeg':
|
||||
case 'image/jpg':
|
||||
imagejpeg($newImage, $thumb_image_name, 90);
|
||||
break;
|
||||
case 'image/png':
|
||||
case 'image/x-png':
|
||||
imagepng($newImage, $thumb_image_name);
|
||||
break;
|
||||
case 'image/webp':
|
||||
imagewebp($newImage, $thumb_image_name, 90);
|
||||
break;
|
||||
}
|
||||
chmod($thumb_image_name, 0640);
|
||||
|
||||
return $thumb_image_name;
|
||||
}
|
||||
}
|
||||
@@ -1,96 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Controller;
|
||||
|
||||
use App\Entity\Customer;
|
||||
use App\Form\CustomerType;
|
||||
use App\Repository\CustomerRepository;
|
||||
use Doctrine\ORM\EntityManagerInterface;
|
||||
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
|
||||
|
||||
class CustomerController extends AbstractController
|
||||
{
|
||||
private EntityManagerInterface $em;
|
||||
private CustomerRepository $customerRepository;
|
||||
|
||||
public function __construct(EntityManagerInterface $em, CustomerRepository $customerRepository)
|
||||
{
|
||||
$this->em = $em;
|
||||
$this->customerRepository = $customerRepository;
|
||||
}
|
||||
|
||||
public function list()
|
||||
{
|
||||
$customers = $this->customerRepository->findAll();
|
||||
|
||||
return $this->render('Customer/list.html.twig', [
|
||||
'customers' => $customers,
|
||||
'useheader' => true,
|
||||
'usesidebar' => true,
|
||||
]);
|
||||
}
|
||||
|
||||
public function submit(Request $request)
|
||||
{
|
||||
$customer = new Customer();
|
||||
$form = $this->createForm(CustomerType::class, $customer, ['mode' => 'submit']);
|
||||
$form->handleRequest($request);
|
||||
if ($form->isSubmitted() && $form->isValid()) {
|
||||
$this->em->persist($customer);
|
||||
$this->em->flush();
|
||||
|
||||
return $this->redirectToRoute('app_customer');
|
||||
}
|
||||
|
||||
return $this->render('Customer/edit.html.twig', [
|
||||
'useheader' => true,
|
||||
'usesidebar' => true,
|
||||
'customer' => $customer,
|
||||
'mode' => 'submit',
|
||||
'form' => $form->createView(),
|
||||
]);
|
||||
}
|
||||
|
||||
public function update($id, Request $request)
|
||||
{
|
||||
$customer = $this->customerRepository->find($id);
|
||||
if (!$customer) {
|
||||
throw new NotFoundHttpException('La ressource demandée est introuvable.');
|
||||
}
|
||||
|
||||
$form = $this->createForm(CustomerType::class, $customer, ['mode' => 'update']);
|
||||
$form->handleRequest($request);
|
||||
if ($form->isSubmitted() && $form->isValid()) {
|
||||
$this->em->flush();
|
||||
|
||||
return $this->redirectToRoute('app_customer');
|
||||
}
|
||||
|
||||
return $this->render('Customer/edit.html.twig', [
|
||||
'useheader' => true,
|
||||
'usesidebar' => true,
|
||||
'customer' => $customer,
|
||||
'mode' => 'update',
|
||||
'form' => $form->createView(),
|
||||
]);
|
||||
}
|
||||
|
||||
public function delete($id)
|
||||
{
|
||||
$customer = $this->customerRepository->find($id);
|
||||
if (!$customer) {
|
||||
throw new NotFoundHttpException('La ressource demandée est introuvable.');
|
||||
}
|
||||
|
||||
try {
|
||||
$this->em->remove($customer);
|
||||
$this->em->flush();
|
||||
} catch (\Exception $e) {
|
||||
$this->addflash('error', $e->getMessage());
|
||||
}
|
||||
|
||||
return $this->redirectToRoute('app_customer');
|
||||
}
|
||||
}
|
||||
@@ -1,96 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Controller;
|
||||
|
||||
use App\Entity\Domaine;
|
||||
use App\Form\DomaineType;
|
||||
use App\Repository\DomaineRepository;
|
||||
use Doctrine\ORM\EntityManagerInterface;
|
||||
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
|
||||
|
||||
class DomaineController extends AbstractController
|
||||
{
|
||||
private EntityManagerInterface $em;
|
||||
private DomaineRepository $domaineRepository;
|
||||
|
||||
public function __construct(EntityManagerInterface $em, DomaineRepository $domaineRepository)
|
||||
{
|
||||
$this->em = $em;
|
||||
$this->domaineRepository = $domaineRepository;
|
||||
}
|
||||
|
||||
public function list()
|
||||
{
|
||||
$domaine = $this->domaineRepository->findAll();
|
||||
|
||||
return $this->render('Domaine/list.html.twig', [
|
||||
'domaines' => $domaine,
|
||||
'useheader' => true,
|
||||
'usesidebar' => true,
|
||||
]);
|
||||
}
|
||||
|
||||
public function submit(Request $request)
|
||||
{
|
||||
$domaine = new Domaine();
|
||||
$form = $this->createForm(DomaineType::class, $domaine, ['mode' => 'submit']);
|
||||
$form->handleRequest($request);
|
||||
if ($form->isSubmitted() && $form->isValid()) {
|
||||
$this->em->persist($domaine);
|
||||
$this->em->flush();
|
||||
|
||||
return $this->redirectToRoute('app_domaine');
|
||||
}
|
||||
|
||||
return $this->render('Domaine/edit.html.twig', [
|
||||
'useheader' => true,
|
||||
'usesidebar' => true,
|
||||
'domaine' => $domaine,
|
||||
'mode' => 'submit',
|
||||
'form' => $form->createView(),
|
||||
]);
|
||||
}
|
||||
|
||||
public function update($id, Request $request)
|
||||
{
|
||||
$domaine = $this->domaineRepository->find($id);
|
||||
if (!$domaine) {
|
||||
throw new NotFoundHttpException('La ressource demandée est introuvable.');
|
||||
}
|
||||
|
||||
$form = $this->createForm(DomaineType::class, $domaine, ['mode' => 'update']);
|
||||
$form->handleRequest($request);
|
||||
if ($form->isSubmitted() && $form->isValid()) {
|
||||
$this->em->flush();
|
||||
|
||||
return $this->redirectToRoute('app_domaine');
|
||||
}
|
||||
|
||||
return $this->render('Domaine/edit.html.twig', [
|
||||
'useheader' => true,
|
||||
'usesidebar' => true,
|
||||
'domaine' => $domaine,
|
||||
'mode' => 'update',
|
||||
'form' => $form->createView(),
|
||||
]);
|
||||
}
|
||||
|
||||
public function delete($id)
|
||||
{
|
||||
$domaine = $this->domaineRepository->find($id);
|
||||
if (!$domaine) {
|
||||
throw new NotFoundHttpException('La ressource demandée est introuvable.');
|
||||
}
|
||||
|
||||
try {
|
||||
$this->em->remove($domaine);
|
||||
$this->em->flush();
|
||||
} catch (\Exception $e) {
|
||||
$this->addflash('error', $e->getMessage());
|
||||
}
|
||||
|
||||
return $this->redirectToRoute('app_domaine');
|
||||
}
|
||||
}
|
||||
@@ -1,674 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Controller;
|
||||
|
||||
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
use Symfony\Component\HttpFoundation\Response;
|
||||
use Symfony\Component\Form\FormError;
|
||||
|
||||
use App\Entity\Event as Entity;
|
||||
use App\Form\EventType as Form;
|
||||
use App\Entity\Penalty;
|
||||
use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
|
||||
|
||||
class EventController extends AbstractController
|
||||
{
|
||||
private $data = "event";
|
||||
private $route = "app_event";
|
||||
private $render = "Event/";
|
||||
private $entity = "App:Event";
|
||||
private $notificator;
|
||||
private $router;
|
||||
|
||||
public function __construct(\App\Service\notificationService $notificator,UrlGeneratorInterface $router) {
|
||||
$this->notificator = $notificator;
|
||||
$this->router = $router;
|
||||
}
|
||||
|
||||
public function list(Request $request)
|
||||
{
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
$users = $em->getRepository("App:User")->findAll();
|
||||
$tasks = $em->getRepository("App:Task")->findAll();
|
||||
$projects= $em->getRepository("App:Project")->findBy(["active"=>true]);
|
||||
|
||||
return $this->render($this->render.'list.html.twig',[
|
||||
"useheader" => true,
|
||||
"usesidebar" => true,
|
||||
"users" => $users,
|
||||
"projects" => $projects
|
||||
]);
|
||||
}
|
||||
|
||||
public function load($iduser, Request $request)
|
||||
{
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
$tbevents=[];
|
||||
$start = $request->query->get('start');
|
||||
$end = $request->query->get('end');
|
||||
//$iduser=$this->get("session")->get("iduser");
|
||||
// Evenements
|
||||
if($iduser=="all") {
|
||||
$events=$em->getRepository("App:Event")->findAll();
|
||||
$events = $em
|
||||
->createQueryBuilder('event')
|
||||
->select('event')
|
||||
->from('App:Event','event')
|
||||
->Where('event.start>=:start AND event.end <:end')
|
||||
->setParameter('start',$start)
|
||||
->setParameter('end',$end)
|
||||
->getQuery()->getResult();
|
||||
}
|
||||
else {
|
||||
$user=$em->getRepository("App:User")->find($iduser);
|
||||
$events=$em->getRepository("App:Event")->findBy(["user"=>$user]);
|
||||
$events = $em
|
||||
->createQueryBuilder('event')
|
||||
->select('event')
|
||||
->from('App:Event','event')
|
||||
->Where('event.user=:user AND event.start>=:start AND event.end <:end')
|
||||
->setParameter('user',$user->getId())
|
||||
->setParameter('start',$start)
|
||||
->setParameter('end',$end)
|
||||
->getQuery()->getResult();
|
||||
}
|
||||
foreach($events as $event) {
|
||||
//Filtre par service
|
||||
|
||||
if($this->get('session')->get('idservice')!="all") {
|
||||
|
||||
$idservice=$event->getUser()->getService()->getId();
|
||||
if ($idservice!=$this->get('session')->get('idservice')){
|
||||
continue;
|
||||
}
|
||||
}
|
||||
// Filtre par project
|
||||
|
||||
if($this->get('session')->get('idproject')!="all") {
|
||||
$idproject=$event->getTask()->getProject()->getId();
|
||||
if($idproject!=$this->get('session')->get('idproject'))
|
||||
continue;
|
||||
}
|
||||
$tmp=$this->formatEvent($event);
|
||||
array_push($tbevents,$tmp);
|
||||
}
|
||||
|
||||
// Astreintes
|
||||
if($iduser=="all")
|
||||
$penaltys=$em->getRepository("App:Penalty")->findAll();
|
||||
else {
|
||||
$iduser=$this->get("session")->get("iduser");
|
||||
$user=$em->getRepository("App:User")->find($iduser);
|
||||
$penaltys=$em->getRepository("App:Penalty")->findBy(["user"=>$user]);
|
||||
}
|
||||
foreach($penaltys as $penalty) {
|
||||
$tmp=$this->formatEvent($penalty);
|
||||
array_push($tbevents,$tmp);
|
||||
}
|
||||
|
||||
// Breakday
|
||||
$breakdays=$em->getRepository("App:Breakday")->findAll();
|
||||
foreach($breakdays as $breakday) {
|
||||
$tmp=$this->formatBreakday($breakday);
|
||||
array_push($tbevents,$tmp);
|
||||
|
||||
}
|
||||
|
||||
// Retour
|
||||
return new Response(json_encode($tbevents));
|
||||
}
|
||||
|
||||
public function submit(Request $request)
|
||||
{
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
|
||||
// Récupération des variables envoyées en post
|
||||
$iduser = $request->request->get('iduser');
|
||||
$idtask = $request->request->get('idtask');
|
||||
$start = $request->request->get('start');
|
||||
$end = $request->request->get('end');
|
||||
$am = ($request->request->get('am')=="true");
|
||||
$ap = ($request->request->get('ap')=="true");
|
||||
$astreinte = ($request->request->get('astreinte')=="true");
|
||||
$externaltrip = ($request->request->get('externaltrip')=="true");
|
||||
$description = $request->request->get('description');
|
||||
|
||||
$user = $em->getRepository("App:User")->find($iduser);
|
||||
$task = $em->getRepository("App:Task")->find($idtask);
|
||||
|
||||
// Controle de cohérance
|
||||
if(!$user) {
|
||||
$output=["return"=>"KO","error"=>"Utilisateur inconnu"];
|
||||
return new Response(json_encode($output));
|
||||
}
|
||||
|
||||
if(!$task) {
|
||||
$output=["return"=>"KO","error"=>"Tâche inconnu"];
|
||||
return new Response(json_encode($output));
|
||||
}
|
||||
|
||||
// Convertir les dates string en date
|
||||
$datestart=new \DateTime($start);
|
||||
$dateend =new \DateTime($end);
|
||||
|
||||
if($am&&$ap) {
|
||||
$datestart->SetTime(0,0,0);
|
||||
$dateend->add(new \DateInterval('P1D'));
|
||||
$dateend->SetTime(0,0,0);
|
||||
$duration=$dateend->diff($datestart)->d;
|
||||
$allday=true;
|
||||
}
|
||||
else {
|
||||
$duration=0.5;
|
||||
$allday=false;
|
||||
if($am) {
|
||||
$datestart->SetTime(9,0,0);
|
||||
$dateend->SetTime(12,0,0);
|
||||
}
|
||||
else {
|
||||
$datestart->SetTime(13,0,0);
|
||||
$dateend->SetTime(17,0,0);
|
||||
}
|
||||
}
|
||||
|
||||
// Astreinte
|
||||
if($astreinte) {
|
||||
// Une astreinte ne peut-etre un congès
|
||||
if($task->getNature()->getIsvacation()) {
|
||||
$output=["return"=>"KO","error"=>"Une astreinte ne peut être de nature congès","start"=>$datestart,"end"=>$dateend,"events"=>null];
|
||||
return new Response(json_encode($output));
|
||||
}
|
||||
|
||||
// On regarde si une astreinte ne commence pas pendant une autre astreinte ou qui se termine pendant une autre astreinte ou qui a une astreinte compris dans ses dates
|
||||
$penaltys = $em->createQueryBuilder('penalty')
|
||||
->select('penalty')
|
||||
->from('App:Penalty','penalty')
|
||||
->Where('penalty.user=:user AND penalty.start<=:start AND penalty.end >:start')
|
||||
->orWhere('penalty.user=:user AND penalty.start<:end AND penalty.end >=:end')
|
||||
->orWhere('penalty.user=:user AND penalty.start>:start AND penalty.end <:end')
|
||||
->setParameter('user',$iduser)
|
||||
->setParameter('start',$datestart)
|
||||
->setParameter('end',$dateend)
|
||||
->getQuery()->getResult();
|
||||
if($penaltys) {
|
||||
$tbpenalty=[];
|
||||
foreach($penaltys as $penalty) {
|
||||
$tmp=[
|
||||
"id" => $penalty->getId(),
|
||||
"start" => $penalty->getStart(),
|
||||
"end" => $penalty->getEnd(),
|
||||
];
|
||||
array_push($tbpenalty,$tmp);
|
||||
}
|
||||
$output=["return"=>"KO","error"=>"Cet intervant a déjà une tache à cette date","start"=>$datestart,"end"=>$dateend,"events"=>$tbpenalty];
|
||||
return new Response(json_encode($output));
|
||||
}
|
||||
|
||||
// On regarde si un évenement ne commence pas pendant un autre évenement ou qui se termine pendant un autre évenement ou qui a un évenement compris dans ses dates
|
||||
$events = $em->createQueryBuilder('event')
|
||||
->select('event')
|
||||
->from('App:Event','event')
|
||||
->Where('event.user=:user AND event.start<=:start AND event.end >:start')
|
||||
->orWhere('event.user=:user AND event.start<:end AND event.end >=:end')
|
||||
->orWhere('event.user=:user AND event.start>:start AND event.end <:end')
|
||||
->setParameter('user',$iduser)
|
||||
->setParameter('start',$datestart)
|
||||
->setParameter('end',$dateend)
|
||||
->getQuery()->getResult();
|
||||
if($events) {
|
||||
$tbevent=[];
|
||||
$validate=false;
|
||||
$holiday=false;
|
||||
foreach($events as $event) {
|
||||
$tmp=[
|
||||
"id" => $event->getId(),
|
||||
"start" => $event->getStart(),
|
||||
"end" => $event->getEnd(),
|
||||
];
|
||||
array_push($tbevent,$tmp);
|
||||
if($event->getValidate()) $validate=true;
|
||||
if($event->getTask()->getNature()->getIsvacation()) $holiday=true;
|
||||
}
|
||||
|
||||
if($validate) {
|
||||
$output=["return"=>"KO","error"=>"Cet intervant a sa semaine de validé","start"=>$datestart,"end"=>$dateend,"events"=>$tbevent];
|
||||
return new Response(json_encode($output));
|
||||
}
|
||||
elseif($holiday) {
|
||||
$output=["return"=>"KO","error"=>"Cet intervant a posé des congés sur cette période","start"=>$datestart,"end"=>$dateend,"events"=>$tbevent];
|
||||
return new Response(json_encode($output));
|
||||
}
|
||||
}
|
||||
|
||||
// Création de l'astreinte
|
||||
$penalty = new Penalty();
|
||||
$penalty->setStart($datestart);
|
||||
$penalty->setEnd($dateend);
|
||||
$penalty->setDuration($duration);
|
||||
$penalty->setAllday($allday);
|
||||
$penalty->setDescription($description);
|
||||
$penalty->setUser($user);
|
||||
$penalty->setTask($task);
|
||||
$penalty->setValidate(false);
|
||||
|
||||
$em->persist($penalty);
|
||||
$em->flush();
|
||||
|
||||
$output=$this->formatEvent($penalty);
|
||||
|
||||
}
|
||||
|
||||
// Evenement
|
||||
else {
|
||||
// On regarde si une tache ne commence pas pendant une autre intervention ou qui se termine pendant une autre intervention ou qui a une intervention compris dans ses dates
|
||||
$events = $em->createQueryBuilder('event')
|
||||
->select('event')
|
||||
->from('App:Event','event')
|
||||
->Where('event.user=:user AND event.start<=:start AND event.end >:start')
|
||||
->orWhere('event.user=:user AND event.start<:end AND event.end >=:end')
|
||||
->orWhere('event.user=:user AND event.start>:start AND event.end <:end')
|
||||
->setParameter('user',$iduser)
|
||||
->setParameter('start',$datestart)
|
||||
->setParameter('end',$dateend)
|
||||
->getQuery()->getResult();
|
||||
if($events) {
|
||||
$tbevent=[];
|
||||
$validate=false;
|
||||
$holiday=false;
|
||||
foreach($events as $event) {
|
||||
$tmp=[
|
||||
"id" => $event->getId(),
|
||||
"start" => $event->getStart(),
|
||||
"end" => $event->getEnd(),
|
||||
];
|
||||
array_push($tbevent,$tmp);
|
||||
if($event->getValidate()) $validate=true;
|
||||
if($event->getTask()->getNature()->getIsvacation()) $holiday=true;
|
||||
}
|
||||
|
||||
if(!$this->isGranted('ROLE_ADMIN')&&!$this->isGranted('ROLE_MASTER')) {
|
||||
$output=["return"=>"KO","error"=>"Cet intervant a déjà une tache à cette date","start"=>$datestart,"end"=>$dateend,"events"=>$tbevent];
|
||||
return new Response(json_encode($output));
|
||||
}
|
||||
elseif($validate) {
|
||||
$output=["return"=>"KO","error"=>"Cet intervant a sa semaine de validé","start"=>$datestart,"end"=>$dateend,"events"=>$tbevent];
|
||||
return new Response(json_encode($output));
|
||||
}
|
||||
elseif($holiday) {
|
||||
$output=["return"=>"KO","error"=>"Cet intervant a posé des congés sur cette période","start"=>$datestart,"end"=>$dateend,"events"=>$tbevent];
|
||||
return new Response(json_encode($output));
|
||||
}
|
||||
elseif($task->getNature()->getIsvacation()) {
|
||||
$output=["return"=>"KO","error"=>"Vous ne pouvez pas poser de congés à cette date, une intervention y est déjà plannifiée","start"=>$datestart,"end"=>$dateend,"events"=>null];
|
||||
return new Response(json_encode($output));
|
||||
}
|
||||
}
|
||||
|
||||
// On regarde si un jour férié ne commence pas pendant une autre intervention ou qui se termine pendant une autre intervention ou qui a une intervention compris dans ses dates
|
||||
$breakdays = $em->createQueryBuilder('breakday')
|
||||
->select('breakday')
|
||||
->from('App:Breakday','breakday')
|
||||
->Where('breakday.start<=:start AND breakday.end >:start')
|
||||
->orWhere('breakday.start<:end AND breakday.end >=:end')
|
||||
->orWhere('breakday.start>:start AND breakday.end <:end')
|
||||
->setParameter('start',$datestart)
|
||||
->setParameter('end',$dateend)
|
||||
->getQuery()->getResult();
|
||||
if($breakdays) {
|
||||
$tbevent=[];
|
||||
foreach($breakdays as $breakday) {
|
||||
$tmp=[
|
||||
"id" => $breakday->getId(),
|
||||
"start" => $breakday->getStart(),
|
||||
"end" => $breakday->getEnd(),
|
||||
];
|
||||
array_push($tbevent,$tmp);
|
||||
}
|
||||
$output=["return"=>"KO","error"=>"Cet intervant a déjà une tache à cette date","start"=>$datestart,"end"=>$dateend,"events"=>$tbevent];
|
||||
return new Response(json_encode($output));
|
||||
}
|
||||
|
||||
|
||||
// Création de l'évenement
|
||||
$event = new Entity();
|
||||
$event->setStart($datestart);
|
||||
$event->setEnd($dateend);
|
||||
$event->setDuration($duration);
|
||||
$event->setAllday($allday);
|
||||
$event->setExternalTrip($externaltrip);
|
||||
$event->setDescription($description);
|
||||
$event->setUser($user);
|
||||
$event->setTask($task);
|
||||
$event->setValidate(false);
|
||||
$event->setValidateholiday(false);
|
||||
|
||||
$em->persist($event);
|
||||
$em->flush();
|
||||
if($task->getNature()->getIsvacation()){
|
||||
$idevent=$event->getId();
|
||||
//$valid_url = $this->generateUrl('app_validationholiday',[],true);
|
||||
$valid_url = $this->router->generate('app_validationholiday', [], urlGeneratorInterface::ABSOLUTE_URL);
|
||||
// $this->notificator->sendNotifAttenteValid("Congés en attente de validation", $iduser, $idevent, $valid_url);
|
||||
|
||||
}
|
||||
|
||||
$output=$this->formatEvent($event);
|
||||
}
|
||||
|
||||
return new Response(json_encode($output));
|
||||
}
|
||||
|
||||
public function update(Request $request)
|
||||
{
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
|
||||
// Récupération des variables envoyées en post
|
||||
$idevent = str_replace("A","",$request->request->get('idevent'));
|
||||
$iduser = $request->request->get('iduser');
|
||||
$idtask = $request->request->get('idtask');
|
||||
$am = ($request->request->get('am')=="true");
|
||||
$ap = ($request->request->get('ap')=="true");
|
||||
$fgastreinte = ($request->request->get('fgastreinte')=="true");
|
||||
$externaltrip = ($request->request->get('externaltrip')=="true");
|
||||
$description = $request->request->get('description');
|
||||
|
||||
$user = $em->getRepository("App:User")->find($iduser);
|
||||
$task = $em->getRepository("App:Task")->find($idtask);
|
||||
|
||||
// Controle de cohérance
|
||||
if(!$user) {
|
||||
$output=["return"=>"KO","error"=>"Utilisateur inconnu"];
|
||||
return new Response(json_encode($output));
|
||||
}
|
||||
|
||||
if(!$task) {
|
||||
$output=["return"=>"KO","error"=>"Tâche inconnue"];
|
||||
return new Response(json_encode($output));
|
||||
}
|
||||
|
||||
// Astreinte
|
||||
if($fgastreinte) {
|
||||
// Une astreinte ne peut-etre un congès
|
||||
if($task->getNature()->getIsvacation()) {
|
||||
$output=["return"=>"KO","error"=>"Une astreinte ne peut être de nature congès"];
|
||||
return new Response(json_encode($output));
|
||||
}
|
||||
|
||||
// Recherche de l'event
|
||||
$penalty = $em->getRepository("App:Penalty")->find($idevent);
|
||||
if(!$penalty) {
|
||||
$output=["return"=>"KO","error"=>"L'évènement n'existe plus"];
|
||||
return new Response(json_encode($output));
|
||||
}
|
||||
|
||||
if($penalty->getValidate()) {
|
||||
$output=["return"=>"KO","error"=>"Modification impossible l'évènement a été validé"];
|
||||
return new Response(json_encode($output));
|
||||
}
|
||||
|
||||
// Modification de l'évenement
|
||||
$penalty->setDescription($description);
|
||||
$penalty->setUser($user);
|
||||
$penalty->setTask($task);
|
||||
|
||||
$em->persist($penalty);
|
||||
$em->flush();
|
||||
|
||||
$output=$this->formatEvent($penalty);
|
||||
}
|
||||
|
||||
// Evenement
|
||||
else {
|
||||
// Recherche de l'event
|
||||
$event = $em->getRepository("App:Event")->find($idevent);
|
||||
if(!$event) {
|
||||
$output=["return"=>"KO","error"=>"L'évènement n'existe plus"];
|
||||
return new Response(json_encode($output));
|
||||
}
|
||||
|
||||
if($event->getValidate()||$event->getValidateholiday()) {
|
||||
$output=["return"=>"KO","error"=>"Modification impossible l'évènement a été validé"];
|
||||
return new Response(json_encode($output));
|
||||
}
|
||||
|
||||
$datestart=$event->getStart();
|
||||
$dateend =$event->getEnd();
|
||||
$duration=$dateend->diff($datestart)->d;
|
||||
if($am&&$ap) {
|
||||
if ($duration >= 1) {
|
||||
$dateend->SetTime(0,0,-1);
|
||||
}
|
||||
$datestart->SetTime(0,0,0);
|
||||
$dateend->add(new \DateInterval('P1D'));
|
||||
$dateend->SetTime(0,0,0);
|
||||
$duration=$dateend->diff($datestart)->d;
|
||||
$allday=true;
|
||||
}
|
||||
else {
|
||||
$duration=$dateend->diff($datestart)->d;
|
||||
if ($duration == 1) {
|
||||
$dateend->SetTime(0,0,-1);
|
||||
}
|
||||
$duration=0.5;
|
||||
$allday=false;
|
||||
if($am) {
|
||||
$datestart->SetTime(9,0,0);
|
||||
$dateend->SetTime(12,0,0);
|
||||
}
|
||||
else {
|
||||
$datestart->SetTime(13,0,0);
|
||||
$dateend->SetTime(17,0,0);
|
||||
}
|
||||
}
|
||||
|
||||
// On regarde si une tache ne commence pas pendant une autre intervention ou qui se termine pendant une autre intervention ou qui a une intervention compris dans ses dates
|
||||
$events = $em->createQueryBuilder('event')
|
||||
->select('event')
|
||||
->from('App:Event','event')
|
||||
->Where('event.user=:user AND event.start<=:start AND event.end >:start')
|
||||
->orWhere('event.user=:user AND event.start<:end AND event.end >=:end')
|
||||
->orWhere('event.user=:user AND event.start>:start AND event.end <:end')
|
||||
->setParameter('user',$iduser)
|
||||
->setParameter('start',$datestart)
|
||||
->setParameter('end',$dateend)
|
||||
->getQuery()->getResult();
|
||||
if($events) {
|
||||
$tbevent=[];
|
||||
$validate=false;
|
||||
$holiday=false;
|
||||
|
||||
foreach($events as $ev) {
|
||||
if ($event->getId() != $ev->getId()) {
|
||||
$tmp=[
|
||||
"id" => $ev->getId(),
|
||||
"task" => $ev->getTask()->getName(),
|
||||
"start" => $ev->getStart(),
|
||||
"end" => $ev->getEnd(),
|
||||
];
|
||||
array_push($tbevent,$tmp);
|
||||
if($ev->getValidate()) $validate=true;
|
||||
if($ev->getTask()->getNature()->getIsvacation()) $holiday=true;
|
||||
}
|
||||
}
|
||||
|
||||
if (sizeof($tbevent)>0) {
|
||||
if(!$this->isGranted('ROLE_ADMIN')&&!$this->isGranted('ROLE_MASTER')) {
|
||||
$output=["return"=>"KO","error"=>"Cet intervant a déjà une tache à cette date","start"=>$datestart,"end"=>$dateend,"events"=>$tbevent];
|
||||
return new Response(json_encode($output));
|
||||
}
|
||||
elseif($validate) {
|
||||
$output=["return"=>"KO","error"=>"Cet intervant a sa semaine de validé","start"=>$datestart,"end"=>$dateend,"events"=>$tbevent];
|
||||
return new Response(json_encode($output));
|
||||
}
|
||||
elseif($holiday) {
|
||||
$output=["return"=>"KO","error"=>"Cet intervant a posé des congés sur cette période","start"=>$datestart,"end"=>$dateend,"events"=>$tbevent];
|
||||
return new Response(json_encode($output));
|
||||
}
|
||||
elseif($task->getNature()->getIsvacation()) {
|
||||
$output=["return"=>"KO","error"=>"Vous ne pouvez pas poser de congés à cette date, une intervention y est déjà plannifiée","start"=>$datestart,"end"=>$dateend,"events"=>null];
|
||||
return new Response(json_encode($output));
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
// Modification de l'évenement
|
||||
$event->setStart($datestart);
|
||||
$event->setEnd($dateend);
|
||||
$event->setDescription($description);
|
||||
$event->setDuration($duration);
|
||||
$event->setAllday($allday);
|
||||
$event->setExternalTrip($externaltrip);
|
||||
$event->setUser($user);
|
||||
$event->setTask($task);
|
||||
|
||||
$em->persist($event);
|
||||
$em->flush();
|
||||
|
||||
$output=$this->formatEvent($event);
|
||||
}
|
||||
return new Response(json_encode($output));
|
||||
}
|
||||
|
||||
|
||||
public function delete(Request $request)
|
||||
{
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
|
||||
// Récupération des variables envoyées en post
|
||||
$idevent = str_replace("A","",$request->request->get('idevent'));
|
||||
$fgastreinte = ($request->request->get('fgastreinte')=="true");
|
||||
|
||||
// Astreinte
|
||||
if($fgastreinte) {
|
||||
// Recherche de l'event
|
||||
$penalty = $em->getRepository("App:Penalty")->find($idevent);
|
||||
if(!$penalty) {
|
||||
$output=["return"=>"KO","error"=>"L'évènement n'existe plus"];
|
||||
return new Response(json_encode($output));
|
||||
}
|
||||
|
||||
if($penalty->getValidate()) {
|
||||
$output=["return"=>"KO","error"=>"Modification impossible l'évènement a été validé"];
|
||||
return new Response(json_encode($output));
|
||||
}
|
||||
|
||||
// Suppression de l'évenement
|
||||
$em->remove($penalty);
|
||||
$em->flush();
|
||||
}
|
||||
|
||||
// Evenement
|
||||
else {
|
||||
// Recherche de l'event
|
||||
$event = $em->getRepository("App:Event")->find($idevent);
|
||||
if(!$event) {
|
||||
$output=["return"=>"KO","error"=>"L'évènement n'existe plus"];
|
||||
return new Response(json_encode($output));
|
||||
}
|
||||
|
||||
if($event->getValidate()||$event->getValidateholiday()) {
|
||||
$output=["return"=>"KO","error"=>"Modification impossible l'évènement a été validé"];
|
||||
return new Response(json_encode($output));
|
||||
}
|
||||
|
||||
// Suppression de l'évenement
|
||||
$em->remove($event);
|
||||
$em->flush();
|
||||
}
|
||||
|
||||
$output=[];
|
||||
return new Response(json_encode($output));
|
||||
}
|
||||
|
||||
public function formatEvent($event) {
|
||||
$event instanceof Penalty ? $editable=(!($event->getValidate())) : ($editable=(!($event->getValidate())&&!($event->getValidateholiday())));
|
||||
|
||||
|
||||
// Si l'utilisateur en cours est différent de celui de l'event = seul MASTER - ADMIN peuvent modifier
|
||||
if($event->getUser()!=$this->getUser()) {
|
||||
if(!$this->isGranted('ROLE_ADMIN')&&!$this->isGranted('ROLE_MASTER'))
|
||||
$editable=false;
|
||||
}
|
||||
|
||||
|
||||
$tmp= [
|
||||
"id"=> ($event instanceof Penalty?"A":"").$event->getId(),
|
||||
"title" => ($event instanceof Penalty?"ASTREINTE = ":"").$event->getTask()->getDisplayname(),
|
||||
"start" => $event->getStart()->format("Y-m-d H:i"),
|
||||
"end" => $event->getEnd()->format("Y-m-d H:i"),
|
||||
"backgroundColor" => $event->getTask()->getColor(),
|
||||
"borderColor" => $event->getTask()->getColor(),
|
||||
"textColor" => "#ffffff",
|
||||
"allDay" => $event->getAllday(),
|
||||
"holiday" => $event->getTask()->getNature()->getIsvacation(),
|
||||
"externaltrip" => ($event instanceof Penalty?false:$event->getExternalTrip()),
|
||||
"editable" => $editable,
|
||||
"durationEditable" => false,
|
||||
"extendedProps" => [
|
||||
"fulldescription" => ($event instanceof Penalty?"ASTREINTE\n":"").strtoupper($event->getTask()->getDisplayname())."\n\n".$event->getDescription(),
|
||||
"description" => $event->getDescription(),
|
||||
"userid" => $event->getUser()->getId(),
|
||||
"username" => $event->getUser()->getUsername(),
|
||||
"taskid" => $event->getTask()->getId(),
|
||||
"avatar" => "/".$this->getParameter("appAlias")."/uploads/avatar/".$event->getUser()->getAvatar(),
|
||||
"estimate" => !$event->getTask()->getNature()->getIsvacation() ? $event->getTask()->getDuration($event->getEnd())." / ".$event->getTask()->getQuantity(): "",
|
||||
"locked" => ($event instanceof Penalty?$event->getValidate():$event->getValidate()||$event->getValidateholiday()),
|
||||
"editable" => $editable,
|
||||
"astreinte" => ($event instanceof Penalty)
|
||||
]
|
||||
];
|
||||
return $tmp;
|
||||
}
|
||||
|
||||
public function formatBreakday($event) {
|
||||
$editable=false;
|
||||
|
||||
$tmp= [
|
||||
"id"=> "B".$event->getId(),
|
||||
"title" => "Jour Férié",
|
||||
"start" => $event->getStart()->format("Y-m-d H:i"),
|
||||
"end" => $event->getEnd()->format("Y-m-d H:i"),
|
||||
"backgroundColor" => "#cdcdcd",
|
||||
"borderColor" => "#cdcdcd",
|
||||
"textColor" => "#ffffff",
|
||||
"allDay" => true,
|
||||
"externaltrip" => false,
|
||||
"holiday" => false,
|
||||
"editable" => false,
|
||||
"durationEditable" => false,
|
||||
"extendedProps" => [
|
||||
"fulldescription" => "Jour Férié",
|
||||
"description" => "Jour Férié",
|
||||
"userid" => null,
|
||||
"username" => "",
|
||||
"taskid" => null,
|
||||
"avatar" => "/".$this->getParameter("appAlias")."/uploads/avatar/".$this->getUser()->getAvatar(),
|
||||
"estimate" => "",
|
||||
"locked" => true,
|
||||
"editable" => false,
|
||||
"astreinte" => false
|
||||
]
|
||||
];
|
||||
return $tmp;
|
||||
}
|
||||
|
||||
protected function getErrorForm($id,$form,$request,$data,$mode) {
|
||||
if ($form->get('submit')->isClicked()&&$mode=="delete") {
|
||||
}
|
||||
|
||||
if ($form->get('submit')->isClicked() && $mode=="submit") {
|
||||
}
|
||||
|
||||
if ($form->get('submit')->isClicked() && !$form->isValid()) {
|
||||
$this->get('session')->getFlashBag()->clear();
|
||||
|
||||
$errors = $form->getErrors();
|
||||
foreach( $errors as $error ) {
|
||||
$request->getSession()->getFlashBag()->add("error", $error->getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,532 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Controller;
|
||||
|
||||
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
use Symfony\Component\HttpFoundation\Response;
|
||||
use Doctrine\ORM\EntityManagerInterface;
|
||||
|
||||
|
||||
class ExportController extends AbstractController
|
||||
{
|
||||
private $data = "export";
|
||||
private $route = "app_exportèview";
|
||||
private $render = "Export/";
|
||||
private $entity = "App:Export";
|
||||
|
||||
|
||||
public function view(Request $request)
|
||||
{
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
|
||||
$iduser = $this->get("session")->get("iduser");
|
||||
$user = $em->getRepository("App:User")->find($iduser);
|
||||
|
||||
return $this->render($this->render.'list.html.twig',[
|
||||
"useheader" => true,
|
||||
"usesidebar" => true,
|
||||
"user" => $user,
|
||||
|
||||
]);
|
||||
}
|
||||
|
||||
public function export_full_worked_days(Request $request,$access=null): Response
|
||||
{
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
$nbmonth=$this->get("session")->get("nbmonth");
|
||||
$iduser=$this->get("session")->get("iduser");
|
||||
|
||||
if($iduser=="all") {
|
||||
$users=$em->getRepository("App:User")->findAll();
|
||||
}
|
||||
else {
|
||||
$users=$em->getRepository("App:User")->findBy(["id"=>$iduser]);
|
||||
}
|
||||
|
||||
$tbevents=[];
|
||||
foreach($users as $user) {
|
||||
if(in_array("ROLE_USER",$user->getRoles())) {
|
||||
// Filtre par Service
|
||||
if($this->get('session')->get('idservice')!="all") {
|
||||
if($user->getService()->getId()!=$this->get('session')->get('idservice'))
|
||||
continue;
|
||||
}
|
||||
|
||||
$tmp=[
|
||||
"id" => $user->getId(),
|
||||
"user" => $user,
|
||||
"events" => [],
|
||||
];
|
||||
|
||||
// On formate le tableau de jour
|
||||
$start=new \Datetime('first day of this month');
|
||||
$start->sub(new \DateInterval('P'.$nbmonth.'M'));
|
||||
$start->modify('previous monday');
|
||||
$start->setTime(0,0,0);
|
||||
$end = new \Datetime('first day of this month');
|
||||
$end->add(new \DateInterval('P1M'));
|
||||
$end->modify('next monday');
|
||||
$end->setTime(23,59,0);
|
||||
while($start<$end) {
|
||||
$idday=$start->format("Ymd");
|
||||
$idmonth=$start->format("Ym");
|
||||
|
||||
$tmp["events"][$idday] = [
|
||||
"date"=>clone $start,
|
||||
"allday"=>false,
|
||||
"descriptionday"=>"",
|
||||
"am"=>false,
|
||||
"descriptionam"=>"",
|
||||
"ap"=>false,
|
||||
"descriptionap"=>"",
|
||||
"astreinte"=>false,
|
||||
"descriptionastreinte"=>"",
|
||||
];
|
||||
|
||||
$start->add(new \DateInterval('P1D'));
|
||||
}
|
||||
|
||||
// On formate le tableau des event
|
||||
$start=new \Datetime('first day of this month');
|
||||
$start->sub(new \DateInterval('P'.$nbmonth.'M'));
|
||||
$start->modify('previous monday');
|
||||
$start->setTime(0,0,0);
|
||||
$end = new \Datetime('first day of this month');
|
||||
$end->add(new \DateInterval('P1M'));
|
||||
$end->modify('next monday');
|
||||
$end->setTime(23,59,0);
|
||||
|
||||
$events = $em
|
||||
->createQueryBuilder('event')
|
||||
->select('event')
|
||||
->from('App:Event','event')
|
||||
->Where('event.user=:user AND event.start>=:start AND event.end <:end')
|
||||
->setParameter('user',$user->getId())
|
||||
->setParameter('start',$start)
|
||||
->setParameter('end',$end)
|
||||
->getQuery()->getResult();
|
||||
foreach($events as $event) {
|
||||
$idproject=$event->getTask()->getProject()->getId();
|
||||
|
||||
// Filtre par project
|
||||
if($this->get('session')->get('idproject')!="all") {
|
||||
if($idproject!=$this->get('session')->get('idproject'))
|
||||
continue;
|
||||
}
|
||||
$isvac= $event->getTask()->getNature()->getIsvacation();
|
||||
if($isvac) {continue;}
|
||||
$st=clone $event->getStart();
|
||||
while($st<$event->getEnd()) {
|
||||
|
||||
$idday=$st->format("Ymd");
|
||||
if($event->getAllday()) {
|
||||
$tmp["events"][$idday]["allday"]=true;
|
||||
$tmp["events"][$idday]["descriptionday"]=strtoupper($event->getTask()->getDisplayname());
|
||||
}
|
||||
else {
|
||||
// Matin ou après-midi ?
|
||||
$time=$event->getStart()->format("H");
|
||||
if($time==9) {
|
||||
$tmp["events"][$idday]["am"]=true;
|
||||
if(isset($tmp["events"][$idday]["ap"]) && $tmp["events"][$idday]["ap"]==true){$tmp["events"][$idday]["allday"]=true;}
|
||||
$tmp["events"][$idday]["descriptionam"]=strtoupper($event->getTask()->getDisplayname());
|
||||
}
|
||||
else {
|
||||
$tmp["events"][$idday]["ap"]=true;
|
||||
if(isset($tmp["events"][$idday]["am"]) && $tmp["events"][$idday]["am"] ==true){$tmp["events"][$idday]["allday"]=true;}
|
||||
$tmp["events"][$idday]["descriptionap"]=strtoupper($event->getTask()->getDisplayname());
|
||||
}
|
||||
}
|
||||
|
||||
$st->add(new \DateInterval('P1D'));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// On formate le tableau des astreintes
|
||||
$start=new \Datetime('first day of this month');
|
||||
$start->sub(new \DateInterval('P'.$nbmonth.'M'));
|
||||
$start->modify('previous monday');
|
||||
$start->setTime(0,0,0);
|
||||
$end = new \Datetime('first day of this month');
|
||||
$end->add(new \DateInterval('P1M'));
|
||||
$end->modify('next monday');
|
||||
$end->setTime(23,59,0);
|
||||
|
||||
$penaltys = $em
|
||||
->createQueryBuilder('penalty')
|
||||
->select('penalty')
|
||||
->from('App:Penalty','penalty')
|
||||
->Where('penalty.user=:user AND penalty.start>=:start AND penalty.end <:end')
|
||||
->setParameter('user',$user->getId())
|
||||
->setParameter('start',$start)
|
||||
->setParameter('end',$end)
|
||||
->getQuery()->getResult();
|
||||
foreach($penaltys as $penalty) {
|
||||
$idproject=$penalty->getTask()->getProject()->getId();
|
||||
|
||||
// Filtre par project
|
||||
if($this->get('session')->get('idproject')!="all") {
|
||||
if($idproject!=$this->get('session')->get('idproject'))
|
||||
continue;
|
||||
}
|
||||
|
||||
$st=clone $penalty->getStart();
|
||||
while($st<$penalty->getEnd()) {
|
||||
$idday=$st->format("Ymd");
|
||||
if($penalty->getAllday()) {
|
||||
$tmp["events"][$idday]["astreinte"]=true;
|
||||
$tmp["events"][$idday]["descriptionastreinte"]=strtoupper($penalty->getTask()->getDisplayname());
|
||||
}
|
||||
|
||||
$st->add(new \DateInterval('P1D'));
|
||||
}
|
||||
}
|
||||
|
||||
array_push($tbevents,$tmp);
|
||||
}
|
||||
}
|
||||
$csv = $this->renderView('Export/export_full_worked_days.csv.twig', ["users" => $tbevents]);
|
||||
$response = new Response($csv);
|
||||
$response->headers->set('Content-Type', 'text/csv; charset=utf-8');
|
||||
$response->headers->set('Content-Disposition', 'attachment; filename="export_full_worked_days.csv"');
|
||||
|
||||
return $response;
|
||||
}
|
||||
|
||||
public function export_penalty_additional(Request $request,$access=null): Response
|
||||
{
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
|
||||
$iduser = $this->get("session")->get("iduser");
|
||||
$timers = $em->getRepository("App:Timer")->findBy(["user"=>$iduser]);
|
||||
$tbtimers = [];
|
||||
foreach ($timers as $timer) {
|
||||
$isactive = $timer->getActivePenalty();
|
||||
$isadditional = $timer->getAdditionalHour();
|
||||
if ($isactive || $isadditional) {
|
||||
$tbtimer["id"] = $timer->getId();
|
||||
$tbtimer["taskname"] = $timer->getTask()->getDisplayname();
|
||||
$tbtimer["user"] = $timer->getUser()->getUsername();
|
||||
$tbtimer["start"] = $timer->getStart()->format("Y-m-d H:i");
|
||||
$tbtimer["end"] = $timer->getEnd()->format("Y-m-d H:i");
|
||||
$tbtimer["duration"] = $timer->getDuration();
|
||||
$tbtimer["activepenalty"] = $timer->getActivePenalty();
|
||||
$tbtimer["additionalhour"] = $timer->getAdditionalHour();
|
||||
$tbtimer["description"] = $timer->getDescription();
|
||||
array_push($tbtimers, $tbtimer);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
$csv = $this->renderView('Export/export_penalty_additional.csv.twig', ["timers" => $tbtimers]);
|
||||
$response = new Response($csv);
|
||||
$response->headers->set('Content-Type', 'text/csv; charset=utf-8');
|
||||
$response->headers->set('Content-Disposition', 'attachment; filename="export_penalty_additional.csv"');
|
||||
|
||||
return $response;
|
||||
}
|
||||
|
||||
public function export_project_weekly(Request $request,$access=null): Response {
|
||||
$nbmonth=$this->get("session")->get("nbmonth");
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
$projects=$em->getRepository("App:Project")->findAll();
|
||||
|
||||
//Construction du tableau des projets
|
||||
$tbprojects=[];
|
||||
foreach($projects as $project) {
|
||||
// Filtre par Customer
|
||||
if($access=="customer") {
|
||||
if($project->getCustomer()->getKeypass()!=$key)
|
||||
continue;
|
||||
}
|
||||
|
||||
// Filtre par Service
|
||||
if($this->get('session')->get('idservice')!="all") {
|
||||
if($project->getService()->getId()!=$this->get('session')->get('idservice'))
|
||||
continue;
|
||||
}
|
||||
|
||||
// Filtre par project
|
||||
if($this->get('session')->get('idproject')!="all") {
|
||||
if($project->getId()!=$this->get('session')->get('idproject'))
|
||||
continue;
|
||||
}
|
||||
|
||||
// // Ne prendre que les projets actif/inactif
|
||||
// if($this->get('session')->get('activeproject')!=$project->getActive())
|
||||
// continue;
|
||||
|
||||
$tbproject= [];
|
||||
$tbproject["projectname"] = $project->getDisplayname();
|
||||
$tbproject["name"] = $project->getname();
|
||||
$tbproject["customer"] = $project->getCustomer()->getName();
|
||||
$tbproject["service"] = $project->getService()->getName();
|
||||
$tbproject["domaine"] = $project->getDomaine()->getName();
|
||||
// Somme event validé par semaine
|
||||
$start=new \Datetime('first day of this month');
|
||||
$start->sub(new \DateInterval('P'.$nbmonth.'M'));
|
||||
$start->modify('previous monday');
|
||||
$start->setTime(0,0,0);
|
||||
$endmonth = new \Datetime('first day of this month');
|
||||
$endmonth->add(new \DateInterval('P1M'));
|
||||
$endmonth->modify('next monday');
|
||||
$endmonth->setTime(23,59,0);
|
||||
|
||||
$eventsbyweek = $em
|
||||
->createQueryBuilder('event')
|
||||
->select('event')
|
||||
->from('App:Task','task')
|
||||
->from('App:Event','event')
|
||||
->Where('task.project=:project')
|
||||
->andWhere('event.task=task')
|
||||
->andWhere('event.end >=:start')
|
||||
->andWhere('event.end <:end')
|
||||
->andWhere('event.validate=:validate')
|
||||
->setParameter('project',$project)
|
||||
->setParameter('validate',true)
|
||||
->setParameter('start',$start)
|
||||
->setParameter('end',$endmonth)
|
||||
->orderBy('event.start')
|
||||
->getQuery()->getResult();
|
||||
|
||||
// foreach($eventsbyweek as $event) {
|
||||
// if(!isset($tbproject["weeks"][$event->getStart()->format("Y")][$event->getStart()->format("o-\SW")])){
|
||||
// $tbproject["weeks"][$event->getStart()->format("Y")][$event->getStart()->format("o-\SW")] = [
|
||||
// "weeknumber" => $event->getStart()->format("o-\SW"),
|
||||
// "cumul" => 0,
|
||||
// ];
|
||||
// }
|
||||
// $tbproject["weeks"][$event->getStart()->format("Y")][$event->getStart()->format("o-\SW")]["cumul"] = $tbproject["weeks"][$event->getStart()->format("Y")][$event->getStart()->format("o-\SW")]["cumul"]+$event->getDuration();
|
||||
|
||||
// }
|
||||
// foreach($eventsbyweek as $event) {
|
||||
// if(!isset($tbproject["weeks_by_name"][$event->getStart()->format("Y")][$event->getStart()->format("o-\SW")]["users"])){
|
||||
// $tbproject["weeks_by_name"][$event->getStart()->format("Y")][$event->getStart()->format("o-\SW")] = [
|
||||
// "weeknumber" => $event->getStart()->format("o-\SW"),
|
||||
// "users" => [],
|
||||
// ];
|
||||
// }
|
||||
// if(!isset($tbproject["weeks_by_name"][$event->getStart()->format("Y")][$event->getStart()->format("o-\SW")]["users"][$event->getUser()->getId()])){
|
||||
// $tbuser= [
|
||||
// "id"=>$event->getUser()->getId(),
|
||||
// "displayname"=>$event->getUser()->getDisplayname(),
|
||||
// "cumul"=>0
|
||||
// ];
|
||||
// $tbproject["weeks_by_name"][$event->getStart()->format("Y")][$event->getStart()->format("o-\SW")]["users"][$event->getUser()->getId()] = $tbuser;
|
||||
// }
|
||||
|
||||
// $tbproject["weeks_by_name"][$event->getStart()->format("Y")][$event->getStart()->format("o-\SW")]["users"][$event->getUser()->getId()]["cumul"] = $tbproject["weeks_by_name"][$event->getStart()->format("Y")][$event->getStart()->format("o-\SW")]["users"][$event->getUser()->getId()]["cumul"]+$event->getDuration();
|
||||
// }
|
||||
foreach($eventsbyweek as $event) {
|
||||
if(!isset($tbproject["weeks_by_task_by_user"][$event->getStart()->format("Y")][$event->getStart()->format("o-\SW")]["tasks"])){
|
||||
$tbproject["weeks_by_task_by_user"][$event->getStart()->format("Y")][$event->getStart()->format("o-\SW")] = [
|
||||
"isoweek" => $event->getStart()->format("\SW"),
|
||||
"isoyear" => $event->getStart()->format("o"),
|
||||
"tasks" => [],
|
||||
];
|
||||
}
|
||||
if(!isset($tbproject["weeks_by_task_by_user"][$event->getStart()->format("Y")][$event->getStart()->format("o-\SW")]["tasks"][$event->getTask()->getId()])){
|
||||
$tbproject["weeks_by_task_by_user"][$event->getStart()->format("Y")][$event->getStart()->format("o-\SW")]["tasks"][$event->getTask()->getId()] = [
|
||||
"taskname" => $event->getTask()->getName(),
|
||||
"nature" => $event->getTask()->getNature()->getName(),
|
||||
"users" => [],
|
||||
];
|
||||
}
|
||||
if(!isset($tbproject["weeks_by_task_by_user"][$event->getStart()->format("Y")][$event->getStart()->format("o-\SW")]["tasks"][$event->getTask()->getId()]["users"][$event->getUser()->getId()])){
|
||||
$tbuser= [
|
||||
"id"=>$event->getUser()->getId(),
|
||||
"displayname"=>$event->getUser()->getDisplayname(),
|
||||
"cumul"=>0
|
||||
];
|
||||
$tbproject["weeks_by_task_by_user"][$event->getStart()->format("Y")][$event->getStart()->format("o-\SW")]["tasks"][$event->getTask()->getId()]["users"][$event->getUser()->getId()] = $tbuser;
|
||||
}
|
||||
|
||||
$tbproject["weeks_by_task_by_user"][$event->getStart()->format("Y")][$event->getStart()->format("o-\SW")]["tasks"][$event->getTask()->getId()]["users"][$event->getUser()->getId()]["cumul"] = $tbproject["weeks_by_task_by_user"][$event->getStart()->format("Y")][$event->getStart()->format("o-\SW")]["tasks"][$event->getTask()->getId()]["users"][$event->getUser()->getId()]["cumul"]+$event->getDuration();
|
||||
}
|
||||
// Somme astreintes validé par semaine
|
||||
$start=new \Datetime('first day of this month');
|
||||
$start->sub(new \DateInterval('P'.$nbmonth.'M'));
|
||||
$start->modify('previous monday');
|
||||
$start->setTime(0,0,0);
|
||||
$endmonth = new \Datetime('first day of this month');
|
||||
$endmonth->add(new \DateInterval('P1M'));
|
||||
$endmonth->modify('next monday');
|
||||
$endmonth->setTime(23,59,0);
|
||||
|
||||
$penaltybyweek = $em
|
||||
|
||||
->createQueryBuilder('penalty')
|
||||
->select('penalty')
|
||||
->from('App:Task','task')
|
||||
->from('App:Penalty','penalty')
|
||||
->Where('task.project=:project')
|
||||
->andWhere('penalty.task=task')
|
||||
->andWhere('penalty.end >=:start')
|
||||
->andWhere('penalty.end <:end')
|
||||
->andWhere('penalty.validate=:validate')
|
||||
->setParameter('project',$project)
|
||||
->setParameter('validate',true)
|
||||
->setParameter('start',$start)
|
||||
->setParameter('end',$endmonth)
|
||||
->orderBy('penalty.start')
|
||||
->getQuery()->getResult();
|
||||
// foreach($penaltybyweek as $penalty) {
|
||||
// if(!isset($tbproject["weeks"][$penalty->getStart()->format("Y")][$penalty->getStart()->format("o-\SW")])){
|
||||
// $tbproject["weeks"][$penalty->getStart()->format("Y")][$penalty->getStart()->format("o-\SW")] = [
|
||||
// "weeknumber" => $penalty->getStart()->format("o-\SW"),
|
||||
// "cumul" => 0,
|
||||
// ];
|
||||
// }
|
||||
// $tbproject["weeks"][$penalty->getStart()->format("Y")][$penalty->getStart()->format("o-\SW")]["cumul"] = $tbproject["weeks"][$penalty->getStart()->format("Y")][$penalty->getStart()->format("o-\SW")]["cumul"]+$penalty->getDuration();
|
||||
// }
|
||||
// foreach($penaltybyweek as $penalty) {
|
||||
// if(!isset($tbproject["weeks_by_name"][$penalty->getStart()->format("Y")][$penalty->getStart()->format("o-\SW")]["users"])){
|
||||
// $tbproject["weeks_by_name"][$penalty->getStart()->format("Y")][$penalty->getStart()->format("o-\SW")] = [
|
||||
// "weeknumber" => $penalty->getStart()->format("o-\SW"),
|
||||
// "users" => [],
|
||||
// ];
|
||||
// }
|
||||
// if(!isset($tbproject["weeks_by_name"][$penalty->getStart()->format("Y")][$penalty->getStart()->format("o-\SW")]["users"][$penalty->getUser()->getId()])){
|
||||
// $tbuser= [
|
||||
// "id"=>$penalty->getUser()->getId(),
|
||||
// "displayname"=>$penalty->getUser()->getDisplayname(),
|
||||
// "cumul"=>0
|
||||
// ];
|
||||
// $tbproject["weeks_by_name"][$penalty->getStart()->format("Y")][$penalty->getStart()->format("o-\SW")]["users"][$penalty->getUser()->getId()] = $tbuser;
|
||||
// }
|
||||
|
||||
// $tbproject["weeks_by_name"][$penalty->getStart()->format("Y")][$penalty->getStart()->format("o-\SW")]["users"][$penalty->getUser()->getId()]["cumul"] = $tbproject["weeks_by_name"][$penalty->getStart()->format("Y")][$penalty->getStart()->format("o-\SW")]["users"][$penalty->getUser()->getId()]["cumul"]+$penalty->getDuration();
|
||||
// }
|
||||
foreach($penaltybyweek as $penalty) {
|
||||
if(!isset($tbproject["weeks_by_task_by_user"][$penalty->getStart()->format("Y")][$penalty->getStart()->format("o-\SW")]["tasks"])){
|
||||
$tbproject["weeks_by_task_by_user"][$penalty->getStart()->format("Y")][$penalty->getStart()->format("o-\SW")] = [
|
||||
"isoweek" => $event->getStart()->format("\SW"),
|
||||
"isoyear" => $event->getStart()->format("o"),
|
||||
"tasks" => [],
|
||||
];
|
||||
}
|
||||
if(!isset($tbproject["weeks_by_task_by_user"][$penalty->getStart()->format("Y")][$penalty->getStart()->format("o-\SW")]["tasks"][$penalty->getTask()->getId()])){
|
||||
$tbproject["weeks_by_task_by_user"][$penalty->getStart()->format("Y")][$penalty->getStart()->format("o-\SW")]["tasks"][$penalty->getTask()->getId()] = [
|
||||
"taskname" => $penalty->getTask()->getName(),
|
||||
"nature" => $event->getTask()->getNature()->getName(),
|
||||
"users" => [],
|
||||
];
|
||||
}
|
||||
if(!isset($tbproject["weeks_by_task_by_user"][$penalty->getStart()->format("Y")][$penalty->getStart()->format("o-\SW")]["tasks"][$penalty->getTask()->getId()]["users"][$penalty->getUser()->getId()])){
|
||||
$tbuser= [
|
||||
"id"=>$penalty->getUser()->getId(),
|
||||
"displayname"=>$penalty->getUser()->getDisplayname(),
|
||||
"cumul"=>0
|
||||
];
|
||||
$tbproject["weeks_by_task_by_user"][$penalty->getStart()->format("Y")][$penalty->getStart()->format("o-\SW")]["tasks"][$penalty->getTask()->getId()]["users"][$penalty->getUser()->getId()] = $tbuser;
|
||||
}
|
||||
|
||||
$tbproject["weeks_by_task_by_user"][$penalty->getStart()->format("Y")][$penalty->getStart()->format("o-\SW")]["tasks"][$penalty->getTask()->getId()]["users"][$penalty->getUser()->getId()]["cumul"] = $tbproject["weeks_by_task_by_user"][$penalty->getStart()->format("Y")][$penalty->getStart()->format("o-\SW")]["tasks"][$penalty->getTask()->getId()]["users"][$penalty->getUser()->getId()]["cumul"]+$penalty->getDuration();
|
||||
}
|
||||
|
||||
$tbprojects[$project->getId()]=$tbproject;
|
||||
}
|
||||
|
||||
$csv = $this->renderView('Export/export_project_weekly.csv.twig', ["projects" => $tbprojects]);
|
||||
$response = new Response($csv);
|
||||
$response->headers->set('Content-Type', 'text/csv; charset=utf-8');
|
||||
$response->headers->set('Content-Disposition', 'attachment; filename="export_project_weekly.csv"');
|
||||
|
||||
return $response;
|
||||
}
|
||||
public function export_offers(Request $request,$access=null): Response {
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
$projects=$em->getRepository("App:Project")->findAll();
|
||||
//Construction du tableau des projets
|
||||
$tbprojects=[];
|
||||
foreach($projects as $project) {
|
||||
// Filtre par Customer
|
||||
if($access=="customer") {
|
||||
if($project->getCustomer()->getKeypass()!=$key)
|
||||
continue;
|
||||
}
|
||||
|
||||
// Filtre par Service
|
||||
if($this->get('session')->get('idservice')!="all") {
|
||||
if($project->getService()->getId()!=$this->get('session')->get('idservice'))
|
||||
continue;
|
||||
}
|
||||
|
||||
// Filtre par project
|
||||
if($this->get('session')->get('idproject')!="all") {
|
||||
if($project->getId()!=$this->get('session')->get('idproject'))
|
||||
continue;
|
||||
}
|
||||
$tbproject["name"] = $project->getname();
|
||||
$tbproject["customer"] = $project->getCustomer()->getName();
|
||||
$tbproject["offers"] = $project->getOffers();
|
||||
|
||||
$tbprojects[$project->getId()]=$tbproject;
|
||||
}
|
||||
|
||||
|
||||
$csv = $this->renderView('Export/export_offers.csv.twig', ["projects" => $tbprojects]);
|
||||
$response = new Response($csv);
|
||||
$response->headers->set('Content-Type', 'text/csv; charset=utf-8');
|
||||
$response->headers->set('Content-Disposition', 'attachment; filename="export_offers.csv"');
|
||||
|
||||
return $response;
|
||||
}
|
||||
|
||||
public function export_month_charged_days(Request $request,$access=null): Response {
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
$nbmonth=$this->get("session")->get("nbmonth");
|
||||
|
||||
$tbevents=[];
|
||||
// On formate le tableau des event
|
||||
$start=new \Datetime('first day of this month');
|
||||
$start->sub(new \DateInterval('P'.$nbmonth.'M'));
|
||||
$start->setTime(0,0,0);
|
||||
$end = new \Datetime('first day of this month');
|
||||
$end->add(new \DateInterval('P1M'));
|
||||
$end->setTime(23,59,0);
|
||||
|
||||
$events = $em
|
||||
->createQueryBuilder('event')
|
||||
->select('event')
|
||||
->from('App:Event','event')
|
||||
->Where('event.start>=:start AND event.end <:end')
|
||||
->setParameter('start',$start)
|
||||
->setParameter('end',$end)
|
||||
->getQuery()->getResult();
|
||||
|
||||
foreach($events as $event) {
|
||||
if (!isset($tbevents[$event->getStart()->format("m")])) {
|
||||
$tbevents[$event->getStart()->format("m")]["f"]=0;
|
||||
$tbevents[$event->getStart()->format("m")]["nf"]=0;
|
||||
}
|
||||
if ($event->getTask()->getNature()->getName() == "Prestation") {
|
||||
if (!isset($tbevents[$event->getStart()->format("m")])){
|
||||
|
||||
$tbevents[$event->getStart()->format("m")]['f'] = $event->getDuration();
|
||||
}else{
|
||||
$tbevents[$event->getStart()->format("m")]['f'] += $event->getDuration();
|
||||
}
|
||||
}
|
||||
|
||||
if ($event->getTask()->getNature()->getName() != "Prestation") {
|
||||
if (!isset($tbevents[$event->getStart()->format("m")])){
|
||||
$tbevents[$event->getStart()->format("m")]['nf'] = $event->getDuration();
|
||||
}else{
|
||||
$tbevents[$event->getStart()->format("m")]['nf'] += $event->getDuration();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
$csv = $this->renderView('Export/export_month_charged_days.csv.twig', ["events" => $tbevents]);
|
||||
$response = new Response($csv);
|
||||
$response->headers->set('Content-Type', 'text/csv; charset=utf-8');
|
||||
$response->headers->set('Content-Disposition', 'attachment; filename="export_month_charged_days.csv"');
|
||||
|
||||
return $response;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,140 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Controller;
|
||||
|
||||
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
use Symfony\Component\HttpFoundation\Response;
|
||||
|
||||
class HomeController extends AbstractController
|
||||
{
|
||||
public function home()
|
||||
{
|
||||
return $this->redirectToRoute("app_synthese");
|
||||
|
||||
/*
|
||||
if($this->getUser()) {
|
||||
return $this->redirectToRoute("app_synthese");
|
||||
}
|
||||
else {
|
||||
return $this->render('Home/home.html.twig',[
|
||||
"useheader" => true,
|
||||
"usesidebar" => false,
|
||||
]);
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
public function customer()
|
||||
{
|
||||
return $this->render('Home/customer.html.twig',[
|
||||
"useheader" => true,
|
||||
"usesidebar" => false,
|
||||
]);
|
||||
}
|
||||
|
||||
public function selectmonth(Request $request)
|
||||
{
|
||||
$nbmonth = $request->request->get('nbmonth');
|
||||
$this->get('session')->set('nbmonth',$nbmonth);
|
||||
$output=["return"=>"OK"];
|
||||
return new Response(json_encode($output));
|
||||
}
|
||||
|
||||
public function selectuser(Request $request)
|
||||
{
|
||||
$iduser = $request->request->get('iduser');
|
||||
$this->get('session')->set('iduser',$iduser);
|
||||
$output=["return"=>"OK"];
|
||||
return new Response(json_encode($output));
|
||||
}
|
||||
|
||||
public function selectproject(Request $request)
|
||||
{
|
||||
$idproject = $request->request->get('idproject');
|
||||
$this->get('session')->set('idproject',$idproject);
|
||||
$output=["return"=>"OK"];
|
||||
return new Response(json_encode($output));
|
||||
}
|
||||
|
||||
public function selectservice(Request $request)
|
||||
{
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
|
||||
$iddomaine = $this->get('session')->get('iddomaine');
|
||||
$idservice = $request->request->get('idservice');
|
||||
|
||||
$this->get('session')->set('idservice',$idservice);
|
||||
$output=["return"=>"OK"];
|
||||
|
||||
// On recalcul les users
|
||||
if($idservice=="all")
|
||||
$users=$em->getRepository("App:User")->findAll();
|
||||
else
|
||||
$users=$em->getRepository("App:User")->findBy(["service"=>$idservice]);
|
||||
$tbusers=[];
|
||||
$haveuser=false;
|
||||
foreach($users as $user) {
|
||||
if(in_array("ROLE_USER",$user->getRoles())) {
|
||||
if($user->getId()==$this->get('session')->get('iduser'))
|
||||
$haveuser=true;
|
||||
|
||||
$tmp=[
|
||||
"id"=>$user->getId(),
|
||||
"displayname"=>$user->getDisplayname()
|
||||
];
|
||||
array_push($tbusers,$tmp);
|
||||
}
|
||||
}
|
||||
$this->get('session')->set('users',$tbusers);
|
||||
if(!$haveuser) $this->get('session')->set("iduser","all");
|
||||
|
||||
// On recalcul les projets
|
||||
$this->regenProjects($idservice,$iddomaine);
|
||||
|
||||
return new Response(json_encode($output));
|
||||
}
|
||||
|
||||
public function selectdomaine(Request $request)
|
||||
{
|
||||
$iddomaine = $request->request->get('iddomaine');
|
||||
$idservice = $this->get('session')->get('idservice');
|
||||
|
||||
$this->get('session')->set('iddomaine',$iddomaine);
|
||||
$output=["return"=>"OK"];
|
||||
|
||||
// On recalcul les projets
|
||||
$this->regenProjects($idservice,$iddomaine);
|
||||
|
||||
|
||||
return new Response(json_encode($output));
|
||||
}
|
||||
|
||||
private function regenProjects($idservice,$iddomaine) {
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
|
||||
if($idservice=="all"&&$iddomaine=="all")
|
||||
$projects=$em->getRepository('App:Project')->findBy(["active"=>$this->get('session')->get('activeproject')]);
|
||||
elseif($idservice!="all"&&$iddomaine!="all")
|
||||
$projects=$em->getRepository('App:Project')->findBy(["active"=>$this->get('session')->get('activeproject'),"service"=>$idservice,"domaine"=>$iddomaine]);
|
||||
elseif($idservice!="all")
|
||||
$projects=$em->getRepository('App:Project')->findBy(["active"=>$this->get('session')->get('activeproject'),"service"=>$idservice]);
|
||||
else
|
||||
$projects=$em->getRepository('App:Project')->findBy(["active"=>$this->get('session')->get('activeproject'),"domaine"=>$iddomaine]);
|
||||
|
||||
$tbprojects=[];
|
||||
$haveproject=false;
|
||||
foreach($projects as $project) {
|
||||
if($project->getId()==$this->get('session')->get('idproject'))
|
||||
$haveproject=true;
|
||||
|
||||
$tmp=[
|
||||
"id"=>$project->getId(),
|
||||
"displayname"=>$project->getDisplayname()
|
||||
];
|
||||
array_push($tbprojects,$tmp);
|
||||
}
|
||||
$this->get('session')->set('projects',$tbprojects);
|
||||
if(!$haveproject) $this->get('session')->set("idproject","all");
|
||||
}
|
||||
}
|
||||
@@ -1,285 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Controller;
|
||||
|
||||
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
use Symfony\Component\HttpFoundation\Response;
|
||||
use Symfony\Component\HttpFoundation\JsonResponse;
|
||||
|
||||
use Symfony\Component\Form\FormError;
|
||||
use Knp\Bundle\SnappyBundle\Snappy\Response\PdfResponse;
|
||||
|
||||
use App\Entity\Offer as Entity;
|
||||
use App\Form\OfferType as Form;
|
||||
use App\Form\OfferdolibarrType as Formdollibar;
|
||||
use Symfony\Component\HttpKernel\Event\GetResponseEvent;
|
||||
|
||||
class OfferController extends AbstractController
|
||||
{
|
||||
private $data = "offer";
|
||||
private $route = "app_offer";
|
||||
private $render = "Offer/";
|
||||
private $entity = "App:Offer";
|
||||
private $dolibarrapi;
|
||||
|
||||
private $knpSnappy;
|
||||
public function __construct(\Knp\Snappy\Pdf $knpSnappy, \App\Service\dolibarrApi $dolibarrapi) {
|
||||
$this->knpSnappy = $knpSnappy;
|
||||
$this->dolibarrapi = $dolibarrapi;
|
||||
}
|
||||
|
||||
public function list(Request $request)
|
||||
{
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
$services=$em->getRepository("App:Service")->findAllOfferActive($this->get('session')->get('activeproject'),$this->get('session')->get('activeoffer'),$this->get('session')->get('idservice'));
|
||||
$domaines=$em->getRepository("App:Domaine")->findAllOfferActive($this->get('session')->get('activeproject'),$this->get('session')->get('activeoffer'),$this->get('session')->get('iddomaine'));
|
||||
|
||||
if($request->query->get('fgprint')) {
|
||||
$render = $this->renderView($this->render.'list.html.twig',[
|
||||
"services" => $services,
|
||||
"domaines" => $domaines,
|
||||
"useheader" => true,
|
||||
"usesidebar" => true,
|
||||
"fgprint" => true,
|
||||
]);
|
||||
|
||||
return new PdfResponse(
|
||||
$this->knpSnappy->getOutputFromHtml($render,["orientation"=>"Landscape"]),
|
||||
'propositions.pdf'
|
||||
);
|
||||
}
|
||||
else {
|
||||
return $this->render($this->render.'list.html.twig',[
|
||||
"services" => $services,
|
||||
"domaines" => $domaines,
|
||||
"useheader" => true,
|
||||
"usesidebar" => true,
|
||||
"doliactive" => $this->getParameter('doliActive'),
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
public function submit(Request $request)
|
||||
{
|
||||
// Initialisation de l'enregistrement
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
$data = new Entity();
|
||||
// Création du formulaire
|
||||
$form = $this->createForm(Form::class,$data,array("mode"=>"submit"));
|
||||
|
||||
// Récupération des data du formulaire
|
||||
$form->handleRequest($request);
|
||||
|
||||
// Sur erreur
|
||||
$this->getErrorForm(null,$form,$request,$data,"submit");
|
||||
|
||||
// Sur validation
|
||||
if ($form->get('submit')->isClicked() && $form->isValid()) {
|
||||
$data = $form->getData();
|
||||
$em->persist($data);
|
||||
$em->flush();
|
||||
|
||||
// Retour à la liste
|
||||
return $this->redirectToRoute($this->route);
|
||||
}
|
||||
|
||||
// Affichage du formulaire
|
||||
return $this->render($this->render.'edit.html.twig', [
|
||||
'useheader' => true,
|
||||
'usesidebar' => true,
|
||||
$this->data => $data,
|
||||
'mode' => 'submit',
|
||||
'form' => $form->createView()
|
||||
]);
|
||||
}
|
||||
|
||||
public function update($id,Request $request)
|
||||
{
|
||||
// Initialisation de l'enregistrement
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
$data=$em->getRepository($this->entity)->find($id);
|
||||
|
||||
// Création du formulaire
|
||||
$form = $this->createForm(Form::class,$data,array("mode"=>"update"));
|
||||
|
||||
// Récupération des data du formulaire
|
||||
$form->handleRequest($request);
|
||||
|
||||
// Sur erreur
|
||||
$this->getErrorForm(null,$form,$request,$data,"update");
|
||||
|
||||
// Sur validation
|
||||
if ($form->get('submit')->isClicked() && $form->isValid()) {
|
||||
$data = $form->getData();
|
||||
$em->persist($data);
|
||||
$em->flush();
|
||||
|
||||
// Retour à la liste
|
||||
return $this->redirectToRoute($this->route);
|
||||
}
|
||||
|
||||
// Affichage du formulaire
|
||||
if($request->query->get('fgprint')) {
|
||||
$render = $this->renderView($this->render.'edit.html.twig', [
|
||||
'useheader' => true,
|
||||
'usesidebar' => true,
|
||||
$this->data => $data,
|
||||
'mode' => 'update',
|
||||
'form' => $form->createView(),
|
||||
"fgprint" => true,
|
||||
]);
|
||||
|
||||
return new PdfResponse(
|
||||
$this->knpSnappy->getOutputFromHtml($render),
|
||||
'proposition.pdf'
|
||||
);
|
||||
}
|
||||
else {
|
||||
return $this->render($this->render.'edit.html.twig', [
|
||||
'useheader' => true,
|
||||
'usesidebar' => true,
|
||||
$this->data => $data,
|
||||
'mode' => 'update',
|
||||
'form' => $form->createView()
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
public function delete($id,Request $request)
|
||||
{
|
||||
// Initialisation de l'enregistrement
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
$data=$em->getRepository($this->entity)->find($id);
|
||||
|
||||
// Controle avant suppression
|
||||
$error=false;
|
||||
if($error)
|
||||
return $this->redirectToRoute($this->route."_update",["id"=>$id]);
|
||||
else {
|
||||
try {
|
||||
$em->remove($data);
|
||||
$em->flush();
|
||||
}
|
||||
catch(\Doctrine\DBAL\DBALException $e) {
|
||||
// Création du formulaire
|
||||
$this->get('session')->getFlashBag()->add('error', 'Impossible de supprimer cet enregistrement');
|
||||
return $this->redirectToRoute($this->route."_update",["id"=>$id]);
|
||||
}
|
||||
|
||||
// Retour à la liste
|
||||
return $this->redirectToRoute($this->route);
|
||||
}
|
||||
}
|
||||
|
||||
public function activeproject() {
|
||||
$this->get('session')->set('activeproject',!$this->get('session')->get('activeproject'));
|
||||
return $this->redirectToRoute($this->route);
|
||||
}
|
||||
|
||||
public function activeoffer() {
|
||||
$this->get('session')->set('activeoffer',!$this->get('session')->get('activeoffer'));
|
||||
return $this->redirectToRoute($this->route);
|
||||
}
|
||||
|
||||
public function viewservice() {
|
||||
$this->get('session')->set('viewservice',!$this->get('session')->get('viewservice'));
|
||||
return $this->redirectToRoute($this->route);
|
||||
}
|
||||
|
||||
public function dolibarr(Request $request) {
|
||||
// Initialisation de l'enregistrement
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
$data = new Entity();
|
||||
|
||||
// Création du formulaire
|
||||
$form = $this->createForm(Formdollibar::class,$data,array("mode"=>"submit"));
|
||||
|
||||
// Récupération des data du formulaire
|
||||
$form->handleRequest($request);
|
||||
|
||||
// Sur erreur
|
||||
$this->getErrorForm(null,$form,$request,$data,"submit");
|
||||
|
||||
// Sur validation
|
||||
if ($form->get('submit')->isClicked() && $form->isValid()) {
|
||||
|
||||
$data = $form->getData();
|
||||
$tasks=json_decode($form->get("tasks")->getData());
|
||||
|
||||
foreach($tasks as $key=>$value) {
|
||||
dump($value);
|
||||
$iddolibarr=$value->idoffer."|".$value->idline;
|
||||
|
||||
// Recherche offer sur cet id
|
||||
$offer=$em->getRepository($this->entity)->findOneBy(["iddolibarr" => $iddolibarr]);
|
||||
if(!$offer) {
|
||||
$offer=new Entity();
|
||||
$offer->setName($data->getName()." = ".$value->label);
|
||||
$offer->setRef($value->idoffer);
|
||||
$offer->setIddolibarr($iddolibarr);
|
||||
$offer->setProject($data->getProject());
|
||||
$offer->setValidate(0);
|
||||
$offer->setCost(0);
|
||||
$offer->setActive(true);
|
||||
|
||||
// Déterminer le service
|
||||
$services=$em->getRepository("App\Entity\Service")->findAll();
|
||||
$myservice=$data->getProject()->getService();
|
||||
foreach($services as $service) {
|
||||
if($service->getDolibarrcode()) {
|
||||
if(stripos($value->ref,$service->getDolibarrcode())===1)
|
||||
$myservice=$service;
|
||||
}
|
||||
}
|
||||
$offer->setService($service);
|
||||
}
|
||||
|
||||
$offer->setQuantity($value->qty);
|
||||
$offer->setPu($value->price);
|
||||
|
||||
$em->persist($offer);
|
||||
$em->flush();
|
||||
}
|
||||
|
||||
/*
|
||||
$em->persist($data);
|
||||
$em->flush();
|
||||
|
||||
|
||||
// Retour à la liste
|
||||
return $this->redirectToRoute($this->route);
|
||||
*/
|
||||
}
|
||||
|
||||
return $this->render($this->render.'dolibarr.html.twig', [
|
||||
'useheader' => true,
|
||||
'usesidebar' => true,
|
||||
'form' => $form->createView()
|
||||
]);
|
||||
}
|
||||
|
||||
public function getDolibarr(Request $request){
|
||||
$ref = $request->request->get('ref');
|
||||
$order = $this->dolibarrapi->getOrder($ref);
|
||||
|
||||
return new JsonResponse($order);
|
||||
}
|
||||
|
||||
protected function getErrorForm($id,$form,$request,$data,$mode) {
|
||||
if ($form->get('submit')->isClicked()&&$mode=="delete") {
|
||||
}
|
||||
|
||||
if ($form->get('submit')->isClicked() && $mode=="submit") {
|
||||
}
|
||||
|
||||
if ($form->get('submit')->isClicked() && !$form->isValid()) {
|
||||
$this->get('session')->getFlashBag()->clear();
|
||||
|
||||
$errors = $form->getErrors();
|
||||
foreach( $errors as $error ) {
|
||||
$request->getSession()->getFlashBag()->add("error", $error->getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,340 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Controller;
|
||||
|
||||
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
use Symfony\Component\HttpFoundation\Response;
|
||||
use Symfony\Component\HttpFoundation\JsonResponse;
|
||||
use Symfony\Component\Form\FormError;
|
||||
use Knp\Bundle\SnappyBundle\Snappy\Response\PdfResponse;
|
||||
|
||||
use App\Entity\Project as Entity;
|
||||
use App\Form\ProjectType as Form;
|
||||
use App\Entity\Userproject as Userproject;
|
||||
|
||||
class ProjectController extends AbstractController
|
||||
{
|
||||
private $data = "project";
|
||||
private $route = "app_project";
|
||||
private $render = "Project/";
|
||||
private $entity = "App:Project";
|
||||
|
||||
private $knpSnappy;
|
||||
public function __construct(\Knp\Snappy\Pdf $knpSnappy) { $this->knpSnappy = $knpSnappy; }
|
||||
|
||||
public function list(Request $request)
|
||||
{
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
$services=$em->getRepository("App:Service")->findAllProjectActive($this->get('session')->get('activeproject'),$this->get('session')->get('idservice'));
|
||||
$domaines=$em->getRepository("App:Domaine")->findAllProjectActive($this->get('session')->get('activeproject'),$this->get('session')->get('iddomaine'));
|
||||
|
||||
if($request->query->get('fgprint')) {
|
||||
$render = $this->renderView($this->render.'list.html.twig',[
|
||||
"services" => $services,
|
||||
"domaines" => $domaines,
|
||||
"useheader" => true,
|
||||
"usesidebar" => true,
|
||||
"fgprint" => true,
|
||||
]);
|
||||
$render=str_replace("file:///","/var/www/html/",$render);
|
||||
|
||||
return new PdfResponse(
|
||||
$this->knpSnappy->getOutputFromHtml($render,["orientation"=>"Landscape"]),
|
||||
'projets.pdf'
|
||||
);
|
||||
}
|
||||
else {
|
||||
return $this->render($this->render.'list.html.twig',[
|
||||
"services" => $services,
|
||||
"domaines" => $domaines,
|
||||
"useheader" => true,
|
||||
"usesidebar" => true,
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
public function submit(Request $request)
|
||||
{
|
||||
// Initialisation de l'enregistrement
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
$data = new Entity();
|
||||
|
||||
// Création du formulaire
|
||||
$form = $this->createForm(Form::class,$data,array("mode"=>"submit"));
|
||||
|
||||
// Récupération des data du formulaire
|
||||
$form->handleRequest($request);
|
||||
|
||||
// Sur erreur
|
||||
$this->getErrorForm(null,$form,$request,$data,"submit");
|
||||
|
||||
// Sur validation
|
||||
if ($form->get('submit')->isClicked() && $form->isValid()) {
|
||||
$data = $form->getData();
|
||||
$em->persist($data);
|
||||
$em->flush();
|
||||
$this->refreshsession();
|
||||
|
||||
// Retour à la liste
|
||||
return $this->redirectToRoute($this->route."_users",["id"=>$data->getId()]);
|
||||
}
|
||||
|
||||
// Affichage du formulaire
|
||||
return $this->render($this->render.'edit.html.twig', [
|
||||
'useheader' => true,
|
||||
'usesidebar' => true,
|
||||
$this->data => $data,
|
||||
'mode' => 'submit',
|
||||
'form' => $form->createView()
|
||||
]);
|
||||
}
|
||||
|
||||
public function update($id,Request $request)
|
||||
{
|
||||
// Initialisation de l'enregistrement
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
$data=$em->getRepository($this->entity)->find($id);
|
||||
|
||||
// Création du formulaire
|
||||
$form = $this->createForm(Form::class,$data,array("mode"=>"update"));
|
||||
|
||||
// Récupération des data du formulaire
|
||||
$form->handleRequest($request);
|
||||
|
||||
// Sur erreur
|
||||
$this->getErrorForm(null,$form,$request,$data,"update");
|
||||
|
||||
// Sur validation
|
||||
if ($form->get('submit')->isClicked() && $form->isValid()) {
|
||||
$data = $form->getData();
|
||||
$em->persist($data);
|
||||
$em->flush();
|
||||
$this->refreshsession();
|
||||
|
||||
// Retour à la liste
|
||||
return $this->redirectToRoute($this->route);
|
||||
}
|
||||
|
||||
// Affichage du formulaire
|
||||
if($request->query->get('fgprint')) {
|
||||
$render = $this->renderView($this->render.'edit.html.twig', [
|
||||
'useheader' => true,
|
||||
'usesidebar' => true,
|
||||
$this->data => $data,
|
||||
'mode' => 'update',
|
||||
'form' => $form->createView(),
|
||||
"fgprint" => true,
|
||||
]);
|
||||
|
||||
return new PdfResponse(
|
||||
$this->knpSnappy->getOutputFromHtml($render),
|
||||
'projet.pdf'
|
||||
);
|
||||
}
|
||||
else {
|
||||
return $this->render($this->render.'edit.html.twig', [
|
||||
'useheader' => true,
|
||||
'usesidebar' => true,
|
||||
$this->data => $data,
|
||||
'mode' => 'update',
|
||||
'form' => $form->createView()
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
public function delete($id,Request $request)
|
||||
{
|
||||
// Initialisation de l'enregistrement
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
$data=$em->getRepository($this->entity)->find($id);
|
||||
|
||||
// Controle avant suppression
|
||||
$error=false;
|
||||
if($error)
|
||||
return $this->redirectToRoute($this->route."_update",["id"=>$id]);
|
||||
else {
|
||||
try {
|
||||
$em->remove($data);
|
||||
$em->flush();
|
||||
}
|
||||
catch(\Doctrine\DBAL\DBALException $e) {
|
||||
// Création du formulaire
|
||||
$this->get('session')->getFlashBag()->add('error', 'Impossible de supprimer cet enregistrement');
|
||||
return $this->redirectToRoute($this->route."_update",["id"=>$id]);
|
||||
}
|
||||
|
||||
$this->refreshsession();
|
||||
|
||||
// Retour à la liste
|
||||
return $this->redirectToRoute($this->route);
|
||||
}
|
||||
}
|
||||
|
||||
public function select(Request $request) {
|
||||
// S'assurer que c'est un appel ajax
|
||||
if (!$request->isXmlHttpRequest()) {
|
||||
//return new JsonResponse(array('message' => 'Interdit'), 400);
|
||||
}
|
||||
|
||||
$output=array();
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
$page_limit=$request->query->get('page_limit');
|
||||
$q=$request->query->get('q');
|
||||
|
||||
$qb = $em->createQueryBuilder();
|
||||
$qb->select("project")
|
||||
->from("App:Project","project")
|
||||
->from("App:Customer", "customer")
|
||||
->where("project.name LIKE :value")
|
||||
->orWhere("customer.name LIKE :value")
|
||||
->andWhere("project.customer=customer")
|
||||
->setParameter("value", "%".$q."%")
|
||||
->orderBy('customer.name');
|
||||
|
||||
$datas=$qb->setFirstResult(0)->getQuery()->getResult();
|
||||
foreach($datas as $data) {
|
||||
array_push($output,array("id"=>$data->getId(),"text"=>$data->getDisplayname()));
|
||||
}
|
||||
$output["results"]=$output;
|
||||
|
||||
$response = new Response(json_encode($output));
|
||||
$response->headers->set('Content-Type', 'application/json');
|
||||
return $response;
|
||||
}
|
||||
|
||||
public function users($id, Request $request) {
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
$data=$em->getRepository($this->entity)->find($id);
|
||||
|
||||
// Controle avant affichage
|
||||
$error=false;
|
||||
if($error)
|
||||
return $this->redirectToRoute($this->route."_update",["id"=>$id]);
|
||||
else {
|
||||
$jobs=$em->getRepository("App:Job")->findBy(["type"=>"Projet"]);
|
||||
$users=$em->getRepository("App:User")->findAll();
|
||||
$userprojects=[];
|
||||
foreach($jobs as $job) {
|
||||
$entitys=$em->getRepository("App:Userproject")->findBy(["project"=>$data,"job"=>$job]);
|
||||
|
||||
if($entitys) $userprojects[$job->getId()]= [
|
||||
"id"=>$job->getId(),
|
||||
"name"=>$job->getName(),
|
||||
"users"=>$entitys
|
||||
];
|
||||
}
|
||||
|
||||
return $this->render($this->render.'users.html.twig', [
|
||||
'useheader' => true,
|
||||
'usesidebar' => true,
|
||||
$this->data => $data,
|
||||
'jobs' => $jobs,
|
||||
'users' => $users,
|
||||
'userprojects' => $userprojects
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
public function usersadd(Request $request) {
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
|
||||
$idproject = $request->request->get('idproject');
|
||||
$iduser = $request->request->get('iduser');
|
||||
$idjob = $request->request->get('idjob');
|
||||
|
||||
$project=$em->getRepository("App:Project")->find($idproject);
|
||||
$user=$em->getRepository("App:User")->find($iduser);
|
||||
$job=$em->getRepository("App:Job")->find($idjob);
|
||||
|
||||
if(!$project||!$user||!$job) {
|
||||
$output=["return"=>"KO","error"=>"Un élément a été supprimé entre temps "];
|
||||
return new Response(json_encode($output));
|
||||
}
|
||||
|
||||
$userproject = $em->getRepository("App:Userproject")->findBy(["user"=>$user,"project"=>$project,"job"=>$job]);
|
||||
if($userproject) {
|
||||
$output=["return"=>"KO","error"=>"Cet utilisateur a déjà ce metier sur ce projet"];
|
||||
return new Response(json_encode($output));
|
||||
}
|
||||
|
||||
$userproject= new Userproject();
|
||||
$userproject->setUser($user);
|
||||
$userproject->setJob($job);
|
||||
$userproject->setProject($project);
|
||||
$em->persist($userproject);
|
||||
$em->flush();
|
||||
|
||||
return new Response(json_encode([]));
|
||||
|
||||
}
|
||||
|
||||
public function usersdel(Request $request) {
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
|
||||
$iduser = $request->request->get('iduser');
|
||||
$userproject = $em->getRepository("App:Userproject")->find($iduser);
|
||||
if($userproject) {
|
||||
$em->remove($userproject);
|
||||
$em->flush();
|
||||
$this->refreshsession();
|
||||
}
|
||||
|
||||
return new Response(json_encode([]));
|
||||
|
||||
}
|
||||
|
||||
public function activeproject() {
|
||||
$this->get('session')->set('activeproject',!$this->get('session')->get('activeproject'));
|
||||
$this->refreshsession();
|
||||
|
||||
return $this->redirectToRoute($this->route);
|
||||
}
|
||||
|
||||
public function viewservice() {
|
||||
$this->get('session')->set('viewservice',!$this->get('session')->get('viewservice'));
|
||||
$this->refreshsession();
|
||||
|
||||
return $this->redirectToRoute($this->route);
|
||||
}
|
||||
|
||||
protected function refreshsession() {
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
$tbprojects=[];
|
||||
$haveproject=false;
|
||||
|
||||
$projects=$em->getRepository('App:Project')->findBy(["active"=>$this->get('session')->get('activeproject')]);
|
||||
foreach($projects as $project) {
|
||||
if($project->getId()==$this->get('session')->get('idproject'))
|
||||
$haveproject=true;
|
||||
|
||||
$tmp=[
|
||||
"id"=>$project->getId(),
|
||||
"displayname"=>$project->getDisplayname()
|
||||
];
|
||||
|
||||
array_push($tbprojects,$tmp);
|
||||
}
|
||||
|
||||
if(!$haveproject) $this->get('session')->set("idproject","all");
|
||||
|
||||
$this->get('session')->set('projects',$tbprojects);
|
||||
}
|
||||
|
||||
protected function getErrorForm($id,$form,$request,$data,$mode) {
|
||||
if ($form->get('submit')->isClicked()&&$mode=="delete") {
|
||||
}
|
||||
|
||||
if ($form->get('submit')->isClicked() && $mode=="submit") {
|
||||
}
|
||||
|
||||
if ($form->get('submit')->isClicked() && !$form->isValid()) {
|
||||
$this->get('session')->getFlashBag()->clear();
|
||||
|
||||
$errors = $form->getErrors();
|
||||
foreach( $errors as $error ) {
|
||||
$request->getSession()->getFlashBag()->add("error", $error->getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,1130 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Controller;
|
||||
|
||||
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
use Symfony\Component\HttpFoundation\Response;
|
||||
use Knp\Bundle\SnappyBundle\Snappy\Response\PdfResponse;
|
||||
use Symfony\Component\HttpFoundation\ResponseHeaderBag;
|
||||
|
||||
class ReportController extends AbstractController
|
||||
{
|
||||
private $knpSnappy;
|
||||
public function __construct(\Knp\Snappy\Pdf $knpSnappy) { $this->knpSnappy = $knpSnappy; }
|
||||
|
||||
public function synthese(Request $request)
|
||||
{
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
$nbmonth=$this->get("session")->get("nbmonth");
|
||||
$iduser=$this->get("session")->get("iduser");
|
||||
|
||||
if($iduser=="all") {
|
||||
$users=$em->getRepository("App:User")->findAll();
|
||||
}
|
||||
else {
|
||||
$users=$em->getRepository("App:User")->findBy(["id"=>$iduser]);
|
||||
}
|
||||
|
||||
$tbevents=[];
|
||||
foreach($users as $user) {
|
||||
if(in_array("ROLE_USER",$user->getRoles())) {
|
||||
// Filtre par Service
|
||||
if($this->get('session')->get('idservice')!="all") {
|
||||
if($user->getService()->getId()!=$this->get('session')->get('idservice'))
|
||||
continue;
|
||||
}
|
||||
|
||||
$tmp=[
|
||||
"id" => $user->getId(),
|
||||
"user" => $user,
|
||||
"events" => [],
|
||||
];
|
||||
|
||||
// On formate le tableau de jour
|
||||
$start=new \Datetime('first day of this month');
|
||||
$start->modify('last Monday');
|
||||
$end=new \Datetime('first day of this month');
|
||||
$end->add(new \DateInterval('P'.$nbmonth.'M'));
|
||||
$end->modify('first Monday');
|
||||
while($start<$end) {
|
||||
$idday=$start->format("Ymd");
|
||||
$idmonth=$start->format("Ym");
|
||||
|
||||
$tmp["events"][$idday] = [
|
||||
"date"=>clone $start,
|
||||
"events"=>[],
|
||||
"astreinte"=>false,
|
||||
"colorastreinte"=>"",
|
||||
"descriptionastreinte"=>"",
|
||||
];
|
||||
|
||||
$start->add(new \DateInterval('P1D'));
|
||||
}
|
||||
|
||||
// On formate le tableau des event
|
||||
$start=new \Datetime('first day of this month');
|
||||
$start->modify('last Monday');
|
||||
$end=new \Datetime('first day of this month');
|
||||
$end->add(new \DateInterval('P'.$nbmonth.'M'));
|
||||
$end->modify('first Monday');
|
||||
|
||||
$events = $em
|
||||
->createQueryBuilder('event')
|
||||
->select('event')
|
||||
->from('App:Event','event')
|
||||
->Where('event.user=:user AND event.start>=:start AND event.end <:end')
|
||||
->setParameter('user',$user->getId())
|
||||
->setParameter('start',$start)
|
||||
->setParameter('end',$end)
|
||||
->getQuery()->getResult();
|
||||
foreach($events as $event) {
|
||||
$idproject=$event->getTask()->getProject()->getId();
|
||||
|
||||
// Filtre par project
|
||||
if($this->get('session')->get('idproject')!="all") {
|
||||
if($idproject!=$this->get('session')->get('idproject'))
|
||||
continue;
|
||||
}
|
||||
|
||||
$st=clone $event->getStart();
|
||||
while($st<$event->getEnd()) {
|
||||
$idday=$st->format("Ymd");
|
||||
if($event->getAllday()) {
|
||||
$tmp["events"][$idday]["events"][$event->getId()]=["allday"=>true,"colorday"=>$event->getTask()->getColor(),"descriptionday"=>strtoupper($event->getTask()->getDisplayname())."\n\n".$event->getDescription()];
|
||||
}
|
||||
else {
|
||||
// Matin ou après-midi ?
|
||||
$time=$event->getStart()->format("H");
|
||||
if($time==9) {
|
||||
$tmp["events"][$idday]["events"][$event->getId()]=["allday"=>false,"am"=>true,"ap"=>false,"coloram"=>$event->getTask()->getColor(),"descriptionam"=>strtoupper($event->getTask()->getDisplayname())."\n\n".$event->getDescription()];
|
||||
}
|
||||
else {
|
||||
$tmp["events"][$idday]["events"][$event->getId()]=["allday"=>false,"am"=>false,"ap"=>true,"colorap"=>$event->getTask()->getColor(),"descriptionap"=>strtoupper($event->getTask()->getDisplayname())."\n\n".$event->getDescription()];
|
||||
}
|
||||
}
|
||||
|
||||
$st->add(new \DateInterval('P1D'));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// On formate le tableau des astreintes
|
||||
$start=new \Datetime('first day of this month');
|
||||
$start->modify('last Monday');
|
||||
$end=new \Datetime('first day of this month');
|
||||
$end->add(new \DateInterval('P'.$nbmonth.'M'));
|
||||
$end->modify('first Monday');
|
||||
|
||||
$penaltys = $em
|
||||
->createQueryBuilder('penalty')
|
||||
->select('penalty')
|
||||
->from('App:Penalty','penalty')
|
||||
->Where('penalty.user=:user AND penalty.start>=:start AND penalty.end <:end')
|
||||
->setParameter('user',$user->getId())
|
||||
->setParameter('start',$start)
|
||||
->setParameter('end',$end)
|
||||
->getQuery()->getResult();
|
||||
foreach($penaltys as $penalty) {
|
||||
$idproject=$penalty->getTask()->getProject()->getId();
|
||||
|
||||
// Filtre par project
|
||||
if($this->get('session')->get('idproject')!="all") {
|
||||
if($idproject!=$this->get('session')->get('idproject'))
|
||||
continue;
|
||||
}
|
||||
|
||||
$st=clone $penalty->getStart();
|
||||
while($st<$penalty->getEnd()) {
|
||||
$idday=$st->format("Ymd");
|
||||
if($penalty->getAllday()) {
|
||||
$tmp["events"][$idday]["astreinte"]=true;
|
||||
$tmp["events"][$idday]["colorastreinte"]=$penalty->getTask()->getColor();
|
||||
$tmp["events"][$idday]["descriptionastreinte"]=strtoupper($penalty->getTask()->getDisplayname())."\n\n".$penalty->getDescription();
|
||||
}
|
||||
|
||||
$st->add(new \DateInterval('P1D'));
|
||||
}
|
||||
}
|
||||
|
||||
// On formate le tableau des jours fériés
|
||||
$start=new \Datetime('first day of this month');
|
||||
$start->modify('last Monday');
|
||||
$end=new \Datetime('first day of this month');
|
||||
$end->add(new \DateInterval('P'.$nbmonth.'M'));
|
||||
$end->modify('first Monday');
|
||||
|
||||
$breakdays = $em
|
||||
->createQueryBuilder('breakday')
|
||||
->select('breakday')
|
||||
->from('App:Breakday','breakday')
|
||||
->Where('breakday.start>=:start AND breakday.end <:end')
|
||||
->setParameter('start',$start)
|
||||
->setParameter('end',$end)
|
||||
->getQuery()->getResult();
|
||||
foreach($breakdays as $breakday) {
|
||||
$st=clone $breakday->getStart();
|
||||
while($st<$breakday->getEnd()) {
|
||||
$idday=$st->format("Ymd");
|
||||
$tmp["events"][$idday]["events"][-2000]["allday"]=true;
|
||||
$tmp["events"][$idday]["events"][-2000]["colorday"]="#6c7a89";
|
||||
$tmp["events"][$idday]["events"][-2000]["descriptionday"]="Jour Férié";
|
||||
|
||||
$st->add(new \DateInterval('P1D'));
|
||||
}
|
||||
}
|
||||
array_push($tbevents,$tmp);
|
||||
}
|
||||
}
|
||||
|
||||
//dump($tbevents);
|
||||
|
||||
if($request->query->get('fgprint')) {
|
||||
$render = $this->renderView('Report/synthese.html.twig',[
|
||||
"useheader" => true,
|
||||
"usesidebar" => ($this->getUser()),
|
||||
"users" => $tbevents,
|
||||
"fgprint" => true,
|
||||
]);
|
||||
|
||||
return new PdfResponse(
|
||||
$this->knpSnappy->getOutputFromHtml($render),
|
||||
'synthese.pdf'
|
||||
);
|
||||
}
|
||||
else {
|
||||
|
||||
return $this->render('Report/synthese.html.twig',[
|
||||
"useheader" => true,
|
||||
"usesidebar" => ($this->getUser()),
|
||||
"users" => $tbevents,
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
function planning($key=null,$access=null,Request $request) {
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
|
||||
$iduser=$this->get("session")->get("iduser");
|
||||
$nbmonth=$this->get("session")->get("nbmonth");
|
||||
|
||||
if($iduser=="all") {
|
||||
$users=$em->getRepository("App:User")->findAll();
|
||||
}
|
||||
else {
|
||||
$users=$em->getRepository("App:User")->findBy(["id"=>$iduser]);
|
||||
}
|
||||
|
||||
$projects=$em->getRepository("App:Project")->findAll();
|
||||
$tbprojects=[];
|
||||
foreach($projects as $project) {
|
||||
// Filtre par Customer
|
||||
if($access=="customer") {
|
||||
if($project->getCustomer()->getKeypass()!=$key)
|
||||
continue;
|
||||
|
||||
if(!$project->getVisible())
|
||||
continue;
|
||||
}
|
||||
|
||||
// Filtre par Service
|
||||
if($this->get('session')->get('idservice')!="all") {
|
||||
if($project->getService()->getId()!=$this->get('session')->get('idservice'))
|
||||
continue;
|
||||
}
|
||||
|
||||
// Filtre par Domaine
|
||||
if($this->get('session')->get('iddomaine')!="all") {
|
||||
if($project->getDomaine()->getId()!=$this->get('session')->get('iddomaine'))
|
||||
continue;
|
||||
}
|
||||
|
||||
// Filtre par project
|
||||
if($this->get('session')->get('idproject')!="all") {
|
||||
if($project->getId()!=$this->get('session')->get('idproject'))
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
// Ne prendre que les projets actif/inactif
|
||||
if($this->get('session')->get('activeproject')!=$project->getActive())
|
||||
continue;
|
||||
|
||||
// Ne pas prendre les projects sans event dans la durée
|
||||
$start=new \Datetime('first day of this month');
|
||||
$start->setTime(0,0,0);
|
||||
$end=new \Datetime('first day of this month');
|
||||
$end->add(new \DateInterval('P'.$nbmonth.'M'));
|
||||
$end->setTime(0,0,0);
|
||||
$events = $em
|
||||
->createQueryBuilder('event')
|
||||
->select('event')
|
||||
->from('App:Task','task')
|
||||
->from('App:Event','event')
|
||||
->Where('task.project=:project')
|
||||
->andWhere('event.task=task')
|
||||
->andWhere('event.start>=:start')
|
||||
->andWhere('event.end <=:end')
|
||||
->setParameter('project',$project)
|
||||
->setParameter('start',$start)
|
||||
->setParameter('end',$end)
|
||||
->getQuery()->getResult();
|
||||
if(!$events)
|
||||
continue;
|
||||
|
||||
$validate=$em->getRepository("App:Project")->sumDuration($project->getId(),true);
|
||||
$planified=$em->getRepository("App:Project")->sumDuration($project->getId(),false);
|
||||
$estimate=$em->getRepository("App:Project")->sumEstimate($project->getId());
|
||||
$proposed=$em->getRepository("App:Project")->sumProposed($project->getId());
|
||||
|
||||
$tbproject = [
|
||||
"id"=>$project->getId(),
|
||||
"displayname"=>$project->getDisplayname(),
|
||||
"validate"=>$validate,
|
||||
"planified"=>$planified,
|
||||
"estimate"=>$estimate,
|
||||
"proposed"=>$proposed,
|
||||
"months"=>[],
|
||||
];
|
||||
|
||||
// Formater les mois
|
||||
$start=new \Datetime('first day of this month');
|
||||
$start->setTime(0,0,0);
|
||||
$end=new \Datetime('first day of this month');
|
||||
$end->add(new \DateInterval('P'.$nbmonth.'M'));
|
||||
$end->setTime(0,0,0);
|
||||
while($start<$end) {
|
||||
$tbproject["months"][$start->format("Ym")]=[
|
||||
"monthid"=> $start->format("Ym"),
|
||||
"monthlabel"=>$start->format("m/Y"),
|
||||
"days"=>[],
|
||||
"users"=>[],
|
||||
"tasks"=>[]
|
||||
];
|
||||
|
||||
// Init du tableau des utilisateurs pour le mois
|
||||
foreach($users as $user) {
|
||||
$tbuser= [
|
||||
"id"=>$user->getId(),
|
||||
"displayname"=>$user->getDisplayname(),
|
||||
"days"=>[]
|
||||
];
|
||||
$tbproject["months"][$start->format("Ym")]["users"][$user->getId()]=$tbuser;
|
||||
}
|
||||
// Init des taches par mois
|
||||
$endmonth=clone $start;
|
||||
$endmonth->add(new \DateInterval('P1M'));
|
||||
|
||||
$events = $em
|
||||
->createQueryBuilder('event')
|
||||
->select('task.id, task.name, SUM(event.duration) as somme')
|
||||
->from('App:Task','task')
|
||||
->from('App:Event','event')
|
||||
->Where('task.project=:project')
|
||||
->andWhere('event.task=task')
|
||||
->andWhere('event.start >=:start')
|
||||
->andWhere('event.end <=:end')
|
||||
->setParameter('project',$project)
|
||||
->setParameter('start',$start)
|
||||
->setParameter('end',$endmonth)
|
||||
->groupBy('task.id')
|
||||
->getQuery()->getResult();
|
||||
foreach($events as $event) {
|
||||
$tbtask= [
|
||||
"id"=>$event["id"],
|
||||
"displayname"=>$event["name"],
|
||||
"duration"=>$event["somme"]
|
||||
];
|
||||
$tbproject["months"][$start->format("Ym")]["tasks"][$event["id"]]=$tbtask;
|
||||
}
|
||||
$start->add(new \DateInterval('P1M'));
|
||||
}
|
||||
|
||||
// Formater les jours
|
||||
$start=new \Datetime('first day of this month');
|
||||
$start->setTime(0,0,0);
|
||||
$end=new \Datetime('first day of this month');
|
||||
$end->add(new \DateInterval('P'.$nbmonth.'M'));
|
||||
$end->sub(new \DateInterval('P1D'));
|
||||
$end->setTime(23,59,0);
|
||||
while($start<$end) {
|
||||
$tbday=[
|
||||
"date"=>clone $start,
|
||||
"daylabel"=>$this->frmDay($start->format("w")),
|
||||
"daycolor"=>$this->frmColorday($start->format("w")),
|
||||
"daynumber"=>$start->format("d"),
|
||||
];
|
||||
|
||||
$tbproject["months"][$start->format("Ym")]["days"][$start->format("Ymd")]=$tbday;
|
||||
|
||||
foreach($users as $user) {
|
||||
$tbday=[
|
||||
"date"=>clone $start,
|
||||
"duration"=>0,
|
||||
"astreinte"=>0,
|
||||
"daycolor"=>$this->frmColorday($start->format("w")),
|
||||
];
|
||||
|
||||
$tbproject["months"][$start->format("Ym")]["users"][$user->getId()]["days"][$start->format("Ymd")]=$tbday;
|
||||
}
|
||||
|
||||
$start->add(new \DateInterval('P1D'));
|
||||
}
|
||||
$tbprojects[$project->getId()]=$tbproject;
|
||||
}
|
||||
|
||||
// Formater les utilisateurs
|
||||
$start=new \Datetime('first day of this month');
|
||||
$start->setTime(0,0,0);
|
||||
$end=new \Datetime('first day of this month');
|
||||
$end->add(new \DateInterval('P'.$nbmonth.'M'));
|
||||
$end->setTime(0,0,0);
|
||||
|
||||
foreach($users as $user) {
|
||||
$tbevents = $this->getEventuser($user,$start,$end,false);
|
||||
|
||||
foreach($tbevents as $project) {
|
||||
foreach($project as $event) {
|
||||
if(isset($tbprojects[$event["idproject"]])) {
|
||||
$tbprojects[$event["idproject"]]["months"][$event["idmonth"]]["users"][$user->getId()]["days"][$event["idday"]]=
|
||||
[
|
||||
"date"=>$event["idday"],
|
||||
"duration"=>$event["duration"],
|
||||
"astreinte"=>$event["astreinte"],
|
||||
"daycolor"=>$event["daycolor"],
|
||||
];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Cumule
|
||||
foreach($tbprojects as $project) {
|
||||
foreach($project["months"] as $month) {
|
||||
$haveuser=false;
|
||||
$totmonth=0;
|
||||
$totmontha=0;
|
||||
|
||||
foreach($month["users"] as $user) {
|
||||
$totuser=0;
|
||||
$totusera=0;
|
||||
|
||||
foreach($user["days"] as $day) {
|
||||
$totuser+=$day["duration"];
|
||||
$totusera+=$day["astreinte"];
|
||||
|
||||
$totmonth+=$day["duration"];
|
||||
$totmontha+=$day["astreinte"];
|
||||
}
|
||||
|
||||
if($totuser==0&&$totusera==0) {
|
||||
unset($tbprojects[$project["id"]]["months"][$month["monthid"]]["users"][$user["id"]]);
|
||||
} else {
|
||||
$tbprojects[$project["id"]]["months"][$month["monthid"]]["users"][$user["id"]]["total"]=$totuser+$totusera;
|
||||
$haveuser=true;
|
||||
}
|
||||
}
|
||||
|
||||
if(!$haveuser)
|
||||
unset($tbprojects[$project["id"]]["months"][$month["monthid"]]);
|
||||
else {
|
||||
$tbprojects[$project["id"]]["months"][$month["monthid"]]["total"]=$totmonth;
|
||||
$tbprojects[$project["id"]]["months"][$month["monthid"]]["totala"]=$totmontha;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if($request->query->get('fgprint')) {
|
||||
$render = $this->renderView('Report/planning.html.twig',[
|
||||
"useheader" => true,
|
||||
"usesidebar" => ($this->getUser()),
|
||||
"projects" => $tbprojects,
|
||||
"access" => $access,
|
||||
"key" => $key,
|
||||
"fgprint" => true,
|
||||
]);
|
||||
|
||||
return new PdfResponse(
|
||||
$this->knpSnappy->getOutputFromHtml($render,["orientation"=>"Landscape"]),
|
||||
'planning.pdf'
|
||||
);
|
||||
}
|
||||
else {
|
||||
return $this->render('Report/planning.html.twig',[
|
||||
"useheader" => true,
|
||||
"usesidebar" => ($this->getUser()),
|
||||
"projects" => $tbprojects,
|
||||
"access" => $access,
|
||||
"key" => $key
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
public function report($key=null,$access=null,Request $request) {
|
||||
ini_set('memory_limit','500M');
|
||||
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
|
||||
$iduser=$this->get("session")->get("iduser");
|
||||
$nbmonth=$this->get("session")->get("nbmonth");
|
||||
|
||||
if($iduser=="all") {
|
||||
$users=$em->getRepository("App:User")->findAll();
|
||||
}
|
||||
else {
|
||||
$users=$em->getRepository("App:User")->findBy(["id"=>$iduser]);
|
||||
}
|
||||
|
||||
$projects=$em->getRepository("App:Project")->findAll();
|
||||
|
||||
//Construction du tableau des projets
|
||||
$tbprojects=[];
|
||||
foreach($projects as $project) {
|
||||
// Filtre par Customer
|
||||
if($access=="customer") {
|
||||
if($project->getCustomer()->getKeypass()!=$key)
|
||||
continue;
|
||||
|
||||
if(!$project->getVisible())
|
||||
continue;
|
||||
}
|
||||
|
||||
// Filtre par Service
|
||||
if($this->get('session')->get('idservice')!="all") {
|
||||
if($project->getService()->getId()!=$this->get('session')->get('idservice'))
|
||||
continue;
|
||||
}
|
||||
|
||||
// Filtre par Domaine
|
||||
if($this->get('session')->get('iddomaine')!="all") {
|
||||
if($project->getDomaine()->getId()!=$this->get('session')->get('iddomaine'))
|
||||
continue;
|
||||
}
|
||||
|
||||
// Filtre par project
|
||||
if($this->get('session')->get('idproject')!="all") {
|
||||
if($project->getId()!=$this->get('session')->get('idproject'))
|
||||
continue;
|
||||
}
|
||||
|
||||
// Ne prendre que les projets actif/inactif
|
||||
if($this->get('session')->get('activeproject')!=$project->getActive())
|
||||
continue;
|
||||
|
||||
$validate=$em->getRepository("App:Project")->sumDuration($project->getId(),true);
|
||||
$planified=$em->getRepository("App:Project")->sumDuration($project->getId(),false);
|
||||
$estimate=$em->getRepository("App:Project")->sumEstimate($project->getId());
|
||||
$proposed=$em->getRepository("App:Project")->sumProposed($project->getId());
|
||||
|
||||
// Ne prendre que les projects avec du validé
|
||||
if($validate==0) continue;
|
||||
|
||||
// Somme des taches validé avant
|
||||
$event = $em
|
||||
->createQueryBuilder('task')
|
||||
->select('SUM(task.validate) as somme')
|
||||
->from('App:Task','task')
|
||||
->Where('task.project=:project')
|
||||
->setParameter('project',$project)
|
||||
->getQuery()->getOneOrNullResult();
|
||||
$hors1=($event["somme"]?$event["somme"]:0);
|
||||
$event = $em
|
||||
->createQueryBuilder('offer')
|
||||
->select('SUM(offer.validate) as somme')
|
||||
->from('App:Offer','offer')
|
||||
->Where('offer.project=:project')
|
||||
->setParameter('project',$project)
|
||||
->getQuery()->getOneOrNullResult();
|
||||
$hors2=($event["somme"]?$event["somme"]:0);
|
||||
$hors=$hors1+$hors2;
|
||||
|
||||
// Init tableau project
|
||||
$tbproject = [
|
||||
"id"=>$project->getId(),
|
||||
"displayname"=>$project->getDisplayname(),
|
||||
"validate"=>$validate,
|
||||
"planified"=>$planified,
|
||||
"estimate"=>$estimate,
|
||||
"proposed"=>$proposed,
|
||||
"hors"=>$hors,
|
||||
"before"=>[],
|
||||
"beforeastreinte"=>[],
|
||||
"months"=>[],
|
||||
"offers"=>[],
|
||||
"weeks"=>[],
|
||||
];
|
||||
|
||||
// Somme event validé avant la date
|
||||
$end=new \Datetime('first day of this month');
|
||||
$end->sub(new \DateInterval('P'.$nbmonth.'M'));
|
||||
$end->setTime(23,59,0);
|
||||
$events = $em
|
||||
->createQueryBuilder('event')
|
||||
->select('event')
|
||||
->from('App:Task','task')
|
||||
->from('App:Event','event')
|
||||
->Where('task.project=:project')
|
||||
->andWhere('event.task=task')
|
||||
->andWhere('event.end <:end')
|
||||
->andWhere('event.validate=:validate')
|
||||
->setParameter('project',$project)
|
||||
->setParameter('validate',true)
|
||||
->setParameter('end',$end)
|
||||
->orderBy('event.start')
|
||||
->getQuery()->getResult();
|
||||
foreach($events as $event) {
|
||||
if(!isset($tbproject["before"][$event->getStart()->format("Y")][$event->getStart()->format("Ym")])) {
|
||||
$tbproject["before"][$event->getStart()->format("Y")][$event->getStart()->format("Ym")] = [
|
||||
"idmonth" => $event->getStart()->format("Ym"),
|
||||
"monthlabel"=>$event->getStart()->format("m/Y"),
|
||||
"duration" => 0,
|
||||
];
|
||||
}
|
||||
$tbproject["before"][$event->getStart()->format("Y")][$event->getStart()->format("Ym")]["duration"]=$tbproject["before"][$event->getStart()->format("Y")][$event->getStart()->format("Ym")]["duration"]+$event->getDuration();
|
||||
}
|
||||
// Somme astreinte validé avant la date
|
||||
$end=new \Datetime('first day of this month');
|
||||
$end->sub(new \DateInterval('P'.$nbmonth.'M'));
|
||||
$end->setTime(23,59,0);
|
||||
$penaltys = $em
|
||||
->createQueryBuilder('penalty')
|
||||
->select('penalty')
|
||||
->from('App:Task','task')
|
||||
->from('App:Penalty','penalty')
|
||||
->Where('task.project=:project')
|
||||
->andWhere('penalty.task=task')
|
||||
->andWhere('penalty.end <:end')
|
||||
->andWhere('penalty.validate=:validate')
|
||||
->setParameter('project',$project)
|
||||
->setParameter('validate',true)
|
||||
->setParameter('end',$end)
|
||||
->orderBy('penalty.start')
|
||||
->getQuery()->getResult();
|
||||
foreach($penaltys as $penalty) {
|
||||
if(!isset($tbproject["beforeastreinte"][$penalty->getStart()->format("Y")][$penalty->getStart()->format("Ym")])) {
|
||||
$tbproject["beforeastreinte"][$penalty->getStart()->format("Y")][$penalty->getStart()->format("Ym")] = [
|
||||
"idmonth" => $penalty->getStart()->format("Ym"),
|
||||
"monthlabel"=>$penalty->getStart()->format("m/Y"),
|
||||
"duration" => 0,
|
||||
];
|
||||
}
|
||||
$tbproject["beforeastreinte"][$penalty->getStart()->format("Y")][$penalty->getStart()->format("Ym")]["duration"]=$tbproject["beforeastreinte"][$penalty->getStart()->format("Y")][$penalty->getStart()->format("Ym")]["duration"]+$penalty->getDuration();
|
||||
}
|
||||
|
||||
// Somme event validé par semaine
|
||||
$start=new \Datetime('first day of this month');
|
||||
$start->sub(new \DateInterval('P'.$nbmonth.'M'));
|
||||
$start->setTime(0,0,0);
|
||||
$endmonth = new \Datetime('first day of this month');
|
||||
$endmonth->add(new \DateInterval('P1M'));
|
||||
$eventsbyweek = $em
|
||||
->createQueryBuilder('event')
|
||||
->select('event')
|
||||
->from('App:Task','task')
|
||||
->from('App:Event','event')
|
||||
->Where('task.project=:project')
|
||||
->andWhere('event.task=task')
|
||||
->andWhere('event.end >:start')
|
||||
->andWhere('event.end <:end')
|
||||
->andWhere('event.validate=:validate')
|
||||
->setParameter('project',$project)
|
||||
->setParameter('validate',true)
|
||||
->setParameter('start',$start)
|
||||
->setParameter('end',$endmonth)
|
||||
->orderBy('event.start')
|
||||
->getQuery()->getResult();
|
||||
foreach($eventsbyweek as $event) {
|
||||
if(!isset($tbproject["weeks"][$event->getStart()->format("Y")][$event->getStart()->format("W")])){
|
||||
$tbproject["weeks"][$event->getStart()->format("Y")][$event->getStart()->format("W")] = [
|
||||
"weeknumber" => $event->getStart()->format("W"),
|
||||
"cumul" => 0,
|
||||
];
|
||||
}
|
||||
$tbproject["weeks"][$event->getStart()->format("Y")][$event->getStart()->format("W")]["cumul"] = $tbproject["weeks"][$event->getStart()->format("Y")][$event->getStart()->format("W")]["cumul"]+$event->getDuration();
|
||||
}
|
||||
|
||||
// Somme astreintes validé par semaine
|
||||
$start=new \Datetime('first day of this month');
|
||||
$start->sub(new \DateInterval('P'.$nbmonth.'M'));
|
||||
$start->setTime(0,0,0);
|
||||
$endmonth = new \Datetime('first day of this month');
|
||||
$endmonth->add(new \DateInterval('P1M'));
|
||||
|
||||
$penaltybyweek = $em
|
||||
|
||||
->createQueryBuilder('penalty')
|
||||
->select('penalty')
|
||||
->from('App:Task','task')
|
||||
->from('App:Penalty','penalty')
|
||||
->Where('task.project=:project')
|
||||
->andWhere('penalty.task=task')
|
||||
->andWhere('penalty.end >=:start')
|
||||
->andWhere('penalty.end <:end')
|
||||
->andWhere('penalty.validate=:validate')
|
||||
->setParameter('project',$project)
|
||||
->setParameter('validate',true)
|
||||
->setParameter('start',$start)
|
||||
->setParameter('end',$endmonth)
|
||||
->orderBy('penalty.start')
|
||||
->getQuery()->getResult();
|
||||
foreach($penaltybyweek as $penalty) {
|
||||
if(!isset($tbproject["weeks"][$penalty->getStart()->format("Y")][$penalty->getStart()->format("W")])){
|
||||
$tbproject["weeks"][$penalty->getStart()->format("Y")][$penalty->getStart()->format("W")] = [
|
||||
"weeknumber" => $penalty->getStart()->format("W"),
|
||||
"cumul" => 0,
|
||||
];
|
||||
}
|
||||
$tbproject["weeks"][$penalty->getStart()->format("Y")][$penalty->getStart()->format("W")]["cumul"] = $tbproject["weeks"][$penalty->getStart()->format("Y")][$penalty->getStart()->format("W")]["cumul"]+$penalty->getDuration();
|
||||
}
|
||||
foreach($penaltybyweek as $penaltybyweek) {
|
||||
if(!isset($tbproject["weeks_by_name"][$penalty->getStart()->format("Y")][$penalty->getStart()->format("W")]["users"])){
|
||||
$tbproject["weeks_by_name"][$penalty->getStart()->format("Y")][$penalty->getStart()->format("W")] = [
|
||||
"weeknumber" => $penalty->getStart()->format("W"),
|
||||
"users" => [],
|
||||
];
|
||||
}
|
||||
if(!isset($tbproject["weeks_by_name"][$penalty->getStart()->format("Y")][$penalty->getStart()->format("W")]["users"][$penalty->getUser()->getId()])){
|
||||
$tbuser= [
|
||||
"id"=>$penalty->getUser()->getId(),
|
||||
"displayname"=>$penalty->getUser()->getDisplayname(),
|
||||
"cumul"=>0
|
||||
];
|
||||
$tbproject["weeks_by_name"][$penalty->getStart()->format("Y")][$penalty->getStart()->format("W")]["users"][$penalty->getUser()->getId()] = $tbuser;
|
||||
}
|
||||
|
||||
$tbproject["weeks_by_name"][$penalty->getStart()->format("Y")][$penalty->getStart()->format("W")]["users"][$penalty->getUser()->getId()]["cumul"] = $tbproject["weeks_by_name"][$penalty->getStart()->format("Y")][$penalty->getStart()->format("W")]["users"][$penalty->getUser()->getId()]["cumul"]+$penalty->getDuration();
|
||||
}
|
||||
|
||||
// Recap des Commandes
|
||||
$offers=$em->getRepository("App:Offer")->findBy(["project"=>$project->getId()]);
|
||||
foreach($offers as $offer) {
|
||||
$tbproject["offers"][$offer->getId()] = [
|
||||
"name"=>$offer->getName(),
|
||||
"ref"=>$offer->getRef(),
|
||||
"quantity"=>$offer->getQuantity(),
|
||||
];
|
||||
}
|
||||
|
||||
// Formater les mois
|
||||
$start=new \Datetime('first day of this month');
|
||||
$start->sub(new \DateInterval('P'.$nbmonth.'M'));
|
||||
$start->setTime(0,0,0);
|
||||
$end=new \Datetime('first day of this month');
|
||||
$end->add(new \DateInterval('P'.$nbmonth.'M'));
|
||||
$end->sub(new \DateInterval('P1D'));
|
||||
$end->setTime(23,59,0);
|
||||
while($start<$end) {
|
||||
$tbproject["months"][$start->format("Ym")]=[
|
||||
"monthid"=> $start->format("Ym"),
|
||||
"monthlabel"=>$start->format("m/Y"),
|
||||
"days"=>[],
|
||||
"users"=>[],
|
||||
"tasks"=>[],
|
||||
];
|
||||
|
||||
// Init du tableau des utilisateurs pour le mois
|
||||
foreach($users as $user) {
|
||||
$tbuser= [
|
||||
"id"=>$user->getId(),
|
||||
"displayname"=>$user->getDisplayname(),
|
||||
"days"=>[]
|
||||
];
|
||||
$tbproject["months"][$start->format("Ym")]["users"][$user->getId()]=$tbuser;
|
||||
}
|
||||
|
||||
// Init des taches par mois
|
||||
$endmonth=clone $start;
|
||||
$endmonth->add(new \DateInterval('P1M'));
|
||||
$events = $em
|
||||
->createQueryBuilder('event')
|
||||
->select('task.id, task.name, SUM(event.duration) as somme')
|
||||
->from('App:Task','task')
|
||||
->from('App:Event','event')
|
||||
->Where('task.project=:project')
|
||||
->andWhere('event.task=task')
|
||||
->andWhere('event.end >:start')
|
||||
->andWhere('event.end <=:end')
|
||||
->andWhere('event.validate=:validate')
|
||||
->setParameter('project',$project)
|
||||
->setParameter('validate',true)
|
||||
->setParameter('start',$start)
|
||||
->setParameter('end',$endmonth)
|
||||
->groupBy('task.id')
|
||||
->getQuery()->getResult();
|
||||
foreach($events as $event) {
|
||||
$tbtask= [
|
||||
"id"=>$event["id"],
|
||||
"displayname"=>$event["name"],
|
||||
"duration"=>$event["somme"]
|
||||
];
|
||||
$tbproject["months"][$start->format("Ym")]["tasks"][$event["id"]]=$tbtask;
|
||||
}
|
||||
|
||||
$start->add(new \DateInterval('P1M'));
|
||||
}
|
||||
|
||||
// Formater les jours
|
||||
$start=new \Datetime('first day of this month');
|
||||
$start->sub(new \DateInterval('P'.$nbmonth.'M'));
|
||||
$start->setTime(0,0,0);
|
||||
$end=new \Datetime('first day of this month');
|
||||
$end->add(new \DateInterval('P'.$nbmonth.'M'));
|
||||
$end->sub(new \DateInterval('P1D'));
|
||||
while($start<$end) {
|
||||
$tbday=[
|
||||
"date"=>clone $start,
|
||||
"daylabel"=>$this->frmDay($start->format("w")),
|
||||
"daycolor"=>$this->frmColorday($start->format("w")),
|
||||
"daynumber"=>$start->format("d"),
|
||||
];
|
||||
|
||||
$tbproject["months"][$start->format("Ym")]["days"][$start->format("Ymd")]=$tbday;
|
||||
|
||||
foreach($users as $user) {
|
||||
$tbday=[
|
||||
"date"=>clone $start,
|
||||
"duration"=>0,
|
||||
"astreinte"=>0,
|
||||
"daycolor"=>$this->frmColorday($start->format("w")),
|
||||
];
|
||||
|
||||
$tbproject["months"][$start->format("Ym")]["users"][$user->getId()]["days"][$start->format("Ymd")]=$tbday;
|
||||
}
|
||||
|
||||
$start->add(new \DateInterval('P1D'));
|
||||
}
|
||||
$tbprojects[$project->getId()]=$tbproject;
|
||||
}
|
||||
|
||||
// Formater les utilisateurs
|
||||
$start=new \Datetime('first day of this month');
|
||||
$start->sub(new \DateInterval('P'.$nbmonth.'M'));
|
||||
$start->setTime(0,0,0);
|
||||
$end=new \Datetime('first day of this month');
|
||||
$end->add(new \DateInterval('P'.$nbmonth.'M'));
|
||||
$end->sub(new \DateInterval('P1D'));
|
||||
$end->setTime(23,59,0);
|
||||
foreach($users as $user) {
|
||||
$tbevents = $this->getEventuser($user,$start,$end,true);
|
||||
|
||||
foreach($tbevents as $project) {
|
||||
foreach($project as $event) {
|
||||
if(isset($tbprojects[$event["idproject"]])) {
|
||||
$tbprojects[$event["idproject"]]["months"][$event["idmonth"]]["users"][$user->getId()]["days"][$event["idday"]]=
|
||||
[
|
||||
"date"=>$event["idday"],
|
||||
"duration"=>$event["duration"],
|
||||
"astreinte"=>$event["astreinte"],
|
||||
"daycolor"=>$event["daycolor"],
|
||||
];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Cumule
|
||||
foreach($tbprojects as $project) {
|
||||
foreach($project["months"] as $month) {
|
||||
$haveuser=false;
|
||||
$totmonth=0;
|
||||
$totmontha=0;
|
||||
|
||||
foreach($month["users"] as $user) {
|
||||
$totuser=0;
|
||||
$totusera=0;
|
||||
|
||||
foreach($user["days"] as $day) {
|
||||
$totuser+=$day["duration"];
|
||||
$totusera+=$day["astreinte"];
|
||||
|
||||
$totmonth+=$day["duration"];
|
||||
$totmontha+=$day["astreinte"];
|
||||
}
|
||||
|
||||
if($totuser==0&&$totusera==0) {
|
||||
unset($tbprojects[$project["id"]]["months"][$month["monthid"]]["users"][$user["id"]]);
|
||||
} else {
|
||||
$tbprojects[$project["id"]]["months"][$month["monthid"]]["users"][$user["id"]]["total"]=$totuser+$totusera;
|
||||
$haveuser=true;
|
||||
}
|
||||
}
|
||||
|
||||
if(!$haveuser)
|
||||
unset($tbprojects[$project["id"]]["months"][$month["monthid"]]);
|
||||
else {
|
||||
$tbprojects[$project["id"]]["months"][$month["monthid"]]["total"]=$totmonth;
|
||||
$tbprojects[$project["id"]]["months"][$month["monthid"]]["totala"]=$totmontha;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if($request->query->get('fgprint')) {
|
||||
$render = $this->renderView('Report/report.html.twig',[
|
||||
"useheader" => true,
|
||||
"usesidebar" => ($this->getUser()),
|
||||
"projects" => $tbprojects,
|
||||
"access" => $access,
|
||||
"key" => $key,
|
||||
"fgprint" => true,
|
||||
]);
|
||||
|
||||
return new PdfResponse(
|
||||
$this->knpSnappy->getOutputFromHtml($render,["orientation"=>"Landscape"]),
|
||||
'report.pdf'
|
||||
);
|
||||
}
|
||||
else {
|
||||
return $this->render('Report/report.html.twig',[
|
||||
"useheader" => true,
|
||||
"usesidebar" => ($this->getUser()),
|
||||
"projects" => $tbprojects,
|
||||
"access" => $access,
|
||||
"key" => $key
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
private function getEventuser($user,$start,$end,$onlyvalidate) {
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
$tbevents=[];
|
||||
// Récupération de event
|
||||
$qb = $em
|
||||
->createQueryBuilder('event')
|
||||
->select('event')
|
||||
->from('App:Event','event')
|
||||
->Where('event.user=:user AND event.start>=:start AND event.end <=:end')
|
||||
->setParameter('user',$user->getId())
|
||||
->setParameter('start',$start)
|
||||
->setParameter('end',$end);
|
||||
if($onlyvalidate)
|
||||
$qb->andWhere('event.validate=:validate')->setParameter('validate',true);
|
||||
|
||||
$events=$qb->getQuery()->getResult();
|
||||
foreach($events as $event) {
|
||||
$project=$event->getTask()->getProject();
|
||||
$idproject=$project->getId();
|
||||
$idservice=$project->getService()->getId();
|
||||
$iddomaine=$project->getDomaine()->getId();
|
||||
$activeproject=$project->getActive();
|
||||
|
||||
// Filtre par Service
|
||||
if($this->get('session')->get('idservice')!="all") {
|
||||
if($idservice!=$this->get('session')->get('idservice'))
|
||||
continue;
|
||||
}
|
||||
|
||||
// Filtre par Domaine
|
||||
if($this->get('session')->get('iddomaine')!="all") {
|
||||
if($iddomaine!=$this->get('session')->get('iddomaine'))
|
||||
continue;
|
||||
}
|
||||
|
||||
// Filtre par project
|
||||
if($this->get('session')->get('idproject')!="all") {
|
||||
if($idproject!=$this->get('session')->get('idproject'))
|
||||
continue;
|
||||
}
|
||||
|
||||
// Ne prendre que les projets actif/inactif
|
||||
if($this->get('session')->get('activeproject')!=$activeproject)
|
||||
continue;
|
||||
|
||||
if(!isset($tbevents[$idproject]))
|
||||
$tbevents[$idproject] = [];
|
||||
|
||||
$st=clone $event->getStart();
|
||||
while($st<$event->getEnd()) {
|
||||
$idday=$st->format("Ymd");
|
||||
$idmonth=$st->format("Ym");
|
||||
|
||||
if(!isset($tbevents[$idproject][$idday])) {
|
||||
$tbevents[$idproject][$idday] = [
|
||||
"idproject"=>$idproject,
|
||||
"idmonth"=>$idmonth,
|
||||
"idday"=>$idday,
|
||||
"daycolor"=>$this->frmColorday($st->format("w")),
|
||||
"duration"=>0,
|
||||
"astreinte"=>0,
|
||||
];
|
||||
}
|
||||
|
||||
$tbevents[$idproject][$idday]["duration"]+=($event->getAllday()?1:0.5);
|
||||
|
||||
|
||||
$st->add(new \DateInterval('P1D'));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Récupération des astreintes
|
||||
$qb = $em
|
||||
->createQueryBuilder('penalty')
|
||||
->select('penalty')
|
||||
->from('App:Penalty','penalty')
|
||||
->Where('penalty.user=:user AND penalty.start>=:start AND penalty.end <:end')
|
||||
->setParameter('user',$user->getId())
|
||||
->setParameter('start',$start)
|
||||
->setParameter('end',$end);
|
||||
if($onlyvalidate)
|
||||
$qb->andWhere('penalty.validate=:validate')->setParameter('validate',true);
|
||||
|
||||
$penaltys=$qb->getQuery()->getResult();
|
||||
foreach($penaltys as $penalty) {
|
||||
$project=$penalty->getTask()->getProject();
|
||||
$idproject=$project->getId();
|
||||
$idservice=$project->getService()->getId();
|
||||
$iddomaine=$project->getDomaine()->getId();
|
||||
$activeproject=$project->getActive();
|
||||
|
||||
// Filtre par Service
|
||||
if($this->get('session')->get('idservice')!="all") {
|
||||
if($idservice!=$this->get('session')->get('idservice'))
|
||||
continue;
|
||||
}
|
||||
|
||||
// Filtre par Domaine
|
||||
if($this->get('session')->get('iddomaine')!="all") {
|
||||
if($iddomaine!=$this->get('session')->get('iddomaine'))
|
||||
continue;
|
||||
}
|
||||
|
||||
// Filtre par project
|
||||
if($this->get('session')->get('idproject')!="all") {
|
||||
if($idproject!=$this->get('session')->get('idproject'))
|
||||
continue;
|
||||
}
|
||||
|
||||
// Ne prendre que les projets actif/inactif
|
||||
if($this->get('session')->get('activeproject')!=$activeproject)
|
||||
continue;
|
||||
|
||||
if(!isset($tbevents[$idproject]))
|
||||
$tbevents[$idproject] = [];
|
||||
|
||||
$st=clone $penalty->getStart();
|
||||
while($st<$penalty->getEnd()) {
|
||||
$idday=$st->format("Ymd");
|
||||
$idmonth=$st->format("Ym");
|
||||
|
||||
if(!isset($tbevents[$idproject][$idday])) {
|
||||
$tbevents[$idproject][$idday] = [
|
||||
"idproject"=>$idproject,
|
||||
"idmonth"=>$idmonth,
|
||||
"idday"=>$idday,
|
||||
"daycolor"=>$this->frmColorday($st->format("w")),
|
||||
"duration"=>0,
|
||||
"astreinte"=>0,
|
||||
];
|
||||
}
|
||||
|
||||
$tbevents[$idproject][$idday]["astreinte"]=1;
|
||||
|
||||
|
||||
$st->add(new \DateInterval('P1D'));
|
||||
}
|
||||
}
|
||||
|
||||
return $tbevents;
|
||||
}
|
||||
|
||||
public function holiday(Request $request)
|
||||
{
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
|
||||
$iduser=$this->getUser();
|
||||
$users=$em->getRepository("App:User")->findBy(["id"=>$iduser]);
|
||||
|
||||
$tbevents=[];
|
||||
foreach($users as $user) {
|
||||
$tmp=[
|
||||
"id" => $user->getId(),
|
||||
"user" => $user,
|
||||
"holidays" => [],
|
||||
"holidaystodevalidate" => [],
|
||||
];
|
||||
|
||||
// Congès à valider ou à dévalider
|
||||
$holidays = $em
|
||||
->createQueryBuilder('event')
|
||||
->select('event')
|
||||
->from('App:Event','event')
|
||||
->from('App:Task','task')
|
||||
->Where('event.user=:user')
|
||||
->andWhere('event.validateholiday=:validate')
|
||||
->andWhere('task=event.task')
|
||||
->andWhere('task.nature=:nature')
|
||||
->setParameter('user',$user->getId())
|
||||
->setParameter('validate',!($this->get("session")->get("activeholiday")))
|
||||
->setParameter('nature',-200)
|
||||
->getQuery()->getResult();
|
||||
foreach($holidays as $holiday) {
|
||||
$tbholiday = [
|
||||
"id"=>$holiday->getId(),
|
||||
"start"=>$holiday->getStart(),
|
||||
"end"=>$holiday->getEnd()->sub(new \DateInterval('PT1M')),
|
||||
"task"=>$holiday->getTask()->getName(),
|
||||
"duration"=>$holiday->getDuration(),
|
||||
"validateholiday"=>$holiday->getValidateholiday(),
|
||||
];
|
||||
|
||||
array_push($tmp["holidays"],$tbholiday);
|
||||
}
|
||||
|
||||
array_push($tbevents,$tmp);
|
||||
}
|
||||
|
||||
|
||||
if($request->query->get('fgprint')) {
|
||||
$render = $this->renderView('Report/holiday.html.twig',[
|
||||
"useheader" => true,
|
||||
"usesidebar" => ($this->getUser()),
|
||||
"users" => $tbevents,
|
||||
"fgprint" => $request->query->get('fgprint'),
|
||||
]);
|
||||
|
||||
return new PdfResponse(
|
||||
$this->knpSnappy->getOutputFromHtml($render),
|
||||
'conges.pdf'
|
||||
);
|
||||
}
|
||||
else {
|
||||
return $this->render('Report/holiday.html.twig',[
|
||||
"useheader" => true,
|
||||
"usesidebar" => ($this->getUser()),
|
||||
"users" => $tbevents
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public function activeholiday() {
|
||||
$this->get('session')->set('activeholiday',!$this->get('session')->get('activeholiday'));
|
||||
|
||||
return $this->redirectToRoute("app_holiday");
|
||||
}
|
||||
|
||||
private function frmDay($daynumber) {
|
||||
switch($daynumber) {
|
||||
case 0: return "D"; break;
|
||||
case 1: return "L"; break;
|
||||
case 2: return "M"; break;
|
||||
case 3: return "M"; break;
|
||||
case 4: return "J"; break;
|
||||
case 5: return "V"; break;
|
||||
case 6: return "S"; break;
|
||||
}
|
||||
}
|
||||
|
||||
private function frmColorday($daynumber) {
|
||||
switch($daynumber) {
|
||||
case 0: return "#888888"; break;
|
||||
case 1: return "#cccccc"; break;
|
||||
case 2: return "#cccccc"; break;
|
||||
case 3: return "#cccccc"; break;
|
||||
case 4: return "#cccccc"; break;
|
||||
case 5: return "#cccccc"; break;
|
||||
case 6: return "#888888"; break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,132 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Controller;
|
||||
|
||||
use FOS\RestBundle\Controller\AbstractFOSRestController;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
use FOS\RestBundle\Controller\Annotations as FOSRest;
|
||||
use Swagger\Annotations as SWG;
|
||||
|
||||
use App\Entity\Cache;
|
||||
|
||||
|
||||
class RestController extends AbstractFOSRestController
|
||||
{
|
||||
private $output=[];
|
||||
private $cpt;
|
||||
|
||||
/**
|
||||
* Return list of maps
|
||||
*
|
||||
*
|
||||
* @FOSRest\Post("/rest/getBreakdays")
|
||||
* @SWG\Response(
|
||||
* response=200,
|
||||
* description="Return list of breakday events"
|
||||
* )
|
||||
* )
|
||||
* @SWG\Parameter(
|
||||
* name="key",
|
||||
* in="formData",
|
||||
* required=true,
|
||||
* description="APIKey",
|
||||
* type="string"
|
||||
* )
|
||||
* @SWG\Parameter(
|
||||
* name="username",
|
||||
* in="formData",
|
||||
* required=true,
|
||||
* description="username",
|
||||
* type="string"
|
||||
* )
|
||||
*/
|
||||
|
||||
public function getBreakdays(Request $request) {
|
||||
set_time_limit(0);
|
||||
ini_set('memory_limit', '1024M');
|
||||
|
||||
// Initalisation Manager
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
|
||||
// Récupération des parametres
|
||||
$key=$request->get("key");
|
||||
$username=$request->get("username");
|
||||
|
||||
if($key!=$this->getParameter("appSecret")) {
|
||||
$view = $this->view("API Key inconnue", 403);
|
||||
return $this->handleView($view);
|
||||
}
|
||||
|
||||
$user=$em->getRepository("App:User")->findOneBy(["username"=>$username]);
|
||||
if(!$user) {
|
||||
$view = $this->view("User inconnue", 403);
|
||||
return $this->handleView($view);
|
||||
}
|
||||
|
||||
// On formate le tableau de jour
|
||||
$start=new \Datetime('2022-03-07 00:00');
|
||||
$end=new \Datetime('00:00');
|
||||
$end->modify("last day of this month");
|
||||
$end->modify("next sunday");
|
||||
|
||||
$events = $em
|
||||
->createQueryBuilder('event')
|
||||
->select('event')
|
||||
->from('App:Event','event')
|
||||
->Where('event.user=:user AND event.start>=:start AND event.end <:end')
|
||||
->setParameter('user',$user)
|
||||
->setParameter('start',$start)
|
||||
->setParameter('end',$end)
|
||||
->getQuery()->getResult();
|
||||
|
||||
|
||||
$output=[
|
||||
"start"=>$start->format("d/m/Y"),
|
||||
"end"=>$end->format("d/m/Y"),
|
||||
"events"=>[],
|
||||
];
|
||||
|
||||
$tbnature=[-200,-190,-100];
|
||||
foreach($events as $event) {
|
||||
if(in_array($event->getTask()->getNature()->getId(),$tbnature)) {
|
||||
$tmp = [
|
||||
"eventstart"=>$event->getStart(),
|
||||
"eventend"=>$event->getEnd(),
|
||||
"eventallday"=>$event->getAllday(),
|
||||
"taskid"=>$event->getTask()->getId(),
|
||||
"taskname"=>$event->getTask()->getName(),
|
||||
"natureid"=>$event->getTask()->getNature()->getId(),
|
||||
"naturename"=>$event->getTask()->getNature()->getName(),
|
||||
];
|
||||
|
||||
array_push($output["events"],$tmp);
|
||||
}
|
||||
}
|
||||
|
||||
$events = $em
|
||||
->createQueryBuilder('breakday')
|
||||
->select('breakday')
|
||||
->from('App:Breakday','breakday')
|
||||
->Where('breakday.start>=:start AND breakday.end <:end')
|
||||
->setParameter('start',$start)
|
||||
->setParameter('end',$end)
|
||||
->getQuery()->getResult();
|
||||
|
||||
foreach($events as $event) {
|
||||
$tmp = [
|
||||
"eventstart"=>$event->getStart(),
|
||||
"eventend"=>$event->getEnd(),
|
||||
"eventallday"=>true,
|
||||
"taskid"=>null,
|
||||
"taskname"=>"Jour Férié",
|
||||
"natureid"=>null,
|
||||
"naturename"=>"Jour Férié",
|
||||
];
|
||||
|
||||
array_push($output["events"],$tmp);
|
||||
}
|
||||
|
||||
$view = $this->view($output, 200);
|
||||
return $this->handleView($view);
|
||||
}
|
||||
}
|
||||
@@ -1,157 +0,0 @@
|
||||
<?php
|
||||
// src/OC/UserBundle/Controller/SecurityController.php;
|
||||
|
||||
namespace App\Controller;
|
||||
|
||||
use App\Entity\User;
|
||||
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
use Symfony\Component\HttpFoundation\Response;
|
||||
use Symfony\Component\Security\Http\Authentication\AuthenticationUtils;
|
||||
use Symfony\Component\Security\Core\Authentication\Token\UsernamePasswordToken;
|
||||
use Symfony\Component\Security\Http\Event\InteractiveLoginEvent;
|
||||
use Symfony\Component\EventDispatcher\EventDispatcher;
|
||||
use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
|
||||
|
||||
use Symfony\Component\Security\Core\Encoder\EncoderFactory;
|
||||
use Symfony\Component\Security\Core\Encoder\MessageDigestPasswordEncoder;
|
||||
|
||||
use jasig\phpcas\CAS;
|
||||
|
||||
class SecurityController extends AbstractController
|
||||
{
|
||||
public function login(Request $request, AuthenticationUtils $authenticationUtils)
|
||||
{
|
||||
$auth_mode=$this->getParameter("appAuth");
|
||||
switch($auth_mode) {
|
||||
case "MYSQL":
|
||||
return $this->loginMYSQL($request,$authenticationUtils);
|
||||
break;
|
||||
|
||||
case "CAS":
|
||||
return $this->loginCAS($request,$authenticationUtils);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
public function loginMYSQL(Request $request, AuthenticationUtils $authenticationUtils) {
|
||||
return $this->render('Home/login.html.twig', array(
|
||||
'last_username' => $authenticationUtils->getLastUsername(),
|
||||
'error' => $authenticationUtils->getLastAuthenticationError(),
|
||||
));
|
||||
|
||||
}
|
||||
|
||||
public function logincas(Request $request, AuthenticationUtils $authenticationUtils)
|
||||
{
|
||||
// Récupération de la cible de navigation
|
||||
$redirect = $request->get("redirect");
|
||||
|
||||
// Init Client CAS
|
||||
\phpCAS::client(CAS_VERSION_2_0, $this->getParameter('casHost'), intval($this->getParameter('casPort')), is_null($this->getParameter('casPath')) ? '' : $this->getParameter('casPath'), false);
|
||||
\phpCAS::setNoCasServerValidation();
|
||||
|
||||
|
||||
// Authentification
|
||||
\phpCAS::forceAuthentication();
|
||||
|
||||
// Récupération UID
|
||||
$username = \phpCAS::getUser();
|
||||
|
||||
// Récupération Attribut
|
||||
$attributes = \phpCAS::getAttributes();
|
||||
|
||||
// Suppression des Attributs en tableaux
|
||||
foreach ($attributes as $key => $value) {
|
||||
if(is_array($value))
|
||||
unset($attributes[$key]);
|
||||
}
|
||||
|
||||
|
||||
// Rechercher l'utilisateur
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
if(isset($attributes[$this->getParameter('casUsername')]))
|
||||
$username = $attributes[$this->getParameter('casUsername')];
|
||||
|
||||
if(isset($attributes[$this->getParameter('casEmail')]))
|
||||
$email = $attributes[$this->getParameter('casEmail')];
|
||||
|
||||
if(isset($attributes[$this->getParameter('casLastname')]))
|
||||
$lastname = $attributes[$this->getParameter('casLastname')];
|
||||
|
||||
if(isset($attributes[$this->getParameter('casFirstname')]))
|
||||
$firstname = $attributes[$this->getParameter('casFirstname')];
|
||||
|
||||
$user = $em->getRepository('App:User')->findOneBy(array("username"=>$username));
|
||||
$exists = $user ? true : false;
|
||||
|
||||
if (!$exists) {
|
||||
$user = new User();
|
||||
|
||||
$user->setUsername($username);
|
||||
$user->setLastname($lastname);
|
||||
$user->setFirstname($firstname);
|
||||
$user->setEmail($email);
|
||||
|
||||
$user->setPassword("CASPWD-".$username);
|
||||
$user->setSalt("CASPWD-".$username);
|
||||
|
||||
$user->setRoles(["ROLE_VISITOR"]);
|
||||
|
||||
$em->persist($user);
|
||||
$em->flush();
|
||||
}
|
||||
else {
|
||||
if(isset($lastname)) $user->setLastname($lastname);
|
||||
if(isset($firstname)) $user->setFirstname($firstname);
|
||||
if(isset($email)) $user->setEmail($email);
|
||||
|
||||
$em->persist($user);
|
||||
$em->flush();
|
||||
}
|
||||
|
||||
|
||||
// Autoconnexion
|
||||
// Récupérer le token de l'utilisateur
|
||||
$token = new UsernamePasswordToken($user, null, "main", $user->getRoles());
|
||||
$this->get("security.token_storage")->setToken($token);
|
||||
|
||||
// Simuler l'evenement de connexion
|
||||
$event = new InteractiveLoginEvent($request, $token);
|
||||
$dispatcher = new EventDispatcher();
|
||||
$dispatcher->dispatch("security.interactive_login", $event);
|
||||
|
||||
// Redirection
|
||||
if($redirect)
|
||||
return $this->redirect($redirect);
|
||||
else {
|
||||
$roles=$user->getRoles();
|
||||
if(!in_array("ROLE_VISITOR",$roles))
|
||||
return $this->redirect($this->generateUrl('app_home'));
|
||||
else
|
||||
return $this->redirect($this->generateUrl('app_customer_home'));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
public function logout() {
|
||||
$this->get('security.token_storage')->setToken(null);
|
||||
$this->get('session')->invalidate();
|
||||
|
||||
return $this->redirect($this->generateUrl("cnous_portal_homepage"));
|
||||
}
|
||||
|
||||
|
||||
|
||||
public function logoutcas() {
|
||||
// Init Client CAS
|
||||
\phpCAS::client(CAS_VERSION_2_0, $this->getParameter('casHost'), intval($this->getParameter('casPort')), is_null($this->getParameter('casPath')) ? '' : $this->getParameter('casPath'), false);
|
||||
\phpCAS::setNoCasServerValidation();
|
||||
|
||||
|
||||
// Logout
|
||||
$url=$this->generateUrl('app_home', array(), UrlGeneratorInterface::ABSOLUTE_URL);
|
||||
\phpCAS::logout(array("service"=>$url));
|
||||
}
|
||||
}
|
||||
@@ -1,180 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Controller;
|
||||
|
||||
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
use Symfony\Component\HttpFoundation\Response;
|
||||
use Symfony\Component\Form\FormError;
|
||||
use Knp\Bundle\SnappyBundle\Snappy\Response\PdfResponse;
|
||||
|
||||
use App\Entity\Service as Entity;
|
||||
use App\Form\ServiceType as Form;
|
||||
|
||||
class ServiceController extends AbstractController
|
||||
{
|
||||
private $data = "service";
|
||||
private $route = "app_service";
|
||||
private $render = "Service/";
|
||||
private $entity = "App:Service";
|
||||
|
||||
private $knpSnappy;
|
||||
public function __construct(\Knp\Snappy\Pdf $knpSnappy) { $this->knpSnappy = $knpSnappy; }
|
||||
|
||||
public function list(Request $request)
|
||||
{
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
$datas = $em->getRepository($this->entity)->findAll();
|
||||
|
||||
if($request->query->get('fgprint')) {
|
||||
$render = $this->renderView($this->render.'list.html.twig',[
|
||||
$this->data."s" => $datas,
|
||||
"useheader" => true,
|
||||
"usesidebar" => true,
|
||||
"fgprint" => true,
|
||||
]);
|
||||
|
||||
return new PdfResponse(
|
||||
$this->knpSnappy->getOutputFromHtml($render),
|
||||
'services.pdf'
|
||||
);
|
||||
}
|
||||
else {
|
||||
return $this->render($this->render.'list.html.twig',[
|
||||
$this->data."s" => $datas,
|
||||
"useheader" => true,
|
||||
"usesidebar" => true,
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
public function submit(Request $request)
|
||||
{
|
||||
// Initialisation de l'enregistrement
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
$data = new Entity();
|
||||
|
||||
// Création du formulaire
|
||||
$form = $this->createForm(Form::class,$data,array("mode"=>"submit","doliActive"=>$this->getParameter("doliActive")));
|
||||
|
||||
// Récupération des data du formulaire
|
||||
$form->handleRequest($request);
|
||||
|
||||
// Sur erreur
|
||||
$this->getErrorForm(null,$form,$request,$data,"submit");
|
||||
|
||||
// Sur validation
|
||||
if ($form->get('submit')->isClicked() && $form->isValid()) {
|
||||
$data = $form->getData();
|
||||
$em->persist($data);
|
||||
$em->flush();
|
||||
|
||||
// Retour à la liste
|
||||
return $this->redirectToRoute($this->route);
|
||||
}
|
||||
|
||||
// Affichage du formulaire
|
||||
return $this->render($this->render.'edit.html.twig', [
|
||||
'useheader' => true,
|
||||
'usesidebar' => true,
|
||||
$this->data => $data,
|
||||
'mode' => 'submit',
|
||||
'form' => $form->createView()
|
||||
]);
|
||||
}
|
||||
|
||||
public function update($id,Request $request)
|
||||
{
|
||||
// Initialisation de l'enregistrement
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
$data=$em->getRepository($this->entity)->find($id);
|
||||
|
||||
// Création du formulaire
|
||||
$form = $this->createForm(Form::class,$data,array("mode"=>"update","doliActive"=>$this->getParameter("doliActive")));
|
||||
|
||||
// Récupération des data du formulaire
|
||||
$form->handleRequest($request);
|
||||
|
||||
// Sur erreur
|
||||
$this->getErrorForm(null,$form,$request,$data,"update");
|
||||
|
||||
// Sur validation
|
||||
if ($form->get('submit')->isClicked() && $form->isValid()) {
|
||||
$data = $form->getData();
|
||||
$em->persist($data);
|
||||
$em->flush();
|
||||
|
||||
// Retour à la liste
|
||||
return $this->redirectToRoute($this->route);
|
||||
}
|
||||
|
||||
// Affichage du formulaire
|
||||
if($request->query->get('fgprint')) {
|
||||
$render = $this->renderView($this->render.'edit.html.twig', [
|
||||
'useheader' => true,
|
||||
'usesidebar' => true,
|
||||
$this->data => $data,
|
||||
'mode' => 'update',
|
||||
'form' => $form->createView(),
|
||||
"fgprint" => true,
|
||||
]);
|
||||
|
||||
return new PdfResponse(
|
||||
$this->knpSnappy->getOutputFromHtml($render),
|
||||
'service.pdf'
|
||||
);
|
||||
}
|
||||
else {
|
||||
return $this->render($this->render.'edit.html.twig', [
|
||||
'useheader' => true,
|
||||
'usesidebar' => true,
|
||||
$this->data => $data,
|
||||
'mode' => 'update',
|
||||
'form' => $form->createView()
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
public function delete($id,Request $request)
|
||||
{
|
||||
// Initialisation de l'enregistrement
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
$data=$em->getRepository($this->entity)->find($id);
|
||||
|
||||
// Controle avant suppression
|
||||
$error=false;
|
||||
if($error)
|
||||
return $this->redirectToRoute($this->route."_update",["id"=>$id]);
|
||||
else {
|
||||
try {
|
||||
$em->remove($data);
|
||||
$em->flush();
|
||||
}
|
||||
catch(\Doctrine\DBAL\DBALException $e) {
|
||||
// Création du formulaire
|
||||
$this->get('session')->getFlashBag()->add('error', 'Impossible de supprimer cet enregistrement');
|
||||
return $this->redirectToRoute($this->route."_update",["id"=>$id]);
|
||||
}
|
||||
|
||||
// Retour à la liste
|
||||
return $this->redirectToRoute($this->route);
|
||||
}
|
||||
}
|
||||
|
||||
protected function getErrorForm($id,$form,$request,$data,$mode) {
|
||||
if ($form->get('submit')->isClicked()&&$mode=="delete") {
|
||||
}
|
||||
|
||||
if ($form->get('submit')->isClicked() && $mode=="submit") {
|
||||
}
|
||||
|
||||
if ($form->get('submit')->isClicked() && !$form->isValid()) {
|
||||
$this->get('session')->getFlashBag()->clear();
|
||||
|
||||
$errors = $form->getErrors();
|
||||
foreach( $errors as $error ) {
|
||||
$request->getSession()->getFlashBag()->add("error", $error->getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,208 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Controller;
|
||||
|
||||
use App\Entity\Domaine;
|
||||
use App\Entity\Service;
|
||||
use App\Entity\Task as Entity;
|
||||
use App\Form\TaskType as Form;
|
||||
use Knp\Bundle\SnappyBundle\Snappy\Response\PdfResponse;
|
||||
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
|
||||
class TaskController extends AbstractController
|
||||
{
|
||||
private $data = 'task';
|
||||
private $route = 'app_task';
|
||||
private $render = 'Task/';
|
||||
private $entity = 'App:Task';
|
||||
|
||||
private $knpSnappy;
|
||||
|
||||
public function __construct(\Knp\Snappy\Pdf $knpSnappy)
|
||||
{
|
||||
$this->knpSnappy = $knpSnappy;
|
||||
}
|
||||
|
||||
public function list(Request $request)
|
||||
{
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
$services = $em->getRepository(Service::class)->findAllTaskActive($this->get('session')->get('activeproject'), $this->get('session')->get('idservice'));
|
||||
$domaines = $em->getRepository(Domaine::class)->findAllTaskActive($this->get('session')->get('activeproject'), $this->get('session')->get('iddomaine'));
|
||||
|
||||
if ($request->query->get('fgprint')) {
|
||||
$render = $this->renderView($this->render.'list.html.twig', [
|
||||
'services' => $services,
|
||||
'domaines' => $domaines,
|
||||
'useheader' => true,
|
||||
'usesidebar' => true,
|
||||
'fgprint' => true,
|
||||
]);
|
||||
|
||||
return new PdfResponse(
|
||||
$this->knpSnappy->getOutputFromHtml($render, ['orientation' => 'Landscape']),
|
||||
'taches.pdf'
|
||||
);
|
||||
} else {
|
||||
return $this->render($this->render.'list.html.twig', [
|
||||
'services' => $services,
|
||||
'domaines' => $domaines,
|
||||
'useheader' => true,
|
||||
'usesidebar' => true,
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
public function submit(Request $request)
|
||||
{
|
||||
// Initialisation de l'enregistrement
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
$data = new Entity();
|
||||
$defaultnature = $em->getRepository('App:Nature')->findOneBy(['name' => 'Prestation']);
|
||||
$data->setNature($defaultnature);
|
||||
$data->setActive(true);
|
||||
// Création du formulaire
|
||||
$form = $this->createForm(Form::class, $data, ['mode' => 'submit']);
|
||||
|
||||
// Récupération des data du formulaire
|
||||
$form->handleRequest($request);
|
||||
|
||||
// Sur erreur
|
||||
$this->getErrorForm(null, $form, $request, $data, 'submit');
|
||||
|
||||
// Sur validation
|
||||
if ($form->get('submit')->isClicked() && $form->isValid()) {
|
||||
$data = $form->getData();
|
||||
$em->persist($data);
|
||||
$em->flush();
|
||||
|
||||
// Retour à la liste
|
||||
return $this->redirectToRoute($this->route);
|
||||
}
|
||||
|
||||
// Affichage du formulaire
|
||||
return $this->render($this->render.'edit.html.twig', [
|
||||
'useheader' => true,
|
||||
'usesidebar' => true,
|
||||
$this->data => $data,
|
||||
'mode' => 'submit',
|
||||
'form' => $form->createView(),
|
||||
]);
|
||||
}
|
||||
|
||||
public function update($id, Request $request)
|
||||
{
|
||||
// Initialisation de l'enregistrement
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
$data = $em->getRepository($this->entity)->find($id);
|
||||
|
||||
// Création du formulaire
|
||||
$form = $this->createForm(Form::class, $data, ['mode' => 'update']);
|
||||
|
||||
// Récupération des data du formulaire
|
||||
$form->handleRequest($request);
|
||||
|
||||
// Sur erreur
|
||||
$this->getErrorForm(null, $form, $request, $data, 'update');
|
||||
|
||||
// Sur validation
|
||||
if ($form->get('submit')->isClicked() && $form->isValid()) {
|
||||
$data = $form->getData();
|
||||
$em->persist($data);
|
||||
$em->flush();
|
||||
|
||||
// Retour à la liste
|
||||
return $this->redirectToRoute($this->route);
|
||||
}
|
||||
|
||||
// Affichage du formulaire
|
||||
if ($request->query->get('fgprint')) {
|
||||
$render = $this->renderView($this->render.'edit.html.twig', [
|
||||
'useheader' => true,
|
||||
'usesidebar' => true,
|
||||
$this->data => $data,
|
||||
'mode' => 'update',
|
||||
'form' => $form->createView(),
|
||||
'fgprint' => true,
|
||||
]);
|
||||
|
||||
return new PdfResponse(
|
||||
$this->knpSnappy->getOutputFromHtml($render),
|
||||
'tache.pdf'
|
||||
);
|
||||
} else {
|
||||
return $this->render($this->render.'edit.html.twig', [
|
||||
'useheader' => true,
|
||||
'usesidebar' => true,
|
||||
$this->data => $data,
|
||||
'mode' => 'update',
|
||||
'form' => $form->createView(),
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
public function delete($id, Request $request)
|
||||
{
|
||||
// Initialisation de l'enregistrement
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
$data = $em->getRepository($this->entity)->find($id);
|
||||
|
||||
// Controle avant suppression
|
||||
$error = false;
|
||||
if ($error) {
|
||||
return $this->redirectToRoute($this->route.'_update', ['id' => $id]);
|
||||
} else {
|
||||
try {
|
||||
$em->remove($data);
|
||||
$em->flush();
|
||||
} catch (\Doctrine\DBAL\DBALException $e) {
|
||||
// Création du formulaire
|
||||
$this->get('session')->getFlashBag()->add('error', 'Impossible de supprimer cet enregistrement');
|
||||
|
||||
return $this->redirectToRoute($this->route.'_update', ['id' => $id]);
|
||||
}
|
||||
|
||||
// Retour à la liste
|
||||
return $this->redirectToRoute($this->route);
|
||||
}
|
||||
}
|
||||
|
||||
public function activeproject()
|
||||
{
|
||||
$this->get('session')->set('activeproject', !$this->get('session')->get('activeproject'));
|
||||
|
||||
return $this->redirectToRoute($this->route);
|
||||
}
|
||||
|
||||
public function activetask()
|
||||
{
|
||||
$this->get('session')->set('activetask', !$this->get('session')->get('activetask'));
|
||||
|
||||
return $this->redirectToRoute($this->route);
|
||||
}
|
||||
|
||||
public function viewservice()
|
||||
{
|
||||
$this->get('session')->set('viewservice', !$this->get('session')->get('viewservice'));
|
||||
|
||||
return $this->redirectToRoute($this->route);
|
||||
}
|
||||
|
||||
protected function getErrorForm($id, $form, $request, $data, $mode)
|
||||
{
|
||||
if ($form->get('submit')->isClicked() && 'delete' == $mode) {
|
||||
}
|
||||
|
||||
if ($form->get('submit')->isClicked() && 'submit' == $mode) {
|
||||
}
|
||||
|
||||
if ($form->get('submit')->isClicked() && !$form->isValid()) {
|
||||
$this->get('session')->getFlashBag()->clear();
|
||||
|
||||
$errors = $form->getErrors();
|
||||
foreach ($errors as $error) {
|
||||
$request->getSession()->getFlashBag()->add('error', $error->getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,644 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Controller;
|
||||
|
||||
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
use Symfony\Component\HttpFoundation\Response;
|
||||
use Knp\Bundle\SnappyBundle\Snappy\Response\PdfResponse;
|
||||
|
||||
class ValidationController extends AbstractController
|
||||
{
|
||||
private $knpSnappy;
|
||||
private $notificator;
|
||||
public function __construct(\Knp\Snappy\Pdf $knpSnappy, \App\Service\notificationService $notificator) {
|
||||
$this->knpSnappy = $knpSnappy;
|
||||
$this->notificator = $notificator;
|
||||
}
|
||||
|
||||
public function validation(Request $request)
|
||||
{
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
|
||||
$nbmonth=$this->get("session")->get("nbmonth");
|
||||
$iduser=$this->get("session")->get("iduser");
|
||||
|
||||
if($iduser=="all") {
|
||||
$users=$em->getRepository("App:User")->findAll();
|
||||
}
|
||||
else {
|
||||
$users=$em->getRepository("App:User")->findBy(["id"=>$iduser]);
|
||||
}
|
||||
|
||||
$maxend=new \Datetime();
|
||||
$maxend->add(new \DateInterval('P1M'));
|
||||
$maxend->modify('first Monday');
|
||||
|
||||
$tbevents=[];
|
||||
foreach($users as $user) {
|
||||
if(in_array("ROLE_USER",$user->getRoles())) {
|
||||
// Filtre par Service
|
||||
if($this->get('session')->get('idservice')!="all") {
|
||||
if($user->getService()->getId()!=$this->get('session')->get('idservice'))
|
||||
continue;
|
||||
}
|
||||
|
||||
$tmp=[
|
||||
"id" => $user->getId(),
|
||||
"user" => $user,
|
||||
"events" => [],
|
||||
];
|
||||
|
||||
// On recherche le dernier evenement non congés validé pour ce user
|
||||
$eventstart = $em
|
||||
->createQueryBuilder('event')
|
||||
->select("event")
|
||||
->from('App:Event','event')
|
||||
->Where('event.user=:user')
|
||||
->andWhere('event.validate=true')
|
||||
->setParameter('user',$user)
|
||||
->setMaxResults(1)
|
||||
->orderBy('event.start', 'DESC')
|
||||
->getQuery()->getOneOrNullResult();
|
||||
if(!$eventstart) {
|
||||
// Sinon on recherche le premier evenement de l'utilisateur
|
||||
$eventstart=$em->getRepository("App:Event")->findOneBy(["user"=>$user],["start"=>"ASC"]);
|
||||
}
|
||||
|
||||
// On formate le tableau des jours
|
||||
$start=clone $eventstart->getStart();
|
||||
if($start->format("w")!=1) $start->modify('last Monday');
|
||||
$end=clone $maxend;
|
||||
|
||||
while($start<$end) {
|
||||
$idday=$start->format("Ymd");
|
||||
$idmonth=$start->format("Ym");
|
||||
|
||||
// Si le lundi on regarde s'il une tache de validé dans la semaine
|
||||
if($start->format("w")==1) {
|
||||
$validate=false;
|
||||
|
||||
$endweek=clone $start;
|
||||
$endweek->modify('next Monday');
|
||||
|
||||
$event = $em
|
||||
->createQueryBuilder('event')
|
||||
->select("event.id")
|
||||
->from('App:Event','event')
|
||||
->Where('event.user=:user')
|
||||
->andWhere('event.start>=:start')
|
||||
->andWhere('event.end<:end')
|
||||
->andWhere('event.validate=true')
|
||||
->setParameter('user',$user)
|
||||
->setParameter('start',$start)
|
||||
->setParameter('end',$endweek)
|
||||
->getQuery()->getResult();
|
||||
if($event) {
|
||||
$validate=true;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
$tmp["events"][$idday] = [
|
||||
"date"=>clone $start,
|
||||
"events"=>[],
|
||||
"astreinte"=>false,
|
||||
"colorastreinte"=>"",
|
||||
"descriptionastreinte"=>"",
|
||||
];
|
||||
|
||||
$start->add(new \DateInterval('P1D'));
|
||||
}
|
||||
|
||||
// On formate le tableau des event
|
||||
$start=clone $eventstart->getStart();
|
||||
if($start->format("w")!=1) $start->modify('last Monday');
|
||||
$end=clone $maxend;
|
||||
|
||||
$events = $em
|
||||
->createQueryBuilder('event')
|
||||
->select('event')
|
||||
->from('App:Event','event')
|
||||
->Where('event.user=:user AND event.start>=:start AND event.end <:end')
|
||||
->setParameter('user',$user->getId())
|
||||
->setParameter('start',$start)
|
||||
->setParameter('end',$end)
|
||||
->getQuery()->getResult();
|
||||
foreach($events as $event) {
|
||||
$st=clone $event->getStart();
|
||||
while($st<$event->getEnd()) {
|
||||
$idday=$st->format("Ymd");
|
||||
if($event->getAllday()) {
|
||||
$tmp["events"][$idday]["events"][$event->getId()]=["allday"=>true,"colorday"=>$event->getTask()->getColor(),"descriptionday"=>strtoupper($event->getTask()->getDisplayname())."\n\n".$event->getDescription(),"validate"=>$event->getValidate()];
|
||||
}
|
||||
else {
|
||||
// Matin ou après-midi ?
|
||||
$time=$event->getStart()->format("H");
|
||||
if($time==9) {
|
||||
$tmp["events"][$idday]["events"][$event->getId()]=["allday"=>false,"am"=>true,"ap"=>false,"coloram"=>$event->getTask()->getColor(),"descriptionam"=>strtoupper($event->getTask()->getDisplayname())."\n\n".$event->getDescription(),"validate"=>$event->getValidate()];
|
||||
}
|
||||
else {
|
||||
$tmp["events"][$idday]["events"][$event->getId()]=["allday"=>false,"am"=>false,"ap"=>true,"colorap"=>$event->getTask()->getColor(),"descriptionap"=>strtoupper($event->getTask()->getDisplayname())."\n\n".$event->getDescription(),"validate"=>$event->getValidate()];
|
||||
}
|
||||
}
|
||||
|
||||
$st->add(new \DateInterval('P1D'));
|
||||
}
|
||||
}
|
||||
|
||||
// On formate le tableau des astreintes
|
||||
$start=clone $eventstart->getStart();
|
||||
if($start->format("w")!=1) $start->modify('last Monday');
|
||||
$end=clone $maxend;
|
||||
|
||||
$penaltys = $em
|
||||
->createQueryBuilder('penalty')
|
||||
->select('penalty')
|
||||
->from('App:Penalty','penalty')
|
||||
->Where('penalty.user=:user AND penalty.start>=:start AND penalty.end <:end')
|
||||
->setParameter('user',$user->getId())
|
||||
->setParameter('start',$start)
|
||||
->setParameter('end',$end)
|
||||
->getQuery()->getResult();
|
||||
foreach($penaltys as $penalty) {
|
||||
$st=clone $penalty->getStart();
|
||||
while($st<$penalty->getEnd()) {
|
||||
$idday=$st->format("Ymd");
|
||||
if($penalty->getAllday()) {
|
||||
$tmp["events"][$idday]["astreinte"]=true;
|
||||
$tmp["events"][$idday]["colorastreinte"]=$penalty->getTask()->getColor();
|
||||
$tmp["events"][$idday]["descriptionastreinte"]=strtoupper($penalty->getTask()->getDisplayname())."\n\n".$penalty->getDescription();
|
||||
}
|
||||
|
||||
$st->add(new \DateInterval('P1D'));
|
||||
}
|
||||
}
|
||||
|
||||
// On formate le tableau des jours fériés
|
||||
$start=clone $eventstart->getStart();
|
||||
if($start->format("w")!=1) $start->modify('last Monday');
|
||||
$end=clone $maxend;
|
||||
|
||||
$breakdays = $em
|
||||
->createQueryBuilder('breakday')
|
||||
->select('breakday')
|
||||
->from('App:Breakday','breakday')
|
||||
->Where('breakday.start>=:start AND breakday.end <:end')
|
||||
->setParameter('start',$start)
|
||||
->setParameter('end',$end)
|
||||
->getQuery()->getResult();
|
||||
foreach($breakdays as $breakday) {
|
||||
$st=clone $breakday->getStart();
|
||||
while($st<$breakday->getEnd()) {
|
||||
$idday=$st->format("Ymd");
|
||||
$tmp["events"][$idday]["allday"]=true;
|
||||
$tmp["events"][$idday]["colorday"]="#6c7a89";
|
||||
$tmp["events"][$idday]["descriptionday"]="Jour Férié";
|
||||
|
||||
$st->add(new \DateInterval('P1D'));
|
||||
}
|
||||
}
|
||||
|
||||
array_push($tbevents,$tmp);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
if($request->query->get('fgprint')) {
|
||||
$render = $this->renderView('Validation/validation.html.twig',[
|
||||
"useheader" => true,
|
||||
"usesidebar" => ($this->getUser()),
|
||||
"users" => $tbevents,
|
||||
"fgprint" => $request->query->get('fgprint'),
|
||||
]);
|
||||
|
||||
return new PdfResponse(
|
||||
$this->knpSnappy->getOutputFromHtml($render),
|
||||
'validation.pdf'
|
||||
);
|
||||
}
|
||||
else {
|
||||
return $this->render('Validation/validation.html.twig',[
|
||||
"useheader" => true,
|
||||
"usesidebar" => ($this->getUser()),
|
||||
"users" => $tbevents
|
||||
]);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
public function validate(Request $request){
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
|
||||
// Récupération des variables envoyées en post
|
||||
$iduser = $request->request->get('iduser');
|
||||
$day = $request->request->get('day');
|
||||
$start= new \Datetime($day);
|
||||
$end=clone $start;
|
||||
$end->modify('next Saturday');
|
||||
|
||||
// Somme dans la semaine
|
||||
$duration=0;
|
||||
|
||||
// Somme des jours fériés de la semaine
|
||||
$breakdays = $em
|
||||
->createQueryBuilder('breakday')
|
||||
->select("breakday")
|
||||
->from('App:Breakday','breakday')
|
||||
->Where('breakday.start>=:start')
|
||||
->andWhere('breakday.end<=:end')
|
||||
->setParameter('start',$start)
|
||||
->setParameter('end',$end)
|
||||
->getQuery()->getResult();
|
||||
foreach($breakdays as $breakday) {
|
||||
$duration++;
|
||||
}
|
||||
|
||||
// On recherche l'ensemble des évènements de la semaine
|
||||
$events = $em
|
||||
->createQueryBuilder('event')
|
||||
->select("event")
|
||||
->from('App:Event','event')
|
||||
->Where('event.user=:user')
|
||||
->andWhere('event.start>=:start')
|
||||
->andWhere('event.end<=:end')
|
||||
->setParameter('user',$iduser)
|
||||
->setParameter('start',$start)
|
||||
->setParameter('end',$end)
|
||||
->getQuery()->getResult();
|
||||
foreach($events as $event) {
|
||||
$duration+=$event->getDuration();
|
||||
|
||||
// Si congès = le congès doit etre validé
|
||||
if($event->getTask()->getNature()->getId()==-200)
|
||||
{
|
||||
if(!$event->getValidateholiday()) {
|
||||
$output=["return"=>"KO","error"=>"Validation impossible = présence de congés non validés"];
|
||||
return new Response(json_encode($output));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if($duration< 5) {
|
||||
$output=["return"=>"KO","error"=>"Validation impossible = semaine incomplète"];
|
||||
return new Response(json_encode($output));
|
||||
}
|
||||
|
||||
// OK = On valide les evenements
|
||||
foreach($events as $event) {
|
||||
$event->setValidate(true);
|
||||
$em->persist($event);
|
||||
$em->flush();
|
||||
}
|
||||
|
||||
// OK = On valide les astreintes
|
||||
$start= new \Datetime($day);
|
||||
$end=clone $start;
|
||||
$end->modify('next Monday');
|
||||
$penaltys = $em
|
||||
->createQueryBuilder('penalty')
|
||||
->select("penalty")
|
||||
->from('App:Penalty','penalty')
|
||||
->Where('penalty.user=:user')
|
||||
->andWhere('penalty.start>=:start')
|
||||
->andWhere('penalty.end<=:end')
|
||||
->setParameter('user',$iduser)
|
||||
->setParameter('start',$start)
|
||||
->setParameter('end',$end)
|
||||
->getQuery()->getResult();
|
||||
foreach($penaltys as $penalty) {
|
||||
$penalty->setValidate(true);
|
||||
$em->persist($penalty);
|
||||
$em->flush();
|
||||
}
|
||||
|
||||
$output=[];
|
||||
return new Response(json_encode($output));
|
||||
}
|
||||
|
||||
public function devalidate(Request $request){
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
|
||||
// Récupération des variables envoyées en post
|
||||
$iduser = $request->request->get('iduser');
|
||||
$day = $request->request->get('day');
|
||||
$start= new \Datetime($day);
|
||||
$end=clone $start;
|
||||
$end->modify('next Saturday');
|
||||
|
||||
// On recherche l'ensemble des évènements de la semaine
|
||||
$events = $em
|
||||
->createQueryBuilder('event')
|
||||
->select("event")
|
||||
->from('App:Event','event')
|
||||
->Where('event.user=:user')
|
||||
->andWhere('event.start>=:start')
|
||||
->andWhere('event.end<=:end')
|
||||
->setParameter('user',$iduser)
|
||||
->setParameter('start',$start)
|
||||
->setParameter('end',$end)
|
||||
->getQuery()->getResult();
|
||||
|
||||
/*
|
||||
foreach($events as $event) {
|
||||
// Si congès = le congès doit etre non validé
|
||||
if($event->getTask()->getNature()->getId()==-200)
|
||||
{
|
||||
if($event->getValidateholiday()) {
|
||||
$output=["return"=>"KO","error"=>"Dévalidation impossible = présence de congés validés"];
|
||||
return new Response(json_encode($output));
|
||||
}
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
// OK = On devalide les evenements
|
||||
foreach($events as $event) {
|
||||
$event->setValidate(false);
|
||||
$em->persist($event);
|
||||
$em->flush();
|
||||
}
|
||||
|
||||
// OK = On devalide les astreintes
|
||||
$start= new \Datetime($day);
|
||||
$end=clone $start;
|
||||
$end->modify('next Monday');
|
||||
$penaltys = $em
|
||||
->createQueryBuilder('penalty')
|
||||
->select("penalty")
|
||||
->from('App:Penalty','penalty')
|
||||
->Where('penalty.user=:user')
|
||||
->andWhere('penalty.start>=:start')
|
||||
->andWhere('penalty.end<=:end')
|
||||
->setParameter('user',$iduser)
|
||||
->setParameter('start',$start)
|
||||
->setParameter('end',$end)
|
||||
->getQuery()->getResult();
|
||||
foreach($penaltys as $penalty) {
|
||||
$penalty->setValidate(false);
|
||||
$em->persist($penalty);
|
||||
$em->flush();
|
||||
}
|
||||
|
||||
$output=[];
|
||||
return new Response(json_encode($output));
|
||||
}
|
||||
|
||||
public function validationholiday(Request $request)
|
||||
{
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
|
||||
$iduser=$this->get("session")->get("iduser");
|
||||
|
||||
if($iduser=="all") {
|
||||
$users=$em->getRepository("App:User")->findAll();
|
||||
}
|
||||
else {
|
||||
$users=$em->getRepository("App:User")->findBy(["id"=>$iduser]);
|
||||
}
|
||||
|
||||
$tbevents=[];
|
||||
foreach($users as $user) {
|
||||
if(in_array("ROLE_USER",$user->getRoles())) {
|
||||
// Filtre par Service
|
||||
if($this->get('session')->get('idservice')!="all") {
|
||||
if($user->getService()->getId()!=$this->get('session')->get('idservice'))
|
||||
continue;
|
||||
}
|
||||
|
||||
$tmp=[
|
||||
"id" => $user->getId(),
|
||||
"user" => $user,
|
||||
"holidays" => [],
|
||||
"holidaystodevalidate" => [],
|
||||
];
|
||||
|
||||
// Congès à valider ou à dévalider
|
||||
$holidays = $em
|
||||
->createQueryBuilder('event')
|
||||
->select('event')
|
||||
->from('App:Event','event')
|
||||
->from('App:Task','task')
|
||||
->Where('event.user=:user')
|
||||
->andWhere('event.validateholiday=:validate')
|
||||
->andWhere('task=event.task')
|
||||
->andWhere('task.nature=:nature')
|
||||
->setParameter('user',$user->getId())
|
||||
->setParameter('validate',!($this->get("session")->get("activeholiday")))
|
||||
->setParameter('nature',-200)
|
||||
->getQuery()->getResult();
|
||||
foreach($holidays as $holiday) {
|
||||
// On ne peut dévalider les congès que sur une semaine non validé
|
||||
if(!$this->get("session")->get("activeholiday")&&$holiday->getValidate())
|
||||
continue;
|
||||
|
||||
$tbholiday = [
|
||||
"id"=>$holiday->getId(),
|
||||
"start"=>$holiday->getStart(),
|
||||
"end"=>$holiday->getEnd()->sub(new \DateInterval('PT1M')),
|
||||
"task"=>$holiday->getTask()->getName(),
|
||||
"duration"=>$holiday->getDuration(),
|
||||
"validateholiday"=>$holiday->getValidateholiday(),
|
||||
];
|
||||
|
||||
array_push($tmp["holidays"],$tbholiday);
|
||||
}
|
||||
|
||||
array_push($tbevents,$tmp);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if($request->query->get('fgprint')) {
|
||||
$render = $this->renderView('Validation/validationholiday.html.twig',[
|
||||
"useheader" => true,
|
||||
"usesidebar" => ($this->getUser()),
|
||||
"users" => $tbevents,
|
||||
"fgprint" => $request->query->get('fgprint'),
|
||||
]);
|
||||
|
||||
return new PdfResponse(
|
||||
$this->knpSnappy->getOutputFromHtml($render),
|
||||
'validationconges.pdf'
|
||||
);
|
||||
}
|
||||
else {
|
||||
return $this->render('Validation/validationholiday.html.twig',[
|
||||
"useheader" => true,
|
||||
"usesidebar" => ($this->getUser()),
|
||||
"users" => $tbevents
|
||||
]);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
public function validateholiday(Request $request){
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
|
||||
// Récupération des variables envoyées en post
|
||||
$id = $request->request->get('id');
|
||||
$event=$em->getRepository("App:Event")->find($id);
|
||||
if($event) {
|
||||
$event->setValidateholiday(true);
|
||||
$em->persist($event);
|
||||
$em->flush();
|
||||
$iduser=$event->getUser()->getId();
|
||||
$idevent=$event->getId();
|
||||
// $this->notificator->sendNotifValid("Congé validé", $iduser, $event);
|
||||
}
|
||||
|
||||
$output=[];
|
||||
return new Response(json_encode($output));
|
||||
}
|
||||
|
||||
public function devalidateholiday(Request $request){
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
|
||||
// Récupération des variables envoyées en post
|
||||
$id = $request->request->get('id');
|
||||
$event=$em->getRepository("App:Event")->find($id);
|
||||
if($event) {
|
||||
if($event->getValidate()) {
|
||||
$output=["return"=>"KO","error"=>"Dévalidation impossible = semaine de travail validée"];
|
||||
return new Response(json_encode($output));
|
||||
}
|
||||
|
||||
$event->setValidateholiday(false);
|
||||
$em->persist($event);
|
||||
$em->flush();
|
||||
}
|
||||
|
||||
$output=[];
|
||||
return new Response(json_encode($output));
|
||||
}
|
||||
|
||||
public function activeholiday() {
|
||||
$this->get('session')->set('activeholiday',!$this->get('session')->get('activeholiday'));
|
||||
|
||||
return $this->redirectToRoute("app_validationholiday");
|
||||
}
|
||||
|
||||
public function validationtimer(Request $request)
|
||||
{
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
|
||||
$iduser=$this->get("session")->get("iduser");
|
||||
|
||||
if($iduser=="all") {
|
||||
$users=$em->getRepository("App:User")->findAll();
|
||||
}
|
||||
else {
|
||||
$users=$em->getRepository("App:User")->findBy(["id"=>$iduser]);
|
||||
}
|
||||
|
||||
$tbtimers=[];
|
||||
foreach($users as $user) {
|
||||
if(in_array("ROLE_USER",$user->getRoles())) {
|
||||
// Filtre par Service
|
||||
if($this->get('session')->get('idservice')!="all") {
|
||||
if($user->getService()->getId()!=$this->get('session')->get('idservice'))
|
||||
continue;
|
||||
}
|
||||
|
||||
$tmp=[
|
||||
"id" => $user->getId(),
|
||||
"user" => $user,
|
||||
"timers" => [],
|
||||
"timerstodevalidate" => [],
|
||||
];
|
||||
|
||||
// Timers à valider ou à dévalider
|
||||
$timers = $em
|
||||
->createQueryBuilder('timer')
|
||||
->select('timer')
|
||||
->from('App:Timer','timer')
|
||||
->from('App:Task','task')
|
||||
->Where('timer.user=:user')
|
||||
->andWhere('timer.validate=:validate')
|
||||
->andWhere('task=timer.task')
|
||||
->setParameter('user',$user->getId())
|
||||
->setParameter('validate',!($this->get("session")->get("activetimer")))
|
||||
->getQuery()->getResult();
|
||||
foreach($timers as $timer) {
|
||||
|
||||
$tbtimer = [
|
||||
"id"=>$timer->getId(),
|
||||
"taskname"=>$timer->getTask()->getDisplayname(),
|
||||
"user"=>$timer->getUser()->getUsername(),
|
||||
"start"=>$timer->getStart()->format("Y-m-d H:i"),
|
||||
"end"=>$timer->getEnd()->format("Y-m-d H:i"),
|
||||
"duration"=>$timer->getDuration(),
|
||||
"activepenalty"=>$timer->getActivePenalty(),
|
||||
"additionalhour"=>$timer->getAdditionalHour(),
|
||||
"description"=>$timer->getDescription(),
|
||||
"validate"=>$timer->getValidate(),
|
||||
];
|
||||
|
||||
array_push($tmp["timers"],$tbtimer);
|
||||
}
|
||||
array_push($tbtimers,$tmp);
|
||||
}
|
||||
}
|
||||
if($request->query->get('fgprint')) {
|
||||
$render = $this->renderView('Validation/validationtimer.html.twig',[
|
||||
"useheader" => true,
|
||||
"usesidebar" => ($this->getUser()),
|
||||
"users" => $tbtimers,
|
||||
"fgprint" => $request->query->get('fgprint'),
|
||||
]);
|
||||
|
||||
return new PdfResponse(
|
||||
$this->knpSnappy->getOutputFromHtml($render),
|
||||
'validationhoraires.pdf'
|
||||
);
|
||||
}
|
||||
else {
|
||||
return $this->render('Validation/validationtimer.html.twig',[
|
||||
"useheader" => true,
|
||||
"usesidebar" => ($this->getUser()),
|
||||
"users" => $tbtimers
|
||||
]);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
public function validatetimer(Request $request){
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
|
||||
// Récupération des variables envoyées en post
|
||||
$id = $request->request->get('id');
|
||||
$timer=$em->getRepository("App:Timer")->find($id);
|
||||
if($timer) {
|
||||
$timer->setValidate(true);
|
||||
$em->persist($timer);
|
||||
$em->flush();
|
||||
$iduser=$this->get("session")->get("iduser");
|
||||
$idtimer=$timer->getId();
|
||||
}
|
||||
|
||||
$output=[];
|
||||
return new Response(json_encode($output));
|
||||
}
|
||||
|
||||
public function devalidatetimer(Request $request){
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
|
||||
// Récupération des variables envoyées en post
|
||||
$id = $request->request->get('id');
|
||||
$timer=$em->getRepository("App:Timer")->find($id);
|
||||
if($timer) {
|
||||
$timer->setValidate(false);
|
||||
$em->persist($timer);
|
||||
$em->flush();
|
||||
}
|
||||
|
||||
$output=[];
|
||||
return new Response(json_encode($output));
|
||||
}
|
||||
public function activetimer() {
|
||||
$this->get('session')->set('activetimer',!$this->get('session')->get('activetimer'));
|
||||
|
||||
return $this->redirectToRoute("app_validationtimer");
|
||||
}
|
||||
}
|
||||
@@ -1,180 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Controller;
|
||||
|
||||
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
use Symfony\Component\HttpFoundation\Response;
|
||||
use Symfony\Component\Form\FormError;
|
||||
use Knp\Bundle\SnappyBundle\Snappy\Response\PdfResponse;
|
||||
|
||||
use App\Entity\Year as Entity;
|
||||
use App\Form\YearType as Form;
|
||||
|
||||
class YearController extends AbstractController
|
||||
{
|
||||
private $data = "year";
|
||||
private $route = "app_year";
|
||||
private $render = "Year/";
|
||||
private $entity = "App:Year";
|
||||
|
||||
private $knpSnappy;
|
||||
public function __construct(\Knp\Snappy\Pdf $knpSnappy) { $this->knpSnappy = $knpSnappy; }
|
||||
|
||||
public function list(Request $request)
|
||||
{
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
$datas = $em->getRepository($this->entity)->findAll();
|
||||
|
||||
if($request->query->get('fgprint')) {
|
||||
$render = $this->renderView($this->render.'list.html.twig',[
|
||||
$this->data."s" => $datas,
|
||||
"useheader" => true,
|
||||
"usesidebar" => true,
|
||||
"fgprint" => true,
|
||||
]);
|
||||
|
||||
return new PdfResponse(
|
||||
$this->knpSnappy->getOutputFromHtml($render),
|
||||
'years.pdf'
|
||||
);
|
||||
}
|
||||
else {
|
||||
return $this->render($this->render.'list.html.twig',[
|
||||
$this->data."s" => $datas,
|
||||
"useheader" => true,
|
||||
"usesidebar" => true,
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
public function submit(Request $request)
|
||||
{
|
||||
// Initialisation de l'enregistrement
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
$data = new Entity();
|
||||
|
||||
// Création du formulaire
|
||||
$form = $this->createForm(Form::class,$data,array("mode"=>"submit"));
|
||||
|
||||
// Récupération des data du formulaire
|
||||
$form->handleRequest($request);
|
||||
|
||||
// Sur erreur
|
||||
$this->getErrorForm(null,$form,$request,$data,"submit");
|
||||
|
||||
// Sur validation
|
||||
if ($form->get('submit')->isClicked() && $form->isValid()) {
|
||||
$data = $form->getData();
|
||||
$em->persist($data);
|
||||
$em->flush();
|
||||
|
||||
// Retour à la liste
|
||||
return $this->redirectToRoute($this->route);
|
||||
}
|
||||
|
||||
// Affichage du formulaire
|
||||
return $this->render($this->render.'edit.html.twig', [
|
||||
'useheader' => true,
|
||||
'usesidebar' => true,
|
||||
$this->data => $data,
|
||||
'mode' => 'submit',
|
||||
'form' => $form->createView()
|
||||
]);
|
||||
}
|
||||
|
||||
public function update($id,Request $request)
|
||||
{
|
||||
// Initialisation de l'enregistrement
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
$data=$em->getRepository($this->entity)->find($id);
|
||||
|
||||
// Création du formulaire
|
||||
$form = $this->createForm(Form::class,$data,array("mode"=>"update"));
|
||||
|
||||
// Récupération des data du formulaire
|
||||
$form->handleRequest($request);
|
||||
|
||||
// Sur erreur
|
||||
$this->getErrorForm(null,$form,$request,$data,"update");
|
||||
|
||||
// Sur validation
|
||||
if ($form->get('submit')->isClicked() && $form->isValid()) {
|
||||
$data = $form->getData();
|
||||
$em->persist($data);
|
||||
$em->flush();
|
||||
|
||||
// Retour à la liste
|
||||
return $this->redirectToRoute($this->route);
|
||||
}
|
||||
|
||||
// Affichage du formulaire
|
||||
if($request->query->get('fgprint')) {
|
||||
$render = $this->renderView($this->render.'edit.html.twig', [
|
||||
'useheader' => true,
|
||||
'usesidebar' => true,
|
||||
$this->data => $data,
|
||||
'mode' => 'update',
|
||||
'form' => $form->createView(),
|
||||
"fgprint" => true,
|
||||
]);
|
||||
|
||||
return new PdfResponse(
|
||||
$this->knpSnappy->getOutputFromHtml($render),
|
||||
'year.pdf'
|
||||
);
|
||||
}
|
||||
else {
|
||||
return $this->render($this->render.'edit.html.twig', [
|
||||
'useheader' => true,
|
||||
'usesidebar' => true,
|
||||
$this->data => $data,
|
||||
'mode' => 'update',
|
||||
'form' => $form->createView()
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
public function delete($id,Request $request)
|
||||
{
|
||||
// Initialisation de l'enregistrement
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
$data=$em->getRepository($this->entity)->find($id);
|
||||
|
||||
// Controle avant suppression
|
||||
$error=false;
|
||||
if($error)
|
||||
return $this->redirectToRoute($this->route."_update",["id"=>$id]);
|
||||
else {
|
||||
try {
|
||||
$em->remove($data);
|
||||
$em->flush();
|
||||
}
|
||||
catch(\Doctrine\DBAL\DBALException $e) {
|
||||
// Création du formulaire
|
||||
$this->get('session')->getFlashBag()->add('error', 'Impossible de supprimer cet enregistrement');
|
||||
return $this->redirectToRoute($this->route."_update",["id"=>$id]);
|
||||
}
|
||||
|
||||
// Retour à la liste
|
||||
return $this->redirectToRoute($this->route);
|
||||
}
|
||||
}
|
||||
|
||||
protected function getErrorForm($id,$form,$request,$data,$mode) {
|
||||
if ($form->get('submit')->isClicked()&&$mode=="delete") {
|
||||
}
|
||||
|
||||
if ($form->get('submit')->isClicked() && $mode=="submit") {
|
||||
}
|
||||
|
||||
if ($form->get('submit')->isClicked() && !$form->isValid()) {
|
||||
$this->get('session')->getFlashBag()->clear();
|
||||
|
||||
$errors = $form->getErrors();
|
||||
foreach( $errors as $error ) {
|
||||
$request->getSession()->getFlashBag()->add("error", $error->getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,65 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Entity;
|
||||
|
||||
use Doctrine\ORM\Mapping as ORM;
|
||||
use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
|
||||
|
||||
/**
|
||||
* Event
|
||||
*
|
||||
* @ORM\Table(name="breakday")
|
||||
* @ORM\Entity(repositoryClass="App\Repository\BreakdayRepository")
|
||||
* @UniqueEntity(
|
||||
* fields={"start"},
|
||||
* message="Jour férié déjà existant"
|
||||
* )
|
||||
*/
|
||||
class Breakday
|
||||
{
|
||||
/**
|
||||
* @ORM\Column(name="id", type="integer")
|
||||
* @ORM\Id
|
||||
* @ORM\GeneratedValue(strategy="AUTO")
|
||||
*/
|
||||
private $id;
|
||||
|
||||
/**
|
||||
* @ORM\Column(name="start", type="datetime", unique=true)
|
||||
*/
|
||||
private $start;
|
||||
|
||||
/**
|
||||
* @ORM\Column(name="end", type="datetime")
|
||||
*/
|
||||
private $end;
|
||||
|
||||
public function getId(): ?int
|
||||
{
|
||||
return $this->id;
|
||||
}
|
||||
|
||||
public function getStart(): ?\DateTime
|
||||
{
|
||||
return $this->start;
|
||||
}
|
||||
|
||||
public function setStart(\DateTime $start): self
|
||||
{
|
||||
$this->start = $start;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getEnd(): ?\DateTime
|
||||
{
|
||||
return $this->end;
|
||||
}
|
||||
|
||||
public function setEnd(\DateTime $end): self
|
||||
{
|
||||
$this->end = $end;
|
||||
|
||||
return $this;
|
||||
}
|
||||
}
|
||||
@@ -1,206 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Entity;
|
||||
|
||||
use Doctrine\Common\Collections\ArrayCollection;
|
||||
use Doctrine\Common\Collections\Collection;
|
||||
use Doctrine\ORM\Mapping as ORM;
|
||||
use Symfony\Component\Validator\Constraints as Assert;
|
||||
|
||||
/**
|
||||
* Domaine
|
||||
*
|
||||
* @ORM\Table(name="domaine")
|
||||
* @ORM\Entity(repositoryClass="App\Repository\DomaineRepository")
|
||||
*/
|
||||
class Domaine
|
||||
{
|
||||
/**
|
||||
* @ORM\Column(name="id", type="integer")
|
||||
* @ORM\Id
|
||||
* @ORM\GeneratedValue(strategy="AUTO")
|
||||
*/
|
||||
private $id;
|
||||
|
||||
/**
|
||||
* @ORM\Column(name="name", type="string")
|
||||
*
|
||||
*/
|
||||
private $name;
|
||||
|
||||
/**
|
||||
* @ORM\Column(name="category", type="string")
|
||||
*
|
||||
*/
|
||||
private $category;
|
||||
|
||||
/**
|
||||
* @ORM\Column(type="text", nullable=true)
|
||||
*/
|
||||
private $description;
|
||||
|
||||
/**
|
||||
* @ORM\OneToMany(targetEntity="User", mappedBy="domaine", cascade={"persist"}, orphanRemoval=false)
|
||||
*/
|
||||
private $users;
|
||||
|
||||
/**
|
||||
* @ORM\OneToMany(targetEntity="Project", mappedBy="domaine", cascade={"persist"}, orphanRemoval=false)
|
||||
*/
|
||||
private $projects;
|
||||
|
||||
/**
|
||||
* @ORM\OneToMany(targetEntity="Yeardomaine", mappedBy="domaine", cascade={"persist", "remove"}, orphanRemoval=true)
|
||||
*/
|
||||
private $years;
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->users = new ArrayCollection();
|
||||
$this->projects = new ArrayCollection();
|
||||
$this->years = new ArrayCollection();
|
||||
}
|
||||
|
||||
|
||||
public function getId(): ?int
|
||||
{
|
||||
return $this->id;
|
||||
}
|
||||
|
||||
public function setId(int $id): self
|
||||
{
|
||||
$this->id = $id;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getName(): ?string
|
||||
{
|
||||
return $this->name;
|
||||
}
|
||||
|
||||
public function setName(string $name): self
|
||||
{
|
||||
$this->name = $name;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getDescription(): ?string
|
||||
{
|
||||
return $this->description;
|
||||
}
|
||||
|
||||
public function setDescription(?string $description): self
|
||||
{
|
||||
$this->description = $description;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return Collection|User[]
|
||||
*/
|
||||
public function getUsers(): Collection
|
||||
{
|
||||
return $this->users;
|
||||
}
|
||||
|
||||
public function addUser(User $user): self
|
||||
{
|
||||
if (!$this->users->contains($user)) {
|
||||
$this->users[] = $user;
|
||||
$user->setDomaine($this);
|
||||
}
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function removeUser(User $user): self
|
||||
{
|
||||
if ($this->users->contains($user)) {
|
||||
$this->users->removeElement($user);
|
||||
// set the owning side to null (unless already changed)
|
||||
if ($user->getDomaine() === $this) {
|
||||
$user->setDomaine(null);
|
||||
}
|
||||
}
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return Collection|Project[]
|
||||
*/
|
||||
public function getProjects(): Collection
|
||||
{
|
||||
return $this->projects;
|
||||
}
|
||||
|
||||
public function addProject(Project $project): self
|
||||
{
|
||||
if (!$this->projects->contains($project)) {
|
||||
$this->projects[] = $project;
|
||||
$project->setDomaine($this);
|
||||
}
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function removeProject(Project $project): self
|
||||
{
|
||||
if ($this->projects->contains($project)) {
|
||||
$this->projects->removeElement($project);
|
||||
// set the owning side to null (unless already changed)
|
||||
if ($project->getDomaine() === $this) {
|
||||
$project->setDomaine(null);
|
||||
}
|
||||
}
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getCategory(): ?string
|
||||
{
|
||||
return $this->category;
|
||||
}
|
||||
|
||||
public function setCategory(string $category): self
|
||||
{
|
||||
$this->category = $category;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return Collection|Yeardomaine[]
|
||||
*/
|
||||
public function getYears(): Collection
|
||||
{
|
||||
return $this->years;
|
||||
}
|
||||
|
||||
public function addYear(Yeardomaine $year): self
|
||||
{
|
||||
if (!$this->years->contains($year)) {
|
||||
$this->years[] = $year;
|
||||
$year->setDomaine($this);
|
||||
}
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function removeYear(Yeardomaine $year): self
|
||||
{
|
||||
if ($this->years->contains($year)) {
|
||||
$this->years->removeElement($year);
|
||||
// set the owning side to null (unless already changed)
|
||||
if ($year->getDomaine() === $this) {
|
||||
$year->setDomaine(null);
|
||||
}
|
||||
}
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,214 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Entity;
|
||||
|
||||
use Doctrine\Common\Collections\ArrayCollection;
|
||||
use Doctrine\Common\Collections\Collection;
|
||||
use Doctrine\ORM\Mapping as ORM;
|
||||
use Symfony\Component\Validator\Constraints as Assert;
|
||||
|
||||
/**
|
||||
* Offer
|
||||
*
|
||||
* @ORM\Table(name="offer")
|
||||
* @ORM\Entity(repositoryClass="App\Repository\OfferRepository")
|
||||
*/
|
||||
class Offer
|
||||
{
|
||||
/**
|
||||
* @ORM\Column(name="id", type="integer")
|
||||
* @ORM\Id
|
||||
* @ORM\GeneratedValue(strategy="AUTO")
|
||||
*/
|
||||
private $id;
|
||||
|
||||
/**
|
||||
* @ORM\Column(name="name", type="string")
|
||||
*
|
||||
*/
|
||||
private $name;
|
||||
|
||||
/**
|
||||
* @ORM\Column(name="ref", type="string", nullable=true)
|
||||
*
|
||||
*/
|
||||
private $ref;
|
||||
|
||||
/**
|
||||
* @ORM\Column(name="quantity", type="decimal", scale=2)
|
||||
*
|
||||
*/
|
||||
private $quantity;
|
||||
|
||||
/**
|
||||
* @ORM\Column(name="pu", type="decimal", scale=2)
|
||||
*
|
||||
*/
|
||||
private $pu;
|
||||
private $total;
|
||||
|
||||
/**
|
||||
* @ORM\Column(name="validate", type="decimal", scale=2, nullable=true)
|
||||
*
|
||||
*/
|
||||
private $validate;
|
||||
|
||||
/**
|
||||
* @ORM\Column(name="cost", type="decimal", scale=2, nullable=true)
|
||||
*
|
||||
*/
|
||||
private $cost;
|
||||
|
||||
/**
|
||||
* @ORM\Column(name="active", type="boolean")
|
||||
*
|
||||
*/
|
||||
private $active;
|
||||
|
||||
/**
|
||||
* @ORM\Column(name="iddolibarr", type="string", nullable=true)
|
||||
*
|
||||
*/
|
||||
private $iddolibarr;
|
||||
|
||||
/**
|
||||
* @ORM\ManyToOne(targetEntity="Project", inversedBy="offers")
|
||||
*/
|
||||
private $project;
|
||||
|
||||
/**
|
||||
* @ORM\ManyToOne(targetEntity="Service", inversedBy="offers")
|
||||
*/
|
||||
private $service;
|
||||
|
||||
public function getTotal()
|
||||
{
|
||||
return $this->quantity*$this->pu;
|
||||
}
|
||||
|
||||
public function getId(): ?int
|
||||
{
|
||||
return $this->id;
|
||||
}
|
||||
|
||||
public function getName(): ?string
|
||||
{
|
||||
return $this->name;
|
||||
}
|
||||
|
||||
public function setName(string $name): self
|
||||
{
|
||||
$this->name = $name;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getRef(): ?string
|
||||
{
|
||||
return $this->ref;
|
||||
}
|
||||
|
||||
public function setRef(string $ref): self
|
||||
{
|
||||
$this->ref = $ref;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getQuantity(): ?string
|
||||
{
|
||||
return $this->quantity;
|
||||
}
|
||||
|
||||
public function setQuantity(string $quantity): self
|
||||
{
|
||||
$this->quantity = $quantity;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getPu(): ?string
|
||||
{
|
||||
return $this->pu;
|
||||
}
|
||||
|
||||
public function setPu(string $pu): self
|
||||
{
|
||||
$this->pu = $pu;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getValidate(): ?string
|
||||
{
|
||||
return $this->validate;
|
||||
}
|
||||
|
||||
public function setValidate(string $validate): self
|
||||
{
|
||||
$this->validate = $validate;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getActive(): ?bool
|
||||
{
|
||||
return $this->active;
|
||||
}
|
||||
|
||||
public function setActive(bool $active): self
|
||||
{
|
||||
$this->active = $active;
|
||||
|
||||
return $this;
|
||||
}
|
||||
public function getProject(): ?Project
|
||||
{
|
||||
return $this->project;
|
||||
}
|
||||
|
||||
public function setProject(?Project $project): self
|
||||
{
|
||||
$this->project = $project;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getIddolibarr(): ?string
|
||||
{
|
||||
return $this->iddolibarr;
|
||||
}
|
||||
|
||||
public function setIddolibarr(?string $iddolibarr): self
|
||||
{
|
||||
$this->iddolibarr = $iddolibarr;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getCost(): ?string
|
||||
{
|
||||
return $this->cost;
|
||||
}
|
||||
|
||||
public function setCost(?string $cost): self
|
||||
{
|
||||
$this->cost = $cost;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getService(): ?Service
|
||||
{
|
||||
return $this->service;
|
||||
}
|
||||
|
||||
public function setService(?Service $service): self
|
||||
{
|
||||
$this->service = $service;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -1,300 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Entity;
|
||||
|
||||
use Doctrine\Common\Collections\ArrayCollection;
|
||||
use Doctrine\Common\Collections\Collection;
|
||||
use Doctrine\ORM\Mapping as ORM;
|
||||
use Symfony\Component\Validator\Constraints as Assert;
|
||||
|
||||
/**
|
||||
* Project
|
||||
*
|
||||
* @ORM\Table(name="project")
|
||||
* @ORM\Entity(repositoryClass="App\Repository\ProjectRepository")
|
||||
*/
|
||||
class Project
|
||||
{
|
||||
/**
|
||||
* @ORM\Column(name="id", type="integer")
|
||||
* @ORM\Id
|
||||
* @ORM\GeneratedValue(strategy="AUTO")
|
||||
*/
|
||||
private $id;
|
||||
|
||||
/**
|
||||
* @ORM\Column(name="name", type="string")
|
||||
*
|
||||
*/
|
||||
private $name;
|
||||
private $displayname;
|
||||
|
||||
/**
|
||||
* @ORM\Column(name="active", type="boolean")
|
||||
*
|
||||
*/
|
||||
private $active;
|
||||
|
||||
/**
|
||||
* @ORM\Column(name="visible", type="boolean")
|
||||
*
|
||||
*/
|
||||
private $visible=true;
|
||||
|
||||
/**
|
||||
* @ORM\ManyToOne(targetEntity="Customer", inversedBy="projects")
|
||||
*/
|
||||
private $customer;
|
||||
|
||||
/**
|
||||
* @ORM\ManyToOne(targetEntity="Service", inversedBy="projects")
|
||||
*/
|
||||
private $service;
|
||||
|
||||
/**
|
||||
* @ORM\ManyToOne(targetEntity="Domaine", inversedBy="projects")
|
||||
*/
|
||||
private $domaine;
|
||||
|
||||
/**
|
||||
* @ORM\OneToMany(targetEntity="Offer", mappedBy="project", cascade={"persist"}, orphanRemoval=false)
|
||||
*/
|
||||
private $offers;
|
||||
|
||||
/**
|
||||
* @ORM\OneToMany(targetEntity="Task", mappedBy="project", cascade={"persist"}, orphanRemoval=false)
|
||||
*/
|
||||
private $tasks;
|
||||
|
||||
/**
|
||||
* @ORM\OneToMany(targetEntity="Userproject", mappedBy="project", cascade={"persist", "remove"}, orphanRemoval=true)
|
||||
*/
|
||||
private $userprojects;
|
||||
|
||||
/**
|
||||
* @ORM\OneToMany(targetEntity="Yearproject", mappedBy="project", cascade={"persist", "remove"}, orphanRemoval=true)
|
||||
*/
|
||||
private $years;
|
||||
|
||||
|
||||
public function getDisplayname(): ?string
|
||||
{
|
||||
return $this->customer->getName()." - ".$this->name;
|
||||
}
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->offers = new ArrayCollection();
|
||||
$this->task = new ArrayCollection();
|
||||
$this->tasks = new ArrayCollection();
|
||||
$this->userprojects = new ArrayCollection();
|
||||
$this->years = new ArrayCollection();
|
||||
}
|
||||
public function __toString()
|
||||
{
|
||||
return $this->name;
|
||||
}
|
||||
|
||||
public function getId(): ?int
|
||||
{
|
||||
return $this->id;
|
||||
}
|
||||
|
||||
public function getName(): ?string
|
||||
{
|
||||
return $this->name;
|
||||
}
|
||||
|
||||
public function setName(string $name): self
|
||||
{
|
||||
$this->name = $name;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getActive(): ?bool
|
||||
{
|
||||
return $this->active;
|
||||
}
|
||||
|
||||
public function setActive(bool $active): self
|
||||
{
|
||||
$this->active = $active;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getCustomer(): ?Customer
|
||||
{
|
||||
return $this->customer;
|
||||
}
|
||||
|
||||
public function setCustomer(?Customer $customer): self
|
||||
{
|
||||
$this->customer = $customer;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getService(): ?Service
|
||||
{
|
||||
return $this->service;
|
||||
}
|
||||
|
||||
public function setService(?Service $service): self
|
||||
{
|
||||
$this->service = $service;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return Collection|Offer[]
|
||||
*/
|
||||
public function getOffers(): Collection
|
||||
{
|
||||
return $this->offers;
|
||||
}
|
||||
|
||||
public function addOffer(Offer $offer): self
|
||||
{
|
||||
if (!$this->offers->contains($offer)) {
|
||||
$this->offers[] = $offer;
|
||||
$offer->setProject($this);
|
||||
}
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function removeOffer(Offer $offer): self
|
||||
{
|
||||
if ($this->offers->contains($offer)) {
|
||||
$this->offers->removeElement($offer);
|
||||
// set the owning side to null (unless already changed)
|
||||
if ($offer->getProject() === $this) {
|
||||
$offer->setProject(null);
|
||||
}
|
||||
}
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return Collection|Task[]
|
||||
*/
|
||||
public function getTasks(): Collection
|
||||
{
|
||||
return $this->tasks;
|
||||
}
|
||||
|
||||
public function addTask(Task $task): self
|
||||
{
|
||||
if (!$this->tasks->contains($task)) {
|
||||
$this->tasks[] = $task;
|
||||
$task->setProject($this);
|
||||
}
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function removeTask(Task $task): self
|
||||
{
|
||||
if ($this->tasks->contains($task)) {
|
||||
$this->tasks->removeElement($task);
|
||||
// set the owning side to null (unless already changed)
|
||||
if ($task->getProject() === $this) {
|
||||
$task->setProject(null);
|
||||
}
|
||||
}
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return Collection|Userproject[]
|
||||
*/
|
||||
public function getUserprojects(): Collection
|
||||
{
|
||||
return $this->userprojects;
|
||||
}
|
||||
|
||||
public function addUserproject(Userproject $userproject): self
|
||||
{
|
||||
if (!$this->userprojects->contains($userproject)) {
|
||||
$this->userprojects[] = $userproject;
|
||||
$userproject->setProject($this);
|
||||
}
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function removeUserproject(Userproject $userproject): self
|
||||
{
|
||||
if ($this->userprojects->contains($userproject)) {
|
||||
$this->userprojects->removeElement($userproject);
|
||||
// set the owning side to null (unless already changed)
|
||||
if ($userproject->getProject() === $this) {
|
||||
$userproject->setProject(null);
|
||||
}
|
||||
}
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getVisible(): ?bool
|
||||
{
|
||||
return $this->visible;
|
||||
}
|
||||
|
||||
public function setVisible(bool $visible): self
|
||||
{
|
||||
$this->visible = $visible;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getDomaine(): ?Domaine
|
||||
{
|
||||
return $this->domaine;
|
||||
}
|
||||
|
||||
public function setDomaine(?Domaine $domaine): self
|
||||
{
|
||||
$this->domaine = $domaine;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return Collection|Yearproject[]
|
||||
*/
|
||||
public function getYears(): Collection
|
||||
{
|
||||
return $this->years;
|
||||
}
|
||||
|
||||
public function addYear(Yearproject $year): self
|
||||
{
|
||||
if (!$this->years->contains($year)) {
|
||||
$this->years[] = $year;
|
||||
$year->setProject($this);
|
||||
}
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function removeYear(Yearproject $year): self
|
||||
{
|
||||
if ($this->years->contains($year)) {
|
||||
$this->years->removeElement($year);
|
||||
// set the owning side to null (unless already changed)
|
||||
if ($year->getProject() === $this) {
|
||||
$year->setProject(null);
|
||||
}
|
||||
}
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -1,50 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Entity;
|
||||
|
||||
use Doctrine\ORM\Mapping as ORM;
|
||||
use Symfony\Component\Validator\Constraints as Assert;
|
||||
|
||||
/**
|
||||
* Script
|
||||
*
|
||||
* @ORM\Table(name="script")
|
||||
* @ORM\Entity(repositoryClass="App\Repository\ScriptRepository")
|
||||
*/
|
||||
class Script
|
||||
{
|
||||
/**
|
||||
* @var integer
|
||||
*
|
||||
* @ORM\Column(name="id", type="integer")
|
||||
* @ORM\Id
|
||||
* @ORM\GeneratedValue(strategy="AUTO")
|
||||
*/
|
||||
private $id;
|
||||
|
||||
/**
|
||||
* @var string
|
||||
*
|
||||
* @ORM\Column(name="name", type="string", nullable=false)
|
||||
* @Assert\NotBlank()
|
||||
*
|
||||
*/
|
||||
private $name;
|
||||
|
||||
public function getId(): ?int
|
||||
{
|
||||
return $this->id;
|
||||
}
|
||||
|
||||
public function getName(): ?string
|
||||
{
|
||||
return $this->name;
|
||||
}
|
||||
|
||||
public function setName(string $name): self
|
||||
{
|
||||
$this->name = $name;
|
||||
|
||||
return $this;
|
||||
}
|
||||
}
|
||||
@@ -1,199 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Entity;
|
||||
|
||||
use Doctrine\Common\Collections\ArrayCollection;
|
||||
use Doctrine\Common\Collections\Collection;
|
||||
use Doctrine\ORM\Mapping as ORM;
|
||||
use Symfony\Component\Validator\Constraints as Assert;
|
||||
|
||||
/**
|
||||
* Service
|
||||
*
|
||||
* @ORM\Table(name="service")
|
||||
* @ORM\Entity(repositoryClass="App\Repository\ServiceRepository")
|
||||
*/
|
||||
class Service
|
||||
{
|
||||
/**
|
||||
* @ORM\Column(name="id", type="integer")
|
||||
* @ORM\Id
|
||||
* @ORM\GeneratedValue(strategy="AUTO")
|
||||
*/
|
||||
private $id;
|
||||
|
||||
/**
|
||||
* @ORM\Column(name="name", type="string")
|
||||
*
|
||||
*/
|
||||
private $name;
|
||||
|
||||
/**
|
||||
* @ORM\Column(type="text", nullable=true)
|
||||
*/
|
||||
private $description;
|
||||
|
||||
/**
|
||||
* @ORM\Column(name="dolibarrcode", type="string", nullable=true)
|
||||
*
|
||||
*/
|
||||
private $dolibarrcode;
|
||||
|
||||
/**
|
||||
* @ORM\OneToMany(targetEntity="User", mappedBy="service", cascade={"persist"}, orphanRemoval=false)
|
||||
*/
|
||||
private $users;
|
||||
|
||||
/**
|
||||
* @ORM\OneToMany(targetEntity="Project", mappedBy="service", cascade={"persist"}, orphanRemoval=false)
|
||||
*/
|
||||
private $projects;
|
||||
|
||||
/**
|
||||
* @ORM\OneToMany(targetEntity="Offer", mappedBy="service", cascade={"persist"}, orphanRemoval=false)
|
||||
*/
|
||||
private $offers;
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->users = new ArrayCollection();
|
||||
$this->projects = new ArrayCollection();
|
||||
$this->offers = new ArrayCollection();
|
||||
}
|
||||
|
||||
|
||||
public function getId(): ?int
|
||||
{
|
||||
return $this->id;
|
||||
}
|
||||
|
||||
public function getName(): ?string
|
||||
{
|
||||
return $this->name;
|
||||
}
|
||||
|
||||
public function setName(string $name): self
|
||||
{
|
||||
$this->name = $name;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getDescription(): ?string
|
||||
{
|
||||
return $this->description;
|
||||
}
|
||||
|
||||
public function setDescription(?string $description): self
|
||||
{
|
||||
$this->description = $description;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return Collection|User[]
|
||||
*/
|
||||
public function getUsers(): Collection
|
||||
{
|
||||
return $this->users;
|
||||
}
|
||||
|
||||
public function addUser(User $user): self
|
||||
{
|
||||
if (!$this->users->contains($user)) {
|
||||
$this->users[] = $user;
|
||||
$user->setService($this);
|
||||
}
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function removeUser(User $user): self
|
||||
{
|
||||
if ($this->users->contains($user)) {
|
||||
$this->users->removeElement($user);
|
||||
// set the owning side to null (unless already changed)
|
||||
if ($user->getService() === $this) {
|
||||
$user->setService(null);
|
||||
}
|
||||
}
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return Collection|Project[]
|
||||
*/
|
||||
public function getProjects(): Collection
|
||||
{
|
||||
return $this->projects;
|
||||
}
|
||||
|
||||
public function addProject(Project $project): self
|
||||
{
|
||||
if (!$this->projects->contains($project)) {
|
||||
$this->projects[] = $project;
|
||||
$project->setService($this);
|
||||
}
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function removeProject(Project $project): self
|
||||
{
|
||||
if ($this->projects->contains($project)) {
|
||||
$this->projects->removeElement($project);
|
||||
// set the owning side to null (unless already changed)
|
||||
if ($project->getService() === $this) {
|
||||
$project->setService(null);
|
||||
}
|
||||
}
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return Collection|Offer[]
|
||||
*/
|
||||
public function getOffers(): Collection
|
||||
{
|
||||
return $this->offers;
|
||||
}
|
||||
|
||||
public function addOffer(Offer $offer): self
|
||||
{
|
||||
if (!$this->offers->contains($offer)) {
|
||||
$this->offers[] = $offer;
|
||||
$offer->setService($this);
|
||||
}
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function removeOffer(Offer $offer): self
|
||||
{
|
||||
if ($this->offers->contains($offer)) {
|
||||
$this->offers->removeElement($offer);
|
||||
// set the owning side to null (unless already changed)
|
||||
if ($offer->getService() === $this) {
|
||||
$offer->setService(null);
|
||||
}
|
||||
}
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getDolibarrcode(): ?string
|
||||
{
|
||||
return $this->dolibarrcode;
|
||||
}
|
||||
|
||||
public function setDolibarrcode(string $dolibarrcode): self
|
||||
{
|
||||
$this->dolibarrcode = $dolibarrcode;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,160 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Entity;
|
||||
|
||||
use Doctrine\Common\Collections\ArrayCollection;
|
||||
use Doctrine\Common\Collections\Collection;
|
||||
use Doctrine\ORM\Mapping as ORM;
|
||||
use Symfony\Component\Validator\Constraints as Assert;
|
||||
|
||||
/**
|
||||
* Year
|
||||
*
|
||||
* @ORM\Table(name="year")
|
||||
* @ORM\Entity()
|
||||
*/
|
||||
class Year
|
||||
{
|
||||
/**
|
||||
* @ORM\Column(name="id", type="integer")
|
||||
* @ORM\Id
|
||||
* @ORM\GeneratedValue(strategy="AUTO")
|
||||
*/
|
||||
private $id;
|
||||
|
||||
/**
|
||||
* @ORM\Column(name="start", type="datetime")
|
||||
*
|
||||
*/
|
||||
private $start;
|
||||
|
||||
/**
|
||||
* @ORM\Column(name="end", type="datetime")
|
||||
*
|
||||
*/
|
||||
private $end;
|
||||
|
||||
/**
|
||||
* @ORM\Column(type="integer")
|
||||
*/
|
||||
private $nbday;
|
||||
|
||||
/**
|
||||
* @ORM\OneToMany(targetEntity="Yearproject", mappedBy="year", cascade={"persist", "remove"}, orphanRemoval=true)
|
||||
*/
|
||||
private $projects;
|
||||
|
||||
/**
|
||||
* @ORM\OneToMany(targetEntity="Yeardomaine", mappedBy="year", cascade={"persist", "remove"}, orphanRemoval=true)
|
||||
*/
|
||||
private $domaines;
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->projects = new ArrayCollection();
|
||||
$this->domaines = new ArrayCollection();
|
||||
}
|
||||
|
||||
public function getId(): ?int
|
||||
{
|
||||
return $this->id;
|
||||
}
|
||||
|
||||
public function getStart(): ?\DateTimeInterface
|
||||
{
|
||||
return $this->start;
|
||||
}
|
||||
|
||||
public function setStart(\DateTimeInterface $start): self
|
||||
{
|
||||
$this->start = $start;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getEnd(): ?\DateTimeInterface
|
||||
{
|
||||
return $this->end;
|
||||
}
|
||||
|
||||
public function setEnd(\DateTimeInterface $end): self
|
||||
{
|
||||
$this->end = $end;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getNbday()
|
||||
{
|
||||
return $this->nbday;
|
||||
}
|
||||
|
||||
public function setNbday($nbday): self
|
||||
{
|
||||
$this->nbday = $nbday;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return Collection|Yearproject[]
|
||||
*/
|
||||
public function getProjects(): Collection
|
||||
{
|
||||
return $this->projects;
|
||||
}
|
||||
|
||||
public function addProject(Yearproject $project): self
|
||||
{
|
||||
if (!$this->projects->contains($project)) {
|
||||
$this->projects[] = $project;
|
||||
$project->setYear($this);
|
||||
}
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function removeProject(Yearproject $project): self
|
||||
{
|
||||
if ($this->projects->contains($project)) {
|
||||
$this->projects->removeElement($project);
|
||||
// set the owning side to null (unless already changed)
|
||||
if ($project->getYear() === $this) {
|
||||
$project->setYear(null);
|
||||
}
|
||||
}
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return Collection|Yeardomaine[]
|
||||
*/
|
||||
public function getDomaines(): Collection
|
||||
{
|
||||
return $this->domaines;
|
||||
}
|
||||
|
||||
public function addDomaine(Yeardomaine $domaine): self
|
||||
{
|
||||
if (!$this->domaines->contains($domaine)) {
|
||||
$this->domaines[] = $domaine;
|
||||
$domaine->setYear($this);
|
||||
}
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function removeDomaine(Yeardomaine $domaine): self
|
||||
{
|
||||
if ($this->domaines->contains($domaine)) {
|
||||
$this->domaines->removeElement($domaine);
|
||||
// set the owning side to null (unless already changed)
|
||||
if ($domaine->getYear() === $this) {
|
||||
$domaine->setYear(null);
|
||||
}
|
||||
}
|
||||
|
||||
return $this;
|
||||
}
|
||||
}
|
||||
@@ -1,114 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Entity;
|
||||
|
||||
use Doctrine\Common\Collections\ArrayCollection;
|
||||
use Doctrine\Common\Collections\Collection;
|
||||
use Doctrine\ORM\Mapping as ORM;
|
||||
use Symfony\Component\Validator\Constraints as Assert;
|
||||
|
||||
/**
|
||||
* @ORM\Table(name="yeardomaine")
|
||||
* @ORM\Entity()
|
||||
*/
|
||||
|
||||
class Yeardomaine
|
||||
{ /**
|
||||
* @ORM\Column(name="id", type="integer")
|
||||
* @ORM\Id
|
||||
* @ORM\GeneratedValue(strategy="AUTO")
|
||||
*/
|
||||
private $id;
|
||||
|
||||
/**
|
||||
* @ORM\ManyToOne(targetEntity="Year", inversedBy="domaines")
|
||||
*/
|
||||
private $year;
|
||||
|
||||
/**
|
||||
* @ORM\ManyToOne(targetEntity="Domaine", inversedBy="years")
|
||||
*/
|
||||
private $domaine;
|
||||
|
||||
/**
|
||||
* @ORM\Column(type="integer")
|
||||
*/
|
||||
private $nbdaybudget=0;
|
||||
|
||||
/**
|
||||
* @ORM\Column(type="integer")
|
||||
*/
|
||||
private $cabudget=0;
|
||||
|
||||
/**
|
||||
* @ORM\Column(type="integer")
|
||||
*/
|
||||
private $careal=0;
|
||||
|
||||
public function getId(): ?int
|
||||
{
|
||||
return $this->id;
|
||||
}
|
||||
|
||||
public function getNbdaybudget(): ?int
|
||||
{
|
||||
return $this->nbdaybudget;
|
||||
}
|
||||
|
||||
public function setNbdaybudget(int $nbdaybudget): self
|
||||
{
|
||||
$this->nbdaybudget = $nbdaybudget;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getCabudget(): ?int
|
||||
{
|
||||
return $this->cabudget;
|
||||
}
|
||||
|
||||
public function setCabudget(int $cabudget): self
|
||||
{
|
||||
$this->cabudget = $cabudget;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getCareal(): ?int
|
||||
{
|
||||
return $this->careal;
|
||||
}
|
||||
|
||||
public function setCareal(int $careal): self
|
||||
{
|
||||
$this->careal = $careal;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getYear(): ?Year
|
||||
{
|
||||
return $this->year;
|
||||
}
|
||||
|
||||
public function setYear(?Year $year): self
|
||||
{
|
||||
$this->year = $year;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getDomaine(): ?Domaine
|
||||
{
|
||||
return $this->domaine;
|
||||
}
|
||||
|
||||
public function setDomaine(?Domaine $domaine): self
|
||||
{
|
||||
$this->domaine = $domaine;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -1,113 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Entity;
|
||||
|
||||
use Doctrine\Common\Collections\ArrayCollection;
|
||||
use Doctrine\Common\Collections\Collection;
|
||||
use Doctrine\ORM\Mapping as ORM;
|
||||
use Symfony\Component\Validator\Constraints as Assert;
|
||||
|
||||
/**
|
||||
* @ORM\Table(name="yearproject")
|
||||
* @ORM\Entity()
|
||||
*/
|
||||
|
||||
class Yearproject
|
||||
{ /**
|
||||
* @ORM\Column(name="id", type="integer")
|
||||
* @ORM\Id
|
||||
* @ORM\GeneratedValue(strategy="AUTO")
|
||||
*/
|
||||
private $id;
|
||||
|
||||
/**
|
||||
* @ORM\ManyToOne(targetEntity="Year", inversedBy="projects")
|
||||
*/
|
||||
private $year;
|
||||
|
||||
/**
|
||||
* @ORM\ManyToOne(targetEntity="Project", inversedBy="years")
|
||||
*/
|
||||
private $project;
|
||||
|
||||
/**
|
||||
* @ORM\Column(type="integer")
|
||||
*/
|
||||
private $nbdaybudget=0;
|
||||
|
||||
/**
|
||||
* @ORM\Column(type="integer")
|
||||
*/
|
||||
private $cabudget=0;
|
||||
|
||||
/**
|
||||
* @ORM\Column(type="integer")
|
||||
*/
|
||||
private $careal=0;
|
||||
|
||||
public function getId(): ?int
|
||||
{
|
||||
return $this->id;
|
||||
}
|
||||
|
||||
public function getNbdaybudget(): ?int
|
||||
{
|
||||
return $this->nbdaybudget;
|
||||
}
|
||||
|
||||
public function setNbdaybudget(int $nbdaybudget): self
|
||||
{
|
||||
$this->nbdaybudget = $nbdaybudget;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getCabudget(): ?int
|
||||
{
|
||||
return $this->cabudget;
|
||||
}
|
||||
|
||||
public function setCabudget(int $cabudget): self
|
||||
{
|
||||
$this->cabudget = $cabudget;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getCareal(): ?int
|
||||
{
|
||||
return $this->careal;
|
||||
}
|
||||
|
||||
public function setCareal(int $careal): self
|
||||
{
|
||||
$this->careal = $careal;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getYear(): ?Year
|
||||
{
|
||||
return $this->year;
|
||||
}
|
||||
|
||||
public function setYear(?Year $year): self
|
||||
{
|
||||
$this->year = $year;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getProject(): ?Project
|
||||
{
|
||||
return $this->project;
|
||||
}
|
||||
|
||||
public function setProject(?Project $project): self
|
||||
{
|
||||
$this->project = $project;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,65 +0,0 @@
|
||||
<?php
|
||||
namespace App\Form;
|
||||
|
||||
use Symfony\Component\Form\AbstractType;
|
||||
use Symfony\Component\Form\FormBuilderInterface;
|
||||
use Symfony\Component\OptionsResolver\OptionsResolver;
|
||||
use Symfony\Component\Form\Extension\Core\Type\EmailType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\TextType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\IntegerType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\RepeatedType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\PasswordType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\HiddenType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\ButtonType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
|
||||
use FOS\CKEditorBundle\Form\Type\CKEditorType;
|
||||
|
||||
use Symfony\Bridge\Doctrine\Form\Type\EntityType;
|
||||
|
||||
|
||||
use Doctrine\ORM\EntityRepository;
|
||||
use Doctrine\ORM\EntityManager;
|
||||
|
||||
class DomaineType extends AbstractType
|
||||
{
|
||||
public function buildForm(FormBuilderInterface $builder, array $options)
|
||||
{
|
||||
$builder->add('submit',
|
||||
SubmitType::class, [
|
||||
"label" => "Valider",
|
||||
"attr" => ["class" => "btn btn-success no-print"],
|
||||
]
|
||||
);
|
||||
|
||||
$builder->add('category',
|
||||
ChoiceType::class, [
|
||||
'label' => "Catégorie",
|
||||
'choices' => array("Frais"=>"Frais","Administratif" => "Administratif","Opérationnel" => "Opérationnel","Interne" => "Interne")
|
||||
]
|
||||
);
|
||||
|
||||
$builder->add('name',
|
||||
TextType::class, [
|
||||
"label" =>"Nom"
|
||||
]
|
||||
);
|
||||
|
||||
$builder->add('description',
|
||||
CKEditorType::class, [
|
||||
"required" => false,
|
||||
"config" => [
|
||||
'uiColor' => '#ffffff',
|
||||
],
|
||||
]
|
||||
);
|
||||
}
|
||||
|
||||
public function configureOptions(OptionsResolver $resolver)
|
||||
{
|
||||
$resolver->setDefaults(array(
|
||||
'data_class' => 'App\Entity\Domaine',
|
||||
'mode' => 'string',
|
||||
));
|
||||
}
|
||||
}
|
||||
@@ -1,131 +0,0 @@
|
||||
<?php
|
||||
namespace App\Form;
|
||||
|
||||
use Symfony\Component\Form\AbstractType;
|
||||
use Symfony\Component\Form\FormBuilderInterface;
|
||||
use Symfony\Component\OptionsResolver\OptionsResolver;
|
||||
use Symfony\Component\Form\Extension\Core\Type\EmailType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\TextType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\IntegerType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\NumberType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\RepeatedType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\PasswordType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\HiddenType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\ButtonType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
|
||||
use FOS\CKEditorBundle\Form\Type\CKEditorType;
|
||||
use Tetranz\Select2EntityBundle\Form\Type\Select2EntityType;
|
||||
|
||||
use Symfony\Bridge\Doctrine\Form\Type\EntityType;
|
||||
|
||||
|
||||
use Doctrine\ORM\EntityRepository;
|
||||
use Doctrine\ORM\EntityManager;
|
||||
|
||||
class OfferType extends AbstractType
|
||||
{
|
||||
public function buildForm(FormBuilderInterface $builder, array $options)
|
||||
{
|
||||
$builder->add('submit',
|
||||
SubmitType::class, [
|
||||
"label" => "Valider",
|
||||
"attr" => ["class" => "btn btn-success no-print"],
|
||||
]
|
||||
);
|
||||
|
||||
$builder->add('name',
|
||||
TextType::class, [
|
||||
"label" => "Nom"
|
||||
]
|
||||
);
|
||||
|
||||
$builder->add('ref',
|
||||
TextType::class, [
|
||||
"label" => "Référence",
|
||||
"required" => false
|
||||
]
|
||||
);
|
||||
|
||||
$builder->add('quantity',
|
||||
NumberType::class, [
|
||||
"label" => "Quantité",
|
||||
//"html5" => true,
|
||||
"scale" => 2
|
||||
]
|
||||
);
|
||||
|
||||
$builder->add('pu',
|
||||
NumberType::class, [
|
||||
"label" => "Prix Unitaire",
|
||||
//"html5" => true,
|
||||
"scale" => 2
|
||||
]
|
||||
);
|
||||
|
||||
$builder->add('validate',
|
||||
NumberType::class, [
|
||||
"label" => "Nombre de jours validés hors planning",
|
||||
//"html5" => true,
|
||||
"scale" => 2
|
||||
]
|
||||
);
|
||||
|
||||
$builder->add('cost',
|
||||
NumberType::class, [
|
||||
"label" => "Autres Frais",
|
||||
//"html5" => true,
|
||||
"scale" => 2
|
||||
]
|
||||
);
|
||||
|
||||
$builder->add("active",
|
||||
ChoiceType::class,[
|
||||
"label" => "Actif",
|
||||
"choices" => ["Oui"=>true,"Non"=>false]
|
||||
]
|
||||
);
|
||||
|
||||
$builder->add('project',
|
||||
Select2EntityType::class, [
|
||||
"label" => "Projet",
|
||||
"disabled" => false,
|
||||
"required" => true,
|
||||
"multiple" => false,
|
||||
"remote_route" => "app_project_select",
|
||||
"class" => "App:Project",
|
||||
"primary_key" => "id",
|
||||
"text_property" => "displayname",
|
||||
"minimum_input_length" => 0,
|
||||
"page_limit" => 10,
|
||||
"allow_clear" => true,
|
||||
"delay" => 250,
|
||||
"cache" => false,
|
||||
"cache_timeout" => 60000,
|
||||
"language" => "fr",
|
||||
"theme" => "bootstrap4",
|
||||
"placeholder" => "Selectionner un Projet",
|
||||
//"attr" => ["class" => "form-control", "style" => "margin-bottom:15px"]
|
||||
|
||||
]
|
||||
);
|
||||
|
||||
|
||||
$builder->add('service',
|
||||
EntityType::class, [
|
||||
"class" => "App:Service",
|
||||
"label" => "Service",
|
||||
"choice_label" => "name",
|
||||
"placeholder" => "Selectionner un Service",
|
||||
]
|
||||
);
|
||||
}
|
||||
|
||||
public function configureOptions(OptionsResolver $resolver)
|
||||
{
|
||||
$resolver->setDefaults(array(
|
||||
'data_class' => 'App\Entity\Offer',
|
||||
'mode' => 'string',
|
||||
));
|
||||
}
|
||||
}
|
||||
@@ -1,77 +0,0 @@
|
||||
<?php
|
||||
namespace App\Form;
|
||||
|
||||
use Symfony\Component\Form\AbstractType;
|
||||
use Symfony\Component\Form\FormBuilderInterface;
|
||||
use Symfony\Component\OptionsResolver\OptionsResolver;
|
||||
use Symfony\Component\Form\Extension\Core\Type\EmailType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\TextType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\IntegerType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\NumberType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\RepeatedType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\PasswordType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\HiddenType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\ButtonType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
|
||||
use FOS\CKEditorBundle\Form\Type\CKEditorType;
|
||||
use Tetranz\Select2EntityBundle\Form\Type\Select2EntityType;
|
||||
|
||||
use Symfony\Bridge\Doctrine\Form\Type\EntityType;
|
||||
|
||||
|
||||
use Doctrine\ORM\EntityRepository;
|
||||
use Doctrine\ORM\EntityManager;
|
||||
|
||||
class OfferdolibarrType extends AbstractType
|
||||
{
|
||||
public function buildForm(FormBuilderInterface $builder, array $options)
|
||||
{
|
||||
$builder->add('submit',
|
||||
SubmitType::class, [
|
||||
"label" => "Valider",
|
||||
"attr" => ["class" => "btn btn-success no-print"],
|
||||
]
|
||||
);
|
||||
|
||||
$builder->add('name',
|
||||
TextType::class, [
|
||||
"label" => "Nom (désignation produit ajoutée en fin de nom automatiquement)"
|
||||
]
|
||||
);
|
||||
|
||||
$builder->add('project',
|
||||
Select2EntityType::class, [
|
||||
"label" => "Projet",
|
||||
"disabled" => false,
|
||||
"required" => true,
|
||||
"multiple" => false,
|
||||
"remote_route" => "app_project_select",
|
||||
"class" => "App:Project",
|
||||
"primary_key" => "id",
|
||||
"text_property" => "displayname",
|
||||
"minimum_input_length" => 0,
|
||||
"page_limit" => 10,
|
||||
"allow_clear" => true,
|
||||
"delay" => 250,
|
||||
"cache" => false,
|
||||
"cache_timeout" => 60000,
|
||||
"language" => "fr",
|
||||
"theme" => "bootstrap4",
|
||||
"placeholder" => "Selectionner un Projet",
|
||||
//"attr" => ["class" => "form-control", "style" => "margin-bottom:15px"]
|
||||
|
||||
]
|
||||
);
|
||||
|
||||
$builder->add('tasks', HiddenType::class,["mapped" => false]);
|
||||
}
|
||||
|
||||
public function configureOptions(OptionsResolver $resolver)
|
||||
{
|
||||
$resolver->setDefaults(array(
|
||||
'data_class' => 'App\Entity\Offer',
|
||||
'mode' => 'string',
|
||||
));
|
||||
}
|
||||
}
|
||||
@@ -1,93 +0,0 @@
|
||||
<?php
|
||||
namespace App\Form;
|
||||
|
||||
use Symfony\Component\Form\AbstractType;
|
||||
use Symfony\Component\Form\FormBuilderInterface;
|
||||
use Symfony\Component\OptionsResolver\OptionsResolver;
|
||||
use Symfony\Component\Form\Extension\Core\Type\EmailType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\TextType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\IntegerType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\RepeatedType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\PasswordType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\HiddenType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\ButtonType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
|
||||
use FOS\CKEditorBundle\Form\Type\CKEditorType;
|
||||
|
||||
use Symfony\Bridge\Doctrine\Form\Type\EntityType;
|
||||
|
||||
|
||||
use Doctrine\ORM\EntityRepository;
|
||||
use Doctrine\ORM\EntityManager;
|
||||
|
||||
class ProjectType extends AbstractType
|
||||
{
|
||||
public function buildForm(FormBuilderInterface $builder, array $options)
|
||||
{
|
||||
$builder->add('submit',
|
||||
SubmitType::class, [
|
||||
"label" => "Valider",
|
||||
"attr" => ["class" => "btn btn-success no-print"],
|
||||
]
|
||||
);
|
||||
|
||||
$builder->add('name',
|
||||
TextType::class, [
|
||||
"label" =>"Nom"
|
||||
]
|
||||
);
|
||||
|
||||
$builder->add("active",
|
||||
ChoiceType::class,[
|
||||
"label" => "Actif",
|
||||
"choices" => ["Oui"=>true,"Non"=>false]
|
||||
]
|
||||
);
|
||||
|
||||
$builder->add("visible",
|
||||
ChoiceType::class,[
|
||||
"label" => "Visible par le client",
|
||||
"choices" => ["Oui"=>true,"Non"=>false]
|
||||
]
|
||||
);
|
||||
|
||||
$builder->add('customer',
|
||||
EntityType::class, [
|
||||
"label" => "Client",
|
||||
"class" => "App:Customer",
|
||||
"choice_label" => function ($customer) {
|
||||
return $customer->getName();},
|
||||
|
||||
"disabled" => false,
|
||||
"required" => true,
|
||||
"multiple" => false,
|
||||
"placeholder" => "Selectionner un Client",
|
||||
]
|
||||
);
|
||||
|
||||
$builder->add('service',
|
||||
EntityType::class, [
|
||||
"class" => "App:Service",
|
||||
"label" => "Service",
|
||||
"choice_label" => "name",
|
||||
]
|
||||
);
|
||||
|
||||
$builder->add('domaine',
|
||||
EntityType::class, [
|
||||
"class" => "App:Domaine",
|
||||
"label" => "Domaine",
|
||||
"choice_label" => "name",
|
||||
]
|
||||
);
|
||||
}
|
||||
|
||||
public function configureOptions(OptionsResolver $resolver)
|
||||
{
|
||||
$resolver->setDefaults(array(
|
||||
'data_class' => 'App\Entity\Project',
|
||||
'mode' => 'string',
|
||||
));
|
||||
}
|
||||
}
|
||||
@@ -1,68 +0,0 @@
|
||||
<?php
|
||||
namespace App\Form;
|
||||
|
||||
use Symfony\Component\Form\AbstractType;
|
||||
use Symfony\Component\Form\FormBuilderInterface;
|
||||
use Symfony\Component\OptionsResolver\OptionsResolver;
|
||||
use Symfony\Component\Form\Extension\Core\Type\EmailType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\TextType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\IntegerType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\RepeatedType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\PasswordType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\HiddenType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\ButtonType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
|
||||
use FOS\CKEditorBundle\Form\Type\CKEditorType;
|
||||
|
||||
use Symfony\Bridge\Doctrine\Form\Type\EntityType;
|
||||
|
||||
|
||||
use Doctrine\ORM\EntityRepository;
|
||||
use Doctrine\ORM\EntityManager;
|
||||
|
||||
class ServiceType extends AbstractType
|
||||
{
|
||||
public function buildForm(FormBuilderInterface $builder, array $options)
|
||||
{
|
||||
$builder->add('submit',
|
||||
SubmitType::class, [
|
||||
"label" => "Valider",
|
||||
"attr" => ["class" => "btn btn-success no-print"],
|
||||
]
|
||||
);
|
||||
|
||||
$builder->add('name',
|
||||
TextType::class, [
|
||||
"label" =>"Nom"
|
||||
]
|
||||
);
|
||||
|
||||
$builder->add('description',
|
||||
CKEditorType::class, [
|
||||
"required" => false,
|
||||
"config" => [
|
||||
'uiColor' => '#ffffff',
|
||||
],
|
||||
]
|
||||
);
|
||||
|
||||
if($options["doliActive"]) {
|
||||
$builder->add('dolibarrcode',
|
||||
TextType::class, [
|
||||
"required" => false,
|
||||
"label" =>"Code Produit Dolibarr"
|
||||
]
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
public function configureOptions(OptionsResolver $resolver)
|
||||
{
|
||||
$resolver->setDefaults(array(
|
||||
'data_class' => 'App\Entity\Service',
|
||||
'mode' => 'string',
|
||||
'doliActive' => 'string',
|
||||
));
|
||||
}
|
||||
}
|
||||
@@ -1,104 +0,0 @@
|
||||
<?php
|
||||
namespace App\Form;
|
||||
|
||||
use Symfony\Component\Form\AbstractType;
|
||||
use Symfony\Component\Form\FormBuilderInterface;
|
||||
use Symfony\Component\OptionsResolver\OptionsResolver;
|
||||
use Symfony\Component\Form\Extension\Core\Type\EmailType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\TextType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\IntegerType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\NumberType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\RepeatedType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\PasswordType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\HiddenType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\ButtonType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
|
||||
use FOS\CKEditorBundle\Form\Type\CKEditorType;
|
||||
use Tetranz\Select2EntityBundle\Form\Type\Select2EntityType;
|
||||
|
||||
use Symfony\Bridge\Doctrine\Form\Type\EntityType;
|
||||
|
||||
|
||||
use Doctrine\ORM\EntityRepository;
|
||||
use Doctrine\ORM\EntityManager;
|
||||
|
||||
class TaskType extends AbstractType
|
||||
{
|
||||
public function buildForm(FormBuilderInterface $builder, array $options)
|
||||
{
|
||||
$builder->add('submit',
|
||||
SubmitType::class, [
|
||||
"label" => "Valider",
|
||||
"attr" => ["class" => "btn btn-success no-print"],
|
||||
]
|
||||
);
|
||||
|
||||
$builder->add('name',
|
||||
TextType::class, [
|
||||
"label" => "Nom"
|
||||
]
|
||||
);
|
||||
|
||||
$builder->add('quantity',
|
||||
NumberType::class, [
|
||||
"label" => "Estimation",
|
||||
//"html5" => true,
|
||||
"scale" => 2,
|
||||
"required" => false,
|
||||
]
|
||||
);
|
||||
|
||||
$builder->add('nature',
|
||||
EntityType::class, [
|
||||
"class" => "App:Nature",
|
||||
"label" => "Nature",
|
||||
"choice_label" => "name",
|
||||
]
|
||||
);
|
||||
|
||||
$builder->add("active",
|
||||
ChoiceType::class,[
|
||||
"label" => "Actif",
|
||||
"choices" => ["Non"=>false, "Oui"=>true]
|
||||
]
|
||||
);
|
||||
|
||||
$builder->add('color',
|
||||
TextType::class, [
|
||||
"label" => "Couleur",
|
||||
"attr" => array("class" => "pick-a-color")
|
||||
]
|
||||
);
|
||||
|
||||
$builder->add('project',
|
||||
Select2EntityType::class, [
|
||||
"label" => "Projet",
|
||||
"disabled" => false,
|
||||
"required" => true,
|
||||
"multiple" => false,
|
||||
"remote_route" => "app_project_select",
|
||||
"class" => "App:Project",
|
||||
"primary_key" => "id",
|
||||
"text_property" => "displayname",
|
||||
"minimum_input_length" => 0,
|
||||
"page_limit" => 100,
|
||||
"allow_clear" => true,
|
||||
"delay" => 250,
|
||||
"cache" => false,
|
||||
"cache_timeout" => 60000,
|
||||
"language" => "fr",
|
||||
"theme" => "bootstrap4",
|
||||
"placeholder" => "Selectionner un Projet",
|
||||
]
|
||||
);
|
||||
}
|
||||
|
||||
public function configureOptions(OptionsResolver $resolver)
|
||||
{
|
||||
$resolver->setDefaults(array(
|
||||
'data_class' => 'App\Entity\Task',
|
||||
'mode' => 'string',
|
||||
));
|
||||
}
|
||||
}
|
||||
@@ -1,137 +0,0 @@
|
||||
<?php
|
||||
namespace App\Form;
|
||||
|
||||
use Symfony\Component\Form\AbstractType;
|
||||
use Symfony\Component\Form\FormBuilderInterface;
|
||||
use Symfony\Component\OptionsResolver\OptionsResolver;
|
||||
use Symfony\Component\Form\Extension\Core\Type\EmailType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\TextType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\IntegerType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\RepeatedType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\PasswordType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\HiddenType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\ButtonType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
|
||||
use Tetranz\Select2EntityBundle\Form\Type\Select2EntityType;
|
||||
|
||||
use Symfony\Bridge\Doctrine\Form\Type\EntityType;
|
||||
|
||||
|
||||
use Doctrine\ORM\EntityRepository;
|
||||
use Doctrine\ORM\EntityManager;
|
||||
|
||||
class UserType extends AbstractType
|
||||
{
|
||||
public function buildForm(FormBuilderInterface $builder, array $options)
|
||||
{
|
||||
$builder->add('submit',
|
||||
SubmitType::class, [
|
||||
"label" => "Valider",
|
||||
"attr" => ["class" => "btn btn-success no-print"],
|
||||
]
|
||||
);
|
||||
|
||||
$builder->add('username',
|
||||
TextType::class, [
|
||||
"label" =>"Login",
|
||||
"disabled" => ($options["mode"]=="submit"?false:true),
|
||||
"attr" => ["autocomplete" => "off"],
|
||||
]
|
||||
);
|
||||
|
||||
if($options["appAuth"]=="MYSQL"&&$options["mode"]!="profil") {
|
||||
$builder->add('password',
|
||||
RepeatedType::class, [
|
||||
"type" => PasswordType::class,
|
||||
"required" => ($options["mode"]=="submit"?true:false),
|
||||
"first_options" => ["label" => "Mot de Passe", "attr" => ["class" => " no-print", "autocomplete" => "new-password"]],
|
||||
"second_options" => ["label" => "Confirmer Mot de Passe", "attr" => ["class" => "no-print"]],
|
||||
]
|
||||
);
|
||||
}
|
||||
|
||||
if($options["mode"]!="profil") {
|
||||
$choices=[];
|
||||
$choices['Administrateur']='ROLE_ADMIN';
|
||||
$choices['Validateur']='ROLE_VALIDATOR';
|
||||
$choices['Master']='ROLE_MASTER';
|
||||
$choices['Intervenant']='ROLE_USER';
|
||||
$choices['Invité']='ROLE_VISITOR';
|
||||
|
||||
$builder->add('roles',
|
||||
ChoiceType::class, [
|
||||
'choices' => $choices,
|
||||
'multiple' => true,
|
||||
'expanded' => true,
|
||||
]
|
||||
);
|
||||
}
|
||||
|
||||
$builder->add('lastname',
|
||||
TextType::class, [
|
||||
"label" =>"Nom",
|
||||
]
|
||||
);
|
||||
|
||||
$builder->add('firstname',
|
||||
TextType::class, [
|
||||
"label" =>"Prénom",
|
||||
"required" => false ]
|
||||
);
|
||||
|
||||
$builder->add('email',
|
||||
EmailType::class, [
|
||||
"label" =>"Email",
|
||||
]
|
||||
);
|
||||
|
||||
$builder->add('service',
|
||||
EntityType::class, [
|
||||
"class" => "App:Service",
|
||||
"label" => "Activité",
|
||||
"required" => false,
|
||||
"choice_label" => "name",
|
||||
]
|
||||
);
|
||||
|
||||
$builder->add('jobs',
|
||||
Select2EntityType::class, [
|
||||
"label" => "Métiers",
|
||||
"disabled" => false,
|
||||
"required" => false,
|
||||
"multiple" => true,
|
||||
"remote_route" => "app_job_select",
|
||||
"class" => "App:Job",
|
||||
"primary_key" => "id",
|
||||
"text_property" => "name",
|
||||
"minimum_input_length" => 0,
|
||||
"page_limit" => 100,
|
||||
"allow_clear" => true,
|
||||
"delay" => 250,
|
||||
"cache" => false,
|
||||
"cache_timeout" => 60000,
|
||||
"language" => "fr",
|
||||
"placeholder" => "Selectionner des Métiers",
|
||||
]
|
||||
);
|
||||
|
||||
$builder->add('apikey',
|
||||
TextType::class, [
|
||||
"label" =>"Clé Accès",
|
||||
"required" => false
|
||||
]
|
||||
);
|
||||
|
||||
$builder->add('avatar',HiddenType::class, array("empty_data" => "noavatar.png"));
|
||||
}
|
||||
|
||||
public function configureOptions(OptionsResolver $resolver)
|
||||
{
|
||||
$resolver->setDefaults(array(
|
||||
'data_class' => 'App\Entity\User',
|
||||
'mode' => 'string',
|
||||
'appAuth' => 'string',
|
||||
));
|
||||
}
|
||||
}
|
||||
@@ -1,63 +0,0 @@
|
||||
<?php
|
||||
namespace App\Form;
|
||||
|
||||
use Symfony\Component\Form\AbstractType;
|
||||
use Symfony\Component\Form\FormBuilderInterface;
|
||||
use Symfony\Component\OptionsResolver\OptionsResolver;
|
||||
use Symfony\Component\Form\Extension\Core\Type\EmailType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\TextType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\IntegerType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\RepeatedType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\PasswordType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\HiddenType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\ButtonType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\DateType;
|
||||
|
||||
use FOS\CKEditorBundle\Form\Type\CKEditorType;
|
||||
|
||||
use Symfony\Bridge\Doctrine\Form\Type\EntityType;
|
||||
|
||||
|
||||
use Doctrine\ORM\EntityRepository;
|
||||
use Doctrine\ORM\EntityManager;
|
||||
|
||||
class YearType extends AbstractType
|
||||
{
|
||||
public function buildForm(FormBuilderInterface $builder, array $options)
|
||||
{
|
||||
$builder->add('submit',
|
||||
SubmitType::class, [
|
||||
"label" => "Valider",
|
||||
"attr" => ["class" => "btn btn-success no-print"],
|
||||
]
|
||||
);
|
||||
|
||||
$builder->add('start',
|
||||
DateType::class, [
|
||||
"label" =>"Début"
|
||||
]
|
||||
);
|
||||
|
||||
$builder->add('end',
|
||||
DateType::class, [
|
||||
"label" =>"Fin"
|
||||
]
|
||||
);
|
||||
|
||||
$builder->add('nbday',
|
||||
IntegerType::class, [
|
||||
"label" =>"Nombre de jours travaillé pour un temps plein"
|
||||
]
|
||||
);
|
||||
}
|
||||
|
||||
public function configureOptions(OptionsResolver $resolver)
|
||||
{
|
||||
$resolver->setDefaults(array(
|
||||
'data_class' => 'App\Entity\Year',
|
||||
'mode' => 'string',
|
||||
));
|
||||
}
|
||||
}
|
||||
@@ -1,63 +0,0 @@
|
||||
<?php
|
||||
namespace App\Form;
|
||||
|
||||
use Symfony\Component\Form\AbstractType;
|
||||
use Symfony\Component\Form\FormBuilderInterface;
|
||||
use Symfony\Component\OptionsResolver\OptionsResolver;
|
||||
use Symfony\Component\Form\Extension\Core\Type\EmailType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\TextType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\IntegerType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\RepeatedType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\PasswordType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\HiddenType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\ButtonType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\DateType;
|
||||
|
||||
use FOS\CKEditorBundle\Form\Type\CKEditorType;
|
||||
|
||||
use Symfony\Bridge\Doctrine\Form\Type\EntityType;
|
||||
|
||||
|
||||
use Doctrine\ORM\EntityRepository;
|
||||
use Doctrine\ORM\EntityManager;
|
||||
|
||||
class YeardomaineType extends AbstractType
|
||||
{
|
||||
public function buildForm(FormBuilderInterface $builder, array $options)
|
||||
{
|
||||
$builder->add('submit',
|
||||
SubmitType::class, [
|
||||
"label" => "Valider",
|
||||
"attr" => ["class" => "btn btn-success no-print"],
|
||||
]
|
||||
);
|
||||
|
||||
$builder->add('nbdaybudget',
|
||||
IntegerType::class, [
|
||||
"label" =>"Nombre de jours prévus pour l'exercice"
|
||||
]
|
||||
);
|
||||
|
||||
$builder->add('cabudget',
|
||||
IntegerType::class, [
|
||||
"label" =>"Budget prévu pour l'exercice"
|
||||
]
|
||||
);
|
||||
|
||||
$builder->add('careal',
|
||||
IntegerType::class, [
|
||||
"label" =>"Budget réel pour l'exercice"
|
||||
]
|
||||
);
|
||||
}
|
||||
|
||||
public function configureOptions(OptionsResolver $resolver)
|
||||
{
|
||||
$resolver->setDefaults(array(
|
||||
'data_class' => 'App\Entity\Yeardomaine',
|
||||
'mode' => 'string',
|
||||
));
|
||||
}
|
||||
}
|
||||
@@ -1,63 +0,0 @@
|
||||
<?php
|
||||
namespace App\Form;
|
||||
|
||||
use Symfony\Component\Form\AbstractType;
|
||||
use Symfony\Component\Form\FormBuilderInterface;
|
||||
use Symfony\Component\OptionsResolver\OptionsResolver;
|
||||
use Symfony\Component\Form\Extension\Core\Type\EmailType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\TextType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\IntegerType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\RepeatedType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\PasswordType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\HiddenType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\ButtonType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\DateType;
|
||||
|
||||
use FOS\CKEditorBundle\Form\Type\CKEditorType;
|
||||
|
||||
use Symfony\Bridge\Doctrine\Form\Type\EntityType;
|
||||
|
||||
|
||||
use Doctrine\ORM\EntityRepository;
|
||||
use Doctrine\ORM\EntityManager;
|
||||
|
||||
class YearprojectType extends AbstractType
|
||||
{
|
||||
public function buildForm(FormBuilderInterface $builder, array $options)
|
||||
{
|
||||
$builder->add('submit',
|
||||
SubmitType::class, [
|
||||
"label" => "Valider",
|
||||
"attr" => ["class" => "btn btn-success no-print"],
|
||||
]
|
||||
);
|
||||
|
||||
$builder->add('nbdaybudget',
|
||||
IntegerType::class, [
|
||||
"label" =>"Nombre de jours prévus pour l'exercice"
|
||||
]
|
||||
);
|
||||
|
||||
$builder->add('cabudget',
|
||||
IntegerType::class, [
|
||||
"label" =>"Budget prévu pour l'exercice"
|
||||
]
|
||||
);
|
||||
|
||||
$builder->add('careal',
|
||||
IntegerType::class, [
|
||||
"label" =>"Budget réel pour l'exercice"
|
||||
]
|
||||
);
|
||||
}
|
||||
|
||||
public function configureOptions(OptionsResolver $resolver)
|
||||
{
|
||||
$resolver->setDefaults(array(
|
||||
'data_class' => 'App\Entity\Yearproject',
|
||||
'mode' => 'string',
|
||||
));
|
||||
}
|
||||
}
|
||||
@@ -1,57 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Repository;
|
||||
|
||||
use App\Entity\Domaine;
|
||||
use App\Entity\Project;
|
||||
|
||||
use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
|
||||
use Doctrine\Common\Persistence\ManagerRegistry;
|
||||
|
||||
class DomaineRepository extends ServiceEntityRepository
|
||||
{
|
||||
public function __construct(ManagerRegistry $registry)
|
||||
{
|
||||
parent::__construct($registry, Domaine::class);
|
||||
}
|
||||
|
||||
|
||||
public function findAllProjectActive($activeproject,$iddomaine) {
|
||||
$qb = $this->createQueryBuilder('domaine')
|
||||
->from('App:Project','project')
|
||||
->Where('project.active=:activeproject')
|
||||
->andWhere('project.domaine=domaine');
|
||||
|
||||
if($iddomaine!="all")
|
||||
$qb->andWhere("domaine.id=:id")->setParameter('id',$iddomaine);
|
||||
|
||||
return $qb->getQuery()->setParameter('activeproject',$activeproject)->getResult();
|
||||
}
|
||||
|
||||
public function findAllOfferActive($activeproject,$activeoffer,$iddomaine) {
|
||||
$qb = $this->createQueryBuilder('domaine')
|
||||
->from('App:Project','project')
|
||||
->from('App:Offer','offer')
|
||||
->Where('offer.active=:activeoffer')
|
||||
->andWhere('project.active=:activeproject')
|
||||
->andWhere('project.domaine=domaine')
|
||||
->andWhere('offer.project=project');
|
||||
|
||||
if($iddomaine!="all")
|
||||
$qb->andWhere("domaine.id=:id")->setParameter('id',$iddomaine);
|
||||
|
||||
return $qb->getQuery()->setParameter('activeproject',$activeproject)->setParameter('activeoffer',$activeoffer)->getResult();
|
||||
}
|
||||
|
||||
public function findAllTaskActive($activeproject,$iddomaine) {
|
||||
$qb = $this->createQueryBuilder('domaine')
|
||||
->from('App:Project','project')
|
||||
->Where('project.active=:activeproject')
|
||||
->andWhere('project.domaine=domaine');
|
||||
|
||||
if($iddomaine!="all")
|
||||
$qb->andWhere("domaine.id=:id")->setParameter('id',$iddomaine);
|
||||
|
||||
return $qb->getQuery()->setParameter('activeproject',$activeproject)->getResult();
|
||||
}
|
||||
}
|
||||
@@ -1,15 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Repository;
|
||||
|
||||
use App\Entity\Script;
|
||||
use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
|
||||
use Doctrine\Common\Persistence\ManagerRegistry;
|
||||
|
||||
class ScriptRepository extends ServiceEntityRepository
|
||||
{
|
||||
public function __construct(ManagerRegistry $registry)
|
||||
{
|
||||
parent::__construct($registry, Script::class);
|
||||
}
|
||||
}
|
||||
@@ -1,57 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Repository;
|
||||
|
||||
use App\Entity\Service;
|
||||
use App\Entity\Project;
|
||||
|
||||
use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
|
||||
use Doctrine\Common\Persistence\ManagerRegistry;
|
||||
|
||||
class ServiceRepository extends ServiceEntityRepository
|
||||
{
|
||||
public function __construct(ManagerRegistry $registry)
|
||||
{
|
||||
parent::__construct($registry, Service::class);
|
||||
}
|
||||
|
||||
|
||||
public function findAllProjectActive($activeproject,$idservice) {
|
||||
$qb = $this->createQueryBuilder('service')
|
||||
->from('App:Project','project')
|
||||
->Where('project.active=:activeproject')
|
||||
->andWhere('project.service=service');
|
||||
|
||||
if($idservice!="all")
|
||||
$qb->andWhere("service.id=:id")->setParameter('id',$idservice);
|
||||
|
||||
return $qb->getQuery()->setParameter('activeproject',$activeproject)->getResult();
|
||||
}
|
||||
|
||||
public function findAllOfferActive($activeproject,$activeoffer,$idservice) {
|
||||
$qb = $this->createQueryBuilder('service')
|
||||
->from('App:Project','project')
|
||||
->from('App:Offer','offer')
|
||||
->Where('offer.active=:activeoffer')
|
||||
->andWhere('project.active=:activeproject')
|
||||
->andWhere('offer.service=service')
|
||||
->andWhere('offer.project=project');
|
||||
|
||||
if($idservice!="all")
|
||||
$qb->andWhere("service.id=:id")->setParameter('id',$idservice);
|
||||
|
||||
return $qb->getQuery()->setParameter('activeproject',$activeproject)->setParameter('activeoffer',$activeoffer)->getResult();
|
||||
}
|
||||
|
||||
public function findAllTaskActive($activeproject,$idservice) {
|
||||
$qb = $this->createQueryBuilder('service')
|
||||
->from('App:Project','project')
|
||||
->Where('project.active=:activeproject')
|
||||
->andWhere('project.service=service');
|
||||
|
||||
if($idservice!="all")
|
||||
$qb->andWhere("service.id=:id")->setParameter('id',$idservice);
|
||||
|
||||
return $qb->getQuery()->setParameter('activeproject',$activeproject)->getResult();
|
||||
}
|
||||
}
|
||||
@@ -1,83 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Service;
|
||||
|
||||
use Doctrine\ORM\EntityManagerInterface;
|
||||
use Symfony\Contracts\HttpClient\HttpClientInterface;
|
||||
|
||||
use Symfony\Component\DependencyInjection\ContainerInterface;
|
||||
|
||||
|
||||
class dolibarrApi
|
||||
{
|
||||
private $container;
|
||||
private $em;
|
||||
private $session;
|
||||
private $client;
|
||||
private $doliuri;
|
||||
private $dolikey;
|
||||
|
||||
public function __construct(EntityManagerInterface $em, ContainerInterface $container, HttpClientInterface $client )
|
||||
{
|
||||
$this->em = $em;
|
||||
$this->container = $container;
|
||||
$this->client = $client;
|
||||
$this->doliuri = $this->container->getParameter('doliUri');
|
||||
$this->dolikey = $this->container->getParameter('doliApiKey');
|
||||
|
||||
}
|
||||
|
||||
private function CallAPI($method, $url, $data = false)
|
||||
{
|
||||
$curl = curl_init();
|
||||
$httpheader = ['DOLAPIKEY: '.$this->dolikey];
|
||||
|
||||
switch ($method)
|
||||
{
|
||||
case "POST":
|
||||
curl_setopt($curl, CURLOPT_POST, 1);
|
||||
$httpheader[] = "Content-Type:application/json";
|
||||
|
||||
if ($data)
|
||||
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
|
||||
|
||||
break;
|
||||
case "PUT":
|
||||
|
||||
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'PUT');
|
||||
$httpheader[] = "Content-Type:application/json";
|
||||
|
||||
if ($data)
|
||||
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
|
||||
|
||||
break;
|
||||
default:
|
||||
if ($data)
|
||||
$url = sprintf("%s%s?DOLAPIKEY=%s&%s", $this->doliuri."/api/index.php/", $url, $this->dolikey, http_build_query($data));
|
||||
else
|
||||
$url = sprintf("%s%s?DOLAPIKEY=%s", $this->doliuri."/api/index.php/", $url, $this->dolikey);
|
||||
}
|
||||
|
||||
// Optional Authentication:
|
||||
// curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
|
||||
// curl_setopt($curl, CURLOPT_USERPWD, "username:password");
|
||||
|
||||
curl_setopt($curl, CURLOPT_URL, $url);
|
||||
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
|
||||
curl_setopt($curl, CURLOPT_HTTPHEADER, $httpheader);
|
||||
curl_setopt($curl, CURLOPT_TIMEOUT, 10);
|
||||
|
||||
$result = curl_exec($curl);
|
||||
|
||||
curl_close($curl);
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
public function getOrder($ref) {
|
||||
$response = $this->CallAPI('GET','orders/ref/'.$ref);
|
||||
return json_decode($response);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -1,104 +0,0 @@
|
||||
<?php
|
||||
namespace App\Service;
|
||||
|
||||
use Doctrine\ORM\EntityManagerInterface;
|
||||
use Symfony\Component\DependencyInjection\ContainerInterface;
|
||||
|
||||
|
||||
class notificationService
|
||||
{
|
||||
private $em;
|
||||
protected $mailer;
|
||||
protected $twig;
|
||||
private $container;
|
||||
|
||||
public function __construct(EntityManagerInterface $em, \Swift_Mailer $mailer, \Twig\Environment $twig, ContainerInterface $container)
|
||||
{
|
||||
$this->mailer = $mailer;
|
||||
$this->twig = $twig;
|
||||
$this->em = $em;
|
||||
$this->container = $container;
|
||||
}
|
||||
|
||||
public function sendNotifAttenteValid($subject, $iduser, $idevent, $valid_url)
|
||||
{
|
||||
$template = $this->twig->load('Notif/attentevalidation.html.twig');
|
||||
$user=$this->em->getRepository("App:User")->find($iduser);
|
||||
$event=$this->em->getRepository("App:Event")->find($idevent);
|
||||
$users=$this->em->getRepository("App:User")->findAll();
|
||||
$valid_url=str_replace("http://","https://",$valid_url);
|
||||
|
||||
$tbemails=[];
|
||||
foreach($users as $usr) {
|
||||
if(in_array("ROLE_VALIDATOR",$usr->getRoles())) {
|
||||
array_push($tbemails,$usr->getEmail());
|
||||
}
|
||||
// else{
|
||||
// if(in_array("ROLE_MASTER",$usr->getRoles())) {
|
||||
// if ($usr->getService() == $user->getService() ){
|
||||
// $tmp=[
|
||||
// "id"=>$usr->getId(),
|
||||
// "email"=>$usr->getEmail()
|
||||
// ];
|
||||
// }
|
||||
// array_push($tbemails,$tmp);
|
||||
// }
|
||||
// }
|
||||
}
|
||||
|
||||
$parameters=[
|
||||
'date' => new \DateTime(),
|
||||
'username' => $user->getUsername(),
|
||||
'start' => $event->getStart(),
|
||||
'end' => $event->getEnd(),
|
||||
'duration' => $event->getDuration(),
|
||||
'valid_link' => $valid_url,
|
||||
];
|
||||
$bodyHtml = $template->renderBlock('body', $parameters);
|
||||
|
||||
$message = (new \Swift_Message())
|
||||
->setFrom('schedule@cadoles.com')
|
||||
->setSubject($user->getUsername() . " = " . $subject)
|
||||
//TODO envoyer à tt les users master associé au service de l'utilisateur et l'ensemble des user validator
|
||||
->setTo($tbemails)
|
||||
->setBody($bodyHtml, 'text/html');
|
||||
|
||||
$response = $this->mailer->send($message);
|
||||
|
||||
return $response;
|
||||
}
|
||||
public function sendNotifValid($subject, $iduser, $idevent)
|
||||
{
|
||||
$template = $this->twig->load('Notif/validation.html.twig');
|
||||
$user=$this->em->getRepository("App:User")->find($iduser);
|
||||
$event=$this->em->getRepository("App:Event")->find($idevent);
|
||||
$users=$this->em->getRepository("App:User")->findAll();
|
||||
$tbemails=[];
|
||||
foreach($users as $usr) {
|
||||
if(in_array("ROLE_VALIDATOR",$usr->getRoles())) {
|
||||
array_push($tbemails,$usr->getEmail());
|
||||
}
|
||||
|
||||
}
|
||||
$parameters=[
|
||||
'date' => new \DateTime(),
|
||||
'username' => $user->getUsername(),
|
||||
'start' => $event->getStart(),
|
||||
'end' => $event->getEnd(),
|
||||
'duration' => $event->getDuration(),
|
||||
];
|
||||
$bodyHtml = $template->renderBlock('body', $parameters);
|
||||
|
||||
$message = (new \Swift_Message())
|
||||
->setFrom('schedule@cadoles.com')
|
||||
->setSubject($user->getUsername() . " = " . $subject)
|
||||
->setTo($this->container->getParameter('appMailnotif'))
|
||||
->setCc($tbemails)
|
||||
->setBody($bodyHtml, 'text/html');
|
||||
|
||||
$response = $this->mailer->send($message);
|
||||
|
||||
|
||||
return $response;
|
||||
}
|
||||
}
|
||||
@@ -1,142 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Service;
|
||||
|
||||
use Symfony\Component\DependencyInjection\ContainerInterface;
|
||||
use Symfony\Component\EventDispatcher\EventDispatcher;
|
||||
use Symfony\Component\EventDispatcher\Event;
|
||||
use Symfony\Component\HttpFoundation\Session\Session;
|
||||
use Doctrine\ORM\EntityManager;
|
||||
|
||||
use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface;
|
||||
use Symfony\Component\Security\Core\Authentication\Token\UsernamePasswordToken;
|
||||
|
||||
class sessionListener {
|
||||
protected $container;
|
||||
protected $em;
|
||||
|
||||
public function __construct($container, EntityManager $em, TokenStorageInterface $token_storage)
|
||||
{
|
||||
$this->container = $container;
|
||||
$this->em = $em;
|
||||
$this->token_storage = $token_storage;
|
||||
}
|
||||
|
||||
public function haveRole($roles,$tohave) {
|
||||
$haverole=false;
|
||||
if($roles=="") {
|
||||
if(empty($tohave)) $haverole=true;
|
||||
}
|
||||
else {
|
||||
foreach($roles as $role) {
|
||||
if(in_array($role,$tohave))
|
||||
$haverole=true;
|
||||
}
|
||||
}
|
||||
|
||||
return $haverole;
|
||||
}
|
||||
|
||||
public function onDomainParse(Event $event) {
|
||||
$session = new Session();
|
||||
|
||||
// Utilisateur en cours
|
||||
$curentuserid=0;
|
||||
$token = $this->token_storage->getToken();
|
||||
if(!$token) return;
|
||||
$curentuser=$token->getUser();
|
||||
|
||||
// Roles actif
|
||||
if($curentuser=="anon.") $roles=[];
|
||||
else $roles=$curentuser->getRoles();
|
||||
|
||||
$regen=false;
|
||||
if (!$session->get('isuser') && $curentuser!="anon.") {
|
||||
$regen=true;
|
||||
$session->set('isuser',true);
|
||||
}
|
||||
|
||||
if ($session->get('isuser') && $curentuser=="anon.") {
|
||||
$regen=true;
|
||||
$session->set('isuser',false);
|
||||
}
|
||||
|
||||
if(!$session->get('nbmonth')) $regen=true;
|
||||
|
||||
|
||||
// Initialisation de la session
|
||||
if($regen) {
|
||||
$session->set('activeproject',true);
|
||||
$session->set('activetask',true);
|
||||
$session->set('activeoffer',true);
|
||||
$session->set('activeholiday',true);
|
||||
$session->set('activetimer',true);
|
||||
$session->set('viewservice',true);
|
||||
$session->set('nbmonth',3);
|
||||
|
||||
if($curentuser!="anon.") {
|
||||
if(in_array("ROLE_USER",$roles))
|
||||
$session->set('iduser',$curentuser->getId());
|
||||
else
|
||||
$session->set('iduser',"all");
|
||||
|
||||
$session->set('idproject',"all");
|
||||
$session->set('idservice',"all");
|
||||
$session->set('iddomaine',"all");
|
||||
}
|
||||
else {
|
||||
$session->set('iduser',"all");
|
||||
$session->set('idproject',"all");
|
||||
$session->set('idservice',"all");
|
||||
$session->set('iddomaine',"all");
|
||||
}
|
||||
|
||||
$tbusers=[];
|
||||
$users=$this->em->getRepository('App:User')->findAll();
|
||||
foreach($users as $user) {
|
||||
if(in_array("ROLE_USER",$user->getRoles())) {
|
||||
$tmp=[
|
||||
"id"=>$user->getId(),
|
||||
"displayname"=>$user->getDisplayname()
|
||||
];
|
||||
array_push($tbusers,$tmp);
|
||||
}
|
||||
}
|
||||
$session->set('users',$tbusers);
|
||||
|
||||
$tbprojects=[];
|
||||
$projects=$this->em->getRepository('App:Project')->findBy(["active"=>true]);
|
||||
foreach($projects as $project) {
|
||||
$tmp=[
|
||||
"id"=>$project->getId(),
|
||||
"displayname"=>$project->getDisplayname()
|
||||
];
|
||||
array_push($tbprojects,$tmp);
|
||||
}
|
||||
$session->set('projects',$tbprojects);
|
||||
|
||||
$tbservices=[];
|
||||
$services=$this->em->getRepository('App:Service')->findAll();
|
||||
foreach($services as $service) {
|
||||
$tmp=[
|
||||
"id"=>$service->getId(),
|
||||
"name"=>$service->getName()
|
||||
];
|
||||
array_push($tbservices,$tmp);
|
||||
}
|
||||
$session->set('services',$tbservices);
|
||||
|
||||
$tbdomaines=[];
|
||||
$domaines=$this->em->getRepository('App:Domaine')->findAll();
|
||||
foreach($domaines as $domaine) {
|
||||
$tmp=[
|
||||
"id"=>$domaine->getId(),
|
||||
"name"=>$domaine->getName()
|
||||
];
|
||||
array_push($tbdomaines,$tmp);
|
||||
}
|
||||
$session->set('domaines',$tbdomaines);
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
66
src/schedule-2.0/.env
Normal file
66
src/schedule-2.0/.env
Normal file
@@ -0,0 +1,66 @@
|
||||
# In all environments, the following files are loaded if they exist,
|
||||
# the latter taking precedence over the former:
|
||||
#
|
||||
# * .env contains default values for the environment variables needed by the app
|
||||
# * .env.local uncommitted file with local overrides
|
||||
# * .env.$APP_ENV committed environment-specific defaults
|
||||
# * .env.$APP_ENV.local uncommitted environment-specific overrides
|
||||
#
|
||||
# Real environment variables win over .env files.
|
||||
#
|
||||
# DO NOT DEFINE PRODUCTION SECRETS IN THIS FILE NOR IN ANY OTHER COMMITTED FILES.
|
||||
#
|
||||
# Run "composer dump-env prod" to compile .env files for production use (requires symfony/flex >=1.2).
|
||||
# https://symfony.com/doc/current/best_practices.html#use-environment-variables-for-infrastructure-configuration
|
||||
|
||||
###> symfony/framework-bundle ###
|
||||
APP_SECRET=52c1cb88ee822cd2643abe29e16a68a6
|
||||
#TRUSTED_PROXIES=127.0.0.0/8,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16
|
||||
#TRUSTED_HOSTS='^(localhost|example\.com)$'
|
||||
###< symfony/framework-bundle ###
|
||||
|
||||
###> symfony/mailer ###
|
||||
# MAILER_DSN=smtp://localhost
|
||||
###< symfony/mailer ###
|
||||
|
||||
###< doctrine/doctrine-bundle ###
|
||||
|
||||
# Basic
|
||||
APP_ALIAS=schedule
|
||||
APP_AUTH=MYSQL
|
||||
APP_NAME=Schedule
|
||||
APP_ENV=PROD
|
||||
APP_CRON=false
|
||||
|
||||
# Office hours
|
||||
OFFICE_HOUR_START=09:00
|
||||
OFFICE_HOUR_END=17:30
|
||||
|
||||
# MAIL sendmail / smtp
|
||||
MAILER_METHOD=sendmail
|
||||
MAILER_URL=
|
||||
MAILER_NOREPLY=noreply@noreply.fr
|
||||
MAILER_DEFAULT_NOTIF=
|
||||
|
||||
# BDD
|
||||
DATABASE_NAME=
|
||||
DATABASE_USER=
|
||||
DATABASE_PASSWORD=
|
||||
DATABASE_HOST=
|
||||
|
||||
# If APP_AUTH = CAS
|
||||
CAS_HOST=
|
||||
CAS_PORT=
|
||||
CAS_PATH=
|
||||
CAS_USERNAME=username
|
||||
CAS_EMAIL=email
|
||||
CAS_LASTNAME=lastname
|
||||
CAS_FIRSTNAME=firstname
|
||||
|
||||
## Sentry DSN
|
||||
SENTRY_DSN=
|
||||
|
||||
# Dolibar
|
||||
DOLIBARR_ACTIVE=false
|
||||
DOLIBARR_API_KEY=
|
||||
DOLIBARR_URI=
|
||||
23
src/schedule-2.0/.gitignore
vendored
Normal file
23
src/schedule-2.0/.gitignore
vendored
Normal file
@@ -0,0 +1,23 @@
|
||||
|
||||
###> symfony/framework-bundle ###
|
||||
/.env.local
|
||||
/.env.local.php
|
||||
/.env.*.local
|
||||
/config/secrets/prod/prod.decrypt.private.php
|
||||
/public/bundles/
|
||||
/var/
|
||||
/vendor/
|
||||
###< symfony/framework-bundle ###
|
||||
|
||||
###> symfony/phpunit-bridge ###
|
||||
.phpunit
|
||||
.phpunit.result.cache
|
||||
/phpunit.xml
|
||||
###< symfony/phpunit-bridge ###
|
||||
|
||||
###> symfony/webpack-encore-bundle ###
|
||||
/node_modules/
|
||||
npm-debug.log
|
||||
yarn-error.log
|
||||
###< symfony/webpack-encore-bundle ###
|
||||
*~
|
||||
11
src/schedule-2.0/assets/js/dropzone.js
Normal file
11
src/schedule-2.0/assets/js/dropzone.js
Normal file
@@ -0,0 +1,11 @@
|
||||
require('dropzone/dist/min/dropzone.min.css');
|
||||
window.Dropzone = require('dropzone/dist/min/dropzone.min.js');
|
||||
//Dropzone.autoDiscover = false;
|
||||
|
||||
/*
|
||||
document.addEventListener('DOMContentLoaded', function() {
|
||||
var elt = document.getElementById('mydropzone');
|
||||
var mydropzone = new Dropzone(elt, { url: "upload"});
|
||||
global.mydropzone=mydropzone;
|
||||
});
|
||||
*/
|
||||
38
src/schedule-2.0/assets/js/fullcalendar.js
Normal file
38
src/schedule-2.0/assets/js/fullcalendar.js
Normal file
@@ -0,0 +1,38 @@
|
||||
// Fullcalendar
|
||||
require('@fullcalendar/core/main.css');
|
||||
require('@fullcalendar/daygrid/main.css');
|
||||
require('@fullcalendar/daygrid/main.css');
|
||||
|
||||
import { Calendar } from '@fullcalendar/core';
|
||||
import frLocale from '@fullcalendar/core/locales/fr.js';
|
||||
import interactionPlugin from '@fullcalendar/interaction';
|
||||
import dayGridPlugin from '@fullcalendar/daygrid';
|
||||
|
||||
var calendar;
|
||||
var e = document.getElementById("sideuser");
|
||||
var iduser = e.value;
|
||||
document.addEventListener('DOMContentLoaded', function() {
|
||||
var calendarEl = document.getElementById('fullcalendar');
|
||||
calendar = new Calendar(calendarEl, {
|
||||
plugins: [ interactionPlugin, dayGridPlugin ],
|
||||
locale: frLocale,
|
||||
weekNumbers: true,
|
||||
selectable: true,
|
||||
events: 'event/load/'+iduser,
|
||||
eventLimit:8,
|
||||
eventDrop: function(info) {
|
||||
info.revert();
|
||||
},
|
||||
eventRender: function (info) {
|
||||
eventRender(info);
|
||||
},
|
||||
select: function(selectionInfo) {
|
||||
eventSelect(selectionInfo);
|
||||
},
|
||||
eventClick: function(info) {
|
||||
eventClick(info);
|
||||
}
|
||||
});
|
||||
global.calendar = calendar;
|
||||
calendar.render();
|
||||
});
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user