From 18b367b4f97f866ef47614f124736df1c2a48114 Mon Sep 17 00:00:00 2001 From: Nicolas Guilloux Date: Wed, 5 May 2021 17:48:07 +0200 Subject: [PATCH 01/10] [WIP] Make the bundle simpler --- .../Annotation => Annotation}/BorderStyle.php | 4 +- .../ColumnDimension.php | 4 +- .../Annotation => Annotation}/ColumnMerge.php | 4 +- .../ColumnsAutoResize.php | 4 +- .../ContentStyle.php | 4 +- .../GroupBorderStyle.php | 4 +- .../Annotation => Annotation}/HeaderStyle.php | 4 +- .../Annotation => Annotation}/HeaderTitle.php | 4 +- {Data/Annotation => Annotation}/Style.php | 4 +- .../SheetColumnsSizeBuilder.php | 10 +- Builder/{ => Partials}/SheetHeaderBuilder.php | 10 +- Builder/Partials/SheetRowContentBuilder.php | 75 + Builder/SheetRowContentBuilder.php | 62 - Builder/SpreadsheetBuilder.php | 105 +- Builder/SpreadsheetBuilderInterface.php | 3 +- Config/ExcelSheetGeneratorConfiguration.php | 101 - Constraints/CorrectParent.php | 20 + Constraints/CorrectParentValidator.php | 30 + Data/Export.php | 14 - Data/ExportWithChildren.php | 23 - Data/Property.php | 52 - Event/SheetGeneratedEvent.php | 2 +- Event/SpreadsheetGeneratedEvent.php | 2 +- .../InvalidExcelSpreadsheetException.php | 30 + Exception/NotSupportedExportDataException.php | 26 - Factory/ExcelStreamedResponseFactory.php | 47 + Generator/ExcelGenerator.php | 36 +- Generator/ExcelGeneratorInterface.php | 6 +- Model/AbstractExcelChild.php | 43 + Model/ExcelContent.php | 23 + Model/ExcelSheet.php | 31 + Model/ExcelSpreadsheet.php | 51 + README.md | 4 +- Resources/services.xml | 6 +- RichIdExcelGeneratorBundle.php | 1 - Tests/Builder/SpreadsheetBuilderTest.php | 99 + Tests/DummyTest.php | 23 - Tests/Generator/ExcelGeneratorTest.php | 75 + Tests/Model/ExcelSpreadsheetTest.php | 89 + Tests/Resources/Kernel/TestKernel.php | 28 + Tests/Resources/Kernel/bin/console | 23 + Tests/Resources/Kernel/config/bundles.php | 5 + .../Kernel/config/packages/doctrine.yaml | 7 + .../Kernel/config/packages/framework.yaml | 2 + Tests/Resources/Kernel/config/services.yaml | 11 + Tests/Resources/Model/DummyExcelContent.php | 21 + Tests/Resources/TestCase/ModelTestCase.php | 28 + Utility/AnnotationReaderTrait.php | 8 +- Utility/CellStyleUtility.php | 24 +- composer.json | 11 +- composer.lock | 6139 ++++++++++++----- phpunit.xml.dist | 46 +- 52 files changed, 5195 insertions(+), 2293 deletions(-) rename {Data/Annotation => Annotation}/BorderStyle.php (96%) rename {Data/Annotation => Annotation}/ColumnDimension.php (75%) rename {Data/Annotation => Annotation}/ColumnMerge.php (71%) rename {Data/Annotation => Annotation}/ColumnsAutoResize.php (69%) rename {Data/Annotation => Annotation}/ContentStyle.php (70%) rename {Data/Annotation => Annotation}/GroupBorderStyle.php (81%) rename {Data/Annotation => Annotation}/HeaderStyle.php (69%) rename {Data/Annotation => Annotation}/HeaderTitle.php (78%) rename {Data/Annotation => Annotation}/Style.php (93%) rename Builder/{ => Partials}/SheetColumnsSizeBuilder.php (89%) rename Builder/{ => Partials}/SheetHeaderBuilder.php (92%) create mode 100644 Builder/Partials/SheetRowContentBuilder.php delete mode 100644 Builder/SheetRowContentBuilder.php delete mode 100644 Config/ExcelSheetGeneratorConfiguration.php create mode 100644 Constraints/CorrectParent.php create mode 100644 Constraints/CorrectParentValidator.php delete mode 100644 Data/Export.php delete mode 100644 Data/ExportWithChildren.php delete mode 100644 Data/Property.php create mode 100644 Exception/InvalidExcelSpreadsheetException.php delete mode 100644 Exception/NotSupportedExportDataException.php create mode 100644 Factory/ExcelStreamedResponseFactory.php create mode 100644 Model/AbstractExcelChild.php create mode 100644 Model/ExcelContent.php create mode 100644 Model/ExcelSheet.php create mode 100644 Model/ExcelSpreadsheet.php create mode 100644 Tests/Builder/SpreadsheetBuilderTest.php delete mode 100644 Tests/DummyTest.php create mode 100644 Tests/Generator/ExcelGeneratorTest.php create mode 100644 Tests/Model/ExcelSpreadsheetTest.php create mode 100755 Tests/Resources/Kernel/TestKernel.php create mode 100755 Tests/Resources/Kernel/bin/console create mode 100644 Tests/Resources/Kernel/config/bundles.php create mode 100644 Tests/Resources/Kernel/config/packages/doctrine.yaml create mode 100644 Tests/Resources/Kernel/config/packages/framework.yaml create mode 100755 Tests/Resources/Kernel/config/services.yaml create mode 100644 Tests/Resources/Model/DummyExcelContent.php create mode 100644 Tests/Resources/TestCase/ModelTestCase.php diff --git a/Data/Annotation/BorderStyle.php b/Annotation/BorderStyle.php similarity index 96% rename from Data/Annotation/BorderStyle.php rename to Annotation/BorderStyle.php index fec1e5f..01bd193 100644 --- a/Data/Annotation/BorderStyle.php +++ b/Annotation/BorderStyle.php @@ -1,11 +1,11 @@ * @copyright 2014 - 2021 RichId (https://www.rich-id.fr) */ diff --git a/Data/Annotation/ColumnDimension.php b/Annotation/ColumnDimension.php similarity index 75% rename from Data/Annotation/ColumnDimension.php rename to Annotation/ColumnDimension.php index ce86574..a063003 100644 --- a/Data/Annotation/ColumnDimension.php +++ b/Annotation/ColumnDimension.php @@ -1,11 +1,11 @@ * @copyright 2014 - 2021 RichId (https://www.rich-id.fr) * diff --git a/Data/Annotation/ColumnMerge.php b/Annotation/ColumnMerge.php similarity index 71% rename from Data/Annotation/ColumnMerge.php rename to Annotation/ColumnMerge.php index 3b92d84..bea0f14 100644 --- a/Data/Annotation/ColumnMerge.php +++ b/Annotation/ColumnMerge.php @@ -1,11 +1,11 @@ * @copyright 2014 - 2021 RichId (https://www.rich-id.fr) * diff --git a/Data/Annotation/ColumnsAutoResize.php b/Annotation/ColumnsAutoResize.php similarity index 69% rename from Data/Annotation/ColumnsAutoResize.php rename to Annotation/ColumnsAutoResize.php index 3d355eb..fbbf64f 100644 --- a/Data/Annotation/ColumnsAutoResize.php +++ b/Annotation/ColumnsAutoResize.php @@ -1,11 +1,11 @@ * @copyright 2014 - 2021 RichId (https://www.rich-id.fr) * diff --git a/Data/Annotation/ContentStyle.php b/Annotation/ContentStyle.php similarity index 70% rename from Data/Annotation/ContentStyle.php rename to Annotation/ContentStyle.php index dc6be7b..271132e 100644 --- a/Data/Annotation/ContentStyle.php +++ b/Annotation/ContentStyle.php @@ -1,11 +1,11 @@ * @copyright 2014 - 2021 RichId (https://www.rich-id.fr) * diff --git a/Data/Annotation/GroupBorderStyle.php b/Annotation/GroupBorderStyle.php similarity index 81% rename from Data/Annotation/GroupBorderStyle.php rename to Annotation/GroupBorderStyle.php index f923e89..66eacc0 100644 --- a/Data/Annotation/GroupBorderStyle.php +++ b/Annotation/GroupBorderStyle.php @@ -1,11 +1,11 @@ * @copyright 2014 - 2021 RichId (https://www.rich-id.fr) * diff --git a/Data/Annotation/HeaderStyle.php b/Annotation/HeaderStyle.php similarity index 69% rename from Data/Annotation/HeaderStyle.php rename to Annotation/HeaderStyle.php index 5890326..ea43d76 100644 --- a/Data/Annotation/HeaderStyle.php +++ b/Annotation/HeaderStyle.php @@ -1,11 +1,11 @@ * @copyright 2014 - 2021 RichId (https://www.rich-id.fr) * diff --git a/Data/Annotation/HeaderTitle.php b/Annotation/HeaderTitle.php similarity index 78% rename from Data/Annotation/HeaderTitle.php rename to Annotation/HeaderTitle.php index 8f84c95..00fc864 100644 --- a/Data/Annotation/HeaderTitle.php +++ b/Annotation/HeaderTitle.php @@ -1,11 +1,11 @@ * @copyright 2014 - 2021 RichId (https://www.rich-id.fr) * diff --git a/Data/Annotation/Style.php b/Annotation/Style.php similarity index 93% rename from Data/Annotation/Style.php rename to Annotation/Style.php index 28722bf..3fe2123 100644 --- a/Data/Annotation/Style.php +++ b/Annotation/Style.php @@ -1,11 +1,11 @@ * @copyright 2014 - 2021 RichId (https://www.rich-id.fr) */ diff --git a/Builder/SheetColumnsSizeBuilder.php b/Builder/Partials/SheetColumnsSizeBuilder.php similarity index 89% rename from Builder/SheetColumnsSizeBuilder.php rename to Builder/Partials/SheetColumnsSizeBuilder.php index 0147909..fb429b3 100644 --- a/Builder/SheetColumnsSizeBuilder.php +++ b/Builder/Partials/SheetColumnsSizeBuilder.php @@ -1,23 +1,23 @@ * @copyright 2014 - 2021 RichId (https://www.rich-id.fr) */ -final class SheetColumnsSizeBuilder +class SheetColumnsSizeBuilder { use AnnotationReaderTrait; diff --git a/Builder/SheetHeaderBuilder.php b/Builder/Partials/SheetHeaderBuilder.php similarity index 92% rename from Builder/SheetHeaderBuilder.php rename to Builder/Partials/SheetHeaderBuilder.php index f7531ec..0ba2bba 100644 --- a/Builder/SheetHeaderBuilder.php +++ b/Builder/Partials/SheetHeaderBuilder.php @@ -1,10 +1,10 @@ * @copyright 2014 - 2021 RichId (https://www.rich-id.fr) */ -final class SheetHeaderBuilder +class SheetHeaderBuilder { use AnnotationReaderTrait; diff --git a/Builder/Partials/SheetRowContentBuilder.php b/Builder/Partials/SheetRowContentBuilder.php new file mode 100644 index 0000000..6cc7135 --- /dev/null +++ b/Builder/Partials/SheetRowContentBuilder.php @@ -0,0 +1,75 @@ + + * @copyright 2014 - 2021 RichId (https://www.rich-id.fr) + */ +class SheetRowContentBuilder +{ + use AnnotationReaderTrait; + + /** @var CellStyleUtility */ + protected $cellStyleUtility; + + /** @var PropertyUtility */ + protected $propertyUtility; + + /** @var EventDispatcherInterface */ + protected $eventDispatcher; + + public function __construct(CellStyleUtility $cellStyleUtility, PropertyUtility $propertyUtility, EventDispatcherInterface $eventDispatcher) + { + $this->cellStyleUtility = $cellStyleUtility; + $this->propertyUtility = $propertyUtility; + $this->eventDispatcher = $eventDispatcher; + } + + public function __invoke(Worksheet $worksheet, ExcelContent $excelContent): void + { + $currentRow = $worksheet->getHighestRow(); + $reflectionClass = new \ReflectionClass($excelContent); + $properties = $reflectionClass->getProperties(\ReflectionProperty::IS_PUBLIC); + + foreach ($properties as $index => $property) { + if (in_array($property->getName(), ['parent', 'children'], true)) { + continue; + } + + $columnPointer = $index + 1; + $contentStyle = $this->getPropertyAnnotationForProperty($property, ContentStyle::class); + $columnMerge = $this->getPropertyAnnotationForProperty($property, ColumnMerge::class); + $content = $property->getValue($excelContent); + + $worksheet->setCellValueByColumnAndRow($columnPointer, $currentRow, $content); + + if ($columnMerge instanceof ColumnMerge) { + $worksheet->mergeCellsByColumnAndRow( + $columnPointer, + $currentRow, + $index + $columnMerge->count, + $currentRow + ); + } + + if ($contentStyle !== null) { + $this->cellStyleUtility->setStyleOfDataFor($worksheet, $contentStyle, $currentRow, $columnPointer, $excelContent); + } + } + } +} diff --git a/Builder/SheetRowContentBuilder.php b/Builder/SheetRowContentBuilder.php deleted file mode 100644 index b934181..0000000 --- a/Builder/SheetRowContentBuilder.php +++ /dev/null @@ -1,62 +0,0 @@ - - * @copyright 2014 - 2021 RichId (https://www.rich-id.fr) - */ -final class SheetRowContentBuilder -{ - use AnnotationReaderTrait; - - /** @var CellStyleUtility */ - protected $cellStyleUtility; - - /** @var PropertyUtility */ - protected $propertyUtility; - - /** @var EventDispatcherInterface */ - protected $eventDispatcher; - - public function __construct(CellStyleUtility $cellStyleUtility, PropertyUtility $propertyUtility, EventDispatcherInterface $eventDispatcher) - { - $this->cellStyleUtility = $cellStyleUtility; - $this->propertyUtility = $propertyUtility; - $this->eventDispatcher = $eventDispatcher; - } - - public function __invoke(Export $rowContent, Worksheet $sheet, ExcelSheetGeneratorConfiguration $configuration): void - { - $currentRow = $sheet->getHighestRow() === 1 ? 2 : $sheet->getHighestRow() + 1; - $properties = $this->propertyUtility->getPropertiesForConfigAndData($configuration, $rowContent); - - foreach ($properties as $key => $property) { - $contentStyle = $this->getPropertyAnnotationForProperty($property->getReflectionProperty(), ContentStyle::class); - $columnMerge = $this->getPropertyAnnotationForProperty($property->getReflectionProperty(), ColumnMerge::class); - - $sheet->setCellValueByColumnAndRow($key + 1, $currentRow, $property->getValue()); - - if ($columnMerge instanceof ColumnMerge) { - $sheet->mergeCellsByColumnAndRow($key + 1, $currentRow, $key + $columnMerge->count, $currentRow); - } - - if ($contentStyle !== null) { - $this->cellStyleUtility->setStyleOfDataFor($sheet, $contentStyle, $currentRow, $key + 1, $rowContent); - } - } - } -} diff --git a/Builder/SpreadsheetBuilder.php b/Builder/SpreadsheetBuilder.php index 42d3a9c..6362f7a 100644 --- a/Builder/SpreadsheetBuilder.php +++ b/Builder/SpreadsheetBuilder.php @@ -2,12 +2,18 @@ namespace RichId\ExcelGeneratorBundle\Builder; -use RichId\ExcelGeneratorBundle\Config\ExcelSheetGeneratorConfiguration; -use RichId\ExcelGeneratorBundle\Data\ExportWithChildren; +use RichId\ExcelGeneratorBundle\Builder\Partials\SheetColumnsSizeBuilder; +use RichId\ExcelGeneratorBundle\Builder\Partials\SheetHeaderBuilder; +use RichId\ExcelGeneratorBundle\Builder\Partials\SheetRowContentBuilder; use RichId\ExcelGeneratorBundle\Event\SheetGeneratedEvent; use RichId\ExcelGeneratorBundle\Event\SpreadsheetGeneratedEvent; use PhpOffice\PhpSpreadsheet\Spreadsheet; use PhpOffice\PhpSpreadsheet\Worksheet\Worksheet; +use RichId\ExcelGeneratorBundle\Exception\InvalidExcelSpreadsheetException; +use RichId\ExcelGeneratorBundle\Model\ExcelContent; +use RichId\ExcelGeneratorBundle\Model\ExcelSheet; +use RichId\ExcelGeneratorBundle\Model\ExcelSpreadsheet; +use Symfony\Component\Validator\Validator\ValidatorInterface; use Symfony\Contracts\EventDispatcher\EventDispatcherInterface; /** @@ -17,7 +23,7 @@ * @author Hugo Dumazeau * @copyright 2014 - 2021 RichId (https://www.rich-id.fr) */ -final class SpreadsheetBuilder implements SpreadsheetBuilderInterface +class SpreadsheetBuilder implements SpreadsheetBuilderInterface { /** @var EventDispatcherInterface */ protected $eventDispatcher; @@ -31,92 +37,77 @@ final class SpreadsheetBuilder implements SpreadsheetBuilderInterface /** @var SheetColumnsSizeBuilder */ protected $sheetColumnsSizeBuilder; + /** @var ValidatorInterface */ + protected $validator; + public function __construct( EventDispatcherInterface $eventDispatcher, SheetHeaderBuilder $sheetHeaderBuilder, SheetRowContentBuilder $sheetRowContentBuilder, - SheetColumnsSizeBuilder $sheetColumnsSizeBuilder + SheetColumnsSizeBuilder $sheetColumnsSizeBuilder, + ValidatorInterface $validator ) { $this->eventDispatcher = $eventDispatcher; $this->sheetHeaderBuilder = $sheetHeaderBuilder; $this->sheetRowContentBuilder = $sheetRowContentBuilder; $this->sheetColumnsSizeBuilder = $sheetColumnsSizeBuilder; + $this->validator = $validator; } - public function buildSpreadsheet(array $sheets): Spreadsheet + public function build(ExcelSpreadsheet $excelSpreadsheet): Spreadsheet { - $spreadsheet = new Spreadsheet(); - $worksheetCounter = 0; - - foreach ($sheets as $sheetName => $sheet) { - if ($worksheetCounter > 0) { - $worksheet = new Worksheet(); - $worksheet->setTitle((string) $sheetName); - $spreadsheet->addSheet($worksheet, $worksheetCounter); - $spreadsheet->setActiveSheetIndex($worksheetCounter); - } + $violations = $this->validator->validate($excelSpreadsheet); + + if ($violations->count() > 0) { + throw new InvalidExcelSpreadsheetException($excelSpreadsheet, $violations); + } - $this->addSheetIn($spreadsheet->getActiveSheet(), $this->getConfigurations($sheet)); - $spreadsheet->getActiveSheet()->removeRow(1); + $sheets = $excelSpreadsheet->getSheets(); + $spreadsheet = new Spreadsheet(); - $this->eventDispatcher->dispatch(SheetGeneratedEvent::create($spreadsheet->getActiveSheet())); + foreach ($sheets as $index => $sheet) { + $worksheet = $index === 0 ? $spreadsheet->getSheet(0) : new Worksheet(); + $this->buildSheet($worksheet, $sheet); - $worksheetCounter ++; + if ($index !== 0) { + $spreadsheet->addSheet($worksheet, $index); + } } - $spreadsheet->setActiveSheetIndex(0); - - $this->eventDispatcher->dispatch(SpreadsheetGeneratedEvent::create($spreadsheet)); + $event = SpreadsheetGeneratedEvent::create($spreadsheet); + $this->eventDispatcher->dispatch($event); return $spreadsheet; } - private function addSheetIn(Worksheet $sheet, array $configurations): void + protected function buildSheet(Worksheet $worksheet, ExcelSheet $excelSheet): Worksheet { - $lastIndex = \array_key_last($configurations); - - foreach ($configurations as $index => $configuration) { - if (!$configuration->isWithoutHeader()) { - ($this->sheetHeaderBuilder)($sheet, $configuration); - } + $worksheet->setTitle($excelSheet->name); - foreach ($configuration->getRowsContent() as $rowContent) { - ($this->sheetRowContentBuilder)($rowContent, $sheet, $configuration); - - if ($rowContent instanceof ExportWithChildren) { - $this->addSheetIn($sheet, [$rowContent->getChildConfiguration()]); - } - } + foreach ($excelSheet->getChildren() as $child) { + $this->buildContent($worksheet, $child); + } - ($this->sheetColumnsSizeBuilder)($sheet, $configuration); + $event = SheetGeneratedEvent::create($worksheet); + $this->eventDispatcher->dispatch($event); - if ($index !== $lastIndex) { - $sheet->setCellValueByColumnAndRow(1, $sheet->getHighestRow() + 1, ''); - } - } + return $worksheet; } - private function getConfigurations($config): array + protected function buildContent(Worksheet $worksheet, ExcelContent $excelContent): void { - if ($config instanceof ExcelSheetGeneratorConfiguration) { - return [$config]; - } - - if (!\is_iterable($config)) { - throw new \InvalidArgumentException(); - } +// if (!$configuration->isWithoutHeader()) { +// ($this->sheetHeaderBuilder)($sheet, $configuration); +// } - $configurations = []; - - foreach ($config as $configuration) { - if (!$configuration instanceof ExcelSheetGeneratorConfiguration) { - throw new \InvalidArgumentException(); - } + ($this->sheetRowContentBuilder)($worksheet, $excelContent); + $worksheet->setCellValueByColumnAndRow(1, $worksheet->getHighestRow() + 1, ''); - $configurations[] = $configuration; + foreach ($excelContent->getChildren() as $child) { + $this->buildContent($worksheet, $child); } - return $configurations; +// ($this->sheetColumnsSizeBuilder)($sheet, $configuration); } } diff --git a/Builder/SpreadsheetBuilderInterface.php b/Builder/SpreadsheetBuilderInterface.php index 93e7fa9..72c4630 100644 --- a/Builder/SpreadsheetBuilderInterface.php +++ b/Builder/SpreadsheetBuilderInterface.php @@ -3,6 +3,7 @@ namespace RichId\ExcelGeneratorBundle\Builder; use PhpOffice\PhpSpreadsheet\Spreadsheet; +use RichId\ExcelGeneratorBundle\Model\ExcelSpreadsheet; /** * Interface SpreadsheetBuilderInterface @@ -13,5 +14,5 @@ */ interface SpreadsheetBuilderInterface { - public function buildSpreadsheet(array $sheets): Spreadsheet; + public function build(ExcelSpreadsheet $excelSpreadsheet): Spreadsheet; } diff --git a/Config/ExcelSheetGeneratorConfiguration.php b/Config/ExcelSheetGeneratorConfiguration.php deleted file mode 100644 index 5e42aee..0000000 --- a/Config/ExcelSheetGeneratorConfiguration.php +++ /dev/null @@ -1,101 +0,0 @@ - - * @copyright 2014 - 2021 RichId (https://www.rich-id.fr) - */ -final class ExcelSheetGeneratorConfiguration -{ - /** @var string */ - protected $class; - - /** @var array */ - protected $rowsContent; - - /** @var array */ - protected $serializationGroups; - - /** @var bool bool */ - protected $withoutHeader = false; - - private function __construct() - { - } - - public static function create(string $class, array $rowsContent, array $serializationGroups = [], bool $ignoreClassAssertion = false): ExcelSheetGeneratorConfiguration - { - self::assertClassSubclassOfExport($class); - - if (!$ignoreClassAssertion) { - self::assertRowsContentSameClassAs($class, $rowsContent); - } - - $config = new self(); - - $config->class = $class; - $config->rowsContent = $rowsContent; - $config->serializationGroups = $serializationGroups; - - return $config; - } - - // Actions - - public function withoutHeader(): self - { - $this->withoutHeader = true; - - return $this; - } - - // Getters - - public function getClass(): string - { - return $this->class; - } - - public function getRowsContent(): array - { - return $this->rowsContent; - } - - public function getSerializationGroups(): array - { - return $this->serializationGroups; - } - - public function isWithoutHeader(): bool - { - return $this->withoutHeader; - } - - private static function assertClassSubclassOfExport(string $objectClass): void - { - $reflectionClass = new \ReflectionClass($objectClass); - - if (!$reflectionClass->isSubclassOf(Export::class)) { - throw new NotSupportedExportDataException($objectClass); - } - } - - private static function assertRowsContentSameClassAs(string $objectClass, array $rowsContent): void - { - foreach ($rowsContent as $rowContent) { - $rowContentClass = \get_class($rowContent); - - if ($rowContentClass !== $objectClass) { - throw new NotSameClassException($rowContentClass, $objectClass); - } - } - } -} diff --git a/Constraints/CorrectParent.php b/Constraints/CorrectParent.php new file mode 100644 index 0000000..4ed1191 --- /dev/null +++ b/Constraints/CorrectParent.php @@ -0,0 +1,20 @@ + + * @copyright 2014 - 2021 Rich ID (https://www.rich-id.fr) + * + * @Annotation + */ +class CorrectParent extends Constraint +{ + /** @var string */ + public $inappropriateParent = 'The parent is not what is expected, make sure you don\'t use an object twice and don\'t set the parent on your own.'; +} \ No newline at end of file diff --git a/Constraints/CorrectParentValidator.php b/Constraints/CorrectParentValidator.php new file mode 100644 index 0000000..1261e5b --- /dev/null +++ b/Constraints/CorrectParentValidator.php @@ -0,0 +1,30 @@ + + * @copyright 2014 - 2021 Rich ID (https://www.rich-id.fr) + */ +class CorrectParentValidator extends ConstraintValidator +{ + public function validate($value, Constraint $constraint): void + { + if (!$value instanceof AbstractExcelChild || !$constraint instanceof CorrectParent) { + return; + } + + $subject = $this->context->getObject(); + + if ($value->parent !== null && $subject !== $value->parent) { + $this->context->addViolation($constraint->inappropriateParent); + } + } +} \ No newline at end of file diff --git a/Data/Export.php b/Data/Export.php deleted file mode 100644 index 170bab3..0000000 --- a/Data/Export.php +++ /dev/null @@ -1,14 +0,0 @@ - - * @copyright 2014 - 2021 RichId (https://www.rich-id.fr) - */ -interface Export -{ -} diff --git a/Data/ExportWithChildren.php b/Data/ExportWithChildren.php deleted file mode 100644 index b3d4655..0000000 --- a/Data/ExportWithChildren.php +++ /dev/null @@ -1,23 +0,0 @@ - - * @copyright 2014 - 2021 RichId (https://www.rich-id.fr) - */ -abstract class ExportWithChildren implements Export -{ - /** @var ExcelSheetGeneratorConfiguration */ - protected $childConfiguration; - - public function getChildConfiguration(): ExcelSheetGeneratorConfiguration - { - return $this->childConfiguration; - } -} diff --git a/Data/Property.php b/Data/Property.php deleted file mode 100644 index 5c88316..0000000 --- a/Data/Property.php +++ /dev/null @@ -1,52 +0,0 @@ - - * @copyright 2014 - 2021 RichId (https://www.rich-id.fr) - */ -final class Property -{ - /** @var string */ - protected $name; - - /** @var \ReflectionProperty */ - protected $reflectionProperty; - - /** @var mixed */ - protected $value; - - private function __construct() - { - } - - public static function build(string $name, \ReflectionProperty $property, $value): self - { - $object = new self(); - - $object->name = $name; - $object->reflectionProperty = $property; - $object->value = $value; - - return $object; - } - - public function getName(): string - { - return $this->name; - } - - public function getReflectionProperty(): \ReflectionProperty - { - return $this->reflectionProperty; - } - - public function getValue() - { - return $this->value; - } -} diff --git a/Event/SheetGeneratedEvent.php b/Event/SheetGeneratedEvent.php index 3ccb446..a3eee74 100644 --- a/Event/SheetGeneratedEvent.php +++ b/Event/SheetGeneratedEvent.php @@ -12,7 +12,7 @@ * @author Hugo Dumazeau * @copyright 2014 - 2021 RichId (https://www.rich-id.fr) */ -final class SheetGeneratedEvent extends Event +class SheetGeneratedEvent extends Event { /** @var Worksheet */ protected $sheet; diff --git a/Event/SpreadsheetGeneratedEvent.php b/Event/SpreadsheetGeneratedEvent.php index 2f19bc8..bc7c96f 100644 --- a/Event/SpreadsheetGeneratedEvent.php +++ b/Event/SpreadsheetGeneratedEvent.php @@ -12,7 +12,7 @@ * @author Hugo Dumazeau * @copyright 2014 - 2021 RichId (https://www.rich-id.fr) */ -final class SpreadsheetGeneratedEvent extends Event +class SpreadsheetGeneratedEvent extends Event { /** @var Spreadsheet */ protected $spreadsheet; diff --git a/Exception/InvalidExcelSpreadsheetException.php b/Exception/InvalidExcelSpreadsheetException.php new file mode 100644 index 0000000..16f763c --- /dev/null +++ b/Exception/InvalidExcelSpreadsheetException.php @@ -0,0 +1,30 @@ + + * @copyright 2014 - 2021 Rich ID (https://www.rich-id.fr) + */ +class InvalidExcelSpreadsheetException extends \InvalidArgumentException implements ExcelExportException +{ + /** @var ExcelSpreadsheet */ + protected $excelSpreadsheet; + + /** @var ConstraintViolationListInterface */ + protected $violations; + + public function __construct(ExcelSpreadsheet $excelSpreadsheet, ConstraintViolationListInterface $violations) + { + $this->excelSpreadsheet = $excelSpreadsheet; + $this->violations = $violations; + + parent::__construct('Invalid excel spreadsheet.'); + } +} \ No newline at end of file diff --git a/Exception/NotSupportedExportDataException.php b/Exception/NotSupportedExportDataException.php deleted file mode 100644 index 11a2a7e..0000000 --- a/Exception/NotSupportedExportDataException.php +++ /dev/null @@ -1,26 +0,0 @@ - - * @copyright 2014 - 2021 RichId (https://www.rich-id.fr) - */ -class NotSupportedExportDataException extends \Exception implements ExcelExportException -{ - public function __construct(string $className) - { - parent::__construct( - \sprintf( - 'The class "%s" cannot be used to generate an excel export. Check that your class extends the %s class.', - $className, - Export::class - ) - ); - } -} diff --git a/Factory/ExcelStreamedResponseFactory.php b/Factory/ExcelStreamedResponseFactory.php new file mode 100644 index 0000000..fb4ce8d --- /dev/null +++ b/Factory/ExcelStreamedResponseFactory.php @@ -0,0 +1,47 @@ + + * @copyright 2014 - 2021 Rich ID (https://www.rich-id.fr) + */ +class ExcelStreamedResponseFactory +{ + /** @var SpreadsheetBuilderInterface */ + protected $spreadsheetBuilder; + + public function __construct(SpreadsheetBuilderInterface $spreadsheetBuilder) + { + $this->spreadsheetBuilder = $spreadsheetBuilder; + } + + public function __invoke(array $sheets, string $filename): StreamedResponse + { + $streamedResponse = new StreamedResponse(); + $writer = self::generateWriter($this->spreadsheetBuilder->buildSpreadsheet($sheets)); + + $streamedResponse->setCallback( + function () use ($writer) { + $writer->save('php://output'); + } + ); + + $streamedResponse->setStatusCode(Response::HTTP_OK); + $streamedResponse->headers->set('Content-Type', 'application/vnd.ms-excel'); + $streamedResponse->headers->set('Content-Disposition', \sprintf('attachment; filename="%s"', $filename)); + + return $streamedResponse->send(); + } + + private static function generateWriter(Spreadsheet $spreadsheet): Xlsx + { + return new Xlsx($spreadsheet); + } +} \ No newline at end of file diff --git a/Generator/ExcelGenerator.php b/Generator/ExcelGenerator.php index ff4736d..2f08381 100644 --- a/Generator/ExcelGenerator.php +++ b/Generator/ExcelGenerator.php @@ -3,10 +3,8 @@ namespace RichId\ExcelGeneratorBundle\Generator; use RichId\ExcelGeneratorBundle\Builder\SpreadsheetBuilderInterface; -use PhpOffice\PhpSpreadsheet\Spreadsheet; use PhpOffice\PhpSpreadsheet\Writer\Xlsx; -use Symfony\Component\HttpFoundation\Response; -use Symfony\Component\HttpFoundation\StreamedResponse; +use RichId\ExcelGeneratorBundle\Model\ExcelSpreadsheet; /** * Class ExcelGenerator @@ -15,7 +13,7 @@ * @author Hugo Dumazeau * @copyright 2014 - 2021 RichId (https://www.rich-id.fr) */ -final class ExcelGenerator implements ExcelGeneratorInterface +class ExcelGenerator implements ExcelGeneratorInterface { /** @var SpreadsheetBuilderInterface */ protected $spreadsheetBuilder; @@ -25,32 +23,12 @@ public function __construct(SpreadsheetBuilderInterface $spreadsheetBuilder) $this->spreadsheetBuilder = $spreadsheetBuilder; } - public function save(array $sheets, string $filename, string $path): void + public function save(ExcelSpreadsheet $excelSpreadsheet, string $path): void { - $writer = self::generateWriter($this->spreadsheetBuilder->buildSpreadsheet($sheets)); - $writer->save(\sprintf('%s/%s', $path, $filename)); - } - - public function generateResponse(array $sheets, string $filename): StreamedResponse - { - $streamedResponse = new StreamedResponse(); - $writer = self::generateWriter($this->spreadsheetBuilder->buildSpreadsheet($sheets)); - - $streamedResponse->setCallback( - function () use ($writer) { - $writer->save('php://output'); - } - ); + $spreadsheet = $this->spreadsheetBuilder->build($excelSpreadsheet); + $fullPath = \sprintf('%s/%s', $path, $excelSpreadsheet->filename); - $streamedResponse->setStatusCode(Response::HTTP_OK); - $streamedResponse->headers->set('Content-Type', 'application/vnd.ms-excel'); - $streamedResponse->headers->set('Content-Disposition', \sprintf('attachment; filename="%s"', $filename)); - - return $streamedResponse->send(); - } - - private function generateWriter(Spreadsheet $spreadsheet) - { - return new Xlsx($spreadsheet); + $writer = new Xlsx($spreadsheet); + $writer->save($fullPath); } } diff --git a/Generator/ExcelGeneratorInterface.php b/Generator/ExcelGeneratorInterface.php index 55d16c5..49a0ba9 100644 --- a/Generator/ExcelGeneratorInterface.php +++ b/Generator/ExcelGeneratorInterface.php @@ -2,7 +2,7 @@ namespace RichId\ExcelGeneratorBundle\Generator; -use Symfony\Component\HttpFoundation\StreamedResponse; +use RichId\ExcelGeneratorBundle\Model\ExcelSpreadsheet; /** * Interface ExcelGeneratorInterface @@ -13,7 +13,5 @@ */ interface ExcelGeneratorInterface { - public function save(array $sheets, string $filename, string $path): void; - - public function generateResponse(array $sheets, string $filename): StreamedResponse; + public function save(ExcelSpreadsheet $excelSpreadsheet, string $path): void; } diff --git a/Model/AbstractExcelChild.php b/Model/AbstractExcelChild.php new file mode 100644 index 0000000..d53da92 --- /dev/null +++ b/Model/AbstractExcelChild.php @@ -0,0 +1,43 @@ + + * @copyright 2014 - 2021 Rich ID (https://www.rich-id.fr) + */ +abstract class AbstractExcelChild +{ + /** + * @var ExcelContent[] + * + * @Assert\Valid() + * @Assert\All({ + * @Assert\Type("RichId\ExcelGeneratorBundle\Model\ExcelContent"), + * @CorrectParent() + * }) + */ + private $children = []; + + public function addChild(ExcelContent $excelContent): self + { + $this->children[] = $excelContent; + $excelContent->parent = $this; + + return $this; + } + + /** + * @return ExcelContent[] + */ + public function getChildren(): array + { + return $this->children; + } +} \ No newline at end of file diff --git a/Model/ExcelContent.php b/Model/ExcelContent.php new file mode 100644 index 0000000..2ec7263 --- /dev/null +++ b/Model/ExcelContent.php @@ -0,0 +1,23 @@ + + * @copyright 2014 - 2021 Rich ID (https://www.rich-id.fr) + */ +abstract class ExcelContent extends AbstractExcelChild +{ + /** + * @var AbstractExcelChild + * + * @Assert\NotNull() + * @Assert\Type("RichId\ExcelGeneratorBundle\Model\AbstractExcelChild") + */ + public $parent; +} \ No newline at end of file diff --git a/Model/ExcelSheet.php b/Model/ExcelSheet.php new file mode 100644 index 0000000..fe66fdd --- /dev/null +++ b/Model/ExcelSheet.php @@ -0,0 +1,31 @@ + + * @copyright 2014 - 2021 Rich ID (https://www.rich-id.fr) + */ +class ExcelSheet extends AbstractExcelChild +{ + /** + * @var ExcelSpreadsheet + * + * @Assert\NotNull() + * @Assert\Type("RichId\ExcelGeneratorBundle\Model\ExcelSpreadsheet") + */ + public $parent; + + /** + * @var string + * + * @Assert\NotBlank() + * @Assert\Type("string") + */ + public $name; +} \ No newline at end of file diff --git a/Model/ExcelSpreadsheet.php b/Model/ExcelSpreadsheet.php new file mode 100644 index 0000000..23c8a81 --- /dev/null +++ b/Model/ExcelSpreadsheet.php @@ -0,0 +1,51 @@ + + * @copyright 2014 - 2021 Rich ID (https://www.rich-id.fr) + */ +class ExcelSpreadsheet +{ + /** + * @var string + * + * @Assert\NotBlank() + * @Assert\Type("string") + */ + public $filename; + + /** + * @var ExcelSheet[] + * + * @Assert\Valid() + * @Assert\All({ + * @Assert\Type("RichId\ExcelGeneratorBundle\Model\ExcelSheet"), + * @CorrectParent() + * }) + */ + private $sheets = []; + + public function addSheet(ExcelSheet $excelSheet): self + { + $this->sheets[] = $excelSheet; + $excelSheet->parent = $this; + + return $this; + } + + /** + * @return ExcelSheet[] + */ + public function getSheets(): array + { + return $this->sheets; + } +} \ No newline at end of file diff --git a/README.md b/README.md index cdbf62b..190fdae 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ -![Test Image 1](.github/excel-generator-bundle.svg) +![Logo](.github/excel-generator-bundle.svg) -Getting Started With RichIdExcelGeneratorBundle +Rich ID Excel Generator Bundle ======================================= This version of the bundle requires Symfony 4.4+ and PHP 7.3+. diff --git a/Resources/services.xml b/Resources/services.xml index 463ed6d..d03954e 100644 --- a/Resources/services.xml +++ b/Resources/services.xml @@ -10,9 +10,9 @@ - - - + + + diff --git a/RichIdExcelGeneratorBundle.php b/RichIdExcelGeneratorBundle.php index 31246cb..d697f5b 100644 --- a/RichIdExcelGeneratorBundle.php +++ b/RichIdExcelGeneratorBundle.php @@ -13,5 +13,4 @@ */ class RichIdExcelGeneratorBundle extends AbstractBundle { - public const COMPILER_PASSES = []; } diff --git a/Tests/Builder/SpreadsheetBuilderTest.php b/Tests/Builder/SpreadsheetBuilderTest.php new file mode 100644 index 0000000..8f8eaf7 --- /dev/null +++ b/Tests/Builder/SpreadsheetBuilderTest.php @@ -0,0 +1,99 @@ + + * @copyright 2014 - 2021 Rich ID (https://www.rich-id.fr) + * + * @TestConfig("container") + * @covers \RichId\ExcelGeneratorBundle\Builder\SpreadsheetBuilder + */ +class SpreadsheetBuilderTest extends TestCase +{ + /** @var SpreadsheetBuilder */ + public $builder; + + public function testBuildInvalidExcelSpreadsheet(): void + { + $this->expectException(InvalidExcelSpreadsheetException::class); + + $excelSpreadsheet = new ExcelSpreadsheet(); + $this->builder->build($excelSpreadsheet); + } + + public function testEmptySpreadsheet(): void + { + $excelSpreadsheet = new ExcelSpreadsheet(); + $excelSpreadsheet->filename = 'spreadsheet.xls'; + + $spreadsheet = $this->builder->build($excelSpreadsheet); + + self::assertCount(1, $spreadsheet->getAllSheets()); + } + + public function testMultipleEmptySheets(): void + { + $excelSpreadsheet = new ExcelSpreadsheet(); + $excelSpreadsheet->filename = 'spreadsheet.xls'; + + $excelSheet = new ExcelSheet(); + $excelSheet->name = 'Sheet 1'; + $excelSpreadsheet->addSheet($excelSheet); + + $excelSheet = new ExcelSheet(); + $excelSheet->name = 'Sheet 2'; + $excelSpreadsheet->addSheet($excelSheet); + + $spreadsheet = $this->builder->build($excelSpreadsheet); + $sheets = $spreadsheet->getAllSheets(); + + self::assertCount(2, $sheets); + self::assertMatch( + [ + ['title' => 'Sheet 1'], + ['title' => 'Sheet 2'], + ], + $spreadsheet->getAllSheets() + ); + } + + public function testWithContent(): void + { + $excelSpreadsheet = new ExcelSpreadsheet(); + $excelSpreadsheet->filename = 'spreadsheet.xls'; + + $excelSheet = new ExcelSheet(); + $excelSheet->name = 'Sheet 1'; + $excelSpreadsheet->addSheet($excelSheet); + + $content = new DummyExcelContent(); + $excelSheet->addChild($content); + + $content = new DummyExcelContent(); + $excelSheet->addChild($content); + + $spreadsheet = $this->builder->build($excelSpreadsheet); + $sheet = $spreadsheet->getAllSheets()[0] ?? null; + self::assertInstanceOf(Worksheet::class, $sheet); + + self::assertSame('First property', $sheet->getCell('A1')->getValue()); + self::assertSame(2, $sheet->getCell('B1')->getValue()); + self::assertTrue($sheet->getCell('C1')->getValue()); + self::assertSame('First property', $sheet->getCell('A2')->getValue()); + self::assertSame(2, $sheet->getCell('B2')->getValue()); + self::assertTrue($sheet->getCell('C2')->getValue()); + } +} \ No newline at end of file diff --git a/Tests/DummyTest.php b/Tests/DummyTest.php deleted file mode 100644 index 716ce2a..0000000 --- a/Tests/DummyTest.php +++ /dev/null @@ -1,23 +0,0 @@ - - * @copyright 2014 - 2021 RichId (https://www.rich-id.fr) - */ -class DummyTest extends TestCase -{ - public function testInstanciateBundle(): void - { - $bundle = new RichIdExcelGeneratorBundle(); - - self::assertInstanceOf(RichIdExcelGeneratorBundle::class, $bundle); - } -} diff --git a/Tests/Generator/ExcelGeneratorTest.php b/Tests/Generator/ExcelGeneratorTest.php new file mode 100644 index 0000000..7cdfe93 --- /dev/null +++ b/Tests/Generator/ExcelGeneratorTest.php @@ -0,0 +1,75 @@ + + * @copyright 2014 - 2021 Rich ID (https://www.rich-id.fr) + * + * @TestConfig("container") + * @covers RichId\ExcelGeneratorBundle\Generator\ExcelGenerator + */ +final class ExcelGeneratorTest extends TestCase +{ + /** @var ExcelGenerator */ + public $generator; + + /** @var string */ + private $cacheDirectory; + + protected function beforeTest(): void + { + $this->cacheDirectory = $this->getService(ParameterBagInterface::class)->get('kernel.cache_dir'); + } + + public function testGenerate(): void + { + $filePath = $this->cacheDirectory . '/spreadsheet.xls'; + + if (file_exists($filePath)) { + unlink($filePath); + } + + $excelSpreadsheet = new ExcelSpreadsheet(); + $excelSpreadsheet->filename = 'spreadsheet.xls'; + + $excelSheet = new ExcelSheet(); + $excelSheet->name = 'Sheet 1'; + $excelSpreadsheet->addSheet($excelSheet); + + $content = new DummyExcelContent(); + $content->property1 = 'First row'; + $excelSheet->addChild($content); + + $content = new DummyExcelContent(); + $content->property1 = 'Second row'; + $excelSheet->addChild($content); + + $excelSheet = new ExcelSheet(); + $excelSheet->name = 'Sheet 2'; + $excelSpreadsheet->addSheet($excelSheet); + + $content = new DummyExcelContent(); + $content->property1 = 'First row'; + $excelSheet->addChild($content); + + $content = new DummyExcelContent(); + $content->property1 = 'Second row'; + $excelSheet->addChild($content); + + $this->generator->save($excelSpreadsheet, $this->cacheDirectory); + + self::assertFileExists($filePath); + } +} \ No newline at end of file diff --git a/Tests/Model/ExcelSpreadsheetTest.php b/Tests/Model/ExcelSpreadsheetTest.php new file mode 100644 index 0000000..80a31c3 --- /dev/null +++ b/Tests/Model/ExcelSpreadsheetTest.php @@ -0,0 +1,89 @@ + + * @copyright 2014 - 2021 Rich ID (https://www.rich-id.fr) + * + * @covers \RichId\ExcelGeneratorBundle\Model\ExcelSpreadsheet + * @covers \RichId\ExcelGeneratorBundle\Constraints\CorrectParent + * @covers \RichId\ExcelGeneratorBundle\Constraints\CorrectParentValidator + */ +class ExcelSpreadsheetTest extends ModelTestCase +{ + /** @var ExcelSpreadsheet */ + protected $model; + + protected function beforeTest(): void + { + $sheet = new ExcelSheet(); + $sheet->name = 'Sheet 1'; + + $this->model = new ExcelSpreadsheet(); + $this->model->filename = 'filename.xls'; + $this->model->addSheet($sheet); + } + + public function testValid(): void + { + self::assertEmpty($this->validate()); + } + + public function testNoFilename(): void + { + $this->model->filename = null; + $violations = $this->validate(); + + self::assertCount(1, $violations); + self::assertSame('This value should not be blank.', $violations->get(0)->getMessage()); + } + + public function testNotString(): void + { + $this->model->filename = 9; + $violations = $this->validate(); + + self::assertCount(1, $violations); + self::assertSame('This value should be of type string.', $violations->get(0)->getMessage()); + } + + public function testBadSheetInstance(): void + { + $excelContent = new DummyExcelContent(); + $excelContent->parent = $this->model; + + ForceExecutionHelper::setValue( + $this->model, + 'sheets', + [$excelContent] + ); + + $violations = $this->validate(); + + self::assertCount(2, $violations); + self::assertStringContainsString('This value should be of type ' . ExcelSheet::class, $violations->get(0)->getMessage()); + self::assertStringContainsString('This value should be of type ' . AbstractExcelChild::class, $violations->get(1)->getMessage()); + } + + public function testInappropriateParent(): void + { + $sheets = $this->model->getSheets()[0]; + $sheets->parent = new ExcelSpreadsheet(); + + $violations = $this->validate(); + + self::assertCount(1, $violations); + self::assertSame('The parent is not what is expected, make sure you don\'t use an object twice and don\'t set the parent on your own.', $violations->get(0)->getMessage()); + } +} \ No newline at end of file diff --git a/Tests/Resources/Kernel/TestKernel.php b/Tests/Resources/Kernel/TestKernel.php new file mode 100755 index 0000000..145aeff --- /dev/null +++ b/Tests/Resources/Kernel/TestKernel.php @@ -0,0 +1,28 @@ + + * @copyright 2014 - 2021 RichID (https://www.rich-id.fr) + */ +class TestKernel extends DefaultTestKernel +{ + public function __construct() + { + parent::__construct('test', false); + } + + /** + * @return string|null + */ + public function getConfigurationDir(): ?string + { + return __DIR__ . '/config'; + } +} diff --git a/Tests/Resources/Kernel/bin/console b/Tests/Resources/Kernel/bin/console new file mode 100755 index 0000000..70cfe4b --- /dev/null +++ b/Tests/Resources/Kernel/bin/console @@ -0,0 +1,23 @@ +#!/usr/bin/env php +run($input); diff --git a/Tests/Resources/Kernel/config/bundles.php b/Tests/Resources/Kernel/config/bundles.php new file mode 100644 index 0000000..f4d6d92 --- /dev/null +++ b/Tests/Resources/Kernel/config/bundles.php @@ -0,0 +1,5 @@ + ['all' => true], +]; diff --git a/Tests/Resources/Kernel/config/packages/doctrine.yaml b/Tests/Resources/Kernel/config/packages/doctrine.yaml new file mode 100644 index 0000000..a79f4d3 --- /dev/null +++ b/Tests/Resources/Kernel/config/packages/doctrine.yaml @@ -0,0 +1,7 @@ +doctrine: + dbal: + driver: pdo_sqlite + user: test + path: '%kernel.cache_dir%/__DBNAME__.db' + url: null + memory: true diff --git a/Tests/Resources/Kernel/config/packages/framework.yaml b/Tests/Resources/Kernel/config/packages/framework.yaml new file mode 100644 index 0000000..f76cc2e --- /dev/null +++ b/Tests/Resources/Kernel/config/packages/framework.yaml @@ -0,0 +1,2 @@ +framework: + test: true diff --git a/Tests/Resources/Kernel/config/services.yaml b/Tests/Resources/Kernel/config/services.yaml new file mode 100755 index 0000000..43289e6 --- /dev/null +++ b/Tests/Resources/Kernel/config/services.yaml @@ -0,0 +1,11 @@ +services: + _defaults: + autoconfigure: true + autowire: true + public: true + + RichId\ExcelGeneratorBundle\Generator\ExcelGenerator: + public: true + + RichId\ExcelGeneratorBundle\Builder\SpreadsheetBuilder: + public: true \ No newline at end of file diff --git a/Tests/Resources/Model/DummyExcelContent.php b/Tests/Resources/Model/DummyExcelContent.php new file mode 100644 index 0000000..a2a879b --- /dev/null +++ b/Tests/Resources/Model/DummyExcelContent.php @@ -0,0 +1,21 @@ + + * @copyright 2014 - 2021 Rich ID (https://www.rich-id.fr) + */ +class DummyExcelContent extends ExcelContent +{ + public $property1 = 'First property'; + + public $property2 = 2; + + public $property3 = true; +} \ No newline at end of file diff --git a/Tests/Resources/TestCase/ModelTestCase.php b/Tests/Resources/TestCase/ModelTestCase.php new file mode 100644 index 0000000..8681722 --- /dev/null +++ b/Tests/Resources/TestCase/ModelTestCase.php @@ -0,0 +1,28 @@ + + * @copyright 2014 - 2021 Rich ID (https://www.rich-id.fr) + * + * @TestConfig("container") + */ +abstract class ModelTestCase extends TestCase +{ + /** @var object */ + protected $model; + + protected function validate(): ConstraintViolationListInterface + { + return $this->getService(ValidatorInterface::class)->validate($this->model); + } +} \ No newline at end of file diff --git a/Utility/AnnotationReaderTrait.php b/Utility/AnnotationReaderTrait.php index 440adc7..2f21cbb 100644 --- a/Utility/AnnotationReaderTrait.php +++ b/Utility/AnnotationReaderTrait.php @@ -14,7 +14,7 @@ trait AnnotationReaderTrait { /** @var AnnotationReader */ - protected $annotationReader; + private $annotationReader; protected function getClassAnnotationFor(string $class, string $annotation) { @@ -28,10 +28,10 @@ protected function getPropertyAnnotationForProperty(\ReflectionProperty $propert private function getAnnotationReader(): AnnotationReader { - if ($this->annotationReader !== null) { - return $this->annotationReader; + if ($this->annotationReader === null) { + $this->annotationReader = new AnnotationReader(); } - return new AnnotationReader(); + return $this->annotationReader; } } diff --git a/Utility/CellStyleUtility.php b/Utility/CellStyleUtility.php index 70ba477..ce52041 100644 --- a/Utility/CellStyleUtility.php +++ b/Utility/CellStyleUtility.php @@ -3,11 +3,11 @@ namespace RichId\ExcelGeneratorBundle\Utility; use PhpOffice\PhpSpreadsheet\Style\Border; -use RichId\ExcelGeneratorBundle\Data\Annotation\Style; -use RichId\ExcelGeneratorBundle\Data\Export; +use RichId\ExcelGeneratorBundle\Annotation\Style; use PhpOffice\PhpSpreadsheet\Cell\Coordinate; use PhpOffice\PhpSpreadsheet\Style\Fill; use PhpOffice\PhpSpreadsheet\Worksheet\Worksheet; +use RichId\ExcelGeneratorBundle\Model\ExcelContent; use Symfony\Component\ExpressionLanguage\ExpressionLanguage; /** @@ -32,7 +32,7 @@ public function setStyleFor(Worksheet $sheet, Style $style, int $row, int $from, $this->setStyleOfDataFor($sheet, $style, $row, $from, null, $to); } - public function setStyleOfDataFor(Worksheet $sheet, Style $style, int $row, int $from, ?Export $data, ?int $to = null): void + public function setStyleOfDataFor(Worksheet $sheet, Style $style, int $row, int $from, ?ExcelContent $data, ?int $to = null): void { $items = $to === null ? \sprintf('%s%d', Coordinate::stringFromColumnIndex($from), $row) @@ -43,7 +43,7 @@ public function setStyleOfDataFor(Worksheet $sheet, Style $style, int $row, int ->applyFromArray($this->buildStyleToApply($style, $data)); } - private function buildStyleToApply(Style $style, ?Export $data = null): array + private function buildStyleToApply(Style $style, ?ExcelContent $data = null): array { $buildStyle = []; @@ -111,16 +111,16 @@ private function buildStyleToApply(Style $style, ?Export $data = null): array return $buildStyle; } - private function getStyleValueWithExpression(string $value, ?Export $data = null): ?string + private function getStyleValueWithExpression(string $value, ?ExcelContent $data = null): ?string { - if (\strpos($value, 'this.') !== false && $data !== null) { - try { - return $this->expressionLanguage->evaluate($value, ['this' => $data]); - } catch (\Exception $e) { - return ''; - } - } else { + if ($data === null || \strpos($value, 'this.') === false) { return $value; } + + try { + return $this->expressionLanguage->evaluate($value, ['this' => $data]); + } catch (\Exception $e) { + return ''; + } } } diff --git a/composer.json b/composer.json index affefe6..c81f28a 100644 --- a/composer.json +++ b/composer.json @@ -17,14 +17,19 @@ }, "require": { "php": ">=7.3", + "doctrine/annotations": "^1.12", "phpoffice/phpspreadsheet": "^1.16", "richcongress/bundle-toolbox": "*", - "symfony/expression-language": "^4.4|^5.2" + "symfony/expression-language": "^4|^5", + "symfony/serializer-pack": "^1.0", + "symfony/translation": "^4|^5", + "symfony/validator": "^4|^5" }, "require-dev": { - "richcongress/unit-bundle": "v2.0.0.x-dev", + "roave/security-advisories": "dev-latest", "infection/infection": "^0.16.4", - "php-coveralls/php-coveralls": "^2.1" + "php-coveralls/php-coveralls": "^2.1", + "richcongress/test-suite": "^0.1" }, "autoload": { "psr-4": { diff --git a/composer.lock b/composer.lock index 42304df..a6d5509 100644 --- a/composer.lock +++ b/composer.lock @@ -4,8 +4,158 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "4615098df46aef9753b7320b68322d4d", + "content-hash": "01b3c741ad69433c08b69bd2a7838c73", "packages": [ + { + "name": "doctrine/annotations", + "version": "1.12.1", + "source": { + "type": "git", + "url": "https://github.com/doctrine/annotations.git", + "reference": "b17c5014ef81d212ac539f07a1001832df1b6d3b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/annotations/zipball/b17c5014ef81d212ac539f07a1001832df1b6d3b", + "reference": "b17c5014ef81d212ac539f07a1001832df1b6d3b", + "shasum": "" + }, + "require": { + "doctrine/lexer": "1.*", + "ext-tokenizer": "*", + "php": "^7.1 || ^8.0" + }, + "require-dev": { + "doctrine/cache": "1.*", + "doctrine/coding-standard": "^6.0 || ^8.1", + "phpstan/phpstan": "^0.12.20", + "phpunit/phpunit": "^7.5 || ^9.1.5" + }, + "type": "library", + "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": "https://www.doctrine-project.org/projects/annotations.html", + "keywords": [ + "annotations", + "docblock", + "parser" + ], + "support": { + "issues": "https://github.com/doctrine/annotations/issues", + "source": "https://github.com/doctrine/annotations/tree/1.12.1" + }, + "time": "2021-02-21T21:00:45+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" + ], + "support": { + "issues": "https://github.com/doctrine/lexer/issues", + "source": "https://github.com/doctrine/lexer/tree/1.2.1" + }, + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Flexer", + "type": "tidelift" + } + ], + "time": "2020-05-25T17:44:05+00:00" + }, { "name": "ezyang/htmlpurifier", "version": "v4.13.0", @@ -54,6 +204,10 @@ "keywords": [ "html" ], + "support": { + "issues": "https://github.com/ezyang/htmlpurifier/issues", + "source": "https://github.com/ezyang/htmlpurifier/tree/master" + }, "time": "2020-06-29T00:56:53+00:00" }, { @@ -115,6 +269,16 @@ "stream", "zip" ], + "support": { + "issues": "https://github.com/maennchen/ZipStream-PHP/issues", + "source": "https://github.com/maennchen/ZipStream-PHP/tree/master" + }, + "funding": [ + { + "url": "https://opencollective.com/zipstream", + "type": "open_collective" + } + ], "time": "2020-05-30T13:11:16+00:00" }, { @@ -210,6 +374,10 @@ "complex", "mathematics" ], + "support": { + "issues": "https://github.com/MarkBaker/PHPComplex/issues", + "source": "https://github.com/MarkBaker/PHPComplex/tree/PHP8" + }, "time": "2020-08-26T10:42:07+00:00" }, { @@ -280,6 +448,10 @@ "matrix", "vector" ], + "support": { + "issues": "https://github.com/MarkBaker/PHPMatrix/issues", + "source": "https://github.com/MarkBaker/PHPMatrix/tree/2.1.2" + }, "time": "2021-01-23T16:37:31+00:00" }, { @@ -326,65 +498,48 @@ "keywords": [ "enum" ], + "support": { + "issues": "https://github.com/myclabs/php-enum/issues", + "source": "https://github.com/myclabs/php-enum/tree/1.8.0" + }, + "funding": [ + { + "url": "https://github.com/mnapoli", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/myclabs/php-enum", + "type": "tidelift" + } + ], "time": "2021-02-15T16:11:48+00:00" }, { - "name": "phpoffice/phpspreadsheet", - "version": "1.16.0", + "name": "phpdocumentor/reflection-common", + "version": "2.2.0", "source": { "type": "git", - "url": "https://github.com/PHPOffice/PhpSpreadsheet.git", - "reference": "76d4323b85129d0c368149c831a07a3e258b2b50" + "url": "https://github.com/phpDocumentor/ReflectionCommon.git", + "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHPOffice/PhpSpreadsheet/zipball/76d4323b85129d0c368149c831a07a3e258b2b50", - "reference": "76d4323b85129d0c368149c831a07a3e258b2b50", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/1d01c49d4ed62f25aa84a747ad35d5a16924662b", + "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b", "shasum": "" }, "require": { - "ext-ctype": "*", - "ext-dom": "*", - "ext-fileinfo": "*", - "ext-gd": "*", - "ext-iconv": "*", - "ext-libxml": "*", - "ext-mbstring": "*", - "ext-simplexml": "*", - "ext-xml": "*", - "ext-xmlreader": "*", - "ext-xmlwriter": "*", - "ext-zip": "*", - "ext-zlib": "*", - "ezyang/htmlpurifier": "^4.13", - "maennchen/zipstream-php": "^2.1", - "markbaker/complex": "^1.5||^2.0", - "markbaker/matrix": "^1.2||^2.0", - "php": "^7.2||^8.0", - "psr/http-client": "^1.0", - "psr/http-factory": "^1.0", - "psr/simple-cache": "^1.0" - }, - "require-dev": { - "dompdf/dompdf": "^0.8.5", - "friendsofphp/php-cs-fixer": "^2.16", - "jpgraph/jpgraph": "^4.0", - "mpdf/mpdf": "^8.0", - "phpcompatibility/php-compatibility": "^9.3", - "phpunit/phpunit": "^8.5||^9.3", - "squizlabs/php_codesniffer": "^3.5", - "tecnickcom/tcpdf": "^6.3" - }, - "suggest": { - "dompdf/dompdf": "Option for rendering PDF with PDF Writer (doesn't yet support PHP8)", - "jpgraph/jpgraph": "Option for rendering charts, or including charts with PDF or HTML Writers", - "mpdf/mpdf": "Option for rendering PDF with PDF Writer", - "tecnickcom/tcpdf": "Option for rendering PDF with PDF Writer (doesn't yet support PHP8)" + "php": "^7.2 || ^8.0" }, "type": "library", + "extra": { + "branch-alias": { + "dev-2.x": "2.x-dev" + } + }, "autoload": { "psr-4": { - "PhpOffice\\PhpSpreadsheet\\": "src/PhpSpreadsheet" + "phpDocumentor\\Reflection\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -393,54 +548,247 @@ ], "authors": [ { - "name": "Maarten Balliauw", - "homepage": "https://blog.maartenballiauw.be" - }, - { - "name": "Mark Baker", - "homepage": "https://markbakeruk.net" - }, - { - "name": "Franck Lefevre", - "homepage": "https://rootslabs.net" - }, - { - "name": "Erik Tilt" - }, - { - "name": "Adrien Crivelli" + "name": "Jaap van Otterdijk", + "email": "opensource@ijaap.nl" } ], - "description": "PHPSpreadsheet - Read, Create and Write Spreadsheet documents in PHP - Spreadsheet engine", - "homepage": "https://github.com/PHPOffice/PhpSpreadsheet", + "description": "Common reflection classes used by phpdocumentor to reflect the code structure", + "homepage": "http://www.phpdoc.org", "keywords": [ - "OpenXML", - "excel", - "gnumeric", - "ods", - "php", - "spreadsheet", - "xls", - "xlsx" + "FQSEN", + "phpDocumentor", + "phpdoc", + "reflection", + "static analysis" ], - "time": "2020-12-31T18:03:49+00:00" + "support": { + "issues": "https://github.com/phpDocumentor/ReflectionCommon/issues", + "source": "https://github.com/phpDocumentor/ReflectionCommon/tree/2.x" + }, + "time": "2020-06-27T09:03:43+00:00" }, { - "name": "psr/cache", - "version": "1.0.1", + "name": "phpdocumentor/reflection-docblock", + "version": "5.2.2", "source": { "type": "git", - "url": "https://github.com/php-fig/cache.git", - "reference": "d11b50ad223250cf17b86e38383413f5a6764bf8" + "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", + "reference": "069a785b2141f5bcf49f3e353548dc1cce6df556" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/cache/zipball/d11b50ad223250cf17b86e38383413f5a6764bf8", - "reference": "d11b50ad223250cf17b86e38383413f5a6764bf8", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/069a785b2141f5bcf49f3e353548dc1cce6df556", + "reference": "069a785b2141f5bcf49f3e353548dc1cce6df556", "shasum": "" }, "require": { - "php": ">=5.3.0" + "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.", + "support": { + "issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues", + "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/master" + }, + "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", + "support": { + "issues": "https://github.com/phpDocumentor/TypeResolver/issues", + "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.4.0" + }, + "time": "2020-09-17T18:55:26+00:00" + }, + { + "name": "phpoffice/phpspreadsheet", + "version": "1.17.1", + "source": { + "type": "git", + "url": "https://github.com/PHPOffice/PhpSpreadsheet.git", + "reference": "c55269cb06911575a126dc225a05c0e4626e5fb4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/PHPOffice/PhpSpreadsheet/zipball/c55269cb06911575a126dc225a05c0e4626e5fb4", + "reference": "c55269cb06911575a126dc225a05c0e4626e5fb4", + "shasum": "" + }, + "require": { + "ext-ctype": "*", + "ext-dom": "*", + "ext-fileinfo": "*", + "ext-gd": "*", + "ext-iconv": "*", + "ext-libxml": "*", + "ext-mbstring": "*", + "ext-simplexml": "*", + "ext-xml": "*", + "ext-xmlreader": "*", + "ext-xmlwriter": "*", + "ext-zip": "*", + "ext-zlib": "*", + "ezyang/htmlpurifier": "^4.13", + "maennchen/zipstream-php": "^2.1", + "markbaker/complex": "^1.5||^2.0", + "markbaker/matrix": "^1.2||^2.0", + "php": "^7.2||^8.0", + "psr/http-client": "^1.0", + "psr/http-factory": "^1.0", + "psr/simple-cache": "^1.0" + }, + "require-dev": { + "dompdf/dompdf": "^0.8.5", + "friendsofphp/php-cs-fixer": "^2.18", + "jpgraph/jpgraph": "^4.0", + "mpdf/mpdf": "^8.0", + "phpcompatibility/php-compatibility": "^9.3", + "phpunit/phpunit": "^8.5||^9.3", + "squizlabs/php_codesniffer": "^3.5", + "tecnickcom/tcpdf": "^6.3" + }, + "suggest": { + "dompdf/dompdf": "Option for rendering PDF with PDF Writer (doesn't yet support PHP8)", + "jpgraph/jpgraph": "Option for rendering charts, or including charts with PDF or HTML Writers", + "mpdf/mpdf": "Option for rendering PDF with PDF Writer", + "tecnickcom/tcpdf": "Option for rendering PDF with PDF Writer (doesn't yet support PHP8)" + }, + "type": "library", + "autoload": { + "psr-4": { + "PhpOffice\\PhpSpreadsheet\\": "src/PhpSpreadsheet" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Maarten Balliauw", + "homepage": "https://blog.maartenballiauw.be" + }, + { + "name": "Mark Baker", + "homepage": "https://markbakeruk.net" + }, + { + "name": "Franck Lefevre", + "homepage": "https://rootslabs.net" + }, + { + "name": "Erik Tilt" + }, + { + "name": "Adrien Crivelli" + } + ], + "description": "PHPSpreadsheet - Read, Create and Write Spreadsheet documents in PHP - Spreadsheet engine", + "homepage": "https://github.com/PHPOffice/PhpSpreadsheet", + "keywords": [ + "OpenXML", + "excel", + "gnumeric", + "ods", + "php", + "spreadsheet", + "xls", + "xlsx" + ], + "support": { + "issues": "https://github.com/PHPOffice/PhpSpreadsheet/issues", + "source": "https://github.com/PHPOffice/PhpSpreadsheet/tree/1.17.1" + }, + "time": "2021-03-02T17:54:11+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": { @@ -469,31 +817,29 @@ "psr", "psr-6" ], + "support": { + "source": "https://github.com/php-fig/cache/tree/master" + }, "time": "2016-08-06T20:24:11+00:00" }, { "name": "psr/container", - "version": "1.0.0", + "version": "1.1.1", "source": { "type": "git", "url": "https://github.com/php-fig/container.git", - "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f" + "reference": "8622567409010282b7aeebe4bb841fe98b58dcaf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/container/zipball/b7ce3b176482dbbc1245ebf52b181af44c2cf55f", - "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f", + "url": "https://api.github.com/repos/php-fig/container/zipball/8622567409010282b7aeebe4bb841fe98b58dcaf", + "reference": "8622567409010282b7aeebe4bb841fe98b58dcaf", "shasum": "" }, "require": { - "php": ">=5.3.0" + "php": ">=7.2.0" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, "autoload": { "psr-4": { "Psr\\Container\\": "src/" @@ -506,7 +852,7 @@ "authors": [ { "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" + "homepage": "https://www.php-fig.org/" } ], "description": "Common Container Interface (PHP FIG PSR-11)", @@ -518,7 +864,61 @@ "container-interop", "psr" ], - "time": "2017-02-14T16:28:37+00:00" + "support": { + "issues": "https://github.com/php-fig/container/issues", + "source": "https://github.com/php-fig/container/tree/1.1.1" + }, + "time": "2021-03-05T17:36:06+00:00" + }, + { + "name": "psr/event-dispatcher", + "version": "1.0.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/event-dispatcher.git", + "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/event-dispatcher/zipball/dbefd12671e8a14ec7f180cab83036ed26714bb0", + "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0", + "shasum": "" + }, + "require": { + "php": ">=7.2.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\EventDispatcher\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Standard interfaces for event handling.", + "keywords": [ + "events", + "psr", + "psr-14" + ], + "support": { + "issues": "https://github.com/php-fig/event-dispatcher/issues", + "source": "https://github.com/php-fig/event-dispatcher/tree/1.0.0" + }, + "time": "2019-01-08T18:20:26+00:00" }, { "name": "psr/http-client", @@ -567,6 +967,9 @@ "psr", "psr-18" ], + "support": { + "source": "https://github.com/php-fig/http-client/tree/master" + }, "time": "2020-06-29T06:28:15+00:00" }, { @@ -619,6 +1022,9 @@ "request", "response" ], + "support": { + "source": "https://github.com/php-fig/http-factory/tree/master" + }, "time": "2019-04-30T12:38:16+00:00" }, { @@ -669,20 +1075,23 @@ "request", "response" ], + "support": { + "source": "https://github.com/php-fig/http-message/tree/master" + }, "time": "2016-08-06T14:39:51+00:00" }, { "name": "psr/log", - "version": "1.1.3", + "version": "1.1.4", "source": { "type": "git", "url": "https://github.com/php-fig/log.git", - "reference": "0f73288fd15629204f9d42b7055f72dacbe811fc" + "reference": "d49695b909c3b7628b6289db5479a1c204601f11" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/log/zipball/0f73288fd15629204f9d42b7055f72dacbe811fc", - "reference": "0f73288fd15629204f9d42b7055f72dacbe811fc", + "url": "https://api.github.com/repos/php-fig/log/zipball/d49695b909c3b7628b6289db5479a1c204601f11", + "reference": "d49695b909c3b7628b6289db5479a1c204601f11", "shasum": "" }, "require": { @@ -706,7 +1115,7 @@ "authors": [ { "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" + "homepage": "https://www.php-fig.org/" } ], "description": "Common interface for logging libraries", @@ -716,7 +1125,10 @@ "psr", "psr-3" ], - "time": "2020-03-23T09:12:05+00:00" + "support": { + "source": "https://github.com/php-fig/log/tree/1.1.4" + }, + "time": "2021-05-03T11:20:27+00:00" }, { "name": "psr/simple-cache", @@ -764,6 +1176,9 @@ "psr-16", "simple-cache" ], + "support": { + "source": "https://github.com/php-fig/simple-cache/tree/master" + }, "time": "2017-10-23T01:57:42+00:00" }, { @@ -807,25 +1222,29 @@ } ], "description": "A set of classes and tools to quickly build a bundle", + "support": { + "issues": "https://github.com/richcongress/bundle-toolbox/issues", + "source": "https://github.com/richcongress/bundle-toolbox/tree/master" + }, "time": "2020-06-29T16:35:48+00:00" }, { "name": "symfony/cache", - "version": "v5.2.3", + "version": "v5.2.7", "source": { "type": "git", "url": "https://github.com/symfony/cache.git", - "reference": "d6aed6c1bbf6f59e521f46437475a0ff4878d388" + "reference": "1d801d1dc5e3840e832568db6b35a954cfb435a8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/cache/zipball/d6aed6c1bbf6f59e521f46437475a0ff4878d388", - "reference": "d6aed6c1bbf6f59e521f46437475a0ff4878d388", + "url": "https://api.github.com/repos/symfony/cache/zipball/1d801d1dc5e3840e832568db6b35a954cfb435a8", + "reference": "1d801d1dc5e3840e832568db6b35a954cfb435a8", "shasum": "" }, "require": { "php": ">=7.2.5", - "psr/cache": "~1.0", + "psr/cache": "^1.0|^2.0", "psr/log": "^1.1", "symfony/cache-contracts": "^1.1.7|^2", "symfony/polyfill-php80": "^1.15", @@ -839,9 +1258,9 @@ "symfony/var-dumper": "<4.4" }, "provide": { - "psr/cache-implementation": "1.0", + "psr/cache-implementation": "1.0|2.0", "psr/simple-cache-implementation": "1.0", - "symfony/cache-implementation": "1.0" + "symfony/cache-implementation": "1.0|2.0" }, "require-dev": { "cache/integration-tests": "dev-master", @@ -885,25 +1304,42 @@ "caching", "psr6" ], - "time": "2021-01-27T11:24:50+00:00" + "support": { + "source": "https://github.com/symfony/cache/tree/v5.2.7" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-04-23T16:56:33+00:00" }, { "name": "symfony/cache-contracts", - "version": "v2.2.0", + "version": "v2.4.0", "source": { "type": "git", "url": "https://github.com/symfony/cache-contracts.git", - "reference": "8034ca0b61d4dd967f3698aaa1da2507b631d0cb" + "reference": "c0446463729b89dd4fa62e9aeecc80287323615d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/cache-contracts/zipball/8034ca0b61d4dd967f3698aaa1da2507b631d0cb", - "reference": "8034ca0b61d4dd967f3698aaa1da2507b631d0cb", + "url": "https://api.github.com/repos/symfony/cache-contracts/zipball/c0446463729b89dd4fa62e9aeecc80287323615d", + "reference": "c0446463729b89dd4fa62e9aeecc80287323615d", "shasum": "" }, "require": { "php": ">=7.2.5", - "psr/cache": "^1.0" + "psr/cache": "^1.0|^2.0|^3.0" }, "suggest": { "symfony/cache-implementation": "" @@ -911,7 +1347,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.2-dev" + "dev-main": "2.4-dev" }, "thanks": { "name": "symfony/contracts", @@ -947,36 +1383,55 @@ "interoperability", "standards" ], - "time": "2020-09-07T11:33:47+00:00" + "support": { + "source": "https://github.com/symfony/cache-contracts/tree/v2.4.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-03-23T23:28:01+00:00" }, { "name": "symfony/config", - "version": "v4.4.19", + "version": "v5.2.7", "source": { "type": "git", "url": "https://github.com/symfony/config.git", - "reference": "2c4c7827a7e143f5cf375666641b0f448eab8802" + "reference": "3817662ada105c8c4d1afdb4ec003003efd1d8d8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/config/zipball/2c4c7827a7e143f5cf375666641b0f448eab8802", - "reference": "2c4c7827a7e143f5cf375666641b0f448eab8802", + "url": "https://api.github.com/repos/symfony/config/zipball/3817662ada105c8c4d1afdb4ec003003efd1d8d8", + "reference": "3817662ada105c8c4d1afdb4ec003003efd1d8d8", "shasum": "" }, "require": { - "php": ">=7.1.3", - "symfony/filesystem": "^3.4|^4.0|^5.0", - "symfony/polyfill-ctype": "~1.8" + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1", + "symfony/filesystem": "^4.4|^5.0", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-php80": "^1.15" }, "conflict": { - "symfony/finder": "<3.4" + "symfony/finder": "<4.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/event-dispatcher": "^4.4|^5.0", + "symfony/finder": "^4.4|^5.0", + "symfony/messenger": "^4.4|^5.0", "symfony/service-contracts": "^1.1|^2", - "symfony/yaml": "^3.4|^4.0|^5.0" + "symfony/yaml": "^4.4|^5.0" }, "suggest": { "symfony/yaml": "To use the yaml reference dumper" @@ -1006,93 +1461,60 @@ ], "description": "Helps you find, load, combine, autofill and validate configuration values of any kind", "homepage": "https://symfony.com", - "time": "2021-01-27T09:09:26+00:00" - }, - { - "name": "symfony/debug", - "version": "v4.4.19", - "source": { - "type": "git", - "url": "https://github.com/symfony/debug.git", - "reference": "af4987aa4a5630e9615be9d9c3ed1b0f24ca449c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/debug/zipball/af4987aa4a5630e9615be9d9c3ed1b0f24ca449c", - "reference": "af4987aa4a5630e9615be9d9c3ed1b0f24ca449c", - "shasum": "" - }, - "require": { - "php": ">=7.1.3", - "psr/log": "~1.0", - "symfony/polyfill-php80": "^1.15" - }, - "conflict": { - "symfony/http-kernel": "<3.4" + "support": { + "source": "https://github.com/symfony/config/tree/v5.2.7" }, - "require-dev": { - "symfony/http-kernel": "^3.4|^4.0|^5.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\Debug\\": "" + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" + "url": "https://github.com/fabpot", + "type": "github" }, { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" } ], - "description": "Provides tools to ease debugging PHP code", - "homepage": "https://symfony.com", - "time": "2021-01-27T09:09:26+00:00" + "time": "2021-04-07T16:07:52+00:00" }, { "name": "symfony/dependency-injection", - "version": "v4.4.19", + "version": "v5.2.7", "source": { "type": "git", "url": "https://github.com/symfony/dependency-injection.git", - "reference": "2468b95d869c872c6fb1b93b395a7fcd5331f2b9" + "reference": "6ca378b99e3c9ba6127eb43b68389fb2b7348577" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/2468b95d869c872c6fb1b93b395a7fcd5331f2b9", - "reference": "2468b95d869c872c6fb1b93b395a7fcd5331f2b9", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/6ca378b99e3c9ba6127eb43b68389fb2b7348577", + "reference": "6ca378b99e3c9ba6127eb43b68389fb2b7348577", "shasum": "" }, "require": { - "php": ">=7.1.3", + "php": ">=7.2.5", "psr/container": "^1.0", + "symfony/deprecation-contracts": "^2.1", + "symfony/polyfill-php80": "^1.15", "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" + "symfony/config": "<5.1", + "symfony/finder": "<4.4", + "symfony/proxy-manager-bridge": "<4.4", + "symfony/yaml": "<4.4" }, "provide": { "psr/container-implementation": "1.0", - "symfony/service-implementation": "1.0" + "symfony/service-implementation": "1.0|2.0" }, "require-dev": { - "symfony/config": "^4.3", - "symfony/expression-language": "^3.4|^4.0|^5.0", - "symfony/yaml": "^3.4|^4.0|^5.0" + "symfony/config": "^5.1", + "symfony/expression-language": "^4.4|^5.0", + "symfony/yaml": "^4.4|^5.0" }, "suggest": { "symfony/config": "", @@ -1126,20 +1548,37 @@ ], "description": "Allows you to standardize and centralize the way objects are constructed in your application", "homepage": "https://symfony.com", - "time": "2021-01-27T09:09:26+00:00" + "support": { + "source": "https://github.com/symfony/dependency-injection/tree/v5.2.7" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-04-24T14:32:26+00:00" }, { "name": "symfony/deprecation-contracts", - "version": "v2.2.0", + "version": "v2.4.0", "source": { "type": "git", "url": "https://github.com/symfony/deprecation-contracts.git", - "reference": "5fa56b4074d1ae755beb55617ddafe6f5d78f665" + "reference": "5f38c8804a9e97d23e0c8d63341088cd8a22d627" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/5fa56b4074d1ae755beb55617ddafe6f5d78f665", - "reference": "5fa56b4074d1ae755beb55617ddafe6f5d78f665", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/5f38c8804a9e97d23e0c8d63341088cd8a22d627", + "reference": "5f38c8804a9e97d23e0c8d63341088cd8a22d627", "shasum": "" }, "require": { @@ -1148,7 +1587,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.2-dev" + "dev-main": "2.4-dev" }, "thanks": { "name": "symfony/contracts", @@ -1176,30 +1615,47 @@ ], "description": "A generic function and convention to trigger deprecation notices", "homepage": "https://symfony.com", - "time": "2020-09-07T11:33:47+00:00" + "support": { + "source": "https://github.com/symfony/deprecation-contracts/tree/v2.4.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-03-23T23:28:01+00:00" }, { "name": "symfony/error-handler", - "version": "v4.4.19", + "version": "v5.2.7", "source": { "type": "git", "url": "https://github.com/symfony/error-handler.git", - "reference": "d603654eaeb713503bba3e308b9e748e5a6d3f2e" + "reference": "ea3ddbf67615e883ca7c33a4de61213789846782" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/error-handler/zipball/d603654eaeb713503bba3e308b9e748e5a6d3f2e", - "reference": "d603654eaeb713503bba3e308b9e748e5a6d3f2e", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/ea3ddbf67615e883ca7c33a4de61213789846782", + "reference": "ea3ddbf67615e883ca7c33a4de61213789846782", "shasum": "" }, "require": { - "php": ">=7.1.3", - "psr/log": "~1.0", - "symfony/debug": "^4.4.5", + "php": ">=7.2.5", + "psr/log": "^1.0", "symfony/polyfill-php80": "^1.15", "symfony/var-dumper": "^4.4|^5.0" }, "require-dev": { + "symfony/deprecation-contracts": "^2.1", "symfony/http-kernel": "^4.4|^5.0", "symfony/serializer": "^4.4|^5.0" }, @@ -1228,42 +1684,61 @@ ], "description": "Provides tools to manage errors and ease debugging PHP code", "homepage": "https://symfony.com", - "time": "2021-01-27T09:09:26+00:00" + "support": { + "source": "https://github.com/symfony/error-handler/tree/v5.2.7" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-04-07T15:57:33+00:00" }, { "name": "symfony/event-dispatcher", - "version": "v4.4.19", + "version": "v5.2.4", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "c352647244bd376bf7d31efbd5401f13f50dad0c" + "reference": "d08d6ec121a425897951900ab692b612a61d6240" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/c352647244bd376bf7d31efbd5401f13f50dad0c", - "reference": "c352647244bd376bf7d31efbd5401f13f50dad0c", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/d08d6ec121a425897951900ab692b612a61d6240", + "reference": "d08d6ec121a425897951900ab692b612a61d6240", "shasum": "" }, "require": { - "php": ">=7.1.3", - "symfony/event-dispatcher-contracts": "^1.1" + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1", + "symfony/event-dispatcher-contracts": "^2", + "symfony/polyfill-php80": "^1.15" }, "conflict": { - "symfony/dependency-injection": "<3.4" + "symfony/dependency-injection": "<4.4" }, "provide": { "psr/event-dispatcher-implementation": "1.0", - "symfony/event-dispatcher-implementation": "1.1" + "symfony/event-dispatcher-implementation": "2.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/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/config": "^4.4|^5.0", + "symfony/dependency-injection": "^4.4|^5.0", + "symfony/error-handler": "^4.4|^5.0", + "symfony/expression-language": "^4.4|^5.0", + "symfony/http-foundation": "^4.4|^5.0", "symfony/service-contracts": "^1.1|^2", - "symfony/stopwatch": "^3.4|^4.0|^5.0" + "symfony/stopwatch": "^4.4|^5.0" }, "suggest": { "symfony/dependency-injection": "", @@ -1294,33 +1769,50 @@ ], "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", "homepage": "https://symfony.com", - "time": "2021-01-27T09:09:26+00:00" + "support": { + "source": "https://github.com/symfony/event-dispatcher/tree/v5.2.4" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-02-18T17:12:37+00:00" }, { "name": "symfony/event-dispatcher-contracts", - "version": "v1.1.9", + "version": "v2.4.0", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher-contracts.git", - "reference": "84e23fdcd2517bf37aecbd16967e83f0caee25a7" + "reference": "69fee1ad2332a7cbab3aca13591953da9cdb7a11" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/84e23fdcd2517bf37aecbd16967e83f0caee25a7", - "reference": "84e23fdcd2517bf37aecbd16967e83f0caee25a7", + "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/69fee1ad2332a7cbab3aca13591953da9cdb7a11", + "reference": "69fee1ad2332a7cbab3aca13591953da9cdb7a11", "shasum": "" }, "require": { - "php": ">=7.1.3" + "php": ">=7.2.5", + "psr/event-dispatcher": "^1" }, "suggest": { - "psr/event-dispatcher": "", "symfony/event-dispatcher-implementation": "" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.1-dev" + "dev-main": "2.4-dev" }, "thanks": { "name": "symfony/contracts", @@ -1356,20 +1848,37 @@ "interoperability", "standards" ], - "time": "2020-07-06T13:19:58+00:00" + "support": { + "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v2.4.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-03-23T23:28:01+00:00" }, { "name": "symfony/expression-language", - "version": "v5.2.3", + "version": "v5.2.7", "source": { "type": "git", "url": "https://github.com/symfony/expression-language.git", - "reference": "7bf30a4e29887110f8bd1882ccc82ee63c8a5133" + "reference": "c8bb14c3bcc397845d7e86a1cc5022671eed1ff8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/expression-language/zipball/7bf30a4e29887110f8bd1882ccc82ee63c8a5133", - "reference": "7bf30a4e29887110f8bd1882ccc82ee63c8a5133", + "url": "https://api.github.com/repos/symfony/expression-language/zipball/c8bb14c3bcc397845d7e86a1cc5022671eed1ff8", + "reference": "c8bb14c3bcc397845d7e86a1cc5022671eed1ff8", "shasum": "" }, "require": { @@ -1403,20 +1912,37 @@ ], "description": "Provides an engine that can compile and evaluate expressions", "homepage": "https://symfony.com", - "time": "2021-01-27T10:15:41+00:00" + "support": { + "source": "https://github.com/symfony/expression-language/tree/v5.3.0-BETA1" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-04-07T16:07:52+00:00" }, { "name": "symfony/filesystem", - "version": "v5.2.3", + "version": "v5.2.7", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "262d033b57c73e8b59cd6e68a45c528318b15038" + "reference": "056e92acc21d977c37e6ea8e97374b2a6c8551b0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/262d033b57c73e8b59cd6e68a45c528318b15038", - "reference": "262d033b57c73e8b59cd6e68a45c528318b15038", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/056e92acc21d977c37e6ea8e97374b2a6c8551b0", + "reference": "056e92acc21d977c37e6ea8e97374b2a6c8551b0", "shasum": "" }, "require": { @@ -1448,20 +1974,37 @@ ], "description": "Provides basic utilities for the filesystem", "homepage": "https://symfony.com", - "time": "2021-01-27T10:01:46+00:00" + "support": { + "source": "https://github.com/symfony/filesystem/tree/v5.2.7" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-04-01T10:42:13+00:00" }, { "name": "symfony/http-client-contracts", - "version": "v2.3.1", + "version": "v2.4.0", "source": { "type": "git", "url": "https://github.com/symfony/http-client-contracts.git", - "reference": "41db680a15018f9c1d4b23516059633ce280ca33" + "reference": "7e82f6084d7cae521a75ef2cb5c9457bbda785f4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-client-contracts/zipball/41db680a15018f9c1d4b23516059633ce280ca33", - "reference": "41db680a15018f9c1d4b23516059633ce280ca33", + "url": "https://api.github.com/repos/symfony/http-client-contracts/zipball/7e82f6084d7cae521a75ef2cb5c9457bbda785f4", + "reference": "7e82f6084d7cae521a75ef2cb5c9457bbda785f4", "shasum": "" }, "require": { @@ -1472,9 +2015,8 @@ }, "type": "library", "extra": { - "branch-version": "2.3", "branch-alias": { - "dev-main": "2.3-dev" + "dev-main": "2.4-dev" }, "thanks": { "name": "symfony/contracts", @@ -1510,20 +2052,37 @@ "interoperability", "standards" ], - "time": "2020-10-14T17:08:19+00:00" + "support": { + "source": "https://github.com/symfony/http-client-contracts/tree/v2.4.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-04-11T23:07:08+00:00" }, { "name": "symfony/http-foundation", - "version": "v5.2.3", + "version": "v5.2.7", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "20c554c0f03f7cde5ce230ed248470cccbc34c36" + "reference": "a416487a73bb9c9d120e9ba3a60547f4a3fb7a1f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/20c554c0f03f7cde5ce230ed248470cccbc34c36", - "reference": "20c554c0f03f7cde5ce230ed248470cccbc34c36", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/a416487a73bb9c9d120e9ba3a60547f4a3fb7a1f", + "reference": "a416487a73bb9c9d120e9ba3a60547f4a3fb7a1f", "shasum": "" }, "require": { @@ -1566,27 +2125,45 @@ ], "description": "Defines an object-oriented layer for the HTTP specification", "homepage": "https://symfony.com", - "time": "2021-02-03T04:42:09+00:00" + "support": { + "source": "https://github.com/symfony/http-foundation/tree/v5.2.7" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-05-01T13:46:24+00:00" }, { "name": "symfony/http-kernel", - "version": "v4.4.19", + "version": "v5.2.7", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "07ea794a327d7c8c5d76e3058fde9fec6a711cb4" + "reference": "1e9f6879f070f718e0055fbac232a56f67b8b6bd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/07ea794a327d7c8c5d76e3058fde9fec6a711cb4", - "reference": "07ea794a327d7c8c5d76e3058fde9fec6a711cb4", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/1e9f6879f070f718e0055fbac232a56f67b8b6bd", + "reference": "1e9f6879f070f718e0055fbac232a56f67b8b6bd", "shasum": "" }, "require": { - "php": ">=7.1.3", + "php": ">=7.2.5", "psr/log": "~1.0", - "symfony/error-handler": "^4.4", - "symfony/event-dispatcher": "^4.4", + "symfony/deprecation-contracts": "^2.1", + "symfony/error-handler": "^4.4|^5.0", + "symfony/event-dispatcher": "^5.0", "symfony/http-client-contracts": "^1.1|^2", "symfony/http-foundation": "^4.4|^5.0", "symfony/polyfill-ctype": "^1.8", @@ -1594,33 +2171,40 @@ "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.43|<2.13,>=2" + "symfony/browser-kit": "<4.4", + "symfony/cache": "<5.0", + "symfony/config": "<5.0", + "symfony/console": "<4.4", + "symfony/dependency-injection": "<5.1.8", + "symfony/doctrine-bridge": "<5.0", + "symfony/form": "<5.0", + "symfony/http-client": "<5.0", + "symfony/mailer": "<5.0", + "symfony/messenger": "<5.0", + "symfony/translation": "<5.0", + "symfony/twig-bridge": "<5.0", + "symfony/validator": "<5.0", + "twig/twig": "<2.13" }, "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", + "psr/cache": "^1.0|^2.0|^3.0", + "symfony/browser-kit": "^4.4|^5.0", + "symfony/config": "^5.0", + "symfony/console": "^4.4|^5.0", + "symfony/css-selector": "^4.4|^5.0", + "symfony/dependency-injection": "^5.1.8", + "symfony/dom-crawler": "^4.4|^5.0", + "symfony/expression-language": "^4.4|^5.0", + "symfony/finder": "^4.4|^5.0", + "symfony/process": "^4.4|^5.0", + "symfony/routing": "^4.4|^5.0", + "symfony/stopwatch": "^4.4|^5.0", + "symfony/translation": "^4.4|^5.0", "symfony/translation-contracts": "^1.1|^2", - "twig/twig": "^1.43|^2.13|^3.0.4" + "twig/twig": "^2.13|^3.0.4" }, "suggest": { "symfony/browser-kit": "", @@ -1653,7 +2237,24 @@ ], "description": "Provides a structured process for converting a Request into a Response", "homepage": "https://symfony.com", - "time": "2021-01-27T13:50:53+00:00" + "support": { + "source": "https://github.com/symfony/http-kernel/tree/v5.2.7" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-05-01T14:53:15+00:00" }, { "name": "symfony/polyfill-ctype", @@ -1715,27 +2316,44 @@ "polyfill", "portable" ], + "support": { + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.22.1" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], "time": "2021-01-07T16:49:33+00:00" }, { - "name": "symfony/polyfill-mbstring", + "name": "symfony/polyfill-intl-grapheme", "version": "v1.22.1", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "5232de97ee3b75b0360528dae24e73db49566ab1" + "url": "https://github.com/symfony/polyfill-intl-grapheme.git", + "reference": "5601e09b69f26c1828b13b6bb87cb07cddba3170" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/5232de97ee3b75b0360528dae24e73db49566ab1", - "reference": "5232de97ee3b75b0360528dae24e73db49566ab1", + "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/5601e09b69f26c1828b13b6bb87cb07cddba3170", + "reference": "5601e09b69f26c1828b13b6bb87cb07cddba3170", "shasum": "" }, "require": { "php": ">=7.1" }, "suggest": { - "ext-mbstring": "For best performance" + "ext-intl": "For best performance" }, "type": "library", "extra": { @@ -1749,7 +2367,7 @@ }, "autoload": { "psr-4": { - "Symfony\\Polyfill\\Mbstring\\": "" + "Symfony\\Polyfill\\Intl\\Grapheme\\": "" }, "files": [ "bootstrap.php" @@ -1769,34 +2387,55 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony polyfill for the Mbstring extension", + "description": "Symfony polyfill for intl's grapheme_* functions", "homepage": "https://symfony.com", "keywords": [ "compatibility", - "mbstring", + "grapheme", + "intl", "polyfill", "portable", "shim" ], + "support": { + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.22.1" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], "time": "2021-01-22T09:19:47+00:00" }, { - "name": "symfony/polyfill-php73", + "name": "symfony/polyfill-intl-normalizer", "version": "v1.22.1", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-php73.git", - "reference": "a678b42e92f86eca04b7fa4c0f6f19d097fb69e2" + "url": "https://github.com/symfony/polyfill-intl-normalizer.git", + "reference": "43a0283138253ed1d48d352ab6d0bdb3f809f248" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/a678b42e92f86eca04b7fa4c0f6f19d097fb69e2", - "reference": "a678b42e92f86eca04b7fa4c0f6f19d097fb69e2", + "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/43a0283138253ed1d48d352ab6d0bdb3f809f248", + "reference": "43a0283138253ed1d48d352ab6d0bdb3f809f248", "shasum": "" }, "require": { "php": ">=7.1" }, + "suggest": { + "ext-intl": "For best performance" + }, "type": "library", "extra": { "branch-alias": { @@ -1809,7 +2448,7 @@ }, "autoload": { "psr-4": { - "Symfony\\Polyfill\\Php73\\": "" + "Symfony\\Polyfill\\Intl\\Normalizer\\": "" }, "files": [ "bootstrap.php" @@ -1832,33 +2471,55 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony polyfill backporting some PHP 7.3+ features to lower PHP versions", + "description": "Symfony polyfill for intl's Normalizer class and related functions", "homepage": "https://symfony.com", "keywords": [ "compatibility", + "intl", + "normalizer", "polyfill", "portable", "shim" ], - "time": "2021-01-07T16:49:33+00:00" + "support": { + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.22.1" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-01-22T09:19:47+00:00" }, { - "name": "symfony/polyfill-php80", + "name": "symfony/polyfill-mbstring", "version": "v1.22.1", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-php80.git", - "reference": "dc3063ba22c2a1fd2f45ed856374d79114998f91" + "url": "https://github.com/symfony/polyfill-mbstring.git", + "reference": "5232de97ee3b75b0360528dae24e73db49566ab1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/dc3063ba22c2a1fd2f45ed856374d79114998f91", - "reference": "dc3063ba22c2a1fd2f45ed856374d79114998f91", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/5232de97ee3b75b0360528dae24e73db49566ab1", + "reference": "5232de97ee3b75b0360528dae24e73db49566ab1", "shasum": "" }, "require": { "php": ">=7.1" }, + "suggest": { + "ext-mbstring": "For best performance" + }, "type": "library", "extra": { "branch-alias": { @@ -1871,13 +2532,10 @@ }, "autoload": { "psr-4": { - "Symfony\\Polyfill\\Php80\\": "" + "Symfony\\Polyfill\\Mbstring\\": "" }, "files": [ "bootstrap.php" - ], - "classmap": [ - "Resources/stubs" ] }, "notification-url": "https://packagist.org/downloads/", @@ -1885,10 +2543,6 @@ "MIT" ], "authors": [ - { - "name": "Ion Bazan", - "email": "ion.bazan@gmail.com" - }, { "name": "Nicolas Grekas", "email": "p@tchwork.com" @@ -1898,51 +2552,71 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions", + "description": "Symfony polyfill for the Mbstring extension", "homepage": "https://symfony.com", "keywords": [ "compatibility", + "mbstring", "polyfill", "portable", "shim" ], - "time": "2021-01-07T16:49:33+00:00" + "support": { + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.22.1" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-01-22T09:19:47+00:00" }, { - "name": "symfony/service-contracts", - "version": "v2.2.0", + "name": "symfony/polyfill-php73", + "version": "v1.22.1", "source": { "type": "git", - "url": "https://github.com/symfony/service-contracts.git", - "reference": "d15da7ba4957ffb8f1747218be9e1a121fd298a1" + "url": "https://github.com/symfony/polyfill-php73.git", + "reference": "a678b42e92f86eca04b7fa4c0f6f19d097fb69e2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/d15da7ba4957ffb8f1747218be9e1a121fd298a1", - "reference": "d15da7ba4957ffb8f1747218be9e1a121fd298a1", + "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/a678b42e92f86eca04b7fa4c0f6f19d097fb69e2", + "reference": "a678b42e92f86eca04b7fa4c0f6f19d097fb69e2", "shasum": "" }, "require": { - "php": ">=7.2.5", - "psr/container": "^1.0" - }, - "suggest": { - "symfony/service-implementation": "" + "php": ">=7.1" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.2-dev" + "dev-main": "1.22-dev" }, "thanks": { - "name": "symfony/contracts", - "url": "https://github.com/symfony/contracts" + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" } }, "autoload": { "psr-4": { - "Symfony\\Contracts\\Service\\": "" - } + "Symfony\\Polyfill\\Php73\\": "" + }, + "files": [ + "bootstrap.php" + ], + "classmap": [ + "Resources/stubs" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -1958,30 +2632,888 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Generic abstractions related to writing services", + "description": "Symfony polyfill backporting some PHP 7.3+ features to lower PHP versions", "homepage": "https://symfony.com", "keywords": [ - "abstractions", + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php73/tree/v1.22.1" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-01-07T16:49:33+00:00" + }, + { + "name": "symfony/polyfill-php80", + "version": "v1.22.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php80.git", + "reference": "dc3063ba22c2a1fd2f45ed856374d79114998f91" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/dc3063ba22c2a1fd2f45ed856374d79114998f91", + "reference": "dc3063ba22c2a1fd2f45ed856374d79114998f91", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.22-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" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php80/tree/v1.22.1" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-01-07T16:49:33+00:00" + }, + { + "name": "symfony/property-access", + "version": "v5.2.4", + "source": { + "type": "git", + "url": "https://github.com/symfony/property-access.git", + "reference": "3af8ed262bd3217512a13b023981fe68f36ad5f3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/property-access/zipball/3af8ed262bd3217512a13b023981fe68f36ad5f3", + "reference": "3af8ed262bd3217512a13b023981fe68f36ad5f3", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1", + "symfony/polyfill-php80": "^1.15", + "symfony/property-info": "^5.2" + }, + "require-dev": { + "symfony/cache": "^4.4|^5.0" + }, + "suggest": { + "psr/cache-implementation": "To cache access methods." + }, + "type": "library", + "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": "Provides functions to read and write from/to an object or array using a simple string notation", + "homepage": "https://symfony.com", + "keywords": [ + "access", + "array", + "extraction", + "index", + "injection", + "object", + "property", + "property path", + "reflection" + ], + "support": { + "source": "https://github.com/symfony/property-access/tree/v5.2.4" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-01-27T10:15:41+00:00" + }, + { + "name": "symfony/property-info", + "version": "v5.2.7", + "source": { + "type": "git", + "url": "https://github.com/symfony/property-info.git", + "reference": "f5850c8d4d987fd1990e2cbdf29f48c663c433e7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/property-info/zipball/f5850c8d4d987fd1990e2cbdf29f48c663c433e7", + "reference": "f5850c8d4d987fd1990e2cbdf29f48c663c433e7", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1", + "symfony/polyfill-php80": "^1.15", + "symfony/string": "^5.1" + }, + "conflict": { + "phpdocumentor/reflection-docblock": "<3.2.2", + "phpdocumentor/type-resolver": "<1.4.0", + "symfony/dependency-injection": "<4.4" + }, + "require-dev": { + "doctrine/annotations": "^1.10.4", + "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0", + "symfony/cache": "^4.4|^5.0", + "symfony/dependency-injection": "^4.4|^5.0", + "symfony/serializer": "^4.4|^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", + "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": "Extracts information about PHP class' properties using metadata of popular sources", + "homepage": "https://symfony.com", + "keywords": [ + "doctrine", + "phpdoc", + "property", + "symfony", + "type", + "validator" + ], + "support": { + "source": "https://github.com/symfony/property-info/tree/v5.2.7" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-04-16T17:25:34+00:00" + }, + { + "name": "symfony/serializer", + "version": "v5.2.7", + "source": { + "type": "git", + "url": "https://github.com/symfony/serializer.git", + "reference": "3698d2611c4917d3689ff89c0a0dcaa761c8e771" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/serializer/zipball/3698d2611c4917d3689ff89c0a0dcaa761c8e771", + "reference": "3698d2611c4917d3689ff89c0a0dcaa761c8e771", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-php80": "^1.15" + }, + "conflict": { + "phpdocumentor/reflection-docblock": "<3.2.2", + "phpdocumentor/type-resolver": "<1.4.0", + "symfony/dependency-injection": "<4.4", + "symfony/property-access": "<4.4", + "symfony/property-info": "<4.4", + "symfony/yaml": "<4.4" + }, + "require-dev": { + "doctrine/annotations": "^1.10.4", + "doctrine/cache": "~1.0", + "phpdocumentor/reflection-docblock": "^3.2|^4.0|^5.0", + "symfony/cache": "^4.4|^5.0", + "symfony/config": "^4.4|^5.0", + "symfony/dependency-injection": "^4.4|^5.0", + "symfony/error-handler": "^4.4|^5.0", + "symfony/filesystem": "^4.4|^5.0", + "symfony/form": "^4.4|^5.0", + "symfony/http-foundation": "^4.4|^5.0", + "symfony/http-kernel": "^4.4|^5.0", + "symfony/mime": "^4.4|^5.0", + "symfony/property-access": "^4.4.9|^5.0.9", + "symfony/property-info": "^4.4|^5.0", + "symfony/uid": "^5.1", + "symfony/validator": "^4.4|^5.0", + "symfony/var-exporter": "^4.4|^5.0", + "symfony/yaml": "^4.4|^5.0" + }, + "suggest": { + "psr/cache-implementation": "For using the metadata cache.", + "symfony/config": "For using the XML mapping loader.", + "symfony/mime": "For using a MIME type guesser within the DataUriNormalizer.", + "symfony/property-access": "For using the ObjectNormalizer.", + "symfony/property-info": "To deserialize relations.", + "symfony/var-exporter": "For using the metadata compiler.", + "symfony/yaml": "For using the default YAML mapping loader." + }, + "type": "library", + "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": "Handles serializing and deserializing data structures, including object graphs, into array structures or other formats like XML and JSON.", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/serializer/tree/v5.2.7" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-04-13T14:17:49+00:00" + }, + { + "name": "symfony/serializer-pack", + "version": "v1.0.4", + "source": { + "type": "git", + "url": "https://github.com/symfony/serializer-pack.git", + "reference": "61173947057d5e1bf1c79e2a6ab6a8430be0602e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/serializer-pack/zipball/61173947057d5e1bf1c79e2a6ab6a8430be0602e", + "reference": "61173947057d5e1bf1c79e2a6ab6a8430be0602e", + "shasum": "" + }, + "require": { + "doctrine/annotations": "^1.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", + "support": { + "issues": "https://github.com/symfony/serializer-pack/issues", + "source": "https://github.com/symfony/serializer-pack/tree/v1.0.4" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2020-10-19T08:52:16+00:00" + }, + { + "name": "symfony/service-contracts", + "version": "v2.4.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/service-contracts.git", + "reference": "f040a30e04b57fbcc9c6cbcf4dbaa96bd318b9bb" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/f040a30e04b57fbcc9c6cbcf4dbaa96bd318b9bb", + "reference": "f040a30e04b57fbcc9c6cbcf4dbaa96bd318b9bb", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "psr/container": "^1.1" + }, + "suggest": { + "symfony/service-implementation": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "2.4-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" + ], + "support": { + "source": "https://github.com/symfony/service-contracts/tree/v2.4.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-04-01T10:43:52+00:00" + }, + { + "name": "symfony/string", + "version": "v5.2.6", + "source": { + "type": "git", + "url": "https://github.com/symfony/string.git", + "reference": "ad0bd91bce2054103f5eaa18ebeba8d3bc2a0572" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/string/zipball/ad0bd91bce2054103f5eaa18ebeba8d3bc2a0572", + "reference": "ad0bd91bce2054103f5eaa18ebeba8d3bc2a0572", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-intl-grapheme": "~1.0", + "symfony/polyfill-intl-normalizer": "~1.0", + "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-php80": "~1.15" + }, + "require-dev": { + "symfony/error-handler": "^4.4|^5.0", + "symfony/http-client": "^4.4|^5.0", + "symfony/translation-contracts": "^1.1|^2", + "symfony/var-exporter": "^4.4|^5.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\String\\": "" + }, + "files": [ + "Resources/functions.php" + ], + "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": "Provides an object-oriented API to strings and deals with bytes, UTF-8 code points and grapheme clusters in a unified way", + "homepage": "https://symfony.com", + "keywords": [ + "grapheme", + "i18n", + "string", + "unicode", + "utf-8", + "utf8" + ], + "support": { + "source": "https://github.com/symfony/string/tree/v5.2.6" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-03-17T17:12:15+00:00" + }, + { + "name": "symfony/translation", + "version": "v5.2.7", + "source": { + "type": "git", + "url": "https://github.com/symfony/translation.git", + "reference": "e37ece5242564bceea54d709eafc948377ec9749" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/translation/zipball/e37ece5242564bceea54d709eafc948377ec9749", + "reference": "e37ece5242564bceea54d709eafc948377ec9749", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-php80": "^1.15", + "symfony/translation-contracts": "^2.3" + }, + "conflict": { + "symfony/config": "<4.4", + "symfony/dependency-injection": "<5.0", + "symfony/http-kernel": "<5.0", + "symfony/twig-bundle": "<5.0", + "symfony/yaml": "<4.4" + }, + "provide": { + "symfony/translation-implementation": "2.3" + }, + "require-dev": { + "psr/log": "~1.0", + "symfony/config": "^4.4|^5.0", + "symfony/console": "^4.4|^5.0", + "symfony/dependency-injection": "^5.0", + "symfony/finder": "^4.4|^5.0", + "symfony/http-kernel": "^5.0", + "symfony/intl": "^4.4|^5.0", + "symfony/service-contracts": "^1.1.2|^2", + "symfony/yaml": "^4.4|^5.0" + }, + "suggest": { + "psr/log-implementation": "To use logging capability in translator", + "symfony/config": "", + "symfony/yaml": "" + }, + "type": "library", + "autoload": { + "files": [ + "Resources/functions.php" + ], + "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": "Provides tools to internationalize your application", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/translation/tree/v5.2.7" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-04-01T08:15:21+00:00" + }, + { + "name": "symfony/translation-contracts", + "version": "v2.4.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/translation-contracts.git", + "reference": "95c812666f3e91db75385749fe219c5e494c7f95" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/95c812666f3e91db75385749fe219c5e494c7f95", + "reference": "95c812666f3e91db75385749fe219c5e494c7f95", + "shasum": "" + }, + "require": { + "php": ">=7.2.5" + }, + "suggest": { + "symfony/translation-implementation": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "2.4-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-07T11:33:47+00:00" + "support": { + "source": "https://github.com/symfony/translation-contracts/tree/v2.4.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-03-23T23:28:01+00:00" + }, + { + "name": "symfony/validator", + "version": "v5.2.7", + "source": { + "type": "git", + "url": "https://github.com/symfony/validator.git", + "reference": "b0be0360bfbf15059308d815da7f4151bd448b37" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/validator/zipball/b0be0360bfbf15059308d815da7f4151bd448b37", + "reference": "b0be0360bfbf15059308d815da7f4151bd448b37", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-php73": "~1.0", + "symfony/polyfill-php80": "^1.15", + "symfony/translation-contracts": "^1.1|^2" + }, + "conflict": { + "doctrine/lexer": "<1.0.2", + "phpunit/phpunit": "<5.4.3", + "symfony/dependency-injection": "<4.4", + "symfony/expression-language": "<5.1", + "symfony/http-kernel": "<4.4", + "symfony/intl": "<4.4", + "symfony/translation": "<4.4", + "symfony/yaml": "<4.4" + }, + "require-dev": { + "doctrine/annotations": "^1.10.4", + "doctrine/cache": "~1.0", + "egulias/email-validator": "^2.1.10|^3", + "symfony/cache": "^4.4|^5.0", + "symfony/config": "^4.4|^5.0", + "symfony/console": "^4.4|^5.0", + "symfony/dependency-injection": "^4.4|^5.0", + "symfony/expression-language": "^5.1", + "symfony/finder": "^4.4|^5.0", + "symfony/http-client": "^4.4|^5.0", + "symfony/http-foundation": "^4.4|^5.0", + "symfony/http-kernel": "^4.4|^5.0", + "symfony/intl": "^4.4|^5.0", + "symfony/mime": "^4.4|^5.0", + "symfony/property-access": "^4.4|^5.0", + "symfony/property-info": "^4.4|^5.0", + "symfony/translation": "^4.4|^5.0", + "symfony/yaml": "^4.4|^5.0" + }, + "suggest": { + "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 and the ExpressionLanguageSyntax constraints", + "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", + "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": "Provides tools to validate values", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/validator/tree/v5.2.7" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-04-14T13:12:03+00:00" }, { "name": "symfony/var-dumper", - "version": "v5.2.3", + "version": "v5.2.7", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "72ca213014a92223a5d18651ce79ef441c12b694" + "reference": "27cb9f7cfa3853c736425c7233a8f68814b19636" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/72ca213014a92223a5d18651ce79ef441c12b694", - "reference": "72ca213014a92223a5d18651ce79ef441c12b694", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/27cb9f7cfa3853c736425c7233a8f68814b19636", + "reference": "27cb9f7cfa3853c736425c7233a8f68814b19636", "shasum": "" }, "require": { @@ -2039,20 +3571,37 @@ "debug", "dump" ], - "time": "2021-01-27T10:15:41+00:00" + "support": { + "source": "https://github.com/symfony/var-dumper/tree/v5.2.7" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-04-19T14:07:32+00:00" }, { "name": "symfony/var-exporter", - "version": "v5.2.3", + "version": "v5.2.7", "source": { "type": "git", "url": "https://github.com/symfony/var-exporter.git", - "reference": "5aed4875ab514c8cb9b6ff4772baa25fa4c10307" + "reference": "01184a5ab95eb9500b9b0ef3e525979e003d9c81" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-exporter/zipball/5aed4875ab514c8cb9b6ff4772baa25fa4c10307", - "reference": "5aed4875ab514c8cb9b6ff4772baa25fa4c10307", + "url": "https://api.github.com/repos/symfony/var-exporter/zipball/01184a5ab95eb9500b9b0ef3e525979e003d9c81", + "reference": "01184a5ab95eb9500b9b0ef3e525979e003d9c81", "shasum": "" }, "require": { @@ -2095,127 +3644,59 @@ "instantiate", "serialize" ], - "time": "2021-01-27T10:01:46+00:00" - } - ], - "packages-dev": [ - { - "name": "2bj/phanybar", - "version": "v1.0.0", - "source": { - "type": "git", - "url": "https://github.com/2bj/Phanybar.git", - "reference": "88ff671e18f30c2047a34f8cf2465a7ff93c819b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/2bj/Phanybar/zipball/88ff671e18f30c2047a34f8cf2465a7ff93c819b", - "reference": "88ff671e18f30c2047a34f8cf2465a7ff93c819b", - "shasum": "" - }, - "require": { - "php": ">=5.3.0" - }, - "bin": [ - "bin/phanybar" - ], - "type": "library", - "autoload": { - "psr-4": { - "Bakyt\\": [ - "src/" - ] - } + "support": { + "source": "https://github.com/symfony/var-exporter/tree/v5.3.0-BETA1" }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ + "funding": [ { - "name": "Bakyt Turgumbaev", - "email": "dev2bj@gmail.com" - } - ], - "description": "Control AnyBar from your php", - "keywords": [ - "anybar", - "phanybar" - ], - "time": "2015-03-06T12:14:28+00:00" - }, - { - "name": "codedungeon/php-cli-colors", - "version": "1.12.2", - "source": { - "type": "git", - "url": "https://github.com/mikeerickson/php-cli-colors.git", - "reference": "e346156f75717140a3dd622124d2ec686aa7ff8e" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/mikeerickson/php-cli-colors/zipball/e346156f75717140a3dd622124d2ec686aa7ff8e", - "reference": "e346156f75717140a3dd622124d2ec686aa7ff8e", - "shasum": "" - }, - "require-dev": { - "phpunit/phpunit": ">=5.2" - }, - "type": "library", - "autoload": { - "psr-4": { - "Codedungeon\\PHPCliColors\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, { - "name": "Mike Erickson", - "email": "codedungeon@gmail.com" + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" } ], - "description": "Liven up you PHP Console Apps with standard colors", - "homepage": "https://github.com/mikeerickson/php-cli-colors", - "keywords": [ - "color", - "colors", - "composer", - "package", - "php" - ], - "time": "2021-01-05T04:48:27+00:00" + "time": "2021-04-01T10:42:13+00:00" }, { - "name": "codedungeon/phpunit-result-printer", - "version": "0.30.1", + "name": "webmozart/assert", + "version": "1.10.0", "source": { "type": "git", - "url": "https://github.com/mikeerickson/phpunit-pretty-result-printer.git", - "reference": "a361009eeb7078c1478ba835976f7722a4952870" + "url": "https://github.com/webmozarts/assert.git", + "reference": "6964c76c7804814a842473e0c8fd15bab0f18e25" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/mikeerickson/phpunit-pretty-result-printer/zipball/a361009eeb7078c1478ba835976f7722a4952870", - "reference": "a361009eeb7078c1478ba835976f7722a4952870", + "url": "https://api.github.com/repos/webmozarts/assert/zipball/6964c76c7804814a842473e0c8fd15bab0f18e25", + "reference": "6964c76c7804814a842473e0c8fd15bab0f18e25", "shasum": "" }, "require": { - "2bj/phanybar": "^1.0", - "codedungeon/php-cli-colors": "^1.10.2", - "hassankhan/config": "^0.11.2|^1.0|^2.0", - "php": "^7.1 | ^8.0", - "symfony/yaml": "^2.7|^3.0|^4.0|^5.0" + "php": "^7.2 || ^8.0", + "symfony/polyfill-ctype": "^1.8" + }, + "conflict": { + "phpstan/phpstan": "<0.12.20", + "vimeo/psalm": "<4.6.1 || 4.6.2" }, "require-dev": { - "spatie/phpunit-watcher": "^1.6" + "phpunit/phpunit": "^8.5.13" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.10-dev" + } + }, "autoload": { "psr-4": { - "Codedungeon\\PHPUnitPrettyResultPrinter\\": "src/" + "Webmozart\\Assert\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -2224,22 +3705,24 @@ ], "authors": [ { - "name": "Mike Erickson", - "email": "codedungeon@gmail.com" + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" } ], - "description": "PHPUnit Pretty Result Printer", + "description": "Assertions to validate method input/output with nice error messages.", "keywords": [ - "TDD", - "composer", - "package", - "phpunit", - "printer", - "result-printer", - "testing" + "assert", + "check", + "validate" ], - "time": "2020-12-24T20:19:03+00:00" - }, + "support": { + "issues": "https://github.com/webmozarts/assert/issues", + "source": "https://github.com/webmozarts/assert/tree/1.10.0" + }, + "time": "2021-03-09T10:59:23+00:00" + } + ], + "packages-dev": [ { "name": "composer/package-versions-deprecated", "version": "1.11.99.1", @@ -2293,20 +3776,38 @@ } ], "description": "Composer plugin that provides efficient querying for installed package versions (no runtime IO)", + "support": { + "issues": "https://github.com/composer/package-versions-deprecated/issues", + "source": "https://github.com/composer/package-versions-deprecated/tree/1.11.99.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": "2020-11-11T10:22:58+00:00" }, { "name": "composer/xdebug-handler", - "version": "1.4.5", + "version": "1.4.6", "source": { "type": "git", "url": "https://github.com/composer/xdebug-handler.git", - "reference": "f28d44c286812c714741478d968104c5e604a1d4" + "reference": "f27e06cd9675801df441b3656569b328e04aa37c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/f28d44c286812c714741478d968104c5e604a1d4", - "reference": "f28d44c286812c714741478d968104c5e604a1d4", + "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/f27e06cd9675801df441b3656569b328e04aa37c", + "reference": "f27e06cd9675801df441b3656569b328e04aa37c", "shasum": "" }, "require": { @@ -2314,7 +3815,8 @@ "psr/log": "^1.0" }, "require-dev": { - "phpunit/phpunit": "^4.8.35 || ^5.7 || 6.5 - 8" + "phpstan/phpstan": "^0.12.55", + "symfony/phpunit-bridge": "^4.2 || ^5" }, "type": "library", "autoload": { @@ -2337,7 +3839,26 @@ "Xdebug", "performance" ], - "time": "2020-11-13T08:04:11+00:00" + "support": { + "irc": "irc://irc.freenode.org/composer", + "issues": "https://github.com/composer/xdebug-handler/issues", + "source": "https://github.com/composer/xdebug-handler/tree/1.4.6" + }, + "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": "2021-03-25T17:01:18+00:00" }, { "name": "dama/doctrine-test-bundle", @@ -2396,115 +3917,47 @@ "symfony", "tests" ], - "time": "2020-12-12T16:34:54+00:00" - }, - { - "name": "doctrine/annotations", - "version": "1.11.1", - "source": { - "type": "git", - "url": "https://github.com/doctrine/annotations.git", - "reference": "ce77a7ba1770462cd705a91a151b6c3746f9c6ad" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/annotations/zipball/ce77a7ba1770462cd705a91a151b6c3746f9c6ad", - "reference": "ce77a7ba1770462cd705a91a151b6c3746f9c6ad", - "shasum": "" - }, - "require": { - "doctrine/lexer": "1.*", - "ext-tokenizer": "*", - "php": "^7.1 || ^8.0" - }, - "require-dev": { - "doctrine/cache": "1.*", - "doctrine/coding-standard": "^6.0 || ^8.1", - "phpstan/phpstan": "^0.12.20", - "phpunit/phpunit": "^7.5 || ^9.1.5" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.11.x-dev" - } - }, - "autoload": { - "psr-4": { - "Doctrine\\Common\\Annotations\\": "lib/Doctrine/Common/Annotations" - } + "support": { + "issues": "https://github.com/dmaicher/doctrine-test-bundle/issues", + "source": "https://github.com/dmaicher/doctrine-test-bundle/tree/v6.5.0" }, - "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": "https://www.doctrine-project.org/projects/annotations.html", - "keywords": [ - "annotations", - "docblock", - "parser" - ], - "time": "2020-10-26T10:28:16+00:00" + "time": "2020-12-12T16:34:54+00:00" }, { "name": "doctrine/cache", - "version": "1.10.2", + "version": "1.11.0", "source": { "type": "git", "url": "https://github.com/doctrine/cache.git", - "reference": "13e3381b25847283a91948d04640543941309727" + "reference": "a9c1b59eba5a08ca2770a76eddb88922f504e8e0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/cache/zipball/13e3381b25847283a91948d04640543941309727", - "reference": "13e3381b25847283a91948d04640543941309727", + "url": "https://api.github.com/repos/doctrine/cache/zipball/a9c1b59eba5a08ca2770a76eddb88922f504e8e0", + "reference": "a9c1b59eba5a08ca2770a76eddb88922f504e8e0", "shasum": "" }, "require": { "php": "~7.1 || ^8.0" }, "conflict": { - "doctrine/common": ">2.2,<2.4" + "doctrine/common": ">2.2,<2.4", + "psr/cache": ">=3" }, "require-dev": { "alcaeus/mongo-php-adapter": "^1.1", - "doctrine/coding-standard": "^6.0", + "cache/integration-tests": "dev-master", + "doctrine/coding-standard": "^8.0", "mongodb/mongodb": "^1.1", - "phpunit/phpunit": "^7.0", - "predis/predis": "~1.0" + "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0", + "predis/predis": "~1.0", + "psr/cache": "^1.0 || ^2.0", + "symfony/cache": "^4.4 || ^5.2" }, "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" @@ -2549,7 +4002,25 @@ "redis", "xcache" ], - "time": "2020-07-07T18:54:01+00:00" + "support": { + "issues": "https://github.com/doctrine/cache/issues", + "source": "https://github.com/doctrine/cache/tree/1.11.0" + }, + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fcache", + "type": "tidelift" + } + ], + "time": "2021-04-13T14:46:17+00:00" }, { "name": "doctrine/collections", @@ -2614,20 +4085,24 @@ "iterators", "php" ], + "support": { + "issues": "https://github.com/doctrine/collections/issues", + "source": "https://github.com/doctrine/collections/tree/1.6.7" + }, "time": "2020-07-27T17:53:49+00:00" }, { "name": "doctrine/common", - "version": "3.1.1", + "version": "3.1.2", "source": { "type": "git", "url": "https://github.com/doctrine/common.git", - "reference": "2afde5a9844126bc311cd5f548b5475e75f800d3" + "reference": "a036d90c303f3163b5be8b8fde9b6755b2be4a3a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/common/zipball/2afde5a9844126bc311cd5f548b5475e75f800d3", - "reference": "2afde5a9844126bc311cd5f548b5475e75f800d3", + "url": "https://api.github.com/repos/doctrine/common/zipball/a036d90c303f3163b5be8b8fde9b6755b2be4a3a", + "reference": "a036d90c303f3163b5be8b8fde9b6755b2be4a3a", "shasum": "" }, "require": { @@ -2640,7 +4115,8 @@ "phpstan/phpstan-phpunit": "^0.12", "phpunit/phpunit": "^7.5.20 || ^8.5 || ^9.0", "squizlabs/php_codesniffer": "^3.0", - "symfony/phpunit-bridge": "^4.0.5" + "symfony/phpunit-bridge": "^4.0.5", + "vimeo/psalm": "^4.4" }, "type": "library", "autoload": { @@ -2685,7 +4161,25 @@ "doctrine", "php" ], - "time": "2021-01-20T19:58:05+00:00" + "support": { + "issues": "https://github.com/doctrine/common/issues", + "source": "https://github.com/doctrine/common/tree/3.1.2" + }, + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fcommon", + "type": "tidelift" + } + ], + "time": "2021-02-10T20:18:51+00:00" }, { "name": "doctrine/data-fixtures", @@ -2744,36 +4238,55 @@ "keywords": [ "database" ], + "support": { + "issues": "https://github.com/doctrine/data-fixtures/issues", + "source": "https://github.com/doctrine/data-fixtures/tree/1.5.0" + }, + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fdata-fixtures", + "type": "tidelift" + } + ], "time": "2021-01-23T10:20:43+00:00" }, { "name": "doctrine/dbal", - "version": "2.12.1", + "version": "2.13.1", "source": { "type": "git", "url": "https://github.com/doctrine/dbal.git", - "reference": "adce7a954a1c2f14f85e94aed90c8489af204086" + "reference": "c800380457948e65bbd30ba92cc17cda108bf8c9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/dbal/zipball/adce7a954a1c2f14f85e94aed90c8489af204086", - "reference": "adce7a954a1c2f14f85e94aed90c8489af204086", + "url": "https://api.github.com/repos/doctrine/dbal/zipball/c800380457948e65bbd30ba92cc17cda108bf8c9", + "reference": "c800380457948e65bbd30ba92cc17cda108bf8c9", "shasum": "" }, "require": { "doctrine/cache": "^1.0", + "doctrine/deprecations": "^0.5.3", "doctrine/event-manager": "^1.0", "ext-pdo": "*", - "php": "^7.3 || ^8" + "php": "^7.1 || ^8" }, "require-dev": { - "doctrine/coding-standard": "^8.1", - "jetbrains/phpstorm-stubs": "^2019.1", - "phpstan/phpstan": "^0.12.40", - "phpunit/phpunit": "^9.4", - "psalm/plugin-phpunit": "^0.10.0", + "doctrine/coding-standard": "8.2.0", + "jetbrains/phpstorm-stubs": "2020.2", + "phpstan/phpstan": "0.12.81", + "phpunit/phpunit": "^7.5.20|^8.5|9.5.0", + "squizlabs/php_codesniffer": "3.6.0", "symfony/console": "^2.0.5|^3.0|^4.0|^5.0", - "vimeo/psalm": "^3.17.2" + "vimeo/psalm": "4.6.4" }, "suggest": { "symfony/console": "For helpful console commands such as SQL execution and import of files." @@ -2782,11 +4295,6 @@ "bin/doctrine-dbal" ], "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.0.x-dev" - } - }, "autoload": { "psr-4": { "Doctrine\\DBAL\\": "lib/Doctrine/DBAL" @@ -2837,20 +4345,81 @@ "sqlserver", "sqlsrv" ], - "time": "2020-11-14T20:26:58+00:00" + "support": { + "issues": "https://github.com/doctrine/dbal/issues", + "source": "https://github.com/doctrine/dbal/tree/2.13.1" + }, + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fdbal", + "type": "tidelift" + } + ], + "time": "2021-04-17T17:30:19+00:00" + }, + { + "name": "doctrine/deprecations", + "version": "v0.5.3", + "source": { + "type": "git", + "url": "https://github.com/doctrine/deprecations.git", + "reference": "9504165960a1f83cc1480e2be1dd0a0478561314" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/deprecations/zipball/9504165960a1f83cc1480e2be1dd0a0478561314", + "reference": "9504165960a1f83cc1480e2be1dd0a0478561314", + "shasum": "" + }, + "require": { + "php": "^7.1|^8.0" + }, + "require-dev": { + "doctrine/coding-standard": "^6.0|^7.0|^8.0", + "phpunit/phpunit": "^7.0|^8.0|^9.0", + "psr/log": "^1.0" + }, + "suggest": { + "psr/log": "Allows logging deprecations via PSR-3 logger implementation" + }, + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\Deprecations\\": "lib/Doctrine/Deprecations" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "A small layer on top of trigger_error(E_USER_DEPRECATED) or PSR-3 logging with options to disable all deprecations or selectively for packages.", + "homepage": "https://www.doctrine-project.org/", + "support": { + "issues": "https://github.com/doctrine/deprecations/issues", + "source": "https://github.com/doctrine/deprecations/tree/v0.5.3" + }, + "time": "2021-03-21T12:59:47+00:00" }, { "name": "doctrine/doctrine-bundle", - "version": "2.2.3", + "version": "2.3.1", "source": { "type": "git", "url": "https://github.com/doctrine/DoctrineBundle.git", - "reference": "015fdd490074d4daa891e2d1df998dc35ba54924" + "reference": "a08bc3b4d8567cdff05e89b272ba1e06e9d71c21" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/DoctrineBundle/zipball/015fdd490074d4daa891e2d1df998dc35ba54924", - "reference": "015fdd490074d4daa891e2d1df998dc35ba54924", + "url": "https://api.github.com/repos/doctrine/DoctrineBundle/zipball/a08bc3b4d8567cdff05e89b272ba1e06e9d71c21", + "reference": "a08bc3b4d8567cdff05e89b272ba1e06e9d71c21", "shasum": "" }, "require": { @@ -2862,7 +4431,7 @@ "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/doctrine-bridge": "^4.4.7|^5.0", "symfony/framework-bundle": "^3.4.30|^4.3.3|^5.0", "symfony/service-contracts": "^1.1.1|^2.0" }, @@ -2875,25 +4444,25 @@ "doctrine/orm": "^2.6", "friendsofphp/proxy-manager-lts": "^1.0", "phpunit/phpunit": "^7.5 || ^8.0 || ^9.3", - "symfony/phpunit-bridge": "^4.2", + "psalm/plugin-phpunit": "^0.15.1", + "psalm/plugin-symfony": "^2.2.4", + "symfony/phpunit-bridge": "^5.2", "symfony/property-info": "^4.3.3|^5.0", "symfony/proxy-manager-bridge": "^3.4|^4.3.3|^5.0", + "symfony/security-bundle": "^4.4|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|^3.0" + "twig/twig": "^1.34|^2.12|^3.0", + "vimeo/psalm": "^4.7" }, "suggest": { "doctrine/orm": "The Doctrine ORM integration is optional in the bundle.", + "ext-pdo": "*", "symfony/web-profiler-bundle": "To use the data collector." }, "type": "symfony-bundle", - "extra": { - "branch-alias": { - "dev-master": "2.3.x-dev" - } - }, "autoload": { "psr-4": { "Doctrine\\Bundle\\DoctrineBundle\\": "" @@ -2929,7 +4498,25 @@ "orm", "persistence" ], - "time": "2021-01-19T20:29:53+00:00" + "support": { + "issues": "https://github.com/doctrine/DoctrineBundle/issues", + "source": "https://github.com/doctrine/DoctrineBundle/tree/2.3.1" + }, + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fdoctrine-bundle", + "type": "tidelift" + } + ], + "time": "2021-04-05T14:21:02+00:00" }, { "name": "doctrine/doctrine-fixtures-bundle", @@ -2992,6 +4579,24 @@ "Fixture", "persistence" ], + "support": { + "issues": "https://github.com/doctrine/DoctrineFixturesBundle/issues", + "source": "https://github.com/doctrine/DoctrineFixturesBundle/tree/3.4.0" + }, + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fdoctrine-fixtures-bundle", + "type": "tidelift" + } + ], "time": "2020-11-14T09:36:49+00:00" }, { @@ -3068,6 +4673,24 @@ "event system", "events" ], + "support": { + "issues": "https://github.com/doctrine/event-manager/issues", + "source": "https://github.com/doctrine/event-manager/tree/1.1.x" + }, + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fevent-manager", + "type": "tidelift" + } + ], "time": "2020-05-29T18:28:51+00:00" }, { @@ -3145,6 +4768,24 @@ "uppercase", "words" ], + "support": { + "issues": "https://github.com/doctrine/inflector/issues", + "source": "https://github.com/doctrine/inflector/tree/2.0.x" + }, + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finflector", + "type": "tidelift" + } + ], "time": "2020-05-29T15:13:26+00:00" }, { @@ -3173,62 +4814,10 @@ "phpstan/phpstan-phpunit": "^0.12", "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0" }, - "type": "library", - "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": "https://ocramius.github.io/" - } - ], - "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-11-10T18:47:58+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" - } - }, + "type": "library", "autoload": { "psr-4": { - "Doctrine\\Common\\Lexer\\": "lib/Doctrine/Common/Lexer" + "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" } }, "notification-url": "https://packagist.org/downloads/", @@ -3237,41 +4826,49 @@ ], "authors": [ { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" + "name": "Marco Pivetta", + "email": "ocramius@gmail.com", + "homepage": "https://ocramius.github.io/" + } + ], + "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" + ], + "support": { + "issues": "https://github.com/doctrine/instantiator/issues", + "source": "https://github.com/doctrine/instantiator/tree/1.4.0" + }, + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" }, { - "name": "Roman Borschel", - "email": "roman@code-factory.org" + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" }, { - "name": "Johannes Schmitt", - "email": "schmittjoh@gmail.com" + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finstantiator", + "type": "tidelift" } ], - "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" + "time": "2020-11-10T18:47:58+00:00" }, { "name": "doctrine/orm", - "version": "2.8.1", + "version": "2.8.4", "source": { "type": "git", "url": "https://github.com/doctrine/orm.git", - "reference": "242cf1a33df1b8bc5e1b86c3ebd01db07851c833" + "reference": "a588555ecd837b8d7e89355d9a13902e54d529c7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/orm/zipball/242cf1a33df1b8bc5e1b86c3ebd01db07851c833", - "reference": "242cf1a33df1b8bc5e1b86c3ebd01db07851c833", + "url": "https://api.github.com/repos/doctrine/orm/zipball/a588555ecd837b8d7e89355d9a13902e54d529c7", + "reference": "a588555ecd837b8d7e89355d9a13902e54d529c7", "shasum": "" }, "require": { @@ -3279,7 +4876,7 @@ "doctrine/annotations": "^1.11.1", "doctrine/cache": "^1.9.1", "doctrine/collections": "^1.5", - "doctrine/common": "^3.0", + "doctrine/common": "^3.0.3", "doctrine/dbal": "^2.10.0", "doctrine/event-manager": "^1.1", "doctrine/inflector": "^1.4|^2.0", @@ -3304,11 +4901,6 @@ "bin/doctrine" ], "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.7.x-dev" - } - }, "autoload": { "psr-4": { "Doctrine\\ORM\\": "lib/Doctrine/ORM" @@ -3346,7 +4938,11 @@ "database", "orm" ], - "time": "2020-12-04T19:53:07+00:00" + "support": { + "issues": "https://github.com/doctrine/orm/issues", + "source": "https://github.com/doctrine/orm/tree/2.8.4" + }, + "time": "2021-04-05T18:38:36+00:00" }, { "name": "doctrine/persistence", @@ -3426,6 +5022,10 @@ "orm", "persistence" ], + "support": { + "issues": "https://github.com/doctrine/persistence/issues", + "source": "https://github.com/doctrine/persistence/tree/2.1.0" + }, "time": "2020-10-24T22:13:54+00:00" }, { @@ -3479,26 +5079,95 @@ "highlight", "sql" ], + "support": { + "issues": "https://github.com/doctrine/sql-formatter/issues", + "source": "https://github.com/doctrine/sql-formatter/tree/1.1.x" + }, "time": "2020-07-30T16:57:33+00:00" }, + { + "name": "fakerphp/faker", + "version": "v1.14.1", + "source": { + "type": "git", + "url": "https://github.com/FakerPHP/Faker.git", + "reference": "ed22aee8d17c7b396f74a58b1e7fefa4f90d5ef1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/FakerPHP/Faker/zipball/ed22aee8d17c7b396f74a58b1e7fefa4f90d5ef1", + "reference": "ed22aee8d17c7b396f74a58b1e7fefa4f90d5ef1", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0", + "psr/container": "^1.0", + "symfony/deprecation-contracts": "^2.2" + }, + "conflict": { + "fzaninotto/faker": "*" + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.4.1", + "ext-intl": "*", + "symfony/phpunit-bridge": "^4.4 || ^5.2" + }, + "suggest": { + "ext-curl": "Required by Faker\\Provider\\Image to download images.", + "ext-dom": "Required by Faker\\Provider\\HtmlLorem for generating random HTML.", + "ext-iconv": "Required by Faker\\Provider\\ru_RU\\Text::realText() for generating real Russian text.", + "ext-mbstring": "Required for multibyte Unicode string functionality." + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "v1.15-dev" + } + }, + "autoload": { + "psr-4": { + "Faker\\": "src/Faker/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "François Zaninotto" + } + ], + "description": "Faker is a PHP library that generates fake data for you.", + "keywords": [ + "data", + "faker", + "fixtures" + ], + "support": { + "issues": "https://github.com/FakerPHP/Faker/issues", + "source": "https://github.com/FakerPHP/Faker/tree/v.1.14.1" + }, + "time": "2021-03-30T06:27:33+00:00" + }, { "name": "guzzlehttp/guzzle", - "version": "7.2.0", + "version": "7.3.0", "source": { "type": "git", "url": "https://github.com/guzzle/guzzle.git", - "reference": "0aa74dfb41ae110835923ef10a9d803a22d50e79" + "reference": "7008573787b430c1c1f650e3722d9bba59967628" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/guzzle/zipball/0aa74dfb41ae110835923ef10a9d803a22d50e79", - "reference": "0aa74dfb41ae110835923ef10a9d803a22d50e79", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/7008573787b430c1c1f650e3722d9bba59967628", + "reference": "7008573787b430c1c1f650e3722d9bba59967628", "shasum": "" }, "require": { "ext-json": "*", "guzzlehttp/promises": "^1.4", - "guzzlehttp/psr7": "^1.7", + "guzzlehttp/psr7": "^1.7 || ^2.0", "php": "^7.2.5 || ^8.0", "psr/http-client": "^1.0" }, @@ -3506,6 +5175,7 @@ "psr/http-client-implementation": "1.0" }, "require-dev": { + "bamarni/composer-bin-plugin": "^1.4.1", "ext-curl": "*", "php-http/client-integration-tests": "^3.0", "phpunit/phpunit": "^8.5.5 || ^9.3.5", @@ -3519,7 +5189,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "7.1-dev" + "dev-master": "7.3-dev" } }, "autoload": { @@ -3559,20 +5229,42 @@ "rest", "web service" ], - "time": "2020-10-10T11:47:56+00:00" + "support": { + "issues": "https://github.com/guzzle/guzzle/issues", + "source": "https://github.com/guzzle/guzzle/tree/7.3.0" + }, + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://github.com/Nyholm", + "type": "github" + }, + { + "url": "https://github.com/alexeyshockov", + "type": "github" + }, + { + "url": "https://github.com/gmponos", + "type": "github" + } + ], + "time": "2021-03-23T11:33:13+00:00" }, { "name": "guzzlehttp/promises", - "version": "1.4.0", + "version": "1.4.1", "source": { "type": "git", "url": "https://github.com/guzzle/promises.git", - "reference": "60d379c243457e073cff02bc323a2a86cb355631" + "reference": "8e7d04f1f6450fef59366c399cfad4b9383aa30d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/promises/zipball/60d379c243457e073cff02bc323a2a86cb355631", - "reference": "60d379c243457e073cff02bc323a2a86cb355631", + "url": "https://api.github.com/repos/guzzle/promises/zipball/8e7d04f1f6450fef59366c399cfad4b9383aa30d", + "reference": "8e7d04f1f6450fef59366c399cfad4b9383aa30d", "shasum": "" }, "require": { @@ -3610,20 +5302,24 @@ "keywords": [ "promise" ], - "time": "2020-09-30T07:37:28+00:00" + "support": { + "issues": "https://github.com/guzzle/promises/issues", + "source": "https://github.com/guzzle/promises/tree/1.4.1" + }, + "time": "2021-03-07T09:25:29+00:00" }, { "name": "guzzlehttp/psr7", - "version": "1.7.0", + "version": "1.8.2", "source": { "type": "git", "url": "https://github.com/guzzle/psr7.git", - "reference": "53330f47520498c0ae1f61f7e2c90f55690c06a3" + "reference": "dc960a912984efb74d0a90222870c72c87f10c91" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/psr7/zipball/53330f47520498c0ae1f61f7e2c90f55690c06a3", - "reference": "53330f47520498c0ae1f61f7e2c90f55690c06a3", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/dc960a912984efb74d0a90222870c72c87f10c91", + "reference": "dc960a912984efb74d0a90222870c72c87f10c91", "shasum": "" }, "require": { @@ -3681,7 +5377,11 @@ "uri", "url" ], - "time": "2020-09-30T07:37:11+00:00" + "support": { + "issues": "https://github.com/guzzle/psr7/issues", + "source": "https://github.com/guzzle/psr7/tree/1.8.2" + }, + "time": "2021-04-26T09:17:50+00:00" }, { "name": "hamcrest/hamcrest-php", @@ -3728,65 +5428,11 @@ "keywords": [ "test" ], - "time": "2020-07-09T08:09:16+00:00" - }, - { - "name": "hassankhan/config", - "version": "2.2.0", - "source": { - "type": "git", - "url": "https://github.com/hassankhan/config.git", - "reference": "62b0fd17540136efa94ab6b39f04044c6dc5e4a7" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/hassankhan/config/zipball/62b0fd17540136efa94ab6b39f04044c6dc5e4a7", - "reference": "62b0fd17540136efa94ab6b39f04044c6dc5e4a7", - "shasum": "" - }, - "require": { - "php": ">=5.5.9" - }, - "require-dev": { - "phpunit/phpunit": "~4.8.36 || ~5.7 || ~6.5 || ~7.5", - "scrutinizer/ocular": "~1.1", - "squizlabs/php_codesniffer": "~2.2", - "symfony/yaml": "~3.4" - }, - "suggest": { - "symfony/yaml": "~3.4" - }, - "type": "library", - "autoload": { - "psr-4": { - "Noodlehaus\\": "src" - } + "support": { + "issues": "https://github.com/hamcrest/hamcrest-php/issues", + "source": "https://github.com/hamcrest/hamcrest-php/tree/v2.0.1" }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Hassan Khan", - "homepage": "http://hassankhan.me/", - "role": "Developer" - } - ], - "description": "Lightweight configuration file loader that supports PHP, INI, XML, JSON, and YAML files", - "homepage": "http://hassankhan.me/config/", - "keywords": [ - "config", - "configuration", - "ini", - "json", - "microphp", - "unframework", - "xml", - "yaml", - "yml" - ], - "time": "2020-12-07T16:04:15+00:00" + "time": "2020-07-09T08:09:16+00:00" }, { "name": "infection/abstract-testframework-adapter", @@ -3827,6 +5473,10 @@ } ], "description": "Abstract Test Framework Adapter for Infection", + "support": { + "issues": "https://github.com/infection/abstract-testframework-adapter/issues", + "source": "https://github.com/infection/abstract-testframework-adapter/tree/0.3" + }, "time": "2020-08-30T13:50:12+00:00" }, { @@ -3879,6 +5529,10 @@ } ], "description": "Infection Extension Installer", + "support": { + "issues": "https://github.com/infection/extension-installer/issues", + "source": "https://github.com/infection/extension-installer/tree/0.1.1" + }, "time": "2020-04-25T22:40:05+00:00" }, { @@ -3921,6 +5575,10 @@ } ], "description": "Stream Wrapper: Include Interceptor. Allows to replace included (autoloaded) file with another one.", + "support": { + "issues": "https://github.com/infection/include-interceptor/issues", + "source": "https://github.com/infection/include-interceptor/tree/0.2.4" + }, "time": "2020-08-07T22:40:37+00:00" }, { @@ -4003,216 +5661,72 @@ { "name": "Gert de Pagter", "homepage": "https://github.com/BackEndTea" - }, - { - "name": "Théo FIDRY", - "email": "theo.fidry@gmail.com", - "homepage": "https://twitter.com/tfidry" - }, - { - "name": "Alexey Kopytko", - "email": "alexey@kopytko.com", - "homepage": "https://www.alexeykopytko.com" - }, - { - "name": "Andreas Möller", - "email": "am@localheinz.com", - "homepage": "https://localheinz.com" - } - ], - "description": "Infection is a Mutation Testing framework for PHP. The mutation adequacy score can be used to measure the effectiveness of a test set in terms of its ability to detect faults.", - "keywords": [ - "coverage", - "mutant", - "mutation framework", - "mutation testing", - "testing", - "unit testing" - ], - "time": "2020-08-17T20:17:03+00:00" - }, - { - "name": "justinrainbow/json-schema", - "version": "5.2.10", - "source": { - "type": "git", - "url": "https://github.com/justinrainbow/json-schema.git", - "reference": "2ba9c8c862ecd5510ed16c6340aa9f6eadb4f31b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/justinrainbow/json-schema/zipball/2ba9c8c862ecd5510ed16c6340aa9f6eadb4f31b", - "reference": "2ba9c8c862ecd5510ed16c6340aa9f6eadb4f31b", - "shasum": "" - }, - "require": { - "php": ">=5.3.3" - }, - "require-dev": { - "friendsofphp/php-cs-fixer": "~2.2.20||~2.15.1", - "json-schema/json-schema-test-suite": "1.2.0", - "phpunit/phpunit": "^4.8.35" - }, - "bin": [ - "bin/validate-json" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "JsonSchema\\": "src/JsonSchema/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Bruno Prieto Reis", - "email": "bruno.p.reis@gmail.com" - }, - { - "name": "Justin Rainbow", - "email": "justin.rainbow@gmail.com" - }, - { - "name": "Igor Wiedler", - "email": "igor@wiedler.ch" - }, - { - "name": "Robert Schönthal", - "email": "seroscho@googlemail.com" - } - ], - "description": "A library to validate a json schema.", - "homepage": "https://github.com/justinrainbow/json-schema", - "keywords": [ - "json", - "schema" - ], - "time": "2020-05-27T16:41:55+00:00" - }, - { - "name": "liip/functional-test-bundle", - "version": "3.3.0", - "source": { - "type": "git", - "url": "https://github.com/liip/LiipFunctionalTestBundle.git", - "reference": "d3f7238feea43fa2bffa76a6c5b189b550c074da" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/liip/LiipFunctionalTestBundle/zipball/d3f7238feea43fa2bffa76a6c5b189b550c074da", - "reference": "d3f7238feea43fa2bffa76a6c5b189b550c074da", - "shasum": "" - }, - "require": { - "doctrine/annotations": "^1.3", - "php": "^7.1", - "phpunit/phpunit": "^7.5.0 || ^8.0", - "symfony/browser-kit": "^3.4 || ^4.1", - "symfony/framework-bundle": "^3.4 || ^4.1" - }, - "conflict": { - "symfony/framework-bundle": "4.3.0" - }, - "require-dev": { - "doctrine/doctrine-bundle": "^1.8", - "doctrine/orm": "^2.6", - "symfony/monolog-bundle": "^3.2", - "symfony/phpunit-bridge": "^3.4 || ^4.1", - "symfony/symfony": "^3.4 || ^4.1", - "twig/twig": "^2.0" - }, - "suggest": { - "brianium/paratest": "Required when using paratest to parallelize tests", - "liip/test-fixtures-bundle": "Efficient loading of Doctrine fixtures in functional test-cases for Symfony applications" - }, - "type": "symfony-bundle", - "extra": { - "branch-alias": { - "dev-master": "3.x-dev" - } - }, - "autoload": { - "psr-4": { - "Liip\\FunctionalTestBundle\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ + }, + { + "name": "Théo FIDRY", + "email": "theo.fidry@gmail.com", + "homepage": "https://twitter.com/tfidry" + }, { - "name": "Liip AG", - "homepage": "http://www.liip.ch/" + "name": "Alexey Kopytko", + "email": "alexey@kopytko.com", + "homepage": "https://www.alexeykopytko.com" }, { - "name": "Community contributions", - "homepage": "https://github.com/liip/LiipFunctionalTestBundle/contributors" + "name": "Andreas Möller", + "email": "am@localheinz.com", + "homepage": "https://localheinz.com" } ], - "description": "This bundles provides additional functional test-cases for Symfony applications", + "description": "Infection is a Mutation Testing framework for PHP. The mutation adequacy score can be used to measure the effectiveness of a test set in terms of its ability to detect faults.", "keywords": [ - "symfony", - "testing" + "coverage", + "mutant", + "mutation framework", + "mutation testing", + "testing", + "unit testing" ], - "time": "2019-11-03T19:05:31+00:00" + "support": { + "issues": "https://github.com/infection/infection/issues", + "source": "https://github.com/infection/infection/tree/0.16.6" + }, + "time": "2020-08-17T20:17:03+00:00" }, { - "name": "liip/test-fixtures-bundle", - "version": "1.11.1", + "name": "justinrainbow/json-schema", + "version": "5.2.10", "source": { "type": "git", - "url": "https://github.com/liip/LiipTestFixturesBundle.git", - "reference": "a923ff35cb1a1ca3a2c87d2a278b3085d53ef37d" + "url": "https://github.com/justinrainbow/json-schema.git", + "reference": "2ba9c8c862ecd5510ed16c6340aa9f6eadb4f31b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/liip/LiipTestFixturesBundle/zipball/a923ff35cb1a1ca3a2c87d2a278b3085d53ef37d", - "reference": "a923ff35cb1a1ca3a2c87d2a278b3085d53ef37d", + "url": "https://api.github.com/repos/justinrainbow/json-schema/zipball/2ba9c8c862ecd5510ed16c6340aa9f6eadb4f31b", + "reference": "2ba9c8c862ecd5510ed16c6340aa9f6eadb4f31b", "shasum": "" }, "require": { - "doctrine/common": "^2.13 || ^3.0", - "php": "^7.2 || ^8.0", - "symfony/framework-bundle": "^3.4 || ^4.4 || ^5.0", - "symfony/yaml": "^3.4 || ^4.4 || ^5.0" + "php": ">=5.3.3" }, "require-dev": { - "doctrine/data-fixtures": "^1.3", - "doctrine/doctrine-bundle": "^1.8 || ^2.0", - "doctrine/doctrine-fixtures-bundle": "^3.0.2", - "doctrine/orm": "^2.6", - "monolog/monolog": "^1.11 || ^2.0", - "phpunit/phpunit": "^7.5 || ^8.0", - "symfony/monolog-bridge": ">=3", - "symfony/monolog-bundle": "^3.2", - "symfony/phpunit-bridge": "^3.4 || ^4.4 || ^5.0", - "theofidry/alice-data-fixtures": "^1.0.1" - }, - "suggest": { - "doctrine/dbal": "Required when using the fixture loading functionality with an ORM and SQLite", - "doctrine/doctrine-fixtures-bundle": "Required when using the fixture loading functionality", - "doctrine/orm": "Required when using the fixture loading functionality with an ORM and SQLite", - "hautelook/alice-bundle": "Required when using loadFixtureFiles functionality with custom providers", - "theofidry/alice-data-fixtures": "Required when using loadFixtureFiles functionality" + "friendsofphp/php-cs-fixer": "~2.2.20||~2.15.1", + "json-schema/json-schema-test-suite": "1.2.0", + "phpunit/phpunit": "^4.8.35" }, - "type": "symfony-bundle", + "bin": [ + "bin/validate-json" + ], + "type": "library", "extra": { "branch-alias": { - "dev-master": "1.x-dev" + "dev-master": "5.0.x-dev" } }, "autoload": { "psr-4": { - "Liip\\TestFixturesBundle\\": "src/" + "JsonSchema\\": "src/JsonSchema/" } }, "notification-url": "https://packagist.org/downloads/", @@ -4221,34 +5735,46 @@ ], "authors": [ { - "name": "Liip AG", - "homepage": "http://www.liip.ch/" + "name": "Bruno Prieto Reis", + "email": "bruno.p.reis@gmail.com" + }, + { + "name": "Justin Rainbow", + "email": "justin.rainbow@gmail.com" + }, + { + "name": "Igor Wiedler", + "email": "igor@wiedler.ch" }, { - "name": "Community contributions", - "homepage": "https://github.com/liip/LiipTestFixturesBundle/contributors" + "name": "Robert Schönthal", + "email": "seroscho@googlemail.com" } ], - "description": "This bundles enables efficient loading of Doctrine fixtures in functional test-cases for Symfony applications", + "description": "A library to validate a json schema.", + "homepage": "https://github.com/justinrainbow/json-schema", "keywords": [ - "fixtures", - "symfony", - "testing" + "json", + "schema" ], - "time": "2021-01-25T10:39:37+00:00" + "support": { + "issues": "https://github.com/justinrainbow/json-schema/issues", + "source": "https://github.com/justinrainbow/json-schema/tree/5.2.10" + }, + "time": "2020-05-27T16:41:55+00:00" }, { "name": "mockery/mockery", - "version": "1.4.2", + "version": "1.4.3", "source": { "type": "git", "url": "https://github.com/mockery/mockery.git", - "reference": "20cab678faed06fac225193be281ea0fddb43b93" + "reference": "d1339f64479af1bee0e82a0413813fe5345a54ea" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/mockery/mockery/zipball/20cab678faed06fac225193be281ea0fddb43b93", - "reference": "20cab678faed06fac225193be281ea0fddb43b93", + "url": "https://api.github.com/repos/mockery/mockery/zipball/d1339f64479af1bee0e82a0413813fe5345a54ea", + "reference": "d1339f64479af1bee0e82a0413813fe5345a54ea", "shasum": "" }, "require": { @@ -4303,7 +5829,11 @@ "test double", "testing" ], - "time": "2020-08-11T18:10:13+00:00" + "support": { + "issues": "https://github.com/mockery/mockery/issues", + "source": "https://github.com/mockery/mockery/tree/1.4.3" + }, + "time": "2021-02-24T09:51:49+00:00" }, { "name": "myclabs/deep-copy", @@ -4351,20 +5881,120 @@ "object", "object graph" ], + "support": { + "issues": "https://github.com/myclabs/DeepCopy/issues", + "source": "https://github.com/myclabs/DeepCopy/tree/1.10.2" + }, + "funding": [ + { + "url": "https://tidelift.com/funding/github/packagist/myclabs/deep-copy", + "type": "tidelift" + } + ], "time": "2020-11-13T09:40:50+00:00" }, + { + "name": "nelmio/alice", + "version": "v3.8.2", + "source": { + "type": "git", + "url": "https://github.com/nelmio/alice.git", + "reference": "b57f4c6f039baa72e2bd5b75fd8de77e1b9228e3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nelmio/alice/zipball/b57f4c6f039baa72e2bd5b75fd8de77e1b9228e3", + "reference": "b57f4c6f039baa72e2bd5b75fd8de77e1b9228e3", + "shasum": "" + }, + "require": { + "fakerphp/faker": "^1.10", + "myclabs/deep-copy": "^1.10", + "php": "^7.3 || ^8.0", + "sebastian/comparator": "^3.0 || ^4.0", + "symfony/property-access": "^2.8 || ^3.4 || ^4.0 || ^5.0", + "symfony/yaml": "^2.8 || ^3.4 || ^4.0 || ^5.0" + }, + "conflict": { + "symfony/framework-bundle": "<3.4" + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.1.0", + "phpspec/prophecy": "^1.6", + "phpspec/prophecy-phpunit": "^2.0", + "phpunit/phpunit": "^8.5.4 || ^9.3", + "symfony/phpunit-bridge": "^5.1.3", + "symfony/var-dumper": "^3.4 || ^4.0 || ^5.0" + }, + "suggest": { + "theofidry/alice-data-fixtures": "Wrapper for Alice to provide a persistence layer." + }, + "type": "library", + "extra": { + "bamarni-bin": { + "bin-links": false + }, + "branch-alias": { + "dev-master": "3.x-dev" + } + }, + "autoload": { + "files": [ + "src/deep_clone.php" + ], + "psr-4": { + "Nelmio\\Alice\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be" + }, + { + "name": "Tim Shelburne", + "email": "shelburt02@gmail.com" + }, + { + "name": "Théo FIDRY", + "email": "theo.fidry@gmail.com" + } + ], + "description": "Expressive fixtures generator", + "keywords": [ + "Fixture", + "data", + "faker", + "test" + ], + "support": { + "issues": "https://github.com/nelmio/alice/issues", + "source": "https://github.com/nelmio/alice/tree/v3.8.2" + }, + "funding": [ + { + "url": "https://github.com/theofidry", + "type": "github" + } + ], + "time": "2021-02-27T19:13:09+00:00" + }, { "name": "nikic/php-parser", - "version": "v4.10.4", + "version": "v4.10.5", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "c6d052fc58cb876152f89f532b95a8d7907e7f0e" + "reference": "4432ba399e47c66624bc73c8c0f811e5c109576f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/c6d052fc58cb876152f89f532b95a8d7907e7f0e", - "reference": "c6d052fc58cb876152f89f532b95a8d7907e7f0e", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/4432ba399e47c66624bc73c8c0f811e5c109576f", + "reference": "4432ba399e47c66624bc73c8c0f811e5c109576f", "shasum": "" }, "require": { @@ -4403,7 +6033,11 @@ "parser", "php" ], - "time": "2020-12-20T10:01:03+00:00" + "support": { + "issues": "https://github.com/nikic/PHP-Parser/issues", + "source": "https://github.com/nikic/PHP-Parser/tree/v4.10.5" + }, + "time": "2021-05-03T19:11:20+00:00" }, { "name": "ondram/ci-detector", @@ -4471,6 +6105,10 @@ "teamcity", "travis" ], + "support": { + "issues": "https://github.com/OndraM/ci-detector/issues", + "source": "https://github.com/OndraM/ci-detector/tree/main" + }, "time": "2020-09-04T11:21:14+00:00" }, { @@ -4527,20 +6165,24 @@ } ], "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", + "support": { + "issues": "https://github.com/phar-io/manifest/issues", + "source": "https://github.com/phar-io/manifest/tree/master" + }, "time": "2020-06-27T14:33:11+00:00" }, { "name": "phar-io/version", - "version": "3.0.4", + "version": "3.1.0", "source": { "type": "git", "url": "https://github.com/phar-io/version.git", - "reference": "e4782611070e50613683d2b9a57730e9a3ba5451" + "reference": "bae7c545bef187884426f042434e561ab1ddb182" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phar-io/version/zipball/e4782611070e50613683d2b9a57730e9a3ba5451", - "reference": "e4782611070e50613683d2b9a57730e9a3ba5451", + "url": "https://api.github.com/repos/phar-io/version/zipball/bae7c545bef187884426f042434e561ab1ddb182", + "reference": "bae7c545bef187884426f042434e561ab1ddb182", "shasum": "" }, "require": { @@ -4574,7 +6216,11 @@ } ], "description": "Library for handling version information and constraints", - "time": "2020-12-13T23:18:30+00:00" + "support": { + "issues": "https://github.com/phar-io/version/issues", + "source": "https://github.com/phar-io/version/tree/3.1.0" + }, + "time": "2021-02-23T14:00:09+00:00" }, { "name": "php-coveralls/php-coveralls", @@ -4653,166 +6299,66 @@ "github", "test" ], - "time": "2020-12-24T09:17:03+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" - } + "support": { + "issues": "https://github.com/php-coveralls/php-coveralls/issues", + "source": "https://github.com/php-coveralls/php-coveralls/tree/v2.4.3" }, - "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" + "time": "2020-12-24T09:17:03+00:00" }, { - "name": "phpdocumentor/type-resolver", - "version": "1.4.0", + "name": "php-di/phpdoc-reader", + "version": "2.2.1", "source": { "type": "git", - "url": "https://github.com/phpDocumentor/TypeResolver.git", - "reference": "6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0" + "url": "https://github.com/PHP-DI/PhpDocReader.git", + "reference": "66daff34cbd2627740ffec9469ffbac9f8c8185c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0", - "reference": "6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0", + "url": "https://api.github.com/repos/PHP-DI/PhpDocReader/zipball/66daff34cbd2627740ffec9469ffbac9f8c8185c", + "reference": "66daff34cbd2627740ffec9469ffbac9f8c8185c", "shasum": "" }, "require": { - "php": "^7.2 || ^8.0", - "phpdocumentor/reflection-common": "^2.0" + "php": ">=7.2.0" }, "require-dev": { - "ext-tokenizer": "*" + "mnapoli/hard-mode": "~0.3.0", + "phpunit/phpunit": "^8.5|^9.0" }, "type": "library", - "extra": { - "branch-alias": { - "dev-1.x": "1.x-dev" - } - }, "autoload": { "psr-4": { - "phpDocumentor\\Reflection\\": "src" + "PhpDocReader\\": "src/PhpDocReader" } }, "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" + "description": "PhpDocReader parses @var and @param values in PHP docblocks (supports namespaced class names with the same resolution rules as PHP)", + "keywords": [ + "phpdoc", + "reflection" + ], + "support": { + "issues": "https://github.com/PHP-DI/PhpDocReader/issues", + "source": "https://github.com/PHP-DI/PhpDocReader/tree/2.2.1" + }, + "time": "2020-10-12T12:39:22+00:00" }, { "name": "phpspec/prophecy", - "version": "1.12.2", + "version": "1.13.0", "source": { "type": "git", "url": "https://github.com/phpspec/prophecy.git", - "reference": "245710e971a030f42e08f4912863805570f23d39" + "reference": "be1996ed8adc35c3fd795488a653f4b518be70ea" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpspec/prophecy/zipball/245710e971a030f42e08f4912863805570f23d39", - "reference": "245710e971a030f42e08f4912863805570f23d39", + "url": "https://api.github.com/repos/phpspec/prophecy/zipball/be1996ed8adc35c3fd795488a653f4b518be70ea", + "reference": "be1996ed8adc35c3fd795488a653f4b518be70ea", "shasum": "" }, "require": { @@ -4862,44 +6408,52 @@ "spy", "stub" ], - "time": "2020-12-19T10:15:11+00:00" + "support": { + "issues": "https://github.com/phpspec/prophecy/issues", + "source": "https://github.com/phpspec/prophecy/tree/1.13.0" + }, + "time": "2021-03-17T13:42:18+00:00" }, { "name": "phpunit/php-code-coverage", - "version": "7.0.14", + "version": "9.2.6", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "bb7c9a210c72e4709cdde67f8b7362f672f2225c" + "reference": "f6293e1b30a2354e8428e004689671b83871edde" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/bb7c9a210c72e4709cdde67f8b7362f672f2225c", - "reference": "bb7c9a210c72e4709cdde67f8b7362f672f2225c", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/f6293e1b30a2354e8428e004689671b83871edde", + "reference": "f6293e1b30a2354e8428e004689671b83871edde", "shasum": "" }, "require": { "ext-dom": "*", + "ext-libxml": "*", "ext-xmlwriter": "*", - "php": ">=7.2", - "phpunit/php-file-iterator": "^2.0.2", - "phpunit/php-text-template": "^1.2.1", - "phpunit/php-token-stream": "^3.1.1 || ^4.0", - "sebastian/code-unit-reverse-lookup": "^1.0.1", - "sebastian/environment": "^4.2.2", - "sebastian/version": "^2.0.1", - "theseer/tokenizer": "^1.1.3" + "nikic/php-parser": "^4.10.2", + "php": ">=7.3", + "phpunit/php-file-iterator": "^3.0.3", + "phpunit/php-text-template": "^2.0.2", + "sebastian/code-unit-reverse-lookup": "^2.0.2", + "sebastian/complexity": "^2.0", + "sebastian/environment": "^5.1.2", + "sebastian/lines-of-code": "^1.0.3", + "sebastian/version": "^3.0.1", + "theseer/tokenizer": "^1.2.0" }, "require-dev": { - "phpunit/phpunit": "^8.2.2" + "phpunit/phpunit": "^9.3" }, "suggest": { - "ext-xdebug": "^2.7.2" + "ext-pcov": "*", + "ext-xdebug": "*" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "7.0-dev" + "dev-master": "9.2-dev" } }, "autoload": { @@ -4925,32 +6479,42 @@ "testing", "xunit" ], - "time": "2020-12-02T13:39:03+00:00" + "support": { + "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.6" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2021-03-28T07:26:59+00:00" }, { "name": "phpunit/php-file-iterator", - "version": "2.0.3", + "version": "3.0.5", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-file-iterator.git", - "reference": "4b49fb70f067272b659ef0174ff9ca40fdaa6357" + "reference": "aa4be8575f26070b100fccb67faabb28f21f66f8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/4b49fb70f067272b659ef0174ff9ca40fdaa6357", - "reference": "4b49fb70f067272b659ef0174ff9ca40fdaa6357", + "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/aa4be8575f26070b100fccb67faabb28f21f66f8", + "reference": "aa4be8575f26070b100fccb67faabb28f21f66f8", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=7.3" }, "require-dev": { - "phpunit/phpunit": "^8.5" + "phpunit/phpunit": "^9.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0.x-dev" + "dev-master": "3.0-dev" } }, "autoload": { @@ -4975,26 +6539,107 @@ "filesystem", "iterator" ], - "time": "2020-11-30T08:25:21+00:00" + "support": { + "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues", + "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/3.0.5" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-09-28T05:57:25+00:00" + }, + { + "name": "phpunit/php-invoker", + "version": "3.1.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-invoker.git", + "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/5a10147d0aaf65b58940a0b72f71c9ac0423cc67", + "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "ext-pcntl": "*", + "phpunit/phpunit": "^9.3" + }, + "suggest": { + "ext-pcntl": "*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.1-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Invoke callables with a timeout", + "homepage": "https://github.com/sebastianbergmann/php-invoker/", + "keywords": [ + "process" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-invoker/issues", + "source": "https://github.com/sebastianbergmann/php-invoker/tree/3.1.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-09-28T05:58:55+00:00" }, { "name": "phpunit/php-text-template", - "version": "1.2.1", + "version": "2.0.4", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-text-template.git", - "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686" + "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686", - "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686", + "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28", + "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0-dev" + } + }, "autoload": { "classmap": [ "src/" @@ -5016,32 +6661,42 @@ "keywords": [ "template" ], - "time": "2015-06-21T13:50:34+00:00" + "support": { + "issues": "https://github.com/sebastianbergmann/php-text-template/issues", + "source": "https://github.com/sebastianbergmann/php-text-template/tree/2.0.4" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T05:33:50+00:00" }, { "name": "phpunit/php-timer", - "version": "2.1.3", + "version": "5.0.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-timer.git", - "reference": "2454ae1765516d20c4ffe103d85a58a9a3bd5662" + "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/2454ae1765516d20c4ffe103d85a58a9a3bd5662", - "reference": "2454ae1765516d20c4ffe103d85a58a9a3bd5662", + "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2", + "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=7.3" }, "require-dev": { - "phpunit/phpunit": "^8.5" + "phpunit/phpunit": "^9.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.1-dev" + "dev-master": "5.0-dev" } }, "autoload": { @@ -5065,38 +6720,85 @@ "keywords": [ "timer" ], - "time": "2020-11-30T08:20:02+00:00" + "support": { + "issues": "https://github.com/sebastianbergmann/php-timer/issues", + "source": "https://github.com/sebastianbergmann/php-timer/tree/5.0.3" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T13:16:10+00:00" }, { - "name": "phpunit/php-token-stream", - "version": "4.0.4", + "name": "phpunit/phpunit", + "version": "9.5.4", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/php-token-stream.git", - "reference": "a853a0e183b9db7eed023d7933a858fa1c8d25a3" + "url": "https://github.com/sebastianbergmann/phpunit.git", + "reference": "c73c6737305e779771147af66c96ca6a7ed8a741" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/a853a0e183b9db7eed023d7933a858fa1c8d25a3", - "reference": "a853a0e183b9db7eed023d7933a858fa1c8d25a3", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/c73c6737305e779771147af66c96ca6a7ed8a741", + "reference": "c73c6737305e779771147af66c96ca6a7ed8a741", "shasum": "" }, "require": { - "ext-tokenizer": "*", - "php": "^7.3 || ^8.0" + "doctrine/instantiator": "^1.3.1", + "ext-dom": "*", + "ext-json": "*", + "ext-libxml": "*", + "ext-mbstring": "*", + "ext-xml": "*", + "ext-xmlwriter": "*", + "myclabs/deep-copy": "^1.10.1", + "phar-io/manifest": "^2.0.1", + "phar-io/version": "^3.0.2", + "php": ">=7.3", + "phpspec/prophecy": "^1.12.1", + "phpunit/php-code-coverage": "^9.2.3", + "phpunit/php-file-iterator": "^3.0.5", + "phpunit/php-invoker": "^3.1.1", + "phpunit/php-text-template": "^2.0.3", + "phpunit/php-timer": "^5.0.2", + "sebastian/cli-parser": "^1.0.1", + "sebastian/code-unit": "^1.0.6", + "sebastian/comparator": "^4.0.5", + "sebastian/diff": "^4.0.3", + "sebastian/environment": "^5.1.3", + "sebastian/exporter": "^4.0.3", + "sebastian/global-state": "^5.0.1", + "sebastian/object-enumerator": "^4.0.3", + "sebastian/resource-operations": "^3.0.3", + "sebastian/type": "^2.3", + "sebastian/version": "^3.0.2" }, "require-dev": { - "phpunit/phpunit": "^9.0" + "ext-pdo": "*", + "phpspec/prophecy-phpunit": "^2.0.1" }, + "suggest": { + "ext-soap": "*", + "ext-xdebug": "*" + }, + "bin": [ + "phpunit" + ], "type": "library", "extra": { "branch-alias": { - "dev-master": "4.0-dev" + "dev-master": "9.5-dev" } }, "autoload": { "classmap": [ "src/" + ], + "files": [ + "src/Framework/Assert/Functions.php" ] }, "notification-url": "https://packagist.org/downloads/", @@ -5106,125 +6808,319 @@ "authors": [ { "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "The PHP Unit Testing framework.", + "homepage": "https://phpunit.de/", + "keywords": [ + "phpunit", + "testing", + "xunit" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/phpunit/issues", + "source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.4" + }, + "funding": [ + { + "url": "https://phpunit.de/donate.html", + "type": "custom" + }, + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2021-03-23T07:16:29+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.", + "support": { + "issues": "https://github.com/ralouphie/getallheaders/issues", + "source": "https://github.com/ralouphie/getallheaders/tree/develop" + }, + "time": "2019-03-08T08:55:37+00:00" + }, + { + "name": "richcongress/fixture-test", + "version": "v0.1.1", + "source": { + "type": "git", + "url": "https://github.com/richcongress/fixture-test.git", + "reference": "00abb6cac8828ce1bc2fdd9f500b4043317a11bd" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/richcongress/fixture-test/zipball/00abb6cac8828ce1bc2fdd9f500b4043317a11bd", + "reference": "00abb6cac8828ce1bc2fdd9f500b4043317a11bd", + "shasum": "" + }, + "require": { + "doctrine/annotations": "^1.11", + "nelmio/alice": "^3.7", + "php": ">=7.3", + "php-di/phpdoc-reader": "^2.2" + }, + "require-dev": { + "richcongress/test-tools": "dev-master", + "roave/security-advisories": "dev-master" + }, + "type": "library", + "autoload": { + "psr-4": { + "RichCongress\\FixtureTestBundle\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "RichCongress", + "homepage": "https://www.richcongress.com" + } + ], + "description": "Generate random and meaningful data for objects", + "support": { + "docs": "https://github.com/richcongress/fixture-test/blob/master/README.md", + "email": "contact@richcongress.com", + "issues": "https://github.com/richcongress/fixture-test/issues", + "source": "https://github.com/richcongress/fixture-test" + }, + "time": "2021-02-05T09:41:38+00:00" + }, + { + "name": "richcongress/recurrent-fixtures-test-bundle", + "version": "v0.1.2", + "source": { + "type": "git", + "url": "https://github.com/rich-id/recurrent-fixtures-test-bundle.git", + "reference": "fe0f4a90b7748a3a91cdfdfb25859c40fd0fbdd7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/rich-id/recurrent-fixtures-test-bundle/zipball/fe0f4a90b7748a3a91cdfdfb25859c40fd0fbdd7", + "reference": "fe0f4a90b7748a3a91cdfdfb25859c40fd0fbdd7", + "shasum": "" + }, + "require": { + "doctrine/doctrine-fixtures-bundle": "^3.4", + "php": ">=7.3", + "richcongress/bundle-toolbox": "*", + "richcongress/fixture-test": "^0.1", + "richcongress/web-test-bundle": "^0.1" + }, + "require-dev": { + "infection/infection": "^0.16.4", + "php-coveralls/php-coveralls": "^2.1", + "roave/security-advisories": "dev-master" + }, + "type": "symfony-bundle", + "autoload": { + "psr-4": { + "RichCongress\\RecurrentFixturesTestBundle\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "RichCongress", + "homepage": "https://www.richcongress.com" + } + ], + "description": "A magic bundle", + "support": { + "docs": "https://github.com/richcongress/recurrent-fixtures-test-bundle/blob/master/README.md", + "email": "contact@richcongress.com", + "issues": "https://github.com/richcongress/recurrent-fixtures-test-bundle/issues", + "source": "https://github.com/richcongress/recurrent-fixtures-test-bundle" + }, + "time": "2021-03-02T11:00:45+00:00" + }, + { + "name": "richcongress/test-framework", + "version": "v0.1.0", + "source": { + "type": "git", + "url": "https://github.com/richcongress/test-framework.git", + "reference": "762c08ef66d5c1a13ed2a1b18cf2883acfa680de" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/richcongress/test-framework/zipball/762c08ef66d5c1a13ed2a1b18cf2883acfa680de", + "reference": "762c08ef66d5c1a13ed2a1b18cf2883acfa680de", + "shasum": "" + }, + "require": { + "doctrine/annotations": "^1.11", + "php": ">=7.3", + "phpunit/phpunit": "^7|^8|^9" + }, + "require-dev": { + "php-coveralls/php-coveralls": "^2.1", + "phpunit/phpunit": "^7.5" + }, + "type": "library", + "autoload": { + "psr-4": { + "RichCongress\\TestFramework\\": "" + }, + "files": [ + "TestConfiguration/Annotation/TestConfig.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "RichCongress", + "homepage": "https://www.richcongress.com" } ], - "description": "Wrapper around PHP's tokenizer extension.", - "homepage": "https://github.com/sebastianbergmann/php-token-stream/", - "keywords": [ - "tokenizer" - ], - "abandoned": true, - "time": "2020-08-04T08:28:15+00:00" + "description": "A Test framework that uses the PHPUnit Extension with priorities", + "support": { + "docs": "https://github.com/richcongress/test-framework/blob/master/README.md", + "email": "contact@richcongress.com", + "issues": "https://github.com/richcongress/test-framework/issues", + "source": "https://github.com/richcongress/test-framework" + }, + "time": "2021-02-04T13:47:51+00:00" }, { - "name": "phpunit/phpunit", - "version": "8.5.14", + "name": "richcongress/test-suite", + "version": "v0.1.0", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "c25f79895d27b6ecd5abfa63de1606b786a461a3" + "url": "https://github.com/richcongress/test-suite.git", + "reference": "3563ea09e3cf757b2425574f11a7bc3a91155968" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/c25f79895d27b6ecd5abfa63de1606b786a461a3", - "reference": "c25f79895d27b6ecd5abfa63de1606b786a461a3", + "url": "https://api.github.com/repos/richcongress/test-suite/zipball/3563ea09e3cf757b2425574f11a7bc3a91155968", + "reference": "3563ea09e3cf757b2425574f11a7bc3a91155968", "shasum": "" }, "require": { - "doctrine/instantiator": "^1.3.1", - "ext-dom": "*", - "ext-json": "*", - "ext-libxml": "*", - "ext-mbstring": "*", - "ext-xml": "*", - "ext-xmlwriter": "*", - "myclabs/deep-copy": "^1.10.0", - "phar-io/manifest": "^2.0.1", - "phar-io/version": "^3.0.2", - "php": ">=7.2", - "phpspec/prophecy": "^1.10.3", - "phpunit/php-code-coverage": "^7.0.12", - "phpunit/php-file-iterator": "^2.0.2", - "phpunit/php-text-template": "^1.2.1", - "phpunit/php-timer": "^2.1.2", - "sebastian/comparator": "^3.0.2", - "sebastian/diff": "^3.0.2", - "sebastian/environment": "^4.2.3", - "sebastian/exporter": "^3.1.2", - "sebastian/global-state": "^3.0.0", - "sebastian/object-enumerator": "^3.0.3", - "sebastian/resource-operations": "^2.0.1", - "sebastian/type": "^1.1.3", - "sebastian/version": "^2.0.1" - }, - "require-dev": { - "ext-pdo": "*" - }, - "suggest": { - "ext-soap": "*", - "ext-xdebug": "*", - "phpunit/php-invoker": "^2.0.0" - }, - "bin": [ - "phpunit" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "8.5-dev" - } + "php": ">=7.3", + "richcongress/fixture-test": "^0.1", + "richcongress/recurrent-fixtures-test-bundle": "^0.1", + "richcongress/test-framework": "^0.1", + "richcongress/test-tools": "^0.1", + "richcongress/web-test-bundle": "^0.1" }, + "type": "symfony-bundle", "autoload": { - "classmap": [ - "src/" - ] + "psr-4": { + "RichCongress\\TestSuite\\": "" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" + "name": "RichCongress", + "homepage": "https://www.richcongress.com" } ], - "description": "The PHP Unit Testing framework.", - "homepage": "https://phpunit.de/", - "keywords": [ - "phpunit", - "testing", - "xunit" - ], - "time": "2021-01-17T07:37:30+00:00" + "description": "The full RichCongress test suite for Symfony", + "support": { + "issues": "https://github.com/richcongress/test-suite/issues", + "source": "https://github.com/richcongress/test-suite/tree/v0.1.0" + }, + "time": "2021-02-05T12:53:55+00:00" }, { - "name": "ralouphie/getallheaders", - "version": "3.0.3", + "name": "richcongress/test-tools", + "version": "v0.1.0", "source": { "type": "git", - "url": "https://github.com/ralouphie/getallheaders.git", - "reference": "120b605dfeb996808c31b6477290a714d356e822" + "url": "https://github.com/richcongress/test-tools.git", + "reference": "d22d3d6d4af9e29827c10ef1f40f785ae83d5651" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ralouphie/getallheaders/zipball/120b605dfeb996808c31b6477290a714d356e822", - "reference": "120b605dfeb996808c31b6477290a714d356e822", + "url": "https://api.github.com/repos/richcongress/test-tools/zipball/d22d3d6d4af9e29827c10ef1f40f785ae83d5651", + "reference": "d22d3d6d4af9e29827c10ef1f40f785ae83d5651", "shasum": "" }, "require": { - "php": ">=5.6" + "mockery/mockery": "^1.0", + "php": ">=7.3", + "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0" }, "require-dev": { + "doctrine/annotations": "^1.11@dev", + "doctrine/orm": "^2.0 || ^3.0", "php-coveralls/php-coveralls": "^2.1", - "phpunit/phpunit": "^5 || ^6.5" + "phpunit/phpunit": "^8.0", + "richcongress/static-analysis": "dev-master", + "roave/security-advisories": "dev-master", + "symfony/dependency-injection": "^4.0 || ^5.0", + "symfony/security": "^4.0 || ^5.0", + "symfony/translation": "^4.0 || ^5.0", + "symfony/validator": "^4.0 || ^5.0" }, "type": "library", + "extra": { + "hooks": { + "pre-commit": [ + "./bin/phpstan analyse", + "./bin/phpinsights analyse ./" + ] + } + }, "autoload": { + "psr-4": { + "RichCongress\\TestTools\\": "" + }, "files": [ - "src/getallheaders.php" + "./Helper/GlobalNamespaceHelper.php" ] }, "notification-url": "https://packagist.org/downloads/", @@ -5233,68 +7129,54 @@ ], "authors": [ { - "name": "Ralph Khattar", - "email": "ralph.khattar@gmail.com" + "name": "RichCongress", + "homepage": "https://www.richcongress.com" } ], - "description": "A polyfill for getallheaders.", - "time": "2019-03-08T08:55:37+00:00" + "description": "This library gives a set of tools to test your application with Unit tests.", + "support": { + "issues": "https://github.com/richcongress/test-tools/issues", + "source": "https://github.com/richcongress/test-tools/tree/v0.1.0" + }, + "time": "2021-01-29T13:51:52+00:00" }, { - "name": "richcongress/unit-bundle", - "version": "v2.0.0.x-dev", + "name": "richcongress/web-test-bundle", + "version": "v0.1.1", "source": { "type": "git", - "url": "https://github.com/richcongress/unit-bundle.git", - "reference": "d240a4f3bbeb4f439b33513b8b125b9d770b2d48" + "url": "https://github.com/richcongress/web-test-bundle.git", + "reference": "571e91406ff393ac32b2501193a01de3803ee145" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/richcongress/unit-bundle/zipball/d240a4f3bbeb4f439b33513b8b125b9d770b2d48", - "reference": "d240a4f3bbeb4f439b33513b8b125b9d770b2d48", + "url": "https://api.github.com/repos/richcongress/web-test-bundle/zipball/571e91406ff393ac32b2501193a01de3803ee145", + "reference": "571e91406ff393ac32b2501193a01de3803ee145", "shasum": "" }, "require": { - "codedungeon/phpunit-result-printer": "^0.30.1", "dama/doctrine-test-bundle": "^6.3", - "doctrine/doctrine-bundle": "^1.0 || ^2.0", - "doctrine/doctrine-fixtures-bundle": "^3.2", - "doctrine/orm": "^2.6", "ext-json": "*", - "liip/functional-test-bundle": "^3.0", - "liip/test-fixtures-bundle": "^1.0", - "mockery/mockery": "^1.0", "php": ">=7.3", - "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", - "richcongress/bundle-toolbox": "^1.0", - "symfony/config": "^4.0", - "symfony/console": "^4.0", - "symfony/dependency-injection": "^4.0", - "symfony/phpunit-bridge": "^4.0", - "symfony/serializer": "^4.0", - "symfony/translation-contracts": "^1.0|^2.0", - "symfony/validator": "^4.0", - "symfony/yaml": "^4.0" + "php-di/phpdoc-reader": "^2.2", + "richcongress/bundle-toolbox": "*", + "richcongress/test-framework": "^0.1.", + "richcongress/test-tools": "^0.1", + "symfony/browser-kit": "^3.0 || ^4.0 || ^5.0", + "symfony/console": "^4.0|^5.0" }, "require-dev": { - "eightpoints/guzzle-bundle": "^7.6", - "fzaninotto/faker": "^1.9", - "infection/infection": "^0.16.4", - "php-coveralls/php-coveralls": "^2.1", - "symfony/form": "^4.0", + "roave/security-advisories": "dev-master", + "symfony/form": "^4.0|^5.0", "symfony/orm-pack": "^1.0", - "symfony/security-bundle": "^4.0" + "symfony/security-bundle": "^4.0|^5.0", + "symfony/yaml": "^5.1" }, "type": "symfony-bundle", "autoload": { "psr-4": { - "RichCongress\\Bundle\\UnitBundle\\": "" - }, - "files": [ - "./TestConfiguration/Annotation/WithContainer.php", - "./TestConfiguration/Annotation/WithFixtures.php", - "./Helper/GlobalNamespaceHelper.php" - ] + "RichCongress\\WebTestBundle\\": "" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -5306,8 +7188,364 @@ "homepage": "https://www.richcongress.com" } ], - "description": "A unit bundle for Symfony 4+", - "time": "2021-02-12T08:36:01+00:00" + "description": "A magic bundle", + "support": { + "docs": "https://github.com/richcongress/web-test-bundle/blob/master/README.md", + "email": "contact@richcongress.com", + "issues": "https://github.com/richcongress/web-test-bundle/issues", + "source": "https://github.com/richcongress/web-test-bundle" + }, + "time": "2021-02-05T09:31:06+00:00" + }, + { + "name": "roave/security-advisories", + "version": "dev-latest", + "source": { + "type": "git", + "url": "https://github.com/Roave/SecurityAdvisories.git", + "reference": "db47aac368cb81bc9d3b09556e63b716be61cf43" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/db47aac368cb81bc9d3b09556e63b716be61cf43", + "reference": "db47aac368cb81bc9d3b09556e63b716be61cf43", + "shasum": "" + }, + "conflict": { + "3f/pygmentize": "<1.2", + "adodb/adodb-php": "<5.20.12", + "alterphp/easyadmin-extension-bundle": ">=1.2,<1.2.11|>=1.3,<1.3.1", + "amphp/artax": "<1.0.6|>=2,<2.0.6", + "amphp/http": "<1.0.1", + "amphp/http-client": ">=4,<4.4", + "api-platform/core": ">=2.2,<2.2.10|>=2.3,<2.3.6", + "asymmetricrypt/asymmetricrypt": ">=0,<9.9.99", + "aws/aws-sdk-php": ">=3,<3.2.1", + "bagisto/bagisto": "<0.1.5", + "barrelstrength/sprout-base-email": "<1.2.7", + "barrelstrength/sprout-forms": "<3.9", + "baserproject/basercms": ">=4,<=4.3.6|>=4.4,<4.4.1", + "bk2k/bootstrap-package": ">=7.1,<7.1.2|>=8,<8.0.8|>=9,<9.0.4|>=9.1,<9.1.3|>=10,<10.0.10|>=11,<11.0.3", + "bolt/bolt": "<3.7.1", + "bolt/core": "<4.1.13", + "brightlocal/phpwhois": "<=4.2.5", + "buddypress/buddypress": "<5.1.2", + "bugsnag/bugsnag-laravel": ">=2,<2.0.2", + "cakephp/cakephp": ">=1.3,<1.3.18|>=2,<2.4.99|>=2.5,<2.5.99|>=2.6,<2.6.12|>=2.7,<2.7.6|>=3,<3.5.18|>=3.6,<3.6.15|>=3.7,<3.7.7", + "cart2quote/module-quotation": ">=4.1.6,<=4.4.5|>=5,<5.4.4", + "cartalyst/sentry": "<=2.1.6", + "centreon/centreon": "<18.10.8|>=19,<19.4.5", + "cesnet/simplesamlphp-module-proxystatistics": "<3.1", + "codeigniter/framework": "<=3.0.6", + "composer/composer": "<1.10.22|>=2-alpha.1,<2.0.13", + "contao-components/mediaelement": ">=2.14.2,<2.21.1", + "contao/core": ">=2,<3.5.39", + "contao/core-bundle": ">=4,<4.4.52|>=4.5,<4.9.6|= 4.10.0", + "contao/listing-bundle": ">=4,<4.4.8", + "datadog/dd-trace": ">=0.30,<0.30.2", + "david-garcia/phpwhois": "<=4.3.1", + "derhansen/sf_event_mgt": "<4.3.1|>=5,<5.1.1", + "doctrine/annotations": ">=1,<1.2.7", + "doctrine/cache": ">=1,<1.3.2|>=1.4,<1.4.2", + "doctrine/common": ">=2,<2.4.3|>=2.5,<2.5.1", + "doctrine/dbal": ">=2,<2.0.8|>=2.1,<2.1.2", + "doctrine/doctrine-bundle": "<1.5.2", + "doctrine/doctrine-module": "<=0.7.1", + "doctrine/mongodb-odm": ">=1,<1.0.2", + "doctrine/mongodb-odm-bundle": ">=2,<3.0.1", + "doctrine/orm": ">=2,<2.4.8|>=2.5,<2.5.1|>=2.8.3,<2.8.4", + "dolibarr/dolibarr": "<11.0.4", + "dompdf/dompdf": ">=0.6,<0.6.2", + "drupal/core": ">=7,<7.74|>=8,<8.8.11|>=8.9,<8.9.9|>=9,<9.0.8", + "drupal/drupal": ">=7,<7.74|>=8,<8.8.11|>=8.9,<8.9.9|>=9,<9.0.8", + "endroid/qr-code-bundle": "<3.4.2", + "enshrined/svg-sanitize": "<0.13.1", + "erusev/parsedown": "<1.7.2", + "ezsystems/demobundle": ">=5.4,<5.4.6.1", + "ezsystems/ez-support-tools": ">=2.2,<2.2.3", + "ezsystems/ezdemo-ls-extension": ">=5.4,<5.4.2.1", + "ezsystems/ezfind-ls": ">=5.3,<5.3.6.1|>=5.4,<5.4.11.1|>=2017.12,<2017.12.0.1", + "ezsystems/ezplatform": ">=1.7,<1.7.9.1|>=1.13,<1.13.5.1|>=2.5,<2.5.4", + "ezsystems/ezplatform-admin-ui": ">=1.3,<1.3.5|>=1.4,<1.4.6", + "ezsystems/ezplatform-admin-ui-assets": ">=4,<4.2.1|>=5,<5.0.1|>=5.1,<5.1.1", + "ezsystems/ezplatform-kernel": "<=1.2.5|>=1.3,<=1.3.1", + "ezsystems/ezplatform-rest": ">=1.2,<=1.2.2|>=1.3,<=1.3.1", + "ezsystems/ezplatform-user": ">=1,<1.0.1", + "ezsystems/ezpublish-kernel": "<=6.13.8.1|>=7,<=7.5.15.1", + "ezsystems/ezpublish-legacy": ">=5.3,<5.3.12.6|>=5.4,<5.4.14.2|>=2011,<2017.12.7.3|>=2018.6,<2018.6.1.4|>=2018.9,<2018.9.1.3|>=2019.3,<2019.3.5.1", + "ezsystems/platform-ui-assets-bundle": ">=4.2,<4.2.3", + "ezsystems/repository-forms": ">=2.3,<2.3.2.1", + "ezyang/htmlpurifier": "<4.1.1", + "facade/ignition": "<1.16.14|>=2,<2.4.2|>=2.5,<2.5.2", + "firebase/php-jwt": "<2", + "flarum/sticky": ">=0.1-beta.14,<=0.1-beta.15", + "flarum/tags": "<=0.1-beta.13", + "fluidtypo3/vhs": "<5.1.1", + "fooman/tcpdf": "<6.2.22", + "fossar/tcpdf-parser": "<6.2.22", + "friendsofsymfony/oauth2-php": "<1.3", + "friendsofsymfony/rest-bundle": ">=1.2,<1.2.2", + "friendsofsymfony/user-bundle": ">=1.2,<1.3.5", + "friendsoftypo3/mediace": ">=7.6.2,<7.6.5", + "fuel/core": "<1.8.1", + "getgrav/grav": "<1.7.11", + "getkirby/cms": "<3.5.4", + "getkirby/panel": "<2.5.14", + "gos/web-socket-bundle": "<1.10.4|>=2,<2.6.1|>=3,<3.3", + "gree/jose": "<=2.2", + "gregwar/rst": "<1.0.3", + "guzzlehttp/guzzle": ">=4-rc.2,<4.2.4|>=5,<5.3.1|>=6,<6.2.1", + "illuminate/auth": ">=4,<4.0.99|>=4.1,<=4.1.31|>=4.2,<=4.2.22|>=5,<=5.0.35|>=5.1,<=5.1.46|>=5.2,<=5.2.45|>=5.3,<=5.3.31|>=5.4,<=5.4.36|>=5.5,<5.5.10", + "illuminate/cookie": ">=4,<=4.0.11|>=4.1,<=4.1.99999|>=4.2,<=4.2.99999|>=5,<=5.0.99999|>=5.1,<=5.1.99999|>=5.2,<=5.2.99999|>=5.3,<=5.3.99999|>=5.4,<=5.4.99999|>=5.5,<=5.5.49|>=5.6,<=5.6.99999|>=5.7,<=5.7.99999|>=5.8,<=5.8.99999|>=6,<6.18.31|>=7,<7.22.4", + "illuminate/database": "<6.20.26|>=7,<8.40", + "illuminate/encryption": ">=4,<=4.0.11|>=4.1,<=4.1.31|>=4.2,<=4.2.22|>=5,<=5.0.35|>=5.1,<=5.1.46|>=5.2,<=5.2.45|>=5.3,<=5.3.31|>=5.4,<=5.4.36|>=5.5,<5.5.40|>=5.6,<5.6.15", + "illuminate/view": ">=7,<7.1.2", + "impresscms/impresscms": "<=1.4.2", + "ivankristianto/phpwhois": "<=4.3", + "james-heinrich/getid3": "<1.9.9", + "joomla/archive": "<1.1.10", + "joomla/session": "<1.3.1", + "jsmitty12/phpwhois": "<5.1", + "kazist/phpwhois": "<=4.2.6", + "kitodo/presentation": "<3.1.2", + "kreait/firebase-php": ">=3.2,<3.8.1", + "la-haute-societe/tcpdf": "<6.2.22", + "laravel/framework": "<6.20.26|>=7,<8.40", + "laravel/socialite": ">=1,<1.0.99|>=2,<2.0.10", + "league/commonmark": "<0.18.3", + "librenms/librenms": "<1.53", + "livewire/livewire": ">2.2.4,<2.2.6", + "magento/community-edition": ">=2,<2.2.10|>=2.3,<2.3.3", + "magento/magento1ce": "<1.9.4.3", + "magento/magento1ee": ">=1,<1.14.4.3", + "magento/product-community-edition": ">=2,<2.2.10|>=2.3,<2.3.2-p.2", + "marcwillmann/turn": "<0.3.3", + "mautic/core": "<3.3.2|= 2.13.1", + "mediawiki/core": ">=1.27,<1.27.6|>=1.29,<1.29.3|>=1.30,<1.30.2|>=1.31,<1.31.9|>=1.32,<1.32.6|>=1.32.99,<1.33.3|>=1.33.99,<1.34.3|>=1.34.99,<1.35", + "mittwald/typo3_forum": "<1.2.1", + "monolog/monolog": ">=1.8,<1.12", + "moodle/moodle": "<3.5.17|>=3.7,<3.7.9|>=3.8,<3.8.8|>=3.9,<3.9.5|>=3.10,<3.10.2", + "namshi/jose": "<2.2", + "neos/flow": ">=1,<1.0.4|>=1.1,<1.1.1|>=2,<2.0.1|>=2.3,<2.3.16|>=3,<3.0.12|>=3.1,<3.1.10|>=3.2,<3.2.13|>=3.3,<3.3.13|>=4,<4.0.6", + "neos/neos": ">=1.1,<1.1.3|>=1.2,<1.2.13|>=2,<2.0.4|>=2.3,<2.9.99|>=3,<3.0.20|>=3.1,<3.1.18|>=3.2,<3.2.14|>=3.3,<3.3.23|>=4,<4.0.17|>=4.1,<4.1.16|>=4.2,<4.2.12|>=4.3,<4.3.3", + "neos/swiftmailer": ">=4.1,<4.1.99|>=5.4,<5.4.5", + "nette/application": ">=2,<2.0.19|>=2.1,<2.1.13|>=2.2,<2.2.10|>=2.3,<2.3.14|>=2.4,<2.4.16|>=3,<3.0.6", + "nette/nette": ">=2,<2.0.19|>=2.1,<2.1.13", + "nystudio107/craft-seomatic": "<3.3", + "nzo/url-encryptor-bundle": ">=4,<4.3.2|>=5,<5.0.1", + "october/backend": "<1.1.2", + "october/cms": "= 1.0.469|>=1.0.319,<1.0.469", + "october/october": ">=1.0.319,<1.0.466", + "october/rain": "<1.0.472|>=1.1,<1.1.2", + "onelogin/php-saml": "<2.10.4", + "oneup/uploader-bundle": "<1.9.3|>=2,<2.1.5", + "openid/php-openid": "<2.3", + "openmage/magento-lts": "<=19.4.12|>=20,<=20.0.8", + "orchid/platform": ">=9,<9.4.4", + "oro/crm": ">=1.7,<1.7.4", + "oro/platform": ">=1.7,<1.7.4", + "padraic/humbug_get_contents": "<1.1.2", + "pagarme/pagarme-php": ">=0,<3", + "paragonie/random_compat": "<2", + "passbolt/passbolt_api": "<2.11", + "paypal/merchant-sdk-php": "<3.12", + "pear/archive_tar": "<1.4.12", + "personnummer/personnummer": "<3.0.2", + "phpfastcache/phpfastcache": ">=5,<5.0.13", + "phpmailer/phpmailer": "<6.1.6|>=6.1.8,<6.4.1", + "phpmussel/phpmussel": ">=1,<1.6", + "phpmyadmin/phpmyadmin": "<4.9.6|>=5,<5.0.3", + "phpoffice/phpexcel": "<1.8.2", + "phpoffice/phpspreadsheet": "<1.16", + "phpseclib/phpseclib": "<2.0.31|>=3,<3.0.7", + "phpunit/phpunit": ">=4.8.19,<4.8.28|>=5.0.10,<5.6.3", + "phpwhois/phpwhois": "<=4.2.5", + "phpxmlrpc/extras": "<0.6.1", + "pimcore/pimcore": "<6.8.8", + "pocketmine/pocketmine-mp": "<3.15.4", + "pressbooks/pressbooks": "<5.18", + "prestashop/autoupgrade": ">=4,<4.10.1", + "prestashop/contactform": ">1.0.1,<4.3", + "prestashop/gamification": "<2.3.2", + "prestashop/productcomments": ">=4,<4.2.1", + "prestashop/ps_emailsubscription": "<2.6.1", + "prestashop/ps_facetedsearch": "<3.4.1", + "privatebin/privatebin": "<1.2.2|>=1.3,<1.3.2", + "propel/propel": ">=2-alpha.1,<=2-alpha.7", + "propel/propel1": ">=1,<=1.7.1", + "pterodactyl/panel": "<0.7.19|>=1-rc.0,<=1-rc.6", + "pusher/pusher-php-server": "<2.2.1", + "pwweb/laravel-core": "<=0.3.6-beta", + "rainlab/debugbar-plugin": "<3.1", + "rmccue/requests": ">=1.6,<1.8", + "robrichards/xmlseclibs": "<3.0.4", + "sabberworm/php-css-parser": ">=1,<1.0.1|>=2,<2.0.1|>=3,<3.0.1|>=4,<4.0.1|>=5,<5.0.9|>=5.1,<5.1.3|>=5.2,<5.2.1|>=6,<6.0.2|>=7,<7.0.4|>=8,<8.0.1|>=8.1,<8.1.1|>=8.2,<8.2.1|>=8.3,<8.3.1", + "sabre/dav": ">=1.6,<1.6.99|>=1.7,<1.7.11|>=1.8,<1.8.9", + "scheb/two-factor-bundle": ">=0,<3.26|>=4,<4.11", + "sensiolabs/connect": "<4.2.3", + "serluck/phpwhois": "<=4.2.6", + "shopware/core": "<=6.3.5.2", + "shopware/platform": "<=6.3.5.2", + "shopware/production": "<=6.3.5.2", + "shopware/shopware": "<5.6.9", + "silverstripe/admin": ">=1.0.3,<1.0.4|>=1.1,<1.1.1", + "silverstripe/assets": ">=1,<1.4.7|>=1.5,<1.5.2", + "silverstripe/cms": "<4.3.6|>=4.4,<4.4.4", + "silverstripe/comments": ">=1.3,<1.9.99|>=2,<2.9.99|>=3,<3.1.1", + "silverstripe/forum": "<=0.6.1|>=0.7,<=0.7.3", + "silverstripe/framework": "<4.4.7|>=4.5,<4.5.4", + "silverstripe/graphql": ">=2,<2.0.5|>=3,<3.1.2|>=3.2,<3.2.4", + "silverstripe/registry": ">=2.1,<2.1.2|>=2.2,<2.2.1", + "silverstripe/restfulserver": ">=1,<1.0.9|>=2,<2.0.4", + "silverstripe/subsites": ">=2,<2.1.1", + "silverstripe/taxonomy": ">=1.3,<1.3.1|>=2,<2.0.1", + "silverstripe/userforms": "<3", + "simple-updates/phpwhois": "<=1", + "simplesamlphp/saml2": "<1.10.6|>=2,<2.3.8|>=3,<3.1.4", + "simplesamlphp/simplesamlphp": "<1.18.6", + "simplesamlphp/simplesamlphp-module-infocard": "<1.0.1", + "simplito/elliptic-php": "<1.0.6", + "slim/slim": "<2.6", + "smarty/smarty": "<3.1.39", + "socalnick/scn-social-auth": "<1.15.2", + "socialiteproviders/steam": "<1.1", + "spoonity/tcpdf": "<6.2.22", + "squizlabs/php_codesniffer": ">=1,<2.8.1|>=3,<3.0.1", + "ssddanbrown/bookstack": "<0.29.2", + "stormpath/sdk": ">=0,<9.9.99", + "studio-42/elfinder": "<2.1.49", + "sulu/sulu": "<1.6.34|>=2,<2.0.10|>=2.1,<2.1.1", + "swiftmailer/swiftmailer": ">=4,<5.4.5", + "sylius/admin-bundle": ">=1,<1.0.17|>=1.1,<1.1.9|>=1.2,<1.2.2", + "sylius/grid": ">=1,<1.1.19|>=1.2,<1.2.18|>=1.3,<1.3.13|>=1.4,<1.4.5|>=1.5,<1.5.1", + "sylius/grid-bundle": ">=1,<1.1.19|>=1.2,<1.2.18|>=1.3,<1.3.13|>=1.4,<1.4.5|>=1.5,<1.5.1", + "sylius/resource-bundle": "<1.3.14|>=1.4,<1.4.7|>=1.5,<1.5.2|>=1.6,<1.6.4", + "sylius/sylius": "<1.6.9|>=1.7,<1.7.9|>=1.8,<1.8.3", + "symbiote/silverstripe-multivaluefield": ">=3,<3.0.99", + "symbiote/silverstripe-queuedjobs": ">=3,<3.0.2|>=3.1,<3.1.4|>=4,<4.0.7|>=4.1,<4.1.2|>=4.2,<4.2.4|>=4.3,<4.3.3|>=4.4,<4.4.3|>=4.5,<4.5.1|>=4.6,<4.6.4", + "symbiote/silverstripe-versionedfiles": "<=2.0.3", + "symfony/cache": ">=3.1,<3.4.35|>=4,<4.2.12|>=4.3,<4.3.8", + "symfony/dependency-injection": ">=2,<2.0.17|>=2.7,<2.7.51|>=2.8,<2.8.50|>=3,<3.4.26|>=4,<4.1.12|>=4.2,<4.2.7", + "symfony/error-handler": ">=4.4,<4.4.4|>=5,<5.0.4", + "symfony/form": ">=2.3,<2.3.35|>=2.4,<2.6.12|>=2.7,<2.7.50|>=2.8,<2.8.49|>=3,<3.4.20|>=4,<4.0.15|>=4.1,<4.1.9|>=4.2,<4.2.1", + "symfony/framework-bundle": ">=2,<2.3.18|>=2.4,<2.4.8|>=2.5,<2.5.2|>=2.7,<2.7.51|>=2.8,<2.8.50|>=3,<3.4.26|>=4,<4.1.12|>=4.2,<4.2.7", + "symfony/http-foundation": ">=2,<2.8.52|>=3,<3.4.35|>=4,<4.2.12|>=4.3,<4.3.8|>=4.4,<4.4.7|>=5,<5.0.7", + "symfony/http-kernel": ">=2,<2.8.52|>=3,<3.4.35|>=4,<4.2.12|>=4.3,<4.4.13|>=5,<5.1.5", + "symfony/intl": ">=2.7,<2.7.38|>=2.8,<2.8.31|>=3,<3.2.14|>=3.3,<3.3.13", + "symfony/mime": ">=4.3,<4.3.8", + "symfony/phpunit-bridge": ">=2.8,<2.8.50|>=3,<3.4.26|>=4,<4.1.12|>=4.2,<4.2.7", + "symfony/polyfill": ">=1,<1.10", + "symfony/polyfill-php55": ">=1,<1.10", + "symfony/proxy-manager-bridge": ">=2.7,<2.7.51|>=2.8,<2.8.50|>=3,<3.4.26|>=4,<4.1.12|>=4.2,<4.2.7", + "symfony/routing": ">=2,<2.0.19", + "symfony/security": ">=2,<2.7.51|>=2.8,<2.8.50|>=3,<3.4.26|>=4,<4.1.12|>=4.2,<4.2.7|>=4.4,<4.4.7|>=5,<5.0.7", + "symfony/security-bundle": ">=2,<2.7.48|>=2.8,<2.8.41|>=3,<3.3.17|>=3.4,<3.4.11|>=4,<4.0.11", + "symfony/security-core": ">=2.4,<2.6.13|>=2.7,<2.7.9|>=2.7.30,<2.7.32|>=2.8,<2.8.37|>=3,<3.3.17|>=3.4,<3.4.7|>=4,<4.0.7", + "symfony/security-csrf": ">=2.4,<2.7.48|>=2.8,<2.8.41|>=3,<3.3.17|>=3.4,<3.4.11|>=4,<4.0.11", + "symfony/security-guard": ">=2.8,<2.8.41|>=3,<3.3.17|>=3.4,<3.4.11|>=4,<4.0.11", + "symfony/security-http": ">=2.3,<2.3.41|>=2.4,<2.7.51|>=2.8,<2.8.50|>=3,<3.4.26|>=4,<4.2.12|>=4.3,<4.3.8|>=4.4,<4.4.7|>=5,<5.0.7", + "symfony/serializer": ">=2,<2.0.11", + "symfony/symfony": ">=2,<2.8.52|>=3,<3.4.35|>=4,<4.2.12|>=4.3,<4.4.13|>=5,<5.1.5", + "symfony/translation": ">=2,<2.0.17", + "symfony/validator": ">=2,<2.0.24|>=2.1,<2.1.12|>=2.2,<2.2.5|>=2.3,<2.3.3", + "symfony/var-exporter": ">=4.2,<4.2.12|>=4.3,<4.3.8", + "symfony/web-profiler-bundle": ">=2,<2.3.19|>=2.4,<2.4.9|>=2.5,<2.5.4", + "symfony/yaml": ">=2,<2.0.22|>=2.1,<2.1.7", + "t3g/svg-sanitizer": "<1.0.3", + "tecnickcom/tcpdf": "<6.2.22", + "thelia/backoffice-default-template": ">=2.1,<2.1.2", + "thelia/thelia": ">=2.1-beta.1,<2.1.3", + "theonedemon/phpwhois": "<=4.2.5", + "titon/framework": ">=0,<9.9.99", + "truckersmp/phpwhois": "<=4.3.1", + "twig/twig": "<1.38|>=2,<2.7", + "typo3/cms": ">=6.2,<6.2.30|>=7,<7.6.32|>=8,<8.7.38|>=9,<9.5.25|>=10,<10.4.14|>=11,<11.1.1", + "typo3/cms-backend": ">=7,<=7.6.50|>=8,<=8.7.39|>=9,<=9.5.24|>=10,<=10.4.13|>=11,<=11.1", + "typo3/cms-core": ">=6.2,<=6.2.56|>=7,<=7.6.50|>=8,<=8.7.39|>=9,<9.5.25|>=10,<10.4.14|>=11,<11.1.1", + "typo3/cms-form": ">=8,<=8.7.39|>=9,<=9.5.24|>=10,<=10.4.13|>=11,<=11.1", + "typo3/flow": ">=1,<1.0.4|>=1.1,<1.1.1|>=2,<2.0.1|>=2.3,<2.3.16|>=3,<3.0.12|>=3.1,<3.1.10|>=3.2,<3.2.13|>=3.3,<3.3.13|>=4,<4.0.6", + "typo3/neos": ">=1.1,<1.1.3|>=1.2,<1.2.13|>=2,<2.0.4|>=2.3,<2.3.99|>=3,<3.0.20|>=3.1,<3.1.18|>=3.2,<3.2.14|>=3.3,<3.3.23|>=4,<4.0.17|>=4.1,<4.1.16|>=4.2,<4.2.12|>=4.3,<4.3.3", + "typo3/phar-stream-wrapper": ">=1,<2.1.1|>=3,<3.1.1", + "typo3/swiftmailer": ">=4.1,<4.1.99|>=5.4,<5.4.5", + "typo3fluid/fluid": ">=2,<2.0.8|>=2.1,<2.1.7|>=2.2,<2.2.4|>=2.3,<2.3.7|>=2.4,<2.4.4|>=2.5,<2.5.11|>=2.6,<2.6.10", + "ua-parser/uap-php": "<3.8", + "usmanhalalit/pixie": "<1.0.3|>=2,<2.0.2", + "verot/class.upload.php": "<=1.0.3|>=2,<=2.0.4", + "vrana/adminer": "<4.7.9", + "wallabag/tcpdf": "<6.2.22", + "wikimedia/parsoid": "<0.12.2", + "willdurand/js-translation-bundle": "<2.1.1", + "yii2mod/yii2-cms": "<1.9.2", + "yiisoft/yii": ">=1.1.14,<1.1.15", + "yiisoft/yii2": "<2.0.38", + "yiisoft/yii2-bootstrap": "<2.0.4", + "yiisoft/yii2-dev": "<2.0.15", + "yiisoft/yii2-elasticsearch": "<2.0.5", + "yiisoft/yii2-gii": "<2.0.4", + "yiisoft/yii2-jui": "<2.0.4", + "yiisoft/yii2-redis": "<2.0.8", + "yourls/yourls": "<1.7.4", + "zendesk/zendesk_api_client_php": "<2.2.11", + "zendframework/zend-cache": ">=2.4,<2.4.8|>=2.5,<2.5.3", + "zendframework/zend-captcha": ">=2,<2.4.9|>=2.5,<2.5.2", + "zendframework/zend-crypt": ">=2,<2.4.9|>=2.5,<2.5.2", + "zendframework/zend-db": ">=2,<2.0.99|>=2.1,<2.1.99|>=2.2,<2.2.10|>=2.3,<2.3.5", + "zendframework/zend-developer-tools": ">=1.2.2,<1.2.3", + "zendframework/zend-diactoros": ">=1,<1.8.4", + "zendframework/zend-feed": ">=1,<2.10.3", + "zendframework/zend-form": ">=2,<2.2.7|>=2.3,<2.3.1", + "zendframework/zend-http": ">=1,<2.8.1", + "zendframework/zend-json": ">=2.1,<2.1.6|>=2.2,<2.2.6", + "zendframework/zend-ldap": ">=2,<2.0.99|>=2.1,<2.1.99|>=2.2,<2.2.8|>=2.3,<2.3.3", + "zendframework/zend-mail": ">=2,<2.4.11|>=2.5,<2.7.2", + "zendframework/zend-navigation": ">=2,<2.2.7|>=2.3,<2.3.1", + "zendframework/zend-session": ">=2,<2.0.99|>=2.1,<2.1.99|>=2.2,<2.2.9|>=2.3,<2.3.4", + "zendframework/zend-validator": ">=2.3,<2.3.6", + "zendframework/zend-view": ">=2,<2.2.7|>=2.3,<2.3.1", + "zendframework/zend-xmlrpc": ">=2.1,<2.1.6|>=2.2,<2.2.6", + "zendframework/zendframework": "<2.5.1", + "zendframework/zendframework1": "<1.12.20", + "zendframework/zendopenid": ">=2,<2.0.2", + "zendframework/zendxml": ">=1,<1.0.1", + "zetacomponents/mail": "<1.8.2", + "zf-commons/zfc-user": "<1.2.2", + "zfcampus/zf-apigility-doctrine": ">=1,<1.0.3", + "zfr/zfr-oauth2-server-module": "<0.1.2" + }, + "default-branch": true, + "type": "metapackage", + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com", + "role": "maintainer" + }, + { + "name": "Ilya Tribusean", + "email": "slash3b@gmail.com", + "role": "maintainer" + } + ], + "description": "Prevents installation of composer packages with known security vulnerabilities: no API, simply require it", + "support": { + "issues": "https://github.com/Roave/SecurityAdvisories/issues", + "source": "https://github.com/Roave/SecurityAdvisories/tree/latest" + }, + "funding": [ + { + "url": "https://github.com/Ocramius", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/roave/security-advisories", + "type": "tidelift" + } + ], + "time": "2021-05-02T09:01:19+00:00" }, { "name": "sanmai/pipeline", @@ -5358,32 +7596,154 @@ } ], "description": "General-purpose collections pipeline", + "support": { + "issues": "https://github.com/sanmai/pipeline/issues", + "source": "https://github.com/sanmai/pipeline/tree/v3.1.4" + }, + "funding": [ + { + "url": "https://github.com/sanmai", + "type": "github" + } + ], "time": "2020-10-21T01:57:59+00:00" }, + { + "name": "sebastian/cli-parser", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/cli-parser.git", + "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/442e7c7e687e42adc03470c7b668bc4b2402c0b2", + "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library for parsing CLI options", + "homepage": "https://github.com/sebastianbergmann/cli-parser", + "support": { + "issues": "https://github.com/sebastianbergmann/cli-parser/issues", + "source": "https://github.com/sebastianbergmann/cli-parser/tree/1.0.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-09-28T06:08:49+00:00" + }, + { + "name": "sebastian/code-unit", + "version": "1.0.8", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/code-unit.git", + "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/1fc9f64c0927627ef78ba436c9b17d967e68e120", + "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Collection of value objects that represent the PHP code units", + "homepage": "https://github.com/sebastianbergmann/code-unit", + "support": { + "issues": "https://github.com/sebastianbergmann/code-unit/issues", + "source": "https://github.com/sebastianbergmann/code-unit/tree/1.0.8" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T13:08:54+00:00" + }, { "name": "sebastian/code-unit-reverse-lookup", - "version": "1.0.2", + "version": "2.0.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", - "reference": "1de8cd5c010cb153fcd68b8d0f64606f523f7619" + "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/1de8cd5c010cb153fcd68b8d0f64606f523f7619", - "reference": "1de8cd5c010cb153fcd68b8d0f64606f523f7619", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5", + "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5", "shasum": "" }, "require": { - "php": ">=5.6" + "php": ">=7.3" }, "require-dev": { - "phpunit/phpunit": "^8.5" + "phpunit/phpunit": "^9.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-master": "2.0-dev" } }, "autoload": { @@ -5403,34 +7763,44 @@ ], "description": "Looks up which function or method a line of code belongs to", "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", - "time": "2020-11-30T08:15:22+00:00" + "support": { + "issues": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues", + "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/2.0.3" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-09-28T05:30:19+00:00" }, { "name": "sebastian/comparator", - "version": "3.0.3", + "version": "4.0.6", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/comparator.git", - "reference": "1071dfcef776a57013124ff35e1fc41ccd294758" + "reference": "55f4261989e546dc112258c7a75935a81a7ce382" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/1071dfcef776a57013124ff35e1fc41ccd294758", - "reference": "1071dfcef776a57013124ff35e1fc41ccd294758", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/55f4261989e546dc112258c7a75935a81a7ce382", + "reference": "55f4261989e546dc112258c7a75935a81a7ce382", "shasum": "" }, "require": { - "php": ">=7.1", - "sebastian/diff": "^3.0", - "sebastian/exporter": "^3.1" + "php": ">=7.3", + "sebastian/diff": "^4.0", + "sebastian/exporter": "^4.0" }, "require-dev": { - "phpunit/phpunit": "^8.5" + "phpunit/phpunit": "^9.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0-dev" + "dev-master": "4.0-dev" } }, "autoload": { @@ -5467,33 +7837,100 @@ "compare", "equality" ], - "time": "2020-11-30T08:04:30+00:00" + "support": { + "issues": "https://github.com/sebastianbergmann/comparator/issues", + "source": "https://github.com/sebastianbergmann/comparator/tree/4.0.6" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T15:49:45+00:00" + }, + { + "name": "sebastian/complexity", + "version": "2.0.2", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/complexity.git", + "reference": "739b35e53379900cc9ac327b2147867b8b6efd88" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/739b35e53379900cc9ac327b2147867b8b6efd88", + "reference": "739b35e53379900cc9ac327b2147867b8b6efd88", + "shasum": "" + }, + "require": { + "nikic/php-parser": "^4.7", + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library for calculating the complexity of PHP code units", + "homepage": "https://github.com/sebastianbergmann/complexity", + "support": { + "issues": "https://github.com/sebastianbergmann/complexity/issues", + "source": "https://github.com/sebastianbergmann/complexity/tree/2.0.2" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T15:52:27+00:00" }, { "name": "sebastian/diff", - "version": "3.0.3", + "version": "4.0.4", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/diff.git", - "reference": "14f72dd46eaf2f2293cbe79c93cc0bc43161a211" + "reference": "3461e3fccc7cfdfc2720be910d3bd73c69be590d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/14f72dd46eaf2f2293cbe79c93cc0bc43161a211", - "reference": "14f72dd46eaf2f2293cbe79c93cc0bc43161a211", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/3461e3fccc7cfdfc2720be910d3bd73c69be590d", + "reference": "3461e3fccc7cfdfc2720be910d3bd73c69be590d", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=7.3" }, "require-dev": { - "phpunit/phpunit": "^7.5 || ^8.0", - "symfony/process": "^2 || ^3.3 || ^4" + "phpunit/phpunit": "^9.3", + "symfony/process": "^4.2 || ^5" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0-dev" + "dev-master": "4.0-dev" } }, "autoload": { @@ -5523,27 +7960,37 @@ "unidiff", "unified diff" ], - "time": "2020-11-30T07:59:04+00:00" + "support": { + "issues": "https://github.com/sebastianbergmann/diff/issues", + "source": "https://github.com/sebastianbergmann/diff/tree/4.0.4" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T13:10:38+00:00" }, { "name": "sebastian/environment", - "version": "4.2.4", + "version": "5.1.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/environment.git", - "reference": "d47bbbad83711771f167c72d4e3f25f7fcc1f8b0" + "reference": "388b6ced16caa751030f6a69e588299fa09200ac" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/d47bbbad83711771f167c72d4e3f25f7fcc1f8b0", - "reference": "d47bbbad83711771f167c72d4e3f25f7fcc1f8b0", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/388b6ced16caa751030f6a69e588299fa09200ac", + "reference": "388b6ced16caa751030f6a69e588299fa09200ac", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=7.3" }, "require-dev": { - "phpunit/phpunit": "^7.5" + "phpunit/phpunit": "^9.3" }, "suggest": { "ext-posix": "*" @@ -5551,7 +7998,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "4.2-dev" + "dev-master": "5.1-dev" } }, "autoload": { @@ -5576,34 +8023,44 @@ "environment", "hhvm" ], - "time": "2020-11-30T07:53:42+00:00" + "support": { + "issues": "https://github.com/sebastianbergmann/environment/issues", + "source": "https://github.com/sebastianbergmann/environment/tree/5.1.3" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-09-28T05:52:38+00:00" }, { "name": "sebastian/exporter", - "version": "3.1.3", + "version": "4.0.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "6b853149eab67d4da22291d36f5b0631c0fd856e" + "reference": "d89cc98761b8cb5a1a235a6b703ae50d34080e65" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/6b853149eab67d4da22291d36f5b0631c0fd856e", - "reference": "6b853149eab67d4da22291d36f5b0631c0fd856e", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/d89cc98761b8cb5a1a235a6b703ae50d34080e65", + "reference": "d89cc98761b8cb5a1a235a6b703ae50d34080e65", "shasum": "" }, "require": { - "php": ">=7.0", - "sebastian/recursion-context": "^3.0" + "php": ">=7.3", + "sebastian/recursion-context": "^4.0" }, "require-dev": { "ext-mbstring": "*", - "phpunit/phpunit": "^6.0" + "phpunit/phpunit": "^9.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.1.x-dev" + "dev-master": "4.0-dev" } }, "autoload": { @@ -5643,30 +8100,40 @@ "export", "exporter" ], - "time": "2020-11-30T07:47:53+00:00" + "support": { + "issues": "https://github.com/sebastianbergmann/exporter/issues", + "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.3" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-09-28T05:24:23+00:00" }, { "name": "sebastian/global-state", - "version": "3.0.1", + "version": "5.0.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/global-state.git", - "reference": "474fb9edb7ab891665d3bfc6317f42a0a150454b" + "reference": "a90ccbddffa067b51f574dea6eb25d5680839455" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/474fb9edb7ab891665d3bfc6317f42a0a150454b", - "reference": "474fb9edb7ab891665d3bfc6317f42a0a150454b", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/a90ccbddffa067b51f574dea6eb25d5680839455", + "reference": "a90ccbddffa067b51f574dea6eb25d5680839455", "shasum": "" }, "require": { - "php": ">=7.2", - "sebastian/object-reflector": "^1.1.1", - "sebastian/recursion-context": "^3.0" + "php": ">=7.3", + "sebastian/object-reflector": "^2.0", + "sebastian/recursion-context": "^4.0" }, "require-dev": { "ext-dom": "*", - "phpunit/phpunit": "^8.0" + "phpunit/phpunit": "^9.3" }, "suggest": { "ext-uopz": "*" @@ -5674,7 +8141,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0-dev" + "dev-master": "5.0-dev" } }, "autoload": { @@ -5697,34 +8164,101 @@ "keywords": [ "global state" ], - "time": "2020-11-30T07:43:24+00:00" + "support": { + "issues": "https://github.com/sebastianbergmann/global-state/issues", + "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.2" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T15:55:19+00:00" + }, + { + "name": "sebastian/lines-of-code", + "version": "1.0.3", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/lines-of-code.git", + "reference": "c1c2e997aa3146983ed888ad08b15470a2e22ecc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/c1c2e997aa3146983ed888ad08b15470a2e22ecc", + "reference": "c1c2e997aa3146983ed888ad08b15470a2e22ecc", + "shasum": "" + }, + "require": { + "nikic/php-parser": "^4.6", + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library for counting the lines of code in PHP source code", + "homepage": "https://github.com/sebastianbergmann/lines-of-code", + "support": { + "issues": "https://github.com/sebastianbergmann/lines-of-code/issues", + "source": "https://github.com/sebastianbergmann/lines-of-code/tree/1.0.3" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-11-28T06:42:11+00:00" }, { "name": "sebastian/object-enumerator", - "version": "3.0.4", + "version": "4.0.4", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/object-enumerator.git", - "reference": "e67f6d32ebd0c749cf9d1dbd9f226c727043cdf2" + "reference": "5c9eeac41b290a3712d88851518825ad78f45c71" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/e67f6d32ebd0c749cf9d1dbd9f226c727043cdf2", - "reference": "e67f6d32ebd0c749cf9d1dbd9f226c727043cdf2", + "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/5c9eeac41b290a3712d88851518825ad78f45c71", + "reference": "5c9eeac41b290a3712d88851518825ad78f45c71", "shasum": "" }, "require": { - "php": ">=7.0", - "sebastian/object-reflector": "^1.1.1", - "sebastian/recursion-context": "^3.0" + "php": ">=7.3", + "sebastian/object-reflector": "^2.0", + "sebastian/recursion-context": "^4.0" }, "require-dev": { - "phpunit/phpunit": "^6.0" + "phpunit/phpunit": "^9.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0.x-dev" + "dev-master": "4.0-dev" } }, "autoload": { @@ -5744,32 +8278,42 @@ ], "description": "Traverses array structures and object graphs to enumerate all referenced objects", "homepage": "https://github.com/sebastianbergmann/object-enumerator/", - "time": "2020-11-30T07:40:27+00:00" + "support": { + "issues": "https://github.com/sebastianbergmann/object-enumerator/issues", + "source": "https://github.com/sebastianbergmann/object-enumerator/tree/4.0.4" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T13:12:34+00:00" }, { "name": "sebastian/object-reflector", - "version": "1.1.2", + "version": "2.0.4", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/object-reflector.git", - "reference": "9b8772b9cbd456ab45d4a598d2dd1a1bced6363d" + "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/9b8772b9cbd456ab45d4a598d2dd1a1bced6363d", - "reference": "9b8772b9cbd456ab45d4a598d2dd1a1bced6363d", + "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/b4f479ebdbf63ac605d183ece17d8d7fe49c15c7", + "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7", "shasum": "" }, "require": { - "php": ">=7.0" + "php": ">=7.3" }, "require-dev": { - "phpunit/phpunit": "^6.0" + "phpunit/phpunit": "^9.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.1-dev" + "dev-master": "2.0-dev" } }, "autoload": { @@ -5789,32 +8333,42 @@ ], "description": "Allows reflection of object attributes, including inherited and non-public ones", "homepage": "https://github.com/sebastianbergmann/object-reflector/", - "time": "2020-11-30T07:37:18+00:00" + "support": { + "issues": "https://github.com/sebastianbergmann/object-reflector/issues", + "source": "https://github.com/sebastianbergmann/object-reflector/tree/2.0.4" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T13:14:26+00:00" }, { "name": "sebastian/recursion-context", - "version": "3.0.1", + "version": "4.0.4", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/recursion-context.git", - "reference": "367dcba38d6e1977be014dc4b22f47a484dac7fb" + "reference": "cd9d8cf3c5804de4341c283ed787f099f5506172" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/367dcba38d6e1977be014dc4b22f47a484dac7fb", - "reference": "367dcba38d6e1977be014dc4b22f47a484dac7fb", + "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/cd9d8cf3c5804de4341c283ed787f099f5506172", + "reference": "cd9d8cf3c5804de4341c283ed787f099f5506172", "shasum": "" }, "require": { - "php": ">=7.0" + "php": ">=7.3" }, "require-dev": { - "phpunit/phpunit": "^6.0" + "phpunit/phpunit": "^9.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0.x-dev" + "dev-master": "4.0-dev" } }, "autoload": { @@ -5842,29 +8396,42 @@ ], "description": "Provides functionality to recursively process PHP variables", "homepage": "http://www.github.com/sebastianbergmann/recursion-context", - "time": "2020-11-30T07:34:24+00:00" + "support": { + "issues": "https://github.com/sebastianbergmann/recursion-context/issues", + "source": "https://github.com/sebastianbergmann/recursion-context/tree/4.0.4" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T13:17:30+00:00" }, { "name": "sebastian/resource-operations", - "version": "2.0.2", + "version": "3.0.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/resource-operations.git", - "reference": "31d35ca87926450c44eae7e2611d45a7a65ea8b3" + "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/31d35ca87926450c44eae7e2611d45a7a65ea8b3", - "reference": "31d35ca87926450c44eae7e2611d45a7a65ea8b3", + "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8", + "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0-dev" + "dev-master": "3.0-dev" } }, "autoload": { @@ -5884,32 +8451,42 @@ ], "description": "Provides a list of PHP built-in functions that operate on resources", "homepage": "https://www.github.com/sebastianbergmann/resource-operations", - "time": "2020-11-30T07:30:19+00:00" + "support": { + "issues": "https://github.com/sebastianbergmann/resource-operations/issues", + "source": "https://github.com/sebastianbergmann/resource-operations/tree/3.0.3" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-09-28T06:45:17+00:00" }, { "name": "sebastian/type", - "version": "1.1.4", + "version": "2.3.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/type.git", - "reference": "0150cfbc4495ed2df3872fb31b26781e4e077eb4" + "reference": "81cd61ab7bbf2de744aba0ea61fae32f721df3d2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/0150cfbc4495ed2df3872fb31b26781e4e077eb4", - "reference": "0150cfbc4495ed2df3872fb31b26781e4e077eb4", + "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/81cd61ab7bbf2de744aba0ea61fae32f721df3d2", + "reference": "81cd61ab7bbf2de744aba0ea61fae32f721df3d2", "shasum": "" }, "require": { - "php": ">=7.2" + "php": ">=7.3" }, "require-dev": { - "phpunit/phpunit": "^8.2" + "phpunit/phpunit": "^9.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.1-dev" + "dev-master": "2.3-dev" } }, "autoload": { @@ -5930,29 +8507,39 @@ ], "description": "Collection of value objects that represent the types of the PHP type system", "homepage": "https://github.com/sebastianbergmann/type", - "time": "2020-11-30T07:25:11+00:00" + "support": { + "issues": "https://github.com/sebastianbergmann/type/issues", + "source": "https://github.com/sebastianbergmann/type/tree/2.3.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T13:18:59+00:00" }, { "name": "sebastian/version", - "version": "2.0.1", + "version": "3.0.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/version.git", - "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019" + "reference": "c6c1022351a901512170118436c764e473f6de8c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/99732be0ddb3361e16ad77b68ba41efc8e979019", - "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019", + "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c6c1022351a901512170118436c764e473f6de8c", + "reference": "c6c1022351a901512170118436c764e473f6de8c", "shasum": "" }, "require": { - "php": ">=5.6" + "php": ">=7.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0.x-dev" + "dev-master": "3.0-dev" } }, "autoload": { @@ -5973,7 +8560,17 @@ ], "description": "Library that helps with managing the version number of Git-hosted PHP projects", "homepage": "https://github.com/sebastianbergmann/version", - "time": "2016-10-03T07:35:21+00:00" + "support": { + "issues": "https://github.com/sebastianbergmann/version/issues", + "source": "https://github.com/sebastianbergmann/version/tree/3.0.2" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-09-28T06:39:44+00:00" }, { "name": "seld/jsonlint", @@ -6022,31 +8619,45 @@ "parser", "validator" ], + "support": { + "issues": "https://github.com/Seldaek/jsonlint/issues", + "source": "https://github.com/Seldaek/jsonlint/tree/1.8.3" + }, + "funding": [ + { + "url": "https://github.com/Seldaek", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/seld/jsonlint", + "type": "tidelift" + } + ], "time": "2020-11-11T09:19:24+00:00" }, { "name": "symfony/browser-kit", - "version": "v4.4.19", + "version": "v5.2.7", "source": { "type": "git", "url": "https://github.com/symfony/browser-kit.git", - "reference": "f6f060bdc473c3f3b1f00e2ebdeb3d02eda77f82" + "reference": "b1c9d5701273a255da3a580f85066b83bd94e97d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/browser-kit/zipball/f6f060bdc473c3f3b1f00e2ebdeb3d02eda77f82", - "reference": "f6f060bdc473c3f3b1f00e2ebdeb3d02eda77f82", + "url": "https://api.github.com/repos/symfony/browser-kit/zipball/b1c9d5701273a255da3a580f85066b83bd94e97d", + "reference": "b1c9d5701273a255da3a580f85066b83bd94e97d", "shasum": "" }, "require": { - "php": ">=7.1.3", - "symfony/dom-crawler": "^3.4|^4.0|^5.0" + "php": ">=7.2.5", + "symfony/dom-crawler": "^4.4|^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" + "symfony/css-selector": "^4.4|^5.0", + "symfony/http-client": "^4.4|^5.0", + "symfony/mime": "^4.4|^5.0", + "symfony/process": "^4.4|^5.0" }, "suggest": { "symfony/process": "" @@ -6076,46 +8687,65 @@ ], "description": "Simulates the behavior of a web browser, allowing you to make requests, click on links and submit forms programmatically", "homepage": "https://symfony.com", - "time": "2021-01-27T09:09:26+00:00" + "support": { + "source": "https://github.com/symfony/browser-kit/tree/v5.2.7" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-04-08T10:27:02+00:00" }, { "name": "symfony/console", - "version": "v4.4.19", + "version": "v5.2.7", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "24026c44fc37099fa145707fecd43672831b837a" + "reference": "90374b8ed059325b49a29b55b3f8bb4062c87629" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/24026c44fc37099fa145707fecd43672831b837a", - "reference": "24026c44fc37099fa145707fecd43672831b837a", + "url": "https://api.github.com/repos/symfony/console/zipball/90374b8ed059325b49a29b55b3f8bb4062c87629", + "reference": "90374b8ed059325b49a29b55b3f8bb4062c87629", "shasum": "" }, "require": { - "php": ">=7.1.3", + "php": ">=7.2.5", "symfony/polyfill-mbstring": "~1.0", "symfony/polyfill-php73": "^1.8", "symfony/polyfill-php80": "^1.15", - "symfony/service-contracts": "^1.1|^2" + "symfony/service-contracts": "^1.1|^2", + "symfony/string": "^5.1" }, "conflict": { - "symfony/dependency-injection": "<3.4", - "symfony/event-dispatcher": "<4.3|>=5", + "symfony/dependency-injection": "<4.4", + "symfony/dotenv": "<5.1", + "symfony/event-dispatcher": "<4.4", "symfony/lock": "<4.4", - "symfony/process": "<3.3" + "symfony/process": "<4.4" }, "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/config": "^4.4|^5.0", + "symfony/dependency-injection": "^4.4|^5.0", + "symfony/event-dispatcher": "^4.4|^5.0", "symfony/lock": "^4.4|^5.0", - "symfony/process": "^3.4|^4.0|^5.0", - "symfony/var-dumper": "^4.3|^5.0" + "symfony/process": "^4.4|^5.0", + "symfony/var-dumper": "^4.4|^5.0" }, "suggest": { "psr/log": "For using the console logger", @@ -6148,38 +8778,66 @@ ], "description": "Eases the creation of beautiful and testable command line interfaces", "homepage": "https://symfony.com", - "time": "2021-01-27T09:09:26+00:00" + "keywords": [ + "cli", + "command line", + "console", + "terminal" + ], + "support": { + "source": "https://github.com/symfony/console/tree/v5.2.7" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-04-19T14:07:32+00:00" }, { "name": "symfony/doctrine-bridge", - "version": "v4.4.19", + "version": "v5.2.7", "source": { "type": "git", "url": "https://github.com/symfony/doctrine-bridge.git", - "reference": "a908956f818918488a8705aca534cd4b7e070774" + "reference": "6c8318bb9b315d3d325e9904445e4c4514e3d8ed" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/doctrine-bridge/zipball/a908956f818918488a8705aca534cd4b7e070774", - "reference": "a908956f818918488a8705aca534cd4b7e070774", + "url": "https://api.github.com/repos/symfony/doctrine-bridge/zipball/6c8318bb9b315d3d325e9904445e4c4514e3d8ed", + "reference": "6c8318bb9b315d3d325e9904445e4c4514e3d8ed", "shasum": "" }, "require": { "doctrine/event-manager": "~1.0", - "doctrine/persistence": "^1.3|^2", - "php": ">=7.1.3", + "doctrine/persistence": "^2", + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1", "symfony/polyfill-ctype": "~1.8", "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-php80": "^1.15", "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" + "doctrine/dbal": "<2.10", + "phpunit/phpunit": "<5.4.3", + "symfony/dependency-injection": "<4.4", + "symfony/form": "<5.1", + "symfony/http-kernel": "<5", + "symfony/messenger": "<4.4", + "symfony/property-info": "<5", + "symfony/security-bundle": "<5", + "symfony/security-core": "<5", + "symfony/validator": "<5.2" }, "require-dev": { "composer/package-versions-deprecated": "^1.8", @@ -6187,22 +8845,25 @@ "doctrine/cache": "~1.6", "doctrine/collections": "~1.0", "doctrine/data-fixtures": "^1.1", - "doctrine/dbal": "^2.6|^3.0", - "doctrine/orm": "^2.6.3", - "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", + "doctrine/dbal": "^2.10|^3.0", + "doctrine/orm": "^2.7.3", + "symfony/cache": "^5.1", + "symfony/config": "^4.4|^5.0", + "symfony/dependency-injection": "^4.4|^5.0", + "symfony/doctrine-messenger": "^5.1", + "symfony/expression-language": "^4.4|^5.0", + "symfony/form": "^5.1.3", + "symfony/http-kernel": "^5.0", "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" + "symfony/property-access": "^4.4|^5.0", + "symfony/property-info": "^5.0", + "symfony/proxy-manager-bridge": "^4.4|^5.0", + "symfony/security-core": "^5.0", + "symfony/stopwatch": "^4.4|^5.0", + "symfony/translation": "^4.4|^5.0", + "symfony/uid": "^5.1", + "symfony/validator": "^5.2", + "symfony/var-dumper": "^4.4|^5.0" }, "suggest": { "doctrine/data-fixtures": "", @@ -6237,20 +8898,37 @@ ], "description": "Provides integration for Doctrine with various Symfony components", "homepage": "https://symfony.com", - "time": "2021-01-27T09:09:34+00:00" + "support": { + "source": "https://github.com/symfony/doctrine-bridge/tree/v5.2.7" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-04-16T17:25:34+00:00" }, { "name": "symfony/dom-crawler", - "version": "v5.2.3", + "version": "v5.2.4", "source": { "type": "git", "url": "https://github.com/symfony/dom-crawler.git", - "reference": "5d89ceb53ec65e1973a555072fac8ed5ecad3384" + "reference": "400e265163f65aceee7e904ef532e15228de674b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/5d89ceb53ec65e1973a555072fac8ed5ecad3384", - "reference": "5d89ceb53ec65e1973a555072fac8ed5ecad3384", + "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/400e265163f65aceee7e904ef532e15228de674b", + "reference": "400e265163f65aceee7e904ef532e15228de674b", "shasum": "" }, "require": { @@ -6294,20 +8972,37 @@ ], "description": "Eases DOM navigation for HTML and XML documents", "homepage": "https://symfony.com", - "time": "2021-01-27T10:01:46+00:00" + "support": { + "source": "https://github.com/symfony/dom-crawler/tree/v5.2.4" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-02-15T18:55:04+00:00" }, { "name": "symfony/finder", - "version": "v5.2.3", + "version": "v5.2.4", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "4adc8d172d602008c204c2e16956f99257248e03" + "reference": "0d639a0943822626290d169965804f79400e6a04" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/4adc8d172d602008c204c2e16956f99257248e03", - "reference": "4adc8d172d602008c204c2e16956f99257248e03", + "url": "https://api.github.com/repos/symfony/finder/zipball/0d639a0943822626290d169965804f79400e6a04", + "reference": "0d639a0943822626290d169965804f79400e6a04", "shasum": "" }, "require": { @@ -6338,62 +9033,82 @@ ], "description": "Finds files and directories via an intuitive fluent interface", "homepage": "https://symfony.com", - "time": "2021-01-28T22:06:19+00:00" + "support": { + "source": "https://github.com/symfony/finder/tree/v5.2.4" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-02-15T18:55:04+00:00" }, { "name": "symfony/framework-bundle", - "version": "v4.4.19", + "version": "v5.2.7", "source": { "type": "git", "url": "https://github.com/symfony/framework-bundle.git", - "reference": "790f1db60deb1577eaf86f2025215b48c53f8e94" + "reference": "af652965c2a598e192200c6932ab9edd283ffe42" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/790f1db60deb1577eaf86f2025215b48c53f8e94", - "reference": "790f1db60deb1577eaf86f2025215b48c53f8e94", + "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/af652965c2a598e192200c6932ab9edd283ffe42", + "reference": "af652965c2a598e192200c6932ab9edd283ffe42", "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", + "php": ">=7.2.5", + "symfony/cache": "^5.2", + "symfony/config": "^5.0", + "symfony/dependency-injection": "^5.2", + "symfony/deprecation-contracts": "^2.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/event-dispatcher": "^5.1", + "symfony/filesystem": "^4.4|^5.0", + "symfony/finder": "^4.4|^5.0", + "symfony/http-foundation": "^5.2.1", + "symfony/http-kernel": "^5.2.1", "symfony/polyfill-mbstring": "~1.0", - "symfony/routing": "^4.4.12|^5.1.4" + "symfony/polyfill-php80": "^1.15", + "symfony/routing": "^5.2" }, "conflict": { "doctrine/persistence": "<1.3", - "phpdocumentor/reflection-docblock": "<3.0|>=3.2.0,<3.2.2", - "phpdocumentor/type-resolver": "<0.3.0|1.3.*", - "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", + "phpdocumentor/reflection-docblock": "<3.2.2", + "phpdocumentor/type-resolver": "<1.4.0", + "phpunit/phpunit": "<5.4.3", + "symfony/asset": "<5.1", + "symfony/browser-kit": "<4.4", + "symfony/console": "<5.2.5", + "symfony/dom-crawler": "<4.4", + "symfony/dotenv": "<5.1", + "symfony/form": "<5.2", "symfony/http-client": "<4.4", "symfony/lock": "<4.4", - "symfony/mailer": "<4.4", + "symfony/mailer": "<5.2", "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/property-access": "<5.2", + "symfony/property-info": "<4.4", + "symfony/serializer": "<5.2", + "symfony/stopwatch": "<4.4", + "symfony/translation": "<5.0", + "symfony/twig-bridge": "<4.4", "symfony/twig-bundle": "<4.4", - "symfony/validator": "<4.4", + "symfony/validator": "<5.2", "symfony/web-profiler-bundle": "<4.4", - "symfony/workflow": "<4.3.6" + "symfony/workflow": "<5.2" }, "require-dev": { "doctrine/annotations": "^1.10.4", @@ -6401,114 +9116,51 @@ "doctrine/persistence": "^1.3|^2.0", "paragonie/sodium_compat": "^1.8", "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.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/asset": "^5.1", + "symfony/browser-kit": "^4.4|^5.0", + "symfony/console": "^5.2", + "symfony/css-selector": "^4.4|^5.0", + "symfony/dom-crawler": "^4.4|^5.0", + "symfony/dotenv": "^5.1", + "symfony/expression-language": "^4.4|^5.0", + "symfony/form": "^5.2", "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/mailer": "^5.2", + "symfony/messenger": "^5.2", "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/process": "^4.4|^5.0", + "symfony/property-info": "^4.4|^5.0", + "symfony/security-bundle": "^5.1", + "symfony/security-core": "^4.4|^5.2", + "symfony/security-csrf": "^4.4|^5.0", + "symfony/security-http": "^4.4|^5.0", + "symfony/serializer": "^5.2", + "symfony/stopwatch": "^4.4|^5.0", + "symfony/string": "^5.0", + "symfony/translation": "^5.0", "symfony/twig-bundle": "^4.4|^5.0", - "symfony/validator": "^4.4|^5.0", + "symfony/validator": "^5.2", "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.43|^2.13|^3.0.4" - }, - "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", - "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": "Provides a tight integration between Symfony components and the Symfony full-stack framework", - "homepage": "https://symfony.com", - "time": "2021-01-27T09:09:26+00:00" - }, - { - "name": "symfony/phpunit-bridge", - "version": "v4.4.19", - "source": { - "type": "git", - "url": "https://github.com/symfony/phpunit-bridge.git", - "reference": "85a2fcd7a7111b503962a5f0a55f34ea41dfe2cf" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/phpunit-bridge/zipball/85a2fcd7a7111b503962a5f0a55f34ea41dfe2cf", - "reference": "85a2fcd7a7111b503962a5f0a55f34ea41dfe2cf", - "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/error-handler": "^4.4|^5.0" + "symfony/workflow": "^5.2", + "symfony/yaml": "^4.4|^5.0", + "twig/twig": "^2.10|^3.0" }, - "suggest": { - "symfony/error-handler": "For tracking deprecated interfaces usages at runtime with DebugClassLoader" - }, - "bin": [ - "bin/simple-phpunit" - ], - "type": "symfony-bridge", - "extra": { - "thanks": { - "name": "phpunit/phpunit", - "url": "https://github.com/sebastianbergmann/phpunit" - } + "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", "autoload": { - "files": [ - "bootstrap.php" - ], "psr-4": { - "Symfony\\Bridge\\PhpUnit\\": "" + "Symfony\\Bundle\\FrameworkBundle\\": "" }, "exclude-from-classmap": [ "/Tests/" @@ -6520,30 +9172,47 @@ ], "authors": [ { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" }, { "name": "Symfony Community", "homepage": "https://symfony.com/contributors" } ], - "description": "Provides utilities for PHPUnit, especially user deprecation notices management", + "description": "Provides a tight integration between Symfony components and the Symfony full-stack framework", "homepage": "https://symfony.com", - "time": "2021-01-20T20:19:14+00:00" + "support": { + "source": "https://github.com/symfony/framework-bundle/tree/v5.2.7" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-04-16T17:21:25+00:00" }, { "name": "symfony/process", - "version": "v5.2.3", + "version": "v5.2.7", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "313a38f09c77fbcdc1d223e57d368cea76a2fd2f" + "reference": "98cb8eeb72e55d4196dd1e36f1f16e7b3a9a088e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/313a38f09c77fbcdc1d223e57d368cea76a2fd2f", - "reference": "313a38f09c77fbcdc1d223e57d368cea76a2fd2f", + "url": "https://api.github.com/repos/symfony/process/zipball/98cb8eeb72e55d4196dd1e36f1f16e7b3a9a088e", + "reference": "98cb8eeb72e55d4196dd1e36f1f16e7b3a9a088e", "shasum": "" }, "require": { @@ -6575,41 +9244,59 @@ ], "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", - "time": "2021-01-27T10:15:41+00:00" + "support": { + "source": "https://github.com/symfony/process/tree/v5.3.0-BETA1" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-04-08T10:27:02+00:00" }, { "name": "symfony/routing", - "version": "v4.4.19", + "version": "v5.2.7", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "87529f6e305c7acb162840d1ea57922038072425" + "reference": "3f0cab2e95b5e92226f34c2c1aa969d3fc41f48c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/87529f6e305c7acb162840d1ea57922038072425", - "reference": "87529f6e305c7acb162840d1ea57922038072425", + "url": "https://api.github.com/repos/symfony/routing/zipball/3f0cab2e95b5e92226f34c2c1aa969d3fc41f48c", + "reference": "3f0cab2e95b5e92226f34c2c1aa969d3fc41f48c", "shasum": "" }, "require": { - "php": ">=7.1.3" + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1", + "symfony/polyfill-php80": "^1.15" }, "conflict": { - "symfony/config": "<4.2", - "symfony/dependency-injection": "<3.4", - "symfony/yaml": "<3.4" + "symfony/config": "<5.0", + "symfony/dependency-injection": "<4.4", + "symfony/yaml": "<4.4" }, "require-dev": { "doctrine/annotations": "^1.10.4", "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" + "symfony/config": "^5.0", + "symfony/dependency-injection": "^4.4|^5.0", + "symfony/expression-language": "^4.4|^5.0", + "symfony/http-foundation": "^4.4|^5.0", + "symfony/yaml": "^4.4|^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", @@ -6646,98 +9333,37 @@ "uri", "url" ], - "time": "2021-01-27T09:09:26+00:00" - }, - { - "name": "symfony/serializer", - "version": "v4.4.19", - "source": { - "type": "git", - "url": "https://github.com/symfony/serializer.git", - "reference": "6b383bc45777d14857b634e9f8fa2b8a2e69b66d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/serializer/zipball/6b383bc45777d14857b634e9f8fa2b8a2e69b66d", - "reference": "6b383bc45777d14857b634e9f8fa2b8a2e69b66d", - "shasum": "" - }, - "require": { - "php": ">=7.1.3", - "symfony/polyfill-ctype": "~1.8" - }, - "conflict": { - "phpdocumentor/reflection-docblock": "<3.0|>=3.2.0,<3.2.2", - "phpdocumentor/type-resolver": "<0.3.0|1.3.*", - "symfony/dependency-injection": "<3.4", - "symfony/property-access": "<3.4", - "symfony/property-info": "<3.4", - "symfony/yaml": "<3.4" - }, - "require-dev": { - "doctrine/annotations": "^1.10.4", - "doctrine/cache": "~1.0", - "phpdocumentor/reflection-docblock": "^3.2|^4.0|^5.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.41|^4.4.9|^5.0.9", - "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." + "support": { + "source": "https://github.com/symfony/routing/tree/v5.2.7" }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\Serializer\\": "" + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" + "url": "https://github.com/fabpot", + "type": "github" }, { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" } ], - "description": "Handles serializing and deserializing data structures, including object graphs, into array structures or other formats like XML and JSON.", - "homepage": "https://symfony.com", - "time": "2021-01-27T09:09:26+00:00" + "time": "2021-04-11T22:55:21+00:00" }, { "name": "symfony/stopwatch", - "version": "v5.2.3", + "version": "v5.2.7", "source": { "type": "git", "url": "https://github.com/symfony/stopwatch.git", - "reference": "b12274acfab9d9850c52583d136a24398cdf1a0c" + "reference": "d99310c33e833def36419c284f60e8027d359678" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/stopwatch/zipball/b12274acfab9d9850c52583d136a24398cdf1a0c", - "reference": "b12274acfab9d9850c52583d136a24398cdf1a0c", + "url": "https://api.github.com/repos/symfony/stopwatch/zipball/d99310c33e833def36419c284f60e8027d359678", + "reference": "d99310c33e833def36419c284f60e8027d359678", "shasum": "" }, "require": { @@ -6769,184 +9395,56 @@ ], "description": "Provides a way to profile code", "homepage": "https://symfony.com", - "time": "2021-01-27T10:15:41+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\\": "" - } + "support": { + "source": "https://github.com/symfony/stopwatch/tree/v5.3.0-BETA1" }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, + "funding": [ { - "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/validator", - "version": "v4.4.19", - "source": { - "type": "git", - "url": "https://github.com/symfony/validator.git", - "reference": "039479123c8d824f23efba9bb413b85dc3f42e43" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/validator/zipball/039479123c8d824f23efba9bb413b85dc3f42e43", - "reference": "039479123c8d824f23efba9bb413b85dc3f42e43", - "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.10.4", - "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", - "autoload": { - "psr-4": { - "Symfony\\Component\\Validator\\": "" + "url": "https://symfony.com/sponsor", + "type": "custom" }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" + "url": "https://github.com/fabpot", + "type": "github" }, { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" } ], - "description": "Provides tools to validate values", - "homepage": "https://symfony.com", - "time": "2021-01-27T09:09:26+00:00" + "time": "2021-03-29T15:28:41+00:00" }, { "name": "symfony/yaml", - "version": "v4.4.19", + "version": "v5.2.7", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "17ed9f14c1aa05b1a5cf2e2c5ef2d0be28058ef9" + "reference": "76546cbeddd0a9540b4e4e57eddeec3e9bb444a5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/17ed9f14c1aa05b1a5cf2e2c5ef2d0be28058ef9", - "reference": "17ed9f14c1aa05b1a5cf2e2c5ef2d0be28058ef9", + "url": "https://api.github.com/repos/symfony/yaml/zipball/76546cbeddd0a9540b4e4e57eddeec3e9bb444a5", + "reference": "76546cbeddd0a9540b4e4e57eddeec3e9bb444a5", "shasum": "" }, "require": { - "php": ">=7.1.3", + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1", "symfony/polyfill-ctype": "~1.8" }, "conflict": { - "symfony/console": "<3.4" + "symfony/console": "<4.4" }, "require-dev": { - "symfony/console": "^3.4|^4.0|^5.0" + "symfony/console": "^4.4|^5.0" }, "suggest": { "symfony/console": "For validating YAML files using the lint command" }, + "bin": [ + "Resources/bin/yaml-lint" + ], "type": "library", "autoload": { "psr-4": { @@ -6972,7 +9470,24 @@ ], "description": "Loads and dumps YAML files", "homepage": "https://symfony.com", - "time": "2021-01-27T09:09:26+00:00" + "support": { + "source": "https://github.com/symfony/yaml/tree/v5.2.7" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-04-29T20:47:09+00:00" }, { "name": "thecodingmachine/safe", @@ -7107,6 +9622,10 @@ "MIT" ], "description": "PHP core functions that throw exceptions instead of returning FALSE on error", + "support": { + "issues": "https://github.com/thecodingmachine/safe/issues", + "source": "https://github.com/thecodingmachine/safe/tree/v1.3.3" + }, "time": "2020-10-28T17:51:34+00:00" }, { @@ -7147,56 +9666,17 @@ } ], "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", - "time": "2020-07-12T23:59:07+00:00" - }, - { - "name": "webmozart/assert", - "version": "1.9.1", - "source": { - "type": "git", - "url": "https://github.com/webmozarts/assert.git", - "reference": "bafc69caeb4d49c39fd0779086c03a3738cbb389" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/webmozarts/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/" - } + "support": { + "issues": "https://github.com/theseer/tokenizer/issues", + "source": "https://github.com/theseer/tokenizer/tree/master" }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ + "funding": [ { - "name": "Bernhard Schussek", - "email": "bschussek@gmail.com" + "url": "https://github.com/theseer", + "type": "github" } ], - "description": "Assertions to validate method input/output with nice error messages.", - "keywords": [ - "assert", - "check", - "validate" - ], - "time": "2020-07-08T17:02:28+00:00" + "time": "2020-07-12T23:59:07+00:00" }, { "name": "webmozart/path-util", @@ -7242,18 +9722,23 @@ } ], "description": "A robust cross-platform utility for normalizing, comparing and modifying file paths.", + "support": { + "issues": "https://github.com/webmozart/path-util/issues", + "source": "https://github.com/webmozart/path-util/tree/2.3.0" + }, "time": "2015-12-17T08:42:14+00:00" } ], "aliases": [], "minimum-stability": "stable", "stability-flags": { - "richcongress/unit-bundle": 20 + "roave/security-advisories": 20 }, "prefer-stable": false, "prefer-lowest": false, "platform": { "php": ">=7.3" }, - "platform-dev": [] + "platform-dev": [], + "plugin-api-version": "2.0.0" } diff --git a/phpunit.xml.dist b/phpunit.xml.dist index 721320a..67e926d 100644 --- a/phpunit.xml.dist +++ b/phpunit.xml.dist @@ -1,8 +1,7 @@ - - - - + + + + + - + Tests - - + + . + + + + bin + DependencyInjection + Resources + Tests + vendor + RichIdExcelGeneratorBundle.php + + - - bin - DependencyInjection - Resources - Tests - vendor - phpunit-filter.php - RichIdExcelGeneratorBundle.php - - - + + + + RichCongress\WebTestBundle\TestHook + + + From 05d61b3f9e3a80e64fe23c1083ee8272566816a5 Mon Sep 17 00:00:00 2001 From: Nicolas Guilloux Date: Wed, 5 May 2021 17:55:36 +0200 Subject: [PATCH 02/10] Add more complicated test --- Tests/Generator/ExcelGeneratorTest.php | 58 ++++++++++++++------------ 1 file changed, 31 insertions(+), 27 deletions(-) diff --git a/Tests/Generator/ExcelGeneratorTest.php b/Tests/Generator/ExcelGeneratorTest.php index 7cdfe93..4b5489d 100644 --- a/Tests/Generator/ExcelGeneratorTest.php +++ b/Tests/Generator/ExcelGeneratorTest.php @@ -35,41 +35,45 @@ protected function beforeTest(): void public function testGenerate(): void { - $filePath = $this->cacheDirectory . '/spreadsheet.xls'; + $excelSpreadsheet = $this->generateExcelSpreadsheet(); + $filePath = $this->cacheDirectory . '/' . $excelSpreadsheet->filename; if (file_exists($filePath)) { unlink($filePath); } - $excelSpreadsheet = new ExcelSpreadsheet(); - $excelSpreadsheet->filename = 'spreadsheet.xls'; - - $excelSheet = new ExcelSheet(); - $excelSheet->name = 'Sheet 1'; - $excelSpreadsheet->addSheet($excelSheet); - - $content = new DummyExcelContent(); - $content->property1 = 'First row'; - $excelSheet->addChild($content); - - $content = new DummyExcelContent(); - $content->property1 = 'Second row'; - $excelSheet->addChild($content); - - $excelSheet = new ExcelSheet(); - $excelSheet->name = 'Sheet 2'; - $excelSpreadsheet->addSheet($excelSheet); + $this->generator->save($excelSpreadsheet, $this->cacheDirectory); - $content = new DummyExcelContent(); - $content->property1 = 'First row'; - $excelSheet->addChild($content); + self::assertFileExists($filePath); + } - $content = new DummyExcelContent(); - $content->property1 = 'Second row'; - $excelSheet->addChild($content); + private function generateExcelSpreadsheet(): ExcelSpreadsheet + { + $content1 = new DummyExcelContent(); + $content1->property1 = 'First row'; + $content2 = new DummyExcelContent(); + $content2->property1 = 'Second row'; + + $excelSheet1 = new ExcelSheet(); + $excelSheet1->name = 'Sheet 1'; + $excelSheet1->addChild($content1); + $excelSheet1->addChild($content2); + + $childContent = new DummyExcelContent(); + $childContent->property1 = 'Child'; + $parentContent = new DummyExcelContent(); + $parentContent->property1 = 'Parent'; + $parentContent->addChild($childContent); + + $excelSheet2 = new ExcelSheet(); + $excelSheet2->name = 'Sheet 2'; + $excelSheet2->addChild($parentContent); - $this->generator->save($excelSpreadsheet, $this->cacheDirectory); + $excelSpreadsheet = new ExcelSpreadsheet(); + $excelSpreadsheet->filename = 'spreadsheet.xls'; + $excelSpreadsheet->addSheet($excelSheet1); + $excelSpreadsheet->addSheet($excelSheet2); - self::assertFileExists($filePath); + return $excelSpreadsheet; } } \ No newline at end of file From 9eb2f8105a3f8673dd47724f69b76d18a4675146 Mon Sep 17 00:00:00 2001 From: Nicolas Guilloux Date: Tue, 11 May 2021 09:27:17 +0200 Subject: [PATCH 03/10] Refacto code --- Builder/Partials/AbstractBuilder.php | 26 ++++ Builder/Partials/SheetColumnsSizeBuilder.php | 66 --------- Builder/Partials/SheetHeaderBuilder.php | 87 ------------ Builder/Partials/SheetRowContentBuilder.php | 70 +++------- Builder/SpreadsheetBuilder.php | 45 +++---- Builder/SpreadsheetBuilderInterface.php | 2 +- .../CellConfigurationsExtractor.php | 36 +++++ .../Model/CellConfiguration.php | 48 +++++++ .../Model/GeneratedCellConfiguration.php | 26 ++++ Event/ExcelCellGeneratedEvent.php | 41 ++++++ Event/ExcelRowGeneratedEvent.php | 32 +++++ Event/ExcelRowPreGeneratedEvent.php | 28 ++++ ...Event.php => ExcelSheetGeneratedEvent.php} | 20 +-- ...php => ExcelSpreadsheetGeneratedEvent.php} | 20 +-- Generator/ExcelGenerator.php | 2 +- Helper/AbstractHelper.php | 20 +++ Helper/AnnotationHelper.php | 42 ++++++ Helper/ExpressionLanguageHelper.php | 43 ++++++ Helper/SpreadsheetHelper.php | 23 ++++ Helper/WorksheetHelper.php | 20 +++ Listener/AbstractStyleListener.php | 38 ++++++ Listener/AlignmentStyleOnCellGenerated.php | 68 ++++++++++ Listener/BackgroundStyleOnCellGenerated.php | 41 ++++++ Listener/BorderStyleOnCellGenerated.php | 39 ++++++ Listener/ColumnMergingOnCellGenerated.php | 28 ++++ Listener/ComputeColumnsSizeOnRowGenerated.php | 90 +++++++++++++ .../HeaderGenerationOnRowPreGenerated.php | 110 +++++++++++++++ Listener/TextStyleOnCellGenerated.php | 73 ++++++++++ Model/AbstractExcelChild.php | 6 +- Model/ExcelSpreadsheet.php | 6 +- Resources/services.xml | 26 +++- Tests/Builder/SpreadsheetBuilderTest.php | 10 +- Utility/AnnotationReaderTrait.php | 37 ----- Utility/CellStyleUtility.php | 126 ------------------ Utility/PropertyUtility.php | 64 --------- .../Constraints}/CorrectParent.php | 6 +- .../Constraints}/CorrectParentValidator.php | 6 +- 37 files changed, 975 insertions(+), 496 deletions(-) create mode 100644 Builder/Partials/AbstractBuilder.php delete mode 100644 Builder/Partials/SheetColumnsSizeBuilder.php delete mode 100644 Builder/Partials/SheetHeaderBuilder.php create mode 100644 ConfigurationExtractor/CellConfigurationsExtractor.php create mode 100644 ConfigurationExtractor/Model/CellConfiguration.php create mode 100644 ConfigurationExtractor/Model/GeneratedCellConfiguration.php create mode 100644 Event/ExcelCellGeneratedEvent.php create mode 100644 Event/ExcelRowGeneratedEvent.php create mode 100644 Event/ExcelRowPreGeneratedEvent.php rename Event/{SheetGeneratedEvent.php => ExcelSheetGeneratedEvent.php} (57%) rename Event/{SpreadsheetGeneratedEvent.php => ExcelSpreadsheetGeneratedEvent.php} (54%) create mode 100644 Helper/AbstractHelper.php create mode 100644 Helper/AnnotationHelper.php create mode 100644 Helper/ExpressionLanguageHelper.php create mode 100644 Helper/SpreadsheetHelper.php create mode 100644 Helper/WorksheetHelper.php create mode 100644 Listener/AbstractStyleListener.php create mode 100644 Listener/AlignmentStyleOnCellGenerated.php create mode 100644 Listener/BackgroundStyleOnCellGenerated.php create mode 100644 Listener/BorderStyleOnCellGenerated.php create mode 100644 Listener/ColumnMergingOnCellGenerated.php create mode 100644 Listener/ComputeColumnsSizeOnRowGenerated.php create mode 100644 Listener/HeaderGenerationOnRowPreGenerated.php create mode 100644 Listener/TextStyleOnCellGenerated.php delete mode 100644 Utility/AnnotationReaderTrait.php delete mode 100644 Utility/CellStyleUtility.php delete mode 100644 Utility/PropertyUtility.php rename {Constraints => Validator/Constraints}/CorrectParent.php (78%) rename {Constraints => Validator/Constraints}/CorrectParentValidator.php (86%) diff --git a/Builder/Partials/AbstractBuilder.php b/Builder/Partials/AbstractBuilder.php new file mode 100644 index 0000000..72853fb --- /dev/null +++ b/Builder/Partials/AbstractBuilder.php @@ -0,0 +1,26 @@ + + * @copyright 2014 - 2021 Rich ID (https://www.rich-id.fr) + */ +abstract class AbstractBuilder +{ + /** @var EventDispatcherInterface */ + protected $eventDispatcher; + + /** + * @required + */ + public function initAbstractBuilder(EventDispatcherInterface $eventDispatcher): void + { + $this->eventDispatcher = $eventDispatcher; + } +} diff --git a/Builder/Partials/SheetColumnsSizeBuilder.php b/Builder/Partials/SheetColumnsSizeBuilder.php deleted file mode 100644 index fb429b3..0000000 --- a/Builder/Partials/SheetColumnsSizeBuilder.php +++ /dev/null @@ -1,66 +0,0 @@ - - * @copyright 2014 - 2021 RichId (https://www.rich-id.fr) - */ -class SheetColumnsSizeBuilder -{ - use AnnotationReaderTrait; - - /** @var PropertyUtility */ - protected $propertyUtility; - - public function __construct(PropertyUtility $propertyUtility) - { - $this->propertyUtility = $propertyUtility; - } - - public function __invoke(Worksheet $sheet, ExcelSheetGeneratorConfiguration $configuration): void - { - $columnsAutoResize = $this->getClassAnnotationFor($configuration->getClass(), ColumnsAutoResize::class); - $properties = $this->propertyUtility->getPropertiesForConfig($configuration); - - if ($columnsAutoResize instanceof ColumnsAutoResize) { - $this->autoResizeAllColumns($sheet); - } - - foreach ($properties as $key => $property) { - /** @var ColumnDimension $columnDimension */ - $columnDimension = $this->getPropertyAnnotationForProperty($property->getReflectionProperty(), ColumnDimension::class); - - if (!$columnDimension instanceof ColumnDimension) { - continue; - } - - if ($columnDimension->autoResize) { - $sheet->getColumnDimension(Coordinate::stringFromColumnIndex($key + 1))->setAutoSize(true); - } else if ($columnDimension->dimension !== null) { - $sheet->getColumnDimension(Coordinate::stringFromColumnIndex($key + 1))->setWidth($columnDimension->dimension); - } - } - } - - private function autoResizeAllColumns(Worksheet $sheet): void - { - $cellIterator = $sheet->getRowIterator()->current()->getCellIterator(); - $cellIterator->setIterateOnlyExistingCells(false); - - foreach ($cellIterator as $cell) { - $sheet->getColumnDimension($cell->getColumn())->setAutoSize(true); - } - } -} diff --git a/Builder/Partials/SheetHeaderBuilder.php b/Builder/Partials/SheetHeaderBuilder.php deleted file mode 100644 index 0ba2bba..0000000 --- a/Builder/Partials/SheetHeaderBuilder.php +++ /dev/null @@ -1,87 +0,0 @@ - - * @copyright 2014 - 2021 RichId (https://www.rich-id.fr) - */ -class SheetHeaderBuilder -{ - use AnnotationReaderTrait; - - /** @var TranslatorInterface */ - protected $translator; - - /** @var CellStyleUtility */ - protected $cellStyleUtility; - - /** @var PropertyUtility */ - protected $propertyUtility; - - public function __construct(TranslatorInterface $translator, CellStyleUtility $cellStyleUtility, PropertyUtility $propertyUtility) - { - $this->translator = $translator; - $this->cellStyleUtility = $cellStyleUtility; - $this->propertyUtility = $propertyUtility; - } - - public function __invoke(Worksheet $sheet, ExcelSheetGeneratorConfiguration $configuration): void - { - $currentRow = $sheet->getHighestRow() === 1 ? 2 : $sheet->getHighestRow() + 1; - $properties = $this->propertyUtility->getPropertiesForConfig($configuration); - - /** @var HeaderStyle $headerStyle */ - $headerStyle = $this->getClassAnnotationFor($configuration->getClass(), HeaderStyle::class); - $hasHeader = false; - $headerCustomStyles = []; - - foreach ($properties as $key => $property) { - /** @var HeaderTitle $headerTitle */ - $headerTitle = $this->getPropertyAnnotationForProperty($property->getReflectionProperty(), HeaderTitle::class); - $headerCustomStyles[$key] = $headerTitle !== null && $headerTitle->hasStyle() ? $headerTitle : null; - - if ($headerTitle !== null) { - $hasHeader = true; - $sheet->setCellValueByColumnAndRow($key + 1, $currentRow, $this->getHeaderTitle($headerTitle)); - } - - if ($headerTitle !== null && is_int($headerTitle->columnMerge)) { - $sheet->mergeCellsByColumnAndRow($key + 1, $currentRow, $key + $headerTitle->columnMerge, $currentRow); - } - } - - if ($hasHeader && $headerStyle !== null && $headerStyle->hasStyle()) { - $this->cellStyleUtility->setStyleFor($sheet, $headerStyle, $currentRow, 1, \count($properties)); - } - - foreach ($headerCustomStyles as $key => $headerCustomStyle) { - if ($headerCustomStyle === null) { - continue; - } - - $this->cellStyleUtility->setStyleFor($sheet, $headerCustomStyle, 1, $key + 1); - } - } - - private function getHeaderTitle(HeaderTitle $headerTitle): string - { - if ($headerTitle->translationKey !== null) { - return $this->translator->trans($headerTitle->translationKey); - } - - return $headerTitle->title !== null ? $headerTitle->title : ''; - } -} diff --git a/Builder/Partials/SheetRowContentBuilder.php b/Builder/Partials/SheetRowContentBuilder.php index 6cc7135..275703a 100644 --- a/Builder/Partials/SheetRowContentBuilder.php +++ b/Builder/Partials/SheetRowContentBuilder.php @@ -2,16 +2,12 @@ namespace RichId\ExcelGeneratorBundle\Builder\Partials; -use RichId\ExcelGeneratorBundle\Config\ExcelSheetGeneratorConfiguration; -use RichId\ExcelGeneratorBundle\Annotation\ColumnMerge; -use RichId\ExcelGeneratorBundle\Annotation\ContentStyle; -use RichId\ExcelGeneratorBundle\Data\Export; +use RichId\ExcelGeneratorBundle\ConfigurationExtractor\CellConfigurationsExtractor; +use RichId\ExcelGeneratorBundle\ConfigurationExtractor\Model\CellConfiguration; +use RichId\ExcelGeneratorBundle\Event\ExcelCellGeneratedEvent; +use RichId\ExcelGeneratorBundle\Event\ExcelRowGeneratedEvent; use RichId\ExcelGeneratorBundle\Model\ExcelContent; -use RichId\ExcelGeneratorBundle\Utility\AnnotationReaderTrait; -use RichId\ExcelGeneratorBundle\Utility\CellStyleUtility; -use RichId\ExcelGeneratorBundle\Utility\PropertyUtility; use PhpOffice\PhpSpreadsheet\Worksheet\Worksheet; -use Symfony\Component\EventDispatcher\EventDispatcherInterface; /** * Class SheetRowContentBuilder @@ -20,56 +16,34 @@ * @author Hugo Dumazeau * @copyright 2014 - 2021 RichId (https://www.rich-id.fr) */ -class SheetRowContentBuilder +class SheetRowContentBuilder extends AbstractBuilder { - use AnnotationReaderTrait; + /** @var CellConfigurationsExtractor */ + protected $configurationExtractor; - /** @var CellStyleUtility */ - protected $cellStyleUtility; - - /** @var PropertyUtility */ - protected $propertyUtility; - - /** @var EventDispatcherInterface */ - protected $eventDispatcher; - - public function __construct(CellStyleUtility $cellStyleUtility, PropertyUtility $propertyUtility, EventDispatcherInterface $eventDispatcher) + public function __construct(CellConfigurationsExtractor $configurationExtractor) { - $this->cellStyleUtility = $cellStyleUtility; - $this->propertyUtility = $propertyUtility; - $this->eventDispatcher = $eventDispatcher; + $this->configurationExtractor = $configurationExtractor; } public function __invoke(Worksheet $worksheet, ExcelContent $excelContent): void { - $currentRow = $worksheet->getHighestRow(); - $reflectionClass = new \ReflectionClass($excelContent); - $properties = $reflectionClass->getProperties(\ReflectionProperty::IS_PUBLIC); - - foreach ($properties as $index => $property) { - if (in_array($property->getName(), ['parent', 'children'], true)) { - continue; - } + $row = (int) $worksheet->getHighestRow(); + $cellConfigurations = $this->configurationExtractor->getCellConfigurations($excelContent); - $columnPointer = $index + 1; - $contentStyle = $this->getPropertyAnnotationForProperty($property, ContentStyle::class); - $columnMerge = $this->getPropertyAnnotationForProperty($property, ColumnMerge::class); - $content = $property->getValue($excelContent); + foreach ($cellConfigurations as $index => $configuration) { + $this->buildFromCellConfiguration($worksheet, $configuration, $index + 1, $row); + } - $worksheet->setCellValueByColumnAndRow($columnPointer, $currentRow, $content); + $event = new ExcelRowGeneratedEvent($worksheet, $excelContent, $row); + $this->eventDispatcher->dispatch($event); + } - if ($columnMerge instanceof ColumnMerge) { - $worksheet->mergeCellsByColumnAndRow( - $columnPointer, - $currentRow, - $index + $columnMerge->count, - $currentRow - ); - } + public function buildFromCellConfiguration(Worksheet $worksheet, CellConfiguration $configuration, int $column, int $row): void + { + $worksheet->setCellValueByColumnAndRow($column, $row, $configuration->getValue()); - if ($contentStyle !== null) { - $this->cellStyleUtility->setStyleOfDataFor($worksheet, $contentStyle, $currentRow, $columnPointer, $excelContent); - } - } + $event = new ExcelCellGeneratedEvent($worksheet, $configuration, $column, $row); + $this->eventDispatcher->dispatch($event); } } diff --git a/Builder/SpreadsheetBuilder.php b/Builder/SpreadsheetBuilder.php index 6362f7a..e8903f8 100644 --- a/Builder/SpreadsheetBuilder.php +++ b/Builder/SpreadsheetBuilder.php @@ -2,19 +2,23 @@ namespace RichId\ExcelGeneratorBundle\Builder; +use RichId\ExcelGeneratorBundle\Builder\Partials\AbstractBuilder; use RichId\ExcelGeneratorBundle\Builder\Partials\SheetColumnsSizeBuilder; use RichId\ExcelGeneratorBundle\Builder\Partials\SheetHeaderBuilder; use RichId\ExcelGeneratorBundle\Builder\Partials\SheetRowContentBuilder; -use RichId\ExcelGeneratorBundle\Event\SheetGeneratedEvent; -use RichId\ExcelGeneratorBundle\Event\SpreadsheetGeneratedEvent; +use RichId\ExcelGeneratorBundle\Event\ExcelRowGeneratedEvent; +use RichId\ExcelGeneratorBundle\Event\ExcelRowPreGeneratedEvent; +use RichId\ExcelGeneratorBundle\Event\ExcelSheetGeneratedEvent; +use RichId\ExcelGeneratorBundle\Event\ExcelSpreadsheetGeneratedEvent; use PhpOffice\PhpSpreadsheet\Spreadsheet; use PhpOffice\PhpSpreadsheet\Worksheet\Worksheet; use RichId\ExcelGeneratorBundle\Exception\InvalidExcelSpreadsheetException; +use RichId\ExcelGeneratorBundle\Helper\SpreadsheetHelper; +use RichId\ExcelGeneratorBundle\Helper\WorksheetHelper; use RichId\ExcelGeneratorBundle\Model\ExcelContent; use RichId\ExcelGeneratorBundle\Model\ExcelSheet; use RichId\ExcelGeneratorBundle\Model\ExcelSpreadsheet; use Symfony\Component\Validator\Validator\ValidatorInterface; -use Symfony\Contracts\EventDispatcher\EventDispatcherInterface; /** * Class SpreadsheetBuilder @@ -23,39 +27,29 @@ * @author Hugo Dumazeau * @copyright 2014 - 2021 RichId (https://www.rich-id.fr) */ -class SpreadsheetBuilder implements SpreadsheetBuilderInterface +class SpreadsheetBuilder extends AbstractBuilder implements SpreadsheetBuilderInterface { - /** @var EventDispatcherInterface */ - protected $eventDispatcher; - /** @var SheetHeaderBuilder */ protected $sheetHeaderBuilder; /** @var SheetRowContentBuilder */ protected $sheetRowContentBuilder; - /** @var SheetColumnsSizeBuilder */ - protected $sheetColumnsSizeBuilder; - /** @var ValidatorInterface */ protected $validator; public function __construct( - EventDispatcherInterface $eventDispatcher, SheetHeaderBuilder $sheetHeaderBuilder, SheetRowContentBuilder $sheetRowContentBuilder, - SheetColumnsSizeBuilder $sheetColumnsSizeBuilder, ValidatorInterface $validator ) { - $this->eventDispatcher = $eventDispatcher; $this->sheetHeaderBuilder = $sheetHeaderBuilder; $this->sheetRowContentBuilder = $sheetRowContentBuilder; - $this->sheetColumnsSizeBuilder = $sheetColumnsSizeBuilder; $this->validator = $validator; } - public function build(ExcelSpreadsheet $excelSpreadsheet): Spreadsheet + public function __invoke(ExcelSpreadsheet $excelSpreadsheet): Spreadsheet { $violations = $this->validator->validate($excelSpreadsheet); @@ -63,19 +57,15 @@ public function build(ExcelSpreadsheet $excelSpreadsheet): Spreadsheet throw new InvalidExcelSpreadsheetException($excelSpreadsheet, $violations); } - $sheets = $excelSpreadsheet->getSheets(); $spreadsheet = new Spreadsheet(); + $sheets = $excelSpreadsheet->getSheets(); foreach ($sheets as $index => $sheet) { - $worksheet = $index === 0 ? $spreadsheet->getSheet(0) : new Worksheet(); + $worksheet = SpreadsheetHelper::getOrCreateWorksheet($spreadsheet, $index); $this->buildSheet($worksheet, $sheet); - - if ($index !== 0) { - $spreadsheet->addSheet($worksheet, $index); - } } - $event = SpreadsheetGeneratedEvent::create($spreadsheet); + $event = new ExcelSpreadsheetGeneratedEvent($spreadsheet, $excelSpreadsheet); $this->eventDispatcher->dispatch($event); return $spreadsheet; @@ -89,7 +79,7 @@ protected function buildSheet(Worksheet $worksheet, ExcelSheet $excelSheet): Wor $this->buildContent($worksheet, $child); } - $event = SheetGeneratedEvent::create($worksheet); + $event = new ExcelSheetGeneratedEvent($worksheet, $excelSheet); $this->eventDispatcher->dispatch($event); return $worksheet; @@ -97,17 +87,14 @@ protected function buildSheet(Worksheet $worksheet, ExcelSheet $excelSheet): Wor protected function buildContent(Worksheet $worksheet, ExcelContent $excelContent): void { -// if (!$configuration->isWithoutHeader()) { -// ($this->sheetHeaderBuilder)($sheet, $configuration); -// } + $event = new ExcelRowPreGeneratedEvent($worksheet, $excelContent); + $this->eventDispatcher->dispatch($event); ($this->sheetRowContentBuilder)($worksheet, $excelContent); - $worksheet->setCellValueByColumnAndRow(1, $worksheet->getHighestRow() + 1, ''); + WorksheetHelper::newLine($worksheet); foreach ($excelContent->getChildren() as $child) { $this->buildContent($worksheet, $child); } - -// ($this->sheetColumnsSizeBuilder)($sheet, $configuration); } } diff --git a/Builder/SpreadsheetBuilderInterface.php b/Builder/SpreadsheetBuilderInterface.php index 72c4630..3760057 100644 --- a/Builder/SpreadsheetBuilderInterface.php +++ b/Builder/SpreadsheetBuilderInterface.php @@ -14,5 +14,5 @@ */ interface SpreadsheetBuilderInterface { - public function build(ExcelSpreadsheet $excelSpreadsheet): Spreadsheet; + public function __invoke(ExcelSpreadsheet $excelSpreadsheet): Spreadsheet; } diff --git a/ConfigurationExtractor/CellConfigurationsExtractor.php b/ConfigurationExtractor/CellConfigurationsExtractor.php new file mode 100644 index 0000000..d28492b --- /dev/null +++ b/ConfigurationExtractor/CellConfigurationsExtractor.php @@ -0,0 +1,36 @@ + + * @copyright 2014 - 2021 Rich ID (https://www.rich-id.fr) + */ +class CellConfigurationsExtractor +{ + /** + * @return CellConfiguration[] + */ + public function getCellConfigurations(ExcelContent $excelContent): array + { + $reflectionClass = new \ReflectionClass($excelContent); + $properties = $reflectionClass->getProperties(\ReflectionProperty::IS_PUBLIC); + $cellConfigurations = []; + + foreach ($properties as $property) { + if (in_array($property->getName(), ['parent', 'children'], true)) { + continue; + } + + $cellConfigurations[] = new CellConfiguration($property, $excelContent); + } + + return $cellConfigurations; + } +} diff --git a/ConfigurationExtractor/Model/CellConfiguration.php b/ConfigurationExtractor/Model/CellConfiguration.php new file mode 100644 index 0000000..202ae4f --- /dev/null +++ b/ConfigurationExtractor/Model/CellConfiguration.php @@ -0,0 +1,48 @@ + + * @copyright 2014 - 2021 Rich ID (https://www.rich-id.fr) + */ +class CellConfiguration +{ + /** @var \ReflectionProperty */ + public $reflectionProperty; + + /** @var ExcelContent */ + public $model; + + /** @var ContentStyle|null */ + public $style; + + /** @var ColumnMerge */ + public $columnMerge; + + public function __construct(\ReflectionProperty $reflectionProperty, ExcelContent $model) + { + $this->reflectionProperty = $reflectionProperty; + $this->model = $model; + $this->style = $this->getAnnotation(ContentStyle::class); + $this->columnMerge = $this->getAnnotation(ColumnMerge::class); + } + + public function getValue() + { + return $this->reflectionProperty->getValue($this->model); + } + + public function getAnnotation(string $annotationClass) + { + return AnnotationHelper::getPropertyAnnotation($this->reflectionProperty, $annotationClass); + } +} diff --git a/ConfigurationExtractor/Model/GeneratedCellConfiguration.php b/ConfigurationExtractor/Model/GeneratedCellConfiguration.php new file mode 100644 index 0000000..cf7231f --- /dev/null +++ b/ConfigurationExtractor/Model/GeneratedCellConfiguration.php @@ -0,0 +1,26 @@ + + * @copyright 2014 - 2021 Rich ID (https://www.rich-id.fr) + * + * Use to dynamically insert a row + */ +class GeneratedCellConfiguration extends CellConfiguration +{ + /** @var mixed */ + public $value; + + /** + * @return mixed + */ + public function getValue() + { + return $this->value; + } +} diff --git a/Event/ExcelCellGeneratedEvent.php b/Event/ExcelCellGeneratedEvent.php new file mode 100644 index 0000000..b3fd7df --- /dev/null +++ b/Event/ExcelCellGeneratedEvent.php @@ -0,0 +1,41 @@ + + * @copyright 2014 - 2021 Rich ID (https://www.rich-id.fr) + */ +class ExcelCellGeneratedEvent +{ + /** @var int */ + public $column; + + /** @var int */ + public $row; + + /** @var CellConfiguration */ + public $configuration; + + /** @var Worksheet */ + public $worksheet; + + /** @var ExcelContent */ + public $model; + + public function __construct(Worksheet $worksheet, CellConfiguration $configuration, int $column, int $row) + { + $this->worksheet = $worksheet; + $this->configuration = $configuration; + $this->model = $configuration->model; + $this->column = $column; + $this->row = $row; + } +} diff --git a/Event/ExcelRowGeneratedEvent.php b/Event/ExcelRowGeneratedEvent.php new file mode 100644 index 0000000..f47ab7e --- /dev/null +++ b/Event/ExcelRowGeneratedEvent.php @@ -0,0 +1,32 @@ + + * @copyright 2014 - 2021 Rich ID (https://www.rich-id.fr) + */ +class ExcelRowGeneratedEvent +{ + /** @var int */ + public $row; + + /** @var Worksheet */ + public $worksheet; + + /** @var ExcelContent */ + public $model; + + public function __construct(Worksheet $worksheet, ExcelContent $model, int $row) + { + $this->worksheet = $worksheet; + $this->model = $model; + $this->row = $row; + } +} diff --git a/Event/ExcelRowPreGeneratedEvent.php b/Event/ExcelRowPreGeneratedEvent.php new file mode 100644 index 0000000..1ecb57d --- /dev/null +++ b/Event/ExcelRowPreGeneratedEvent.php @@ -0,0 +1,28 @@ + + * @copyright 2014 - 2021 Rich ID (https://www.rich-id.fr) + */ +class ExcelRowPreGeneratedEvent +{ + /** @var Worksheet */ + public $worksheet; + + /** @var ExcelContent */ + public $model; + + public function __construct(Worksheet $worksheet, ExcelContent $model) + { + $this->worksheet = $worksheet; + $this->model = $model; + } +} diff --git a/Event/SheetGeneratedEvent.php b/Event/ExcelSheetGeneratedEvent.php similarity index 57% rename from Event/SheetGeneratedEvent.php rename to Event/ExcelSheetGeneratedEvent.php index a3eee74..b6681e3 100644 --- a/Event/SheetGeneratedEvent.php +++ b/Event/ExcelSheetGeneratedEvent.php @@ -3,31 +3,33 @@ namespace RichId\ExcelGeneratorBundle\Event; use PhpOffice\PhpSpreadsheet\Worksheet\Worksheet; +use RichId\ExcelGeneratorBundle\Model\ExcelSheet; use Symfony\Contracts\EventDispatcher\Event; /** - * Class SheetGeneratedEvent + * Class ExcelSheetGeneratedEvent * * @package RichId\ExcelGeneratorBundle\Event * @author Hugo Dumazeau * @copyright 2014 - 2021 RichId (https://www.rich-id.fr) */ -class SheetGeneratedEvent extends Event +class ExcelSheetGeneratedEvent extends Event { + /** @var ExcelSheet */ + protected $model; + /** @var Worksheet */ protected $sheet; - private function __construct() + public function __construct(Worksheet $sheet, ExcelSheet $model) { + $this->sheet = $sheet; + $this->model = $model; } - public static function create(Worksheet $sheet): self + public function getModel(): ExcelSheet { - $event = new self(); - - $event->sheet = $sheet; - - return $event; + return $this->model; } public function getSheet(): Worksheet diff --git a/Event/SpreadsheetGeneratedEvent.php b/Event/ExcelSpreadsheetGeneratedEvent.php similarity index 54% rename from Event/SpreadsheetGeneratedEvent.php rename to Event/ExcelSpreadsheetGeneratedEvent.php index bc7c96f..d591d23 100644 --- a/Event/SpreadsheetGeneratedEvent.php +++ b/Event/ExcelSpreadsheetGeneratedEvent.php @@ -3,31 +3,33 @@ namespace RichId\ExcelGeneratorBundle\Event; use PhpOffice\PhpSpreadsheet\Spreadsheet; +use RichId\ExcelGeneratorBundle\Model\ExcelSpreadsheet; use Symfony\Contracts\EventDispatcher\Event; /** - * Class SpreadsheetGeneratedEvent + * Class ExcelSpreadsheetGeneratedEvent * * @package RichId\ExcelGeneratorBundle\Event * @author Hugo Dumazeau * @copyright 2014 - 2021 RichId (https://www.rich-id.fr) */ -class SpreadsheetGeneratedEvent extends Event +class ExcelSpreadsheetGeneratedEvent extends Event { + /** @var ExcelSpreadsheet */ + protected $model; + /** @var Spreadsheet */ protected $spreadsheet; - private function __construct() + public function __construct(Spreadsheet $spreadsheet, ExcelSpreadsheet $model) { + $this->spreadsheet = $spreadsheet; + $this->model = $model; } - public static function create(Spreadsheet $spreadsheet): self + public function getModel(): ExcelSpreadsheet { - $event = new self(); - - $event->spreadsheet = $spreadsheet; - - return $event; + return $this->model; } public function getSpreadsheet(): Spreadsheet diff --git a/Generator/ExcelGenerator.php b/Generator/ExcelGenerator.php index 2f08381..a312fa2 100644 --- a/Generator/ExcelGenerator.php +++ b/Generator/ExcelGenerator.php @@ -25,7 +25,7 @@ public function __construct(SpreadsheetBuilderInterface $spreadsheetBuilder) public function save(ExcelSpreadsheet $excelSpreadsheet, string $path): void { - $spreadsheet = $this->spreadsheetBuilder->build($excelSpreadsheet); + $spreadsheet = ($this->spreadsheetBuilder)($excelSpreadsheet); $fullPath = \sprintf('%s/%s', $path, $excelSpreadsheet->filename); $writer = new Xlsx($spreadsheet); diff --git a/Helper/AbstractHelper.php b/Helper/AbstractHelper.php new file mode 100644 index 0000000..52a4903 --- /dev/null +++ b/Helper/AbstractHelper.php @@ -0,0 +1,20 @@ + + * @copyright 2014 - 2021 Rich ID (https://www.rich-id.fr) + */ +abstract class AbstractHelper +{ + /** + * @codeCoverageIgnore + */ + private function __construct() + { + // Make it not instantiable + } +} diff --git a/Helper/AnnotationHelper.php b/Helper/AnnotationHelper.php new file mode 100644 index 0000000..c01e396 --- /dev/null +++ b/Helper/AnnotationHelper.php @@ -0,0 +1,42 @@ + + * @copyright 2014 - 2021 Rich ID (https://www.rich-id.fr) + */ +class AnnotationHelper extends AbstractHelper +{ + /** @var AnnotationReader */ + private static $annotationReader; + + public static function getAnnotationReader(): AnnotationReader + { + if (static::$annotationReader === null) { + static::$annotationReader = new AnnotationReader(); + } + + return static::$annotationReader; + } + + /** + * @param \ReflectionClass|string|object $class + */ + public static function getClassAnnotation($class, string $annotation) + { + $reflectionClass = $class instanceof \ReflectionClass ? $class : new \ReflectionClass($class); + + return static::getAnnotationReader()->getClassAnnotation($reflectionClass, $annotation); + } + + public static function getPropertyAnnotation(\ReflectionProperty $property, string $annotation) + { + return static::getAnnotationReader()->getPropertyAnnotation($property, $annotation); + } +} diff --git a/Helper/ExpressionLanguageHelper.php b/Helper/ExpressionLanguageHelper.php new file mode 100644 index 0000000..1ae09e2 --- /dev/null +++ b/Helper/ExpressionLanguageHelper.php @@ -0,0 +1,43 @@ + + * @copyright 2014 - 2021 Rich ID (https://www.rich-id.fr) + */ +class ExpressionLanguageHelper extends AbstractHelper +{ + /** @var ExpressionLanguage|null */ + private static $expressionLanguage; + + /** + * @return mixed + */ + public static function evaluate(string $expression, $data = null) + { + if ($data === null || \strpos($expression, 'this.') === false) { + return $expression; + } + + try { + return static::getExpressionLanguage()->evaluate($expression, ['this' => $data]); + } catch (\Exception $e) { + return null; + } + } + + protected static function getExpressionLanguage(): ExpressionLanguage + { + if (self::$expressionLanguage === null) { + self::$expressionLanguage = new ExpressionLanguage(); + } + + return self::$expressionLanguage; + } +} diff --git a/Helper/SpreadsheetHelper.php b/Helper/SpreadsheetHelper.php new file mode 100644 index 0000000..2a84dc9 --- /dev/null +++ b/Helper/SpreadsheetHelper.php @@ -0,0 +1,23 @@ + + * @copyright 2014 - 2021 Rich ID (https://www.rich-id.fr) + */ +final class SpreadsheetHelper extends AbstractHelper +{ + public static function getOrCreateWorksheet(Spreadsheet $spreadsheet, int $index): Worksheet + { + return $index < $spreadsheet->getSheetCount() + ? $spreadsheet->getSheet($index) + : $spreadsheet->createSheet($index); + } +} diff --git a/Helper/WorksheetHelper.php b/Helper/WorksheetHelper.php new file mode 100644 index 0000000..2b2d596 --- /dev/null +++ b/Helper/WorksheetHelper.php @@ -0,0 +1,20 @@ + + * @copyright 2014 - 2021 Rich ID (https://www.rich-id.fr) + */ +final class WorksheetHelper extends AbstractHelper +{ + public static function newLine(Worksheet $worksheet): void + { + $worksheet->setCellValueByColumnAndRow(1, $worksheet->getHighestRow() + 1, ''); + } +} diff --git a/Listener/AbstractStyleListener.php b/Listener/AbstractStyleListener.php new file mode 100644 index 0000000..66b01c6 --- /dev/null +++ b/Listener/AbstractStyleListener.php @@ -0,0 +1,38 @@ + + * @copyright 2014 - 2021 Rich ID (https://www.rich-id.fr) + */ +abstract class AbstractStyleListener +{ + public function __invoke(ExcelCellGeneratedEvent $event): void + { + if ($this->getConfiguration($event) === null) { + return; + } + + $items = \sprintf('%s%d', Coordinate::stringFromColumnIndex($event->column), $event->row); + $style = $event->worksheet->getStyle($items); + $existingStyle = $style->exportArray(); + $newStyle = $this->editStyle($event, $existingStyle); + + $style->applyFromArray($newStyle); + } + + abstract protected function editStyle(ExcelCellGeneratedEvent $event, array $style): array; + + protected function getConfiguration(ExcelCellGeneratedEvent $event): ?Style + { + return $event->configuration->style; + } +} diff --git a/Listener/AlignmentStyleOnCellGenerated.php b/Listener/AlignmentStyleOnCellGenerated.php new file mode 100644 index 0000000..481e718 --- /dev/null +++ b/Listener/AlignmentStyleOnCellGenerated.php @@ -0,0 +1,68 @@ + + * @copyright 2014 - 2021 Rich ID (https://www.rich-id.fr) + */ +final class AlignmentStyleOnCellGenerated extends AbstractStyleListener +{ + protected function editStyle(ExcelCellGeneratedEvent $event, array $style): array + { + /** @var Style $config */ + $config = $this->getConfiguration($event); + + return array_merge( + $style, + $this->getHorizontalAlignment($config), + $this->getVerticalAlignment($config), + $this->getTextWrapping($config) + ); + } + + protected function getHorizontalAlignment(Style $config): array + { + if (!$config->hasAllowedPosition()) { + return []; + } + + return [ + 'alignment' => [ + 'horizontal' => $config->position, + ] + ]; + } + + protected function getVerticalAlignment(Style $config): array + { + if (!$config->hasAllowedVerticalPosition()) { + return []; + } + + return [ + 'alignment' => [ + 'vertical' => $config->verticalPosition, + ] + ]; + } + + protected function getTextWrapping(Style $config): array + { + if ($config->wrapText !== true) { + return []; + } + + return [ + 'alignment' => [ + 'wrapText' => $config->wrapText, + ] + ]; + } +} diff --git a/Listener/BackgroundStyleOnCellGenerated.php b/Listener/BackgroundStyleOnCellGenerated.php new file mode 100644 index 0000000..227eed5 --- /dev/null +++ b/Listener/BackgroundStyleOnCellGenerated.php @@ -0,0 +1,41 @@ + + * @copyright 2014 - 2021 Rich ID (https://www.rich-id.fr) + */ +class BackgroundStyleOnCellGenerated extends AbstractStyleListener +{ + protected function editStyle(ExcelCellGeneratedEvent $event, array $style): array + { + /** @var Style $config */ + $config = $this->getConfiguration($event); + + if ($config->backgroundColor === null) { + return $style; + } + + $hexCode = ExpressionLanguageHelper::evaluate($config->backgroundColor, $event->model); + + if ($hexCode === null) { + return $style; + } + + $style['fill'] = [ + 'fillType' => Fill::FILL_SOLID, + 'startColor' => ['rgb' => \str_replace('#', '', $hexCode)] + ]; + + return $style; + } +} diff --git a/Listener/BorderStyleOnCellGenerated.php b/Listener/BorderStyleOnCellGenerated.php new file mode 100644 index 0000000..e7843d0 --- /dev/null +++ b/Listener/BorderStyleOnCellGenerated.php @@ -0,0 +1,39 @@ + + * @copyright 2014 - 2021 Rich ID (https://www.rich-id.fr) + */ +class BorderStyleOnCellGenerated extends AbstractStyleListener +{ + protected function editStyle(ExcelCellGeneratedEvent $event, array $style): array + { + /** @var Style $config */ + $config = $this->getConfiguration($event); + + if (!$config->hasAllowedBorder()) { + return $style; + } + + $borderStyle = $config->hasAllowedBorderStyle() ? $config->borderStyle : Border::BORDER_HAIR; + $style['borders'] = []; + + foreach ($config->border as $border) { + $style['borders'][$border] = [ + 'borderStyle' => $borderStyle, + 'color' => ['rgb' => $config->borderColor], + ]; + } + + return $style; + } +} diff --git a/Listener/ColumnMergingOnCellGenerated.php b/Listener/ColumnMergingOnCellGenerated.php new file mode 100644 index 0000000..5cceea0 --- /dev/null +++ b/Listener/ColumnMergingOnCellGenerated.php @@ -0,0 +1,28 @@ + + * @copyright 2014 - 2021 Rich ID (https://www.rich-id.fr) + */ +class ColumnMergingOnCellGenerated +{ + public function __invoke(ExcelCellGeneratedEvent $event): void + { + if ($event->configuration->columnMerge === null) { + return; + } + + $startColumn = $event->column; + $endColumn = $event->column + $event->configuration->columnMerge->count - 1; + $row = $event->row; + + $event->worksheet->mergeCellsByColumnAndRow($startColumn, $row, $endColumn, $row); + } +} diff --git a/Listener/ComputeColumnsSizeOnRowGenerated.php b/Listener/ComputeColumnsSizeOnRowGenerated.php new file mode 100644 index 0000000..7744e02 --- /dev/null +++ b/Listener/ComputeColumnsSizeOnRowGenerated.php @@ -0,0 +1,90 @@ + + * @copyright 2014 - 2021 Rich ID (https://www.rich-id.fr) + */ +class ComputeColumnsSizeOnRowGenerated +{ + /** @var CellConfigurationsExtractor */ + protected $cellConfigurationsExtractor; + + public function __construct(CellConfigurationsExtractor $configurationExtractor) + { + $this->cellConfigurationsExtractor = $configurationExtractor; + } + + public function __invoke(ExcelRowGeneratedEvent $event): void + { + $this->autoResizeAllColumns($event); + /** @var CellConfiguration[] $cellConfigurations */ + $cellConfigurations = ($this->cellConfigurationsExtractor)($event->model); + + foreach ($cellConfigurations as $index => $cellConfiguration) { + $this->resizeColumn($event, $cellConfiguration, $index); + } + } + + protected function autoResizeAllColumns(ExcelRowGeneratedEvent $event): void + { + $columnsAutoResize = AnnotationHelper::getClassAnnotation($event->model, ColumnsAutoResize::class); + + if ($columnsAutoResize === null) { + return; + } + + $cellIterator = $event->worksheet->getRowIterator()->current()->getCellIterator(); + $cellIterator->setIterateOnlyExistingCells(false); + + foreach ($cellIterator as $cell) { + $column = $cell->getColumn(); + $columnDimension = $event->worksheet->getColumnDimension($column); + + if ($columnDimension !== null) { + $columnDimension->setAutoSize(true); + } + } + } + + protected function resizeColumn( + ExcelRowGeneratedEvent $event, + CellConfiguration $cellConfiguration, + int $column + ): void + { + $columnDimensionAnnotation = $cellConfiguration->getAnnotation(ColumnDimension::class); + + if (!$columnDimensionAnnotation instanceof ColumnDimension) { + return; + } + + $columnIndex = Coordinate::stringFromColumnIndex($column); + $columnDimension = $event->worksheet->getColumnDimension($columnIndex); + + if ($columnDimension === null) { + return; + } + + if ($columnDimensionAnnotation->autoResize) { + $columnDimension->setAutoSize(true); + return; + } + + if ($columnDimensionAnnotation->dimension !== null) { + $columnDimension->setWidth($columnDimensionAnnotation->dimension); + } + } +} diff --git a/Listener/HeaderGenerationOnRowPreGenerated.php b/Listener/HeaderGenerationOnRowPreGenerated.php new file mode 100644 index 0000000..edcd252 --- /dev/null +++ b/Listener/HeaderGenerationOnRowPreGenerated.php @@ -0,0 +1,110 @@ + + * @copyright 2014 - 2021 Rich ID (https://www.rich-id.fr) + */ +class HeaderGenerationOnRowPreGenerated +{ + /** @var CellConfigurationsExtractor */ + protected $cellConfigurationsExtractor; + + /** @var SheetRowContentBuilder */ + protected $sheetRowContentBuilder; + + /** @var TranslatorInterface */ + protected $translator; + + public function __construct(CellConfigurationsExtractor $configurationExtractor, TranslatorInterface $translator) + { + $this->cellConfigurationsExtractor = $configurationExtractor; + $this->translator = $translator; + } + + public function __invoke(ExcelRowPreGeneratedEvent $event): void + { + $cellConfigurations = ($this->cellConfigurationsExtractor)($event->model); + $row = (int) $event->worksheet->getHighestRow(); + + if (!$this->hasHeader($cellConfigurations)) { + return; + } + + foreach ($cellConfigurations as $index => $cellConfiguration) { + $newConfiguration = $this->generateCellConfiguration($event, $cellConfiguration); + $this->sheetRowContentBuilder->buildFromCellConfiguration( + $event->worksheet, + $newConfiguration, + $index + 1, + $row + ); + } + + WorksheetHelper::newLine($event->worksheet); + } + + /** + * @param CellConfiguration[] $cellConfigurations + */ + protected function hasHeader(array $cellConfigurations): bool + { + foreach ($cellConfigurations as $cellConfiguration) { + if ($cellConfiguration->getAnnotation(HeaderTitle::class) !== null) { + return true; + } + } + + return false; + } + + protected function generateCellConfiguration(ExcelRowPreGeneratedEvent $event, CellConfiguration $cellConfiguration): GeneratedCellConfiguration + { + $generatedCell = new GeneratedCellConfiguration($cellConfiguration->reflectionProperty, $cellConfiguration->model); + $generatedCell->style = AnnotationHelper::getClassAnnotation($event->model, HeaderStyle::class); + $generatedCell->value = ''; + $title = $cellConfiguration->getAnnotation(HeaderTitle::class); + + if (!$title instanceof HeaderTitle) { + return $generatedCell; + } + + $generatedCell->value = $this->resolveTitle($title); + + if ($title->columnMerge !== null) { + $generatedCell->columnMerge = new ColumnMerge(); + $generatedCell->columnMerge->count = $title->columnMerge; + } + + if ($title->hasStyle()) { + $generatedCell->style = $title; + } + + return $generatedCell; + } + + protected function resolveTitle(HeaderTitle $headerTitle): string + { + if ($headerTitle->translationKey !== null) { + return $this->translator->trans($headerTitle->translationKey); + } + + return $headerTitle->title ?? ''; + } +} diff --git a/Listener/TextStyleOnCellGenerated.php b/Listener/TextStyleOnCellGenerated.php new file mode 100644 index 0000000..ccd49d7 --- /dev/null +++ b/Listener/TextStyleOnCellGenerated.php @@ -0,0 +1,73 @@ + + * @copyright 2014 - 2021 Rich ID (https://www.rich-id.fr) + */ +class TextStyleOnCellGenerated extends AbstractStyleListener +{ + protected function editStyle(ExcelCellGeneratedEvent $event, array $style): array + { + /** @var Style $config */ + $config = $this->getConfiguration($event); + + return array_merge( + $style, + $this->getBoldStyle($config), + $this->getColorStyle($config, $event), + $this->getFontSizeStyle($config) + ); + } + + protected function getBoldStyle(Style $config): array + { + if ($config->bold === null) { + return []; + } + + return [ + 'font' => [ + 'bold' => $config->bold, + ], + ]; + } + + protected function getColorStyle(Style $config, ExcelCellGeneratedEvent $event): array + { + if ($config->color === null) { + return []; + } + + $hexCode = ExpressionLanguageHelper::evaluate($config->color, $event->model); + + return [ + 'font' => [ + 'color' => [ + 'rgb' => \str_replace('#', '', $hexCode), + ], + ], + ]; + } + + protected function getFontSizeStyle(Style $config): array + { + if ($config->fontSize === null) { + return []; + } + + return [ + 'font' => [ + 'size' => $config->fontSize, + ], + ]; + } +} diff --git a/Model/AbstractExcelChild.php b/Model/AbstractExcelChild.php index d53da92..946d06b 100644 --- a/Model/AbstractExcelChild.php +++ b/Model/AbstractExcelChild.php @@ -2,7 +2,7 @@ namespace RichId\ExcelGeneratorBundle\Model; -use RichId\ExcelGeneratorBundle\Constraints\CorrectParent; +use RichId\ExcelGeneratorBundle\Validator\Constraints as ExcelConstraints; use Symfony\Component\Validator\Constraints as Assert; /** @@ -20,7 +20,7 @@ abstract class AbstractExcelChild * @Assert\Valid() * @Assert\All({ * @Assert\Type("RichId\ExcelGeneratorBundle\Model\ExcelContent"), - * @CorrectParent() + * @ExcelConstraints\CorrectParent() * }) */ private $children = []; @@ -40,4 +40,4 @@ public function getChildren(): array { return $this->children; } -} \ No newline at end of file +} diff --git a/Model/ExcelSpreadsheet.php b/Model/ExcelSpreadsheet.php index 23c8a81..399604c 100644 --- a/Model/ExcelSpreadsheet.php +++ b/Model/ExcelSpreadsheet.php @@ -2,7 +2,7 @@ namespace RichId\ExcelGeneratorBundle\Model; -use RichId\ExcelGeneratorBundle\Constraints\CorrectParent; +use RichId\ExcelGeneratorBundle\Validator\Constraints as ExcelConstraints; use Symfony\Component\Validator\Constraints as Assert; /** @@ -28,7 +28,7 @@ class ExcelSpreadsheet * @Assert\Valid() * @Assert\All({ * @Assert\Type("RichId\ExcelGeneratorBundle\Model\ExcelSheet"), - * @CorrectParent() + * @ExcelConstraints\CorrectParent() * }) */ private $sheets = []; @@ -48,4 +48,4 @@ public function getSheets(): array { return $this->sheets; } -} \ No newline at end of file +} diff --git a/Resources/services.xml b/Resources/services.xml index d03954e..a72bfa5 100644 --- a/Resources/services.xml +++ b/Resources/services.xml @@ -7,16 +7,38 @@ + + - - + + + + + + + + + + + + + + + + + + + + + + diff --git a/Tests/Builder/SpreadsheetBuilderTest.php b/Tests/Builder/SpreadsheetBuilderTest.php index 8f8eaf7..e8f7543 100644 --- a/Tests/Builder/SpreadsheetBuilderTest.php +++ b/Tests/Builder/SpreadsheetBuilderTest.php @@ -31,7 +31,7 @@ public function testBuildInvalidExcelSpreadsheet(): void $this->expectException(InvalidExcelSpreadsheetException::class); $excelSpreadsheet = new ExcelSpreadsheet(); - $this->builder->build($excelSpreadsheet); + ($this->builder)($excelSpreadsheet); } public function testEmptySpreadsheet(): void @@ -39,7 +39,7 @@ public function testEmptySpreadsheet(): void $excelSpreadsheet = new ExcelSpreadsheet(); $excelSpreadsheet->filename = 'spreadsheet.xls'; - $spreadsheet = $this->builder->build($excelSpreadsheet); + $spreadsheet = ($this->builder)($excelSpreadsheet); self::assertCount(1, $spreadsheet->getAllSheets()); } @@ -57,7 +57,7 @@ public function testMultipleEmptySheets(): void $excelSheet->name = 'Sheet 2'; $excelSpreadsheet->addSheet($excelSheet); - $spreadsheet = $this->builder->build($excelSpreadsheet); + $spreadsheet = ($this->builder)($excelSpreadsheet); $sheets = $spreadsheet->getAllSheets(); self::assertCount(2, $sheets); @@ -85,7 +85,7 @@ public function testWithContent(): void $content = new DummyExcelContent(); $excelSheet->addChild($content); - $spreadsheet = $this->builder->build($excelSpreadsheet); + $spreadsheet = ($this->builder)($excelSpreadsheet); $sheet = $spreadsheet->getAllSheets()[0] ?? null; self::assertInstanceOf(Worksheet::class, $sheet); @@ -96,4 +96,4 @@ public function testWithContent(): void self::assertSame(2, $sheet->getCell('B2')->getValue()); self::assertTrue($sheet->getCell('C2')->getValue()); } -} \ No newline at end of file +} diff --git a/Utility/AnnotationReaderTrait.php b/Utility/AnnotationReaderTrait.php deleted file mode 100644 index 2f21cbb..0000000 --- a/Utility/AnnotationReaderTrait.php +++ /dev/null @@ -1,37 +0,0 @@ - - * @copyright 2014 - 2021 RichId (https://www.rich-id.fr) - */ -trait AnnotationReaderTrait -{ - /** @var AnnotationReader */ - private $annotationReader; - - protected function getClassAnnotationFor(string $class, string $annotation) - { - return $this->getAnnotationReader()->getClassAnnotation(new \ReflectionClass($class), $annotation); - } - - protected function getPropertyAnnotationForProperty(\ReflectionProperty $property, string $annotation) - { - return $this->getAnnotationReader()->getPropertyAnnotation($property, $annotation); - } - - private function getAnnotationReader(): AnnotationReader - { - if ($this->annotationReader === null) { - $this->annotationReader = new AnnotationReader(); - } - - return $this->annotationReader; - } -} diff --git a/Utility/CellStyleUtility.php b/Utility/CellStyleUtility.php deleted file mode 100644 index ce52041..0000000 --- a/Utility/CellStyleUtility.php +++ /dev/null @@ -1,126 +0,0 @@ - - * @copyright 2014 - 2021 RichId (https://www.rich-id.fr) - */ -final class CellStyleUtility -{ - /** @var ExpressionLanguage */ - protected $expressionLanguage; - - public function __construct() - { - $this->expressionLanguage = new ExpressionLanguage(); - } - - public function setStyleFor(Worksheet $sheet, Style $style, int $row, int $from, ?int $to = null): void - { - $this->setStyleOfDataFor($sheet, $style, $row, $from, null, $to); - } - - public function setStyleOfDataFor(Worksheet $sheet, Style $style, int $row, int $from, ?ExcelContent $data, ?int $to = null): void - { - $items = $to === null - ? \sprintf('%s%d', Coordinate::stringFromColumnIndex($from), $row) - : \sprintf('%s%d:%s%d', Coordinate::stringFromColumnIndex($from), $row, Coordinate::stringFromColumnIndex($to), $row); - - - $sheet->getStyle($items) - ->applyFromArray($this->buildStyleToApply($style, $data)); - } - - private function buildStyleToApply(Style $style, ?ExcelContent $data = null): array - { - $buildStyle = []; - - if ($style->bold !== null) { - $buildStyle = ['font' => ['bold' => $style->bold]]; - } - - if ($style->color !== null) { - $hexCode = $this->getStyleValueWithExpression($style->color, $data); - - if ($hexCode !== null) { - $buildStyle['font']['color'] = ['rgb' => \str_replace('#', '', $hexCode)]; - } - } - - if ($style->fontSize !== null) { - $buildStyle['font']['size'] = $style->fontSize; - } - - if ($style->backgroundColor !== null) { - $hexCode = $this->getStyleValueWithExpression($style->backgroundColor, $data); - - if ($hexCode !== null) { - $buildStyle['fill'] = [ - 'fillType' => Fill::FILL_SOLID, - 'startColor' => ['rgb' => \str_replace('#', '', $hexCode)] - ]; - } - } - - if ($style->hasAllowedPosition()) { - $buildStyle['alignment'] = [ - 'horizontal' => $style->position - ]; - } - - if ($style->hasAllowedVerticalPosition()) { - if (!isset($buildStyle['alignment'])) { - $buildStyle['alignment'] = []; - } - - $buildStyle['alignment']['vertical'] = $style->verticalPosition; - } - - if ($style->hasAllowedBorder()) { - $borderStyle = $style->hasAllowedBorderStyle() ? $style->borderStyle : Border::BORDER_HAIR; - $buildStyle['borders'] = []; - - foreach ($style->border as $border) { - $buildStyle['borders'][$border] = [ - 'borderStyle' => $borderStyle, - 'color' => ['rgb' => $style->borderColor], - ]; - } - } - - if ($style->wrapText === true) { - if (!isset($buildStyle['alignment'])) { - $buildStyle['alignment'] = []; - } - - $buildStyle['alignment']['wrapText'] = true; - } - - return $buildStyle; - } - - private function getStyleValueWithExpression(string $value, ?ExcelContent $data = null): ?string - { - if ($data === null || \strpos($value, 'this.') === false) { - return $value; - } - - try { - return $this->expressionLanguage->evaluate($value, ['this' => $data]); - } catch (\Exception $e) { - return ''; - } - } -} diff --git a/Utility/PropertyUtility.php b/Utility/PropertyUtility.php deleted file mode 100644 index 06fb8cd..0000000 --- a/Utility/PropertyUtility.php +++ /dev/null @@ -1,64 +0,0 @@ - - * @copyright 2014 - 2021 RichId (https://www.rich-id.fr) - */ -final class PropertyUtility -{ - /** @var NormalizerInterface */ - protected $normalizer; - - public function __construct(NormalizerInterface $normalizer) - { - $this->normalizer = $normalizer; - } - - public function getPropertiesForConfig(ExcelSheetGeneratorConfiguration $configuration): array - { - $class = new \ReflectionClass($configuration->getClass()); - - /** @var Export $object */ - $object = $class->newInstanceWithoutConstructor(); - - return $this->getPropertiesForConfigAndData($configuration, $object); - } - - public function getPropertiesForConfigAndData(ExcelSheetGeneratorConfiguration $configuration, Export $rowContent): array - { - $properties = []; - $reflectionClass = new \ReflectionClass(\get_class($rowContent)); - - $normalizedObject = $this->getNormalizedDataForExportData($configuration, $rowContent); - $propertiesName = \array_keys($normalizedObject); - - foreach ($reflectionClass->getProperties() as $objectProperty) { - if (!\in_array($objectProperty->getName(), $propertiesName, true)) { - continue; - } - - $properties[] = Property::build($objectProperty->getName(), $objectProperty, $normalizedObject[$objectProperty->getName()]); - } - - return $properties; - } - - private function getNormalizedDataForExportData(ExcelSheetGeneratorConfiguration $configuration, Export $rowContent): array - { - $context = empty($configuration->getSerializationGroups()) ? [] : [AbstractNormalizer::GROUPS => $configuration->getSerializationGroups()]; - $context[AbstractNormalizer::IGNORED_ATTRIBUTES ] = ['childConfiguration']; - - return $this->normalizer->normalize($rowContent, null, $context); - } -} diff --git a/Constraints/CorrectParent.php b/Validator/Constraints/CorrectParent.php similarity index 78% rename from Constraints/CorrectParent.php rename to Validator/Constraints/CorrectParent.php index 4ed1191..cda3d65 100644 --- a/Constraints/CorrectParent.php +++ b/Validator/Constraints/CorrectParent.php @@ -1,13 +1,13 @@ * @copyright 2014 - 2021 Rich ID (https://www.rich-id.fr) * @@ -17,4 +17,4 @@ class CorrectParent extends Constraint { /** @var string */ public $inappropriateParent = 'The parent is not what is expected, make sure you don\'t use an object twice and don\'t set the parent on your own.'; -} \ No newline at end of file +} diff --git a/Constraints/CorrectParentValidator.php b/Validator/Constraints/CorrectParentValidator.php similarity index 86% rename from Constraints/CorrectParentValidator.php rename to Validator/Constraints/CorrectParentValidator.php index 1261e5b..2855b0d 100644 --- a/Constraints/CorrectParentValidator.php +++ b/Validator/Constraints/CorrectParentValidator.php @@ -1,6 +1,6 @@ * @copyright 2014 - 2021 Rich ID (https://www.rich-id.fr) */ @@ -27,4 +27,4 @@ public function validate($value, Constraint $constraint): void $this->context->addViolation($constraint->inappropriateParent); } } -} \ No newline at end of file +} From 69428b216dd1429ed9a6c328b583f3fe4d28dc77 Mon Sep 17 00:00:00 2001 From: Nicolas Guilloux Date: Tue, 11 May 2021 09:57:35 +0200 Subject: [PATCH 04/10] Refacto code --- Builder/SpreadsheetBuilder.php | 8 -------- Listener/ComputeColumnsSizeOnRowGenerated.php | 3 +-- Listener/HeaderGenerationOnRowPreGenerated.php | 11 ++++++++--- Resources/services.xml | 10 +++++++--- Tests/Resources/Model/DummyExcelContent.php | 2 +- 5 files changed, 17 insertions(+), 17 deletions(-) diff --git a/Builder/SpreadsheetBuilder.php b/Builder/SpreadsheetBuilder.php index e8903f8..e1bf98e 100644 --- a/Builder/SpreadsheetBuilder.php +++ b/Builder/SpreadsheetBuilder.php @@ -3,10 +3,7 @@ namespace RichId\ExcelGeneratorBundle\Builder; use RichId\ExcelGeneratorBundle\Builder\Partials\AbstractBuilder; -use RichId\ExcelGeneratorBundle\Builder\Partials\SheetColumnsSizeBuilder; -use RichId\ExcelGeneratorBundle\Builder\Partials\SheetHeaderBuilder; use RichId\ExcelGeneratorBundle\Builder\Partials\SheetRowContentBuilder; -use RichId\ExcelGeneratorBundle\Event\ExcelRowGeneratedEvent; use RichId\ExcelGeneratorBundle\Event\ExcelRowPreGeneratedEvent; use RichId\ExcelGeneratorBundle\Event\ExcelSheetGeneratedEvent; use RichId\ExcelGeneratorBundle\Event\ExcelSpreadsheetGeneratedEvent; @@ -29,9 +26,6 @@ */ class SpreadsheetBuilder extends AbstractBuilder implements SpreadsheetBuilderInterface { - /** @var SheetHeaderBuilder */ - protected $sheetHeaderBuilder; - /** @var SheetRowContentBuilder */ protected $sheetRowContentBuilder; @@ -39,12 +33,10 @@ class SpreadsheetBuilder extends AbstractBuilder implements SpreadsheetBuilderIn protected $validator; public function __construct( - SheetHeaderBuilder $sheetHeaderBuilder, SheetRowContentBuilder $sheetRowContentBuilder, ValidatorInterface $validator ) { - $this->sheetHeaderBuilder = $sheetHeaderBuilder; $this->sheetRowContentBuilder = $sheetRowContentBuilder; $this->validator = $validator; } diff --git a/Listener/ComputeColumnsSizeOnRowGenerated.php b/Listener/ComputeColumnsSizeOnRowGenerated.php index 7744e02..3bf43e3 100644 --- a/Listener/ComputeColumnsSizeOnRowGenerated.php +++ b/Listener/ComputeColumnsSizeOnRowGenerated.php @@ -30,8 +30,7 @@ public function __construct(CellConfigurationsExtractor $configurationExtractor) public function __invoke(ExcelRowGeneratedEvent $event): void { $this->autoResizeAllColumns($event); - /** @var CellConfiguration[] $cellConfigurations */ - $cellConfigurations = ($this->cellConfigurationsExtractor)($event->model); + $cellConfigurations = $this->cellConfigurationsExtractor->getCellConfigurations($event->model); foreach ($cellConfigurations as $index => $cellConfiguration) { $this->resizeColumn($event, $cellConfiguration, $index); diff --git a/Listener/HeaderGenerationOnRowPreGenerated.php b/Listener/HeaderGenerationOnRowPreGenerated.php index edcd252..03ac01b 100644 --- a/Listener/HeaderGenerationOnRowPreGenerated.php +++ b/Listener/HeaderGenerationOnRowPreGenerated.php @@ -32,15 +32,20 @@ class HeaderGenerationOnRowPreGenerated /** @var TranslatorInterface */ protected $translator; - public function __construct(CellConfigurationsExtractor $configurationExtractor, TranslatorInterface $translator) + public function __construct( + CellConfigurationsExtractor $cellConfigurationsExtractor, + SheetRowContentBuilder $sheetRowContentBuilder, + TranslatorInterface $translator + ) { - $this->cellConfigurationsExtractor = $configurationExtractor; + $this->cellConfigurationsExtractor = $cellConfigurationsExtractor; + $this->sheetRowContentBuilder = $sheetRowContentBuilder; $this->translator = $translator; } public function __invoke(ExcelRowPreGeneratedEvent $event): void { - $cellConfigurations = ($this->cellConfigurationsExtractor)($event->model); + $cellConfigurations = $this->cellConfigurationsExtractor->getCellConfigurations($event->model); $row = (int) $event->worksheet->getHighestRow(); if (!$this->hasHeader($cellConfigurations)) { diff --git a/Resources/services.xml b/Resources/services.xml index a72bfa5..a15c75d 100644 --- a/Resources/services.xml +++ b/Resources/services.xml @@ -12,14 +12,12 @@ - - - + @@ -34,6 +32,12 @@ + + + + + + diff --git a/Tests/Resources/Model/DummyExcelContent.php b/Tests/Resources/Model/DummyExcelContent.php index a2a879b..f674a80 100644 --- a/Tests/Resources/Model/DummyExcelContent.php +++ b/Tests/Resources/Model/DummyExcelContent.php @@ -18,4 +18,4 @@ class DummyExcelContent extends ExcelContent public $property2 = 2; public $property3 = true; -} \ No newline at end of file +} From bde7a119bb05ab9d6e3df59e9bbac93909f8e29a Mon Sep 17 00:00:00 2001 From: Nicolas Guilloux Date: Thu, 27 May 2021 17:22:46 +0200 Subject: [PATCH 05/10] Finish refacto, fix bugs --- Builder/Partials/SheetRowContentBuilder.php | 2 +- Event/ExcelRowGeneratedEvent.php | 20 ++++++-- Factory/ExcelStreamedResponseFactory.php | 17 ++++--- Helper/AnnotationHelper.php | 4 ++ Helper/ArrayHelper.php | 26 +++++++++++ Listener/AlignmentStyleOnCellGenerated.php | 13 ++++-- Listener/ComputeColumnsSizeOnRowGenerated.php | 4 +- Listener/ComputeRowHeightOnRowGenerated.php | 46 +++++++++++++++++++ .../HeaderGenerationOnRowPreGenerated.php | 31 +++++++++++-- Listener/TextStyleOnCellGenerated.php | 14 ++++-- Model/ExcelContent.php | 4 +- Resources/services.xml | 14 ++++-- 12 files changed, 164 insertions(+), 31 deletions(-) create mode 100644 Helper/ArrayHelper.php create mode 100644 Listener/ComputeRowHeightOnRowGenerated.php diff --git a/Builder/Partials/SheetRowContentBuilder.php b/Builder/Partials/SheetRowContentBuilder.php index 275703a..e4774a1 100644 --- a/Builder/Partials/SheetRowContentBuilder.php +++ b/Builder/Partials/SheetRowContentBuilder.php @@ -35,7 +35,7 @@ public function __invoke(Worksheet $worksheet, ExcelContent $excelContent): void $this->buildFromCellConfiguration($worksheet, $configuration, $index + 1, $row); } - $event = new ExcelRowGeneratedEvent($worksheet, $excelContent, $row); + $event = new ExcelRowGeneratedEvent($worksheet, $cellConfigurations, $row, $excelContent); $this->eventDispatcher->dispatch($event); } diff --git a/Event/ExcelRowGeneratedEvent.php b/Event/ExcelRowGeneratedEvent.php index f47ab7e..6c6f321 100644 --- a/Event/ExcelRowGeneratedEvent.php +++ b/Event/ExcelRowGeneratedEvent.php @@ -3,6 +3,7 @@ namespace RichId\ExcelGeneratorBundle\Event; use PhpOffice\PhpSpreadsheet\Worksheet\Worksheet; +use RichId\ExcelGeneratorBundle\ConfigurationExtractor\Model\CellConfiguration; use RichId\ExcelGeneratorBundle\Model\ExcelContent; /** @@ -14,19 +15,28 @@ */ class ExcelRowGeneratedEvent { + /** @var CellConfiguration[] */ + public $cellConfigurations; + + /** @var ExcelContent */ + public $model; + /** @var int */ public $row; /** @var Worksheet */ public $worksheet; - /** @var ExcelContent */ - public $model; - - public function __construct(Worksheet $worksheet, ExcelContent $model, int $row) + public function __construct( + Worksheet $worksheet, + array $cellConfigurations, + int $row, + ?ExcelContent $model = null + ) { $this->worksheet = $worksheet; - $this->model = $model; + $this->cellConfigurations = $cellConfigurations; $this->row = $row; + $this->model = $model; } } diff --git a/Factory/ExcelStreamedResponseFactory.php b/Factory/ExcelStreamedResponseFactory.php index fb4ce8d..16631fb 100644 --- a/Factory/ExcelStreamedResponseFactory.php +++ b/Factory/ExcelStreamedResponseFactory.php @@ -1,16 +1,20 @@ - * @copyright 2014 - 2021 Rich ID (https://www.rich-id.fr) + * @package RichId\ExcelGeneratorBundle\Factory + * @author Nicolas Guilloux + * @copyright 2014 - 2021 Rich ID (https://www.rich-id.fr) */ class ExcelStreamedResponseFactory { @@ -22,10 +26,11 @@ public function __construct(SpreadsheetBuilderInterface $spreadsheetBuilder) $this->spreadsheetBuilder = $spreadsheetBuilder; } - public function __invoke(array $sheets, string $filename): StreamedResponse + public function __invoke(ExcelSpreadsheet $spreadsheet): StreamedResponse { $streamedResponse = new StreamedResponse(); - $writer = self::generateWriter($this->spreadsheetBuilder->buildSpreadsheet($sheets)); + $excel = ($this->spreadsheetBuilder)($spreadsheet); + $writer = self::generateWriter($excel); $streamedResponse->setCallback( function () use ($writer) { @@ -35,7 +40,7 @@ function () use ($writer) { $streamedResponse->setStatusCode(Response::HTTP_OK); $streamedResponse->headers->set('Content-Type', 'application/vnd.ms-excel'); - $streamedResponse->headers->set('Content-Disposition', \sprintf('attachment; filename="%s"', $filename)); + $streamedResponse->headers->set('Content-Disposition', \sprintf('attachment; filename="%s"', $spreadsheet->filename)); return $streamedResponse->send(); } @@ -44,4 +49,4 @@ private static function generateWriter(Spreadsheet $spreadsheet): Xlsx { return new Xlsx($spreadsheet); } -} \ No newline at end of file +} diff --git a/Helper/AnnotationHelper.php b/Helper/AnnotationHelper.php index c01e396..1e1871e 100644 --- a/Helper/AnnotationHelper.php +++ b/Helper/AnnotationHelper.php @@ -30,6 +30,10 @@ public static function getAnnotationReader(): AnnotationReader */ public static function getClassAnnotation($class, string $annotation) { + if ($class === null) { + return null; + } + $reflectionClass = $class instanceof \ReflectionClass ? $class : new \ReflectionClass($class); return static::getAnnotationReader()->getClassAnnotation($reflectionClass, $annotation); diff --git a/Helper/ArrayHelper.php b/Helper/ArrayHelper.php new file mode 100644 index 0000000..576a9bd --- /dev/null +++ b/Helper/ArrayHelper.php @@ -0,0 +1,26 @@ + + * @copyright 2014 - 2021 Rich ID (https://www.rich-id.fr) + */ +final class ArrayHelper +{ + public static function mergeOptions(array $base, array $data): array + { + foreach ($data as $key => $value) { + if (is_array($value)) { + $base[$key] = self::mergeOptions($base[$key] ?? [], $value); + } else { + $base[$key] = $value; + } + } + + return $base; + } +} diff --git a/Listener/AlignmentStyleOnCellGenerated.php b/Listener/AlignmentStyleOnCellGenerated.php index 481e718..851db13 100644 --- a/Listener/AlignmentStyleOnCellGenerated.php +++ b/Listener/AlignmentStyleOnCellGenerated.php @@ -4,6 +4,7 @@ use RichId\ExcelGeneratorBundle\Annotation\Style; use RichId\ExcelGeneratorBundle\Event\ExcelCellGeneratedEvent; +use RichId\ExcelGeneratorBundle\Helper\ArrayHelper; /** * Class AlignmentStyleOnCellGenerated @@ -18,13 +19,17 @@ protected function editStyle(ExcelCellGeneratedEvent $event, array $style): arra { /** @var Style $config */ $config = $this->getConfiguration($event); - - return array_merge( - $style, + $newStyles = [ $this->getHorizontalAlignment($config), $this->getVerticalAlignment($config), $this->getTextWrapping($config) - ); + ]; + + foreach ($newStyles as $newStyle) { + $style = ArrayHelper::mergeOptions($style, $newStyle); + } + + return $style; } protected function getHorizontalAlignment(Style $config): array diff --git a/Listener/ComputeColumnsSizeOnRowGenerated.php b/Listener/ComputeColumnsSizeOnRowGenerated.php index 3bf43e3..05bfc89 100644 --- a/Listener/ComputeColumnsSizeOnRowGenerated.php +++ b/Listener/ComputeColumnsSizeOnRowGenerated.php @@ -30,7 +30,7 @@ public function __construct(CellConfigurationsExtractor $configurationExtractor) public function __invoke(ExcelRowGeneratedEvent $event): void { $this->autoResizeAllColumns($event); - $cellConfigurations = $this->cellConfigurationsExtractor->getCellConfigurations($event->model); + $cellConfigurations = $event->cellConfigurations ?? $this->cellConfigurationsExtractor->getCellConfigurations($event->model); foreach ($cellConfigurations as $index => $cellConfiguration) { $this->resizeColumn($event, $cellConfiguration, $index); @@ -70,7 +70,7 @@ protected function resizeColumn( return; } - $columnIndex = Coordinate::stringFromColumnIndex($column); + $columnIndex = Coordinate::stringFromColumnIndex($column + 1); $columnDimension = $event->worksheet->getColumnDimension($columnIndex); if ($columnDimension === null) { diff --git a/Listener/ComputeRowHeightOnRowGenerated.php b/Listener/ComputeRowHeightOnRowGenerated.php new file mode 100644 index 0000000..18db63c --- /dev/null +++ b/Listener/ComputeRowHeightOnRowGenerated.php @@ -0,0 +1,46 @@ + + * @copyright 2014 - 2021 Rich ID (https://www.rich-id.fr) + */ +class ComputeRowHeightOnRowGenerated +{ + public const ROW_HEIGHT_MULTIPLICATOR = 1.4; + + /** @var CellConfigurationsExtractor */ + protected $cellConfigurationsExtractor; + + public function __construct(CellConfigurationsExtractor $configurationExtractor) + { + $this->cellConfigurationsExtractor = $configurationExtractor; + } + + public function __invoke(ExcelRowGeneratedEvent $event): void + { + $cellConfigurations = $event->cellConfigurations ?? $this->cellConfigurationsExtractor->getCellConfigurations($event->model); + $maxFontSize = 0; + + foreach ($cellConfigurations as $cellConfiguration) { + /** @var Style $config */ + $config = $cellConfiguration->style; + $fontSize = $config->fontSize ?? 0; + $maxFontSize = max($maxFontSize, $fontSize); + } + + $rowDimension = $event->worksheet->getRowDimension($event->row); + + if ($rowDimension !== null && $maxFontSize !== 0) { + $rowDimension->setRowHeight($maxFontSize * self::ROW_HEIGHT_MULTIPLICATOR); + } + } +} diff --git a/Listener/HeaderGenerationOnRowPreGenerated.php b/Listener/HeaderGenerationOnRowPreGenerated.php index 03ac01b..718840e 100644 --- a/Listener/HeaderGenerationOnRowPreGenerated.php +++ b/Listener/HeaderGenerationOnRowPreGenerated.php @@ -9,9 +9,11 @@ use RichId\ExcelGeneratorBundle\ConfigurationExtractor\CellConfigurationsExtractor; use RichId\ExcelGeneratorBundle\ConfigurationExtractor\Model\CellConfiguration; use RichId\ExcelGeneratorBundle\ConfigurationExtractor\Model\GeneratedCellConfiguration; +use RichId\ExcelGeneratorBundle\Event\ExcelRowGeneratedEvent; use RichId\ExcelGeneratorBundle\Event\ExcelRowPreGeneratedEvent; use RichId\ExcelGeneratorBundle\Helper\AnnotationHelper; use RichId\ExcelGeneratorBundle\Helper\WorksheetHelper; +use Symfony\Contracts\EventDispatcher\EventDispatcherInterface; use Symfony\Contracts\Translation\TranslatorInterface; /** @@ -26,19 +28,26 @@ class HeaderGenerationOnRowPreGenerated /** @var CellConfigurationsExtractor */ protected $cellConfigurationsExtractor; + /** @var EventDispatcherInterface */ + protected $eventDispatcher; + /** @var SheetRowContentBuilder */ protected $sheetRowContentBuilder; /** @var TranslatorInterface */ protected $translator; + /** @var string[] */ + private $alreadyRenderedHeaders = []; + public function __construct( CellConfigurationsExtractor $cellConfigurationsExtractor, + EventDispatcherInterface $eventDispatcher, SheetRowContentBuilder $sheetRowContentBuilder, TranslatorInterface $translator - ) - { + ) { $this->cellConfigurationsExtractor = $cellConfigurationsExtractor; + $this->eventDispatcher = $eventDispatcher; $this->sheetRowContentBuilder = $sheetRowContentBuilder; $this->translator = $translator; } @@ -47,13 +56,17 @@ public function __invoke(ExcelRowPreGeneratedEvent $event): void { $cellConfigurations = $this->cellConfigurationsExtractor->getCellConfigurations($event->model); $row = (int) $event->worksheet->getHighestRow(); + $newConfigurations = []; + $hashKey = $this->getHashKey($event); - if (!$this->hasHeader($cellConfigurations)) { + if (!$this->hasHeader($cellConfigurations) || in_array($hashKey, $this->alreadyRenderedHeaders, true)) { return; } foreach ($cellConfigurations as $index => $cellConfiguration) { $newConfiguration = $this->generateCellConfiguration($event, $cellConfiguration); + $newConfigurations[] = $newConfiguration; + $this->sheetRowContentBuilder->buildFromCellConfiguration( $event->worksheet, $newConfiguration, @@ -62,6 +75,10 @@ public function __invoke(ExcelRowPreGeneratedEvent $event): void ); } + $this->alreadyRenderedHeaders[] = $hashKey; + $newEvent = new ExcelRowGeneratedEvent($event->worksheet, $newConfigurations, $row); + $this->eventDispatcher->dispatch($newEvent); + WorksheetHelper::newLine($event->worksheet); } @@ -79,6 +96,14 @@ protected function hasHeader(array $cellConfigurations): bool return false; } + protected function getHashKey(ExcelRowPreGeneratedEvent $event): string + { + $modelClass = \get_class($event->model); + $parent = $event->model->parent; + + return $modelClass . '_' . spl_object_hash($parent); + } + protected function generateCellConfiguration(ExcelRowPreGeneratedEvent $event, CellConfiguration $cellConfiguration): GeneratedCellConfiguration { $generatedCell = new GeneratedCellConfiguration($cellConfiguration->reflectionProperty, $cellConfiguration->model); diff --git a/Listener/TextStyleOnCellGenerated.php b/Listener/TextStyleOnCellGenerated.php index ccd49d7..2f2aa97 100644 --- a/Listener/TextStyleOnCellGenerated.php +++ b/Listener/TextStyleOnCellGenerated.php @@ -4,6 +4,7 @@ use RichId\ExcelGeneratorBundle\Annotation\Style; use RichId\ExcelGeneratorBundle\Event\ExcelCellGeneratedEvent; +use RichId\ExcelGeneratorBundle\Helper\ArrayHelper; use RichId\ExcelGeneratorBundle\Helper\ExpressionLanguageHelper; /** @@ -19,13 +20,17 @@ protected function editStyle(ExcelCellGeneratedEvent $event, array $style): arra { /** @var Style $config */ $config = $this->getConfiguration($event); - - return array_merge( - $style, + $newStyles = [ $this->getBoldStyle($config), $this->getColorStyle($config, $event), $this->getFontSizeStyle($config) - ); + ]; + + foreach ($newStyles as $newStyle) { + $style = ArrayHelper::mergeOptions($style, $newStyle); + } + + return $style; } protected function getBoldStyle(Style $config): array @@ -52,6 +57,7 @@ protected function getColorStyle(Style $config, ExcelCellGeneratedEvent $event): return [ 'font' => [ 'color' => [ + 'argb' => null, 'rgb' => \str_replace('#', '', $hexCode), ], ], diff --git a/Model/ExcelContent.php b/Model/ExcelContent.php index 2ec7263..608ff9d 100644 --- a/Model/ExcelContent.php +++ b/Model/ExcelContent.php @@ -11,7 +11,7 @@ * @author Nicolas Guilloux * @copyright 2014 - 2021 Rich ID (https://www.rich-id.fr) */ -abstract class ExcelContent extends AbstractExcelChild +class ExcelContent extends AbstractExcelChild { /** * @var AbstractExcelChild @@ -20,4 +20,4 @@ abstract class ExcelContent extends AbstractExcelChild * @Assert\Type("RichId\ExcelGeneratorBundle\Model\AbstractExcelChild") */ public $parent; -} \ No newline at end of file +} diff --git a/Resources/services.xml b/Resources/services.xml index a15c75d..fc3e1d8 100644 --- a/Resources/services.xml +++ b/Resources/services.xml @@ -7,10 +7,6 @@ - - - - @@ -19,6 +15,13 @@ + + + + + + + @@ -35,6 +38,9 @@ + + + From 064adfbf84d2d590662fa8e167a863dcaca019c8 Mon Sep 17 00:00:00 2001 From: Nicolas Guilloux Date: Thu, 27 May 2021 17:52:35 +0200 Subject: [PATCH 06/10] Fix CI --- .github/workflows/tests.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 49afa72..2a96db3 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -24,11 +24,10 @@ jobs: - name: Install the dependencies 🔧 run: | docker-compose exec -T application composer install --prefer-dist --no-interaction --no-progress - docker-compose exec -T application php -d zend_extension=xdebug.so ./bin/phpunit --configuration phpunit.xml.dist --dump-xdebug-filter phpunit-filter.php - name: Execute the tests 🔧 run: | - docker-compose exec -T application php -d zend_extension=xdebug.so ./bin/phpunit --prepend phpunit-filter.php --configuration phpunit.xml.dist --colors=never --coverage-clover build/logs/clover.xml + docker-compose exec -T application php -d extension=pcov.so ./bin/phpunit --configuration phpunit.xml.dist --colors=never --coverage--clover build/logs/clover.xml --coverage-text - name: Upload results to Coveralls 🚀 env: From 15a24752a0ac117e9028e4573428745d310a8c60 Mon Sep 17 00:00:00 2001 From: Nicolas Guilloux Date: Thu, 27 May 2021 17:58:21 +0200 Subject: [PATCH 07/10] Fix Tests and CI --- .github/workflows/tests.yml | 2 +- .../{AbstractExcelChild.php => AbstractExcelNode.php} | 4 ++-- Model/ExcelContent.php | 6 +++--- Model/ExcelSheet.php | 4 ++-- Tests/Model/ExcelSpreadsheetTest.php | 10 +++++----- Validator/Constraints/CorrectParentValidator.php | 4 ++-- 6 files changed, 15 insertions(+), 15 deletions(-) rename Model/{AbstractExcelChild.php => AbstractExcelNode.php} (93%) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 2a96db3..2bd8e16 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -27,7 +27,7 @@ jobs: - name: Execute the tests 🔧 run: | - docker-compose exec -T application php -d extension=pcov.so ./bin/phpunit --configuration phpunit.xml.dist --colors=never --coverage--clover build/logs/clover.xml --coverage-text + docker-compose exec -T application php -d extension=pcov.so ./bin/phpunit --configuration phpunit.xml.dist --colors=never --coverage-clover build/logs/clover.xml --coverage-text - name: Upload results to Coveralls 🚀 env: diff --git a/Model/AbstractExcelChild.php b/Model/AbstractExcelNode.php similarity index 93% rename from Model/AbstractExcelChild.php rename to Model/AbstractExcelNode.php index 946d06b..f1ffbcc 100644 --- a/Model/AbstractExcelChild.php +++ b/Model/AbstractExcelNode.php @@ -6,13 +6,13 @@ use Symfony\Component\Validator\Constraints as Assert; /** - * Class AbstractExcelChild + * Class AbstractExcelNode * * @package RichId\ExcelGeneratorBundle\Model * @author Nicolas Guilloux * @copyright 2014 - 2021 Rich ID (https://www.rich-id.fr) */ -abstract class AbstractExcelChild +abstract class AbstractExcelNode { /** * @var ExcelContent[] diff --git a/Model/ExcelContent.php b/Model/ExcelContent.php index 608ff9d..5ab230b 100644 --- a/Model/ExcelContent.php +++ b/Model/ExcelContent.php @@ -11,13 +11,13 @@ * @author Nicolas Guilloux * @copyright 2014 - 2021 Rich ID (https://www.rich-id.fr) */ -class ExcelContent extends AbstractExcelChild +class ExcelContent extends AbstractExcelNode { /** - * @var AbstractExcelChild + * @var AbstractExcelNode * * @Assert\NotNull() - * @Assert\Type("RichId\ExcelGeneratorBundle\Model\AbstractExcelChild") + * @Assert\Type("RichId\ExcelGeneratorBundle\Model\AbstractExcelNode") */ public $parent; } diff --git a/Model/ExcelSheet.php b/Model/ExcelSheet.php index fe66fdd..03c1da2 100644 --- a/Model/ExcelSheet.php +++ b/Model/ExcelSheet.php @@ -11,7 +11,7 @@ * @author Nicolas Guilloux * @copyright 2014 - 2021 Rich ID (https://www.rich-id.fr) */ -class ExcelSheet extends AbstractExcelChild +class ExcelSheet extends AbstractExcelNode { /** * @var ExcelSpreadsheet @@ -28,4 +28,4 @@ class ExcelSheet extends AbstractExcelChild * @Assert\Type("string") */ public $name; -} \ No newline at end of file +} diff --git a/Tests/Model/ExcelSpreadsheetTest.php b/Tests/Model/ExcelSpreadsheetTest.php index 80a31c3..402022f 100644 --- a/Tests/Model/ExcelSpreadsheetTest.php +++ b/Tests/Model/ExcelSpreadsheetTest.php @@ -3,7 +3,7 @@ namespace RichId\ExcelGeneratorBundle\Tests\Model; use RichCongress\TestTools\Helper\ForceExecutionHelper; -use RichId\ExcelGeneratorBundle\Model\AbstractExcelChild; +use RichId\ExcelGeneratorBundle\Model\AbstractExcelNode; use RichId\ExcelGeneratorBundle\Model\ExcelSheet; use RichId\ExcelGeneratorBundle\Model\ExcelSpreadsheet; use RichId\ExcelGeneratorBundle\Tests\Resources\Model\DummyExcelContent; @@ -17,8 +17,8 @@ * @copyright 2014 - 2021 Rich ID (https://www.rich-id.fr) * * @covers \RichId\ExcelGeneratorBundle\Model\ExcelSpreadsheet - * @covers \RichId\ExcelGeneratorBundle\Constraints\CorrectParent - * @covers \RichId\ExcelGeneratorBundle\Constraints\CorrectParentValidator + * @covers \RichId\ExcelGeneratorBundle\Validator\Constraints\CorrectParent + * @covers \RichId\ExcelGeneratorBundle\Validator\Constraints\CorrectParentValidator */ class ExcelSpreadsheetTest extends ModelTestCase { @@ -73,7 +73,7 @@ public function testBadSheetInstance(): void self::assertCount(2, $violations); self::assertStringContainsString('This value should be of type ' . ExcelSheet::class, $violations->get(0)->getMessage()); - self::assertStringContainsString('This value should be of type ' . AbstractExcelChild::class, $violations->get(1)->getMessage()); + self::assertStringContainsString('This value should be of type ' . AbstractExcelNode::class, $violations->get(1)->getMessage()); } public function testInappropriateParent(): void @@ -86,4 +86,4 @@ public function testInappropriateParent(): void self::assertCount(1, $violations); self::assertSame('The parent is not what is expected, make sure you don\'t use an object twice and don\'t set the parent on your own.', $violations->get(0)->getMessage()); } -} \ No newline at end of file +} diff --git a/Validator/Constraints/CorrectParentValidator.php b/Validator/Constraints/CorrectParentValidator.php index 2855b0d..d07083e 100644 --- a/Validator/Constraints/CorrectParentValidator.php +++ b/Validator/Constraints/CorrectParentValidator.php @@ -2,7 +2,7 @@ namespace RichId\ExcelGeneratorBundle\Validator\Constraints; -use RichId\ExcelGeneratorBundle\Model\AbstractExcelChild; +use RichId\ExcelGeneratorBundle\Model\AbstractExcelNode; use Symfony\Component\Validator\Constraint; use Symfony\Component\Validator\ConstraintValidator; @@ -17,7 +17,7 @@ class CorrectParentValidator extends ConstraintValidator { public function validate($value, Constraint $constraint): void { - if (!$value instanceof AbstractExcelChild || !$constraint instanceof CorrectParent) { + if (!$value instanceof AbstractExcelNode || !$constraint instanceof CorrectParent) { return; } From 36bed9346f127e8ca63d8f93febc2e6c83f20fa5 Mon Sep 17 00:00:00 2001 From: Nicolas Guilloux Date: Mon, 14 Jun 2021 17:57:05 +0200 Subject: [PATCH 08/10] Add static analysis --- .gitignore | 2 + .php-cs-fixer.dist.php | 1 + .php_cs.cache | 1 + Docs/Configuration.md | 1 - README.md | 138 + composer.json | 30 +- composer.lock | 7760 +++++++++++------ docs/Headers.md | 87 + phpinsights.php | 1 + phpstan.neon | 1 + phpunit.xml.dist | 8 +- .../Annotation}/BorderStyle.php | 75 +- .../Annotation}/ColumnDimension.php | 7 +- .../Annotation}/ColumnMerge.php | 7 +- .../Annotation}/ColumnsAutoResize.php | 7 +- .../Annotation}/ContentStyle.php | 7 +- .../Annotation}/GroupBorderStyle.php | 9 +- .../Annotation}/HeaderStyle.php | 7 +- .../Annotation}/HeaderTitle.php | 7 +- {Annotation => src/Annotation}/Style.php | 11 +- .../Builder}/Partials/AbstractBuilder.php | 13 +- .../Partials/SheetRowContentBuilder.php | 9 +- .../Builder}/SpreadsheetBuilder.php | 14 +- .../Builder}/SpreadsheetBuilderInterface.php | 7 +- .../CellConfigurationsExtractor.php | 13 +- .../Model/CellConfiguration.php | 9 +- .../Model/GeneratedCellConfiguration.php | 11 +- .../RichIdExcelGeneratorExtension.php | 10 +- .../Event}/ExcelCellGeneratedEvent.php | 7 +- .../Event}/ExcelRowGeneratedEvent.php | 13 +- .../Event}/ExcelRowPreGeneratedEvent.php | 7 +- .../Event}/ExcelSheetGeneratedEvent.php | 7 +- .../Event}/ExcelSpreadsheetGeneratedEvent.php | 7 +- .../Exception}/ExcelExportException.php | 7 +- .../InvalidExcelSpreadsheetException.php | 9 +- .../Exception}/NotSameClassException.php | 7 +- .../Factory}/ExcelStreamedResponseFactory.php | 9 +- .../Generator}/ExcelGenerator.php | 9 +- .../Generator}/ExcelGeneratorInterface.php | 7 +- {Helper => src/Helper}/AbstractHelper.php | 10 +- {Helper => src/Helper}/AnnotationHelper.php | 11 +- {Helper => src/Helper}/ArrayHelper.php | 9 +- .../Helper}/ExpressionLanguageHelper.php | 11 +- {Helper => src/Helper}/SpreadsheetHelper.php | 7 +- {Helper => src/Helper}/WorksheetHelper.php | 7 +- .../Listener}/AbstractStyleListener.php | 7 +- .../AlignmentStyleOnCellGenerated.php | 15 +- .../BackgroundStyleOnCellGenerated.php | 9 +- .../Listener}/BorderStyleOnCellGenerated.php | 7 +- .../ColumnMergingOnCellGenerated.php | 7 +- .../ComputeColumnsSizeOnRowGenerated.php | 11 +- .../ComputeRowHeightOnRowGenerated.php | 11 +- .../HeaderGenerationOnRowPreGenerated.php | 15 +- .../Listener}/TextStyleOnCellGenerated.php | 11 +- {Model => src/Model}/AbstractExcelNode.php | 11 +- {Model => src/Model}/ExcelContent.php | 7 +- {Model => src/Model}/ExcelSheet.php | 7 +- {Model => src/Model}/ExcelSpreadsheet.php | 11 +- {Resources => src/Resources}/services.xml | 0 .../RichIdExcelGeneratorBundle.php | 7 +- .../Validator}/Constraints/CorrectParent.php | 7 +- .../Constraints/CorrectParentValidator.php | 9 +- .../Builder/SpreadsheetBuilderTest.php | 7 +- .../Generator/ExcelGeneratorTest.php | 25 +- .../Model/ExcelSpreadsheetTest.php | 27 +- .../Resources/Kernel/TestKernel.php | 10 +- {Tests => tests}/Resources/Kernel/bin/console | 0 .../Resources/Kernel/config/bundles.php | 4 +- .../Kernel/config/packages/doctrine.yaml | 0 .../Kernel/config/packages/framework.yaml | 0 .../Resources/Kernel/config/services.yaml | 0 .../Resources/Model/DummyExcelContent.php | 10 +- .../Resources/TestCase/ModelTestCase.php | 9 +- 73 files changed, 5441 insertions(+), 3200 deletions(-) create mode 120000 .php-cs-fixer.dist.php create mode 100644 .php_cs.cache delete mode 100644 Docs/Configuration.md create mode 100644 docs/Headers.md create mode 120000 phpinsights.php create mode 120000 phpstan.neon rename {Annotation => src/Annotation}/BorderStyle.php (56%) rename {Annotation => src/Annotation}/ColumnDimension.php (76%) rename {Annotation => src/Annotation}/ColumnMerge.php (73%) rename {Annotation => src/Annotation}/ColumnsAutoResize.php (69%) rename {Annotation => src/Annotation}/ContentStyle.php (71%) rename {Annotation => src/Annotation}/GroupBorderStyle.php (65%) rename {Annotation => src/Annotation}/HeaderStyle.php (71%) rename {Annotation => src/Annotation}/HeaderTitle.php (79%) rename {Annotation => src/Annotation}/Style.php (75%) rename {Builder => src/Builder}/Partials/AbstractBuilder.php (69%) rename {Builder => src/Builder}/Partials/SheetRowContentBuilder.php (93%) rename {Builder => src/Builder}/SpreadsheetBuilder.php (96%) rename {Builder => src/Builder}/SpreadsheetBuilderInterface.php (76%) rename {ConfigurationExtractor => src/ConfigurationExtractor}/CellConfigurationsExtractor.php (76%) rename {ConfigurationExtractor => src/ConfigurationExtractor}/Model/CellConfiguration.php (90%) rename {ConfigurationExtractor => src/ConfigurationExtractor}/Model/GeneratedCellConfiguration.php (70%) rename {DependencyInjection => src/DependencyInjection}/RichIdExcelGeneratorExtension.php (73%) rename {Event => src/Event}/ExcelCellGeneratedEvent.php (89%) rename {Event => src/Event}/ExcelRowGeneratedEvent.php (84%) rename {Event => src/Event}/ExcelRowPreGeneratedEvent.php (83%) rename {Event => src/Event}/ExcelSheetGeneratedEvent.php (87%) rename {Event => src/Event}/ExcelSpreadsheetGeneratedEvent.php (87%) rename {Exception => src/Exception}/ExcelExportException.php (62%) rename {Exception => src/Exception}/InvalidExcelSpreadsheetException.php (86%) rename {Exception => src/Exception}/NotSameClassException.php (82%) rename {Factory => src/Factory}/ExcelStreamedResponseFactory.php (90%) rename {Generator => src/Generator}/ExcelGenerator.php (89%) rename {Generator => src/Generator}/ExcelGeneratorInterface.php (74%) rename {Helper => src/Helper}/AbstractHelper.php (75%) rename {Helper => src/Helper}/AnnotationHelper.php (86%) rename {Helper => src/Helper}/ArrayHelper.php (79%) rename {Helper => src/Helper}/ExpressionLanguageHelper.php (86%) rename {Helper => src/Helper}/SpreadsheetHelper.php (84%) rename {Helper => src/Helper}/WorksheetHelper.php (80%) rename {Listener => src/Listener}/AbstractStyleListener.php (90%) rename {Listener => src/Listener}/AlignmentStyleOnCellGenerated.php (89%) rename {Listener => src/Listener}/BackgroundStyleOnCellGenerated.php (89%) rename {Listener => src/Listener}/BorderStyleOnCellGenerated.php (89%) rename {Listener => src/Listener}/ColumnMergingOnCellGenerated.php (85%) rename {Listener => src/Listener}/ComputeColumnsSizeOnRowGenerated.php (95%) rename {Listener => src/Listener}/ComputeRowHeightOnRowGenerated.php (88%) rename {Listener => src/Listener}/HeaderGenerationOnRowPreGenerated.php (92%) rename {Listener => src/Listener}/TextStyleOnCellGenerated.php (89%) rename {Model => src/Model}/AbstractExcelNode.php (85%) rename {Model => src/Model}/ExcelContent.php (81%) rename {Model => src/Model}/ExcelSheet.php (85%) rename {Model => src/Model}/ExcelSpreadsheet.php (86%) rename {Resources => src/Resources}/services.xml (100%) rename RichIdExcelGeneratorBundle.php => src/RichIdExcelGeneratorBundle.php (72%) rename {Validator => src/Validator}/Constraints/CorrectParent.php (80%) rename {Validator => src/Validator}/Constraints/CorrectParentValidator.php (81%) rename {Tests => tests}/Builder/SpreadsheetBuilderTest.php (96%) rename {Tests => tests}/Generator/ExcelGeneratorTest.php (90%) rename {Tests => tests}/Model/ExcelSpreadsheetTest.php (96%) rename {Tests => tests}/Resources/Kernel/TestKernel.php (75%) rename {Tests => tests}/Resources/Kernel/bin/console (100%) rename {Tests => tests}/Resources/Kernel/config/bundles.php (75%) rename {Tests => tests}/Resources/Kernel/config/packages/doctrine.yaml (100%) rename {Tests => tests}/Resources/Kernel/config/packages/framework.yaml (100%) rename {Tests => tests}/Resources/Kernel/config/services.yaml (100%) rename {Tests => tests}/Resources/Model/DummyExcelContent.php (76%) rename {Tests => tests}/Resources/TestCase/ModelTestCase.php (85%) diff --git a/.gitignore b/.gitignore index 9559b7e..5d0e29f 100644 --- a/.gitignore +++ b/.gitignore @@ -27,3 +27,5 @@ coverage/ # Database /.db +cghooks.lock + diff --git a/.php-cs-fixer.dist.php b/.php-cs-fixer.dist.php new file mode 120000 index 0000000..876c6d5 --- /dev/null +++ b/.php-cs-fixer.dist.php @@ -0,0 +1 @@ +vendor/richcongress/static-analysis/configs/php-cs-fixer.dist.php \ No newline at end of file diff --git a/.php_cs.cache b/.php_cs.cache new file mode 100644 index 0000000..67e2c48 --- /dev/null +++ b/.php_cs.cache @@ -0,0 +1 @@ +{"php":"8.0.7","version":"2.19.0:v2.19.0#d5b8a9d852b292c2f8a035200fa6844b1f82300b","indent":" ","lineEnding":"\n","rules":{"array_syntax":{"syntax":"short"},"backtick_to_shell_exec":true,"binary_operator_spaces":{"operators":{"=>":"align_single_space_minimal"}},"blank_line_before_statement":{"statements":["return"]},"braces":{"position_after_functions_and_oop_constructs":"next"},"cast_spaces":true,"class_attributes_separation":{"elements":{"method":"one"}},"class_definition":true,"clean_namespace":true,"concat_space":{"spacing":"one"},"echo_tag_syntax":true,"fully_qualified_strict_types":true,"function_typehint_space":true,"general_phpdoc_tag_rename":{"replacements":{"inheritDocs":"inheritDoc"}},"include":true,"increment_style":{"style":"post"},"lambda_not_used_import":true,"linebreak_after_opening_tag":true,"magic_constant_casing":true,"magic_method_casing":true,"method_argument_space":{"on_multiline":"ensure_fully_multiline"},"native_function_casing":true,"native_function_type_declaration_casing":true,"no_alias_language_construct_call":true,"no_alternative_syntax":true,"no_binary_string":true,"no_blank_lines_after_phpdoc":true,"no_empty_comment":true,"no_empty_phpdoc":true,"no_empty_statement":true,"no_extra_blank_lines":{"tokens":["case","continue","curly_brace_block","default","extra","parenthesis_brace_block","square_brace_block","switch","throw","use","use_trait"]},"no_leading_namespace_whitespace":true,"no_mixed_echo_print":true,"no_multiline_whitespace_around_double_arrow":true,"no_short_bool_cast":true,"no_singleline_whitespace_before_semicolons":true,"no_spaces_around_offset":true,"no_superfluous_phpdoc_tags":{"allow_mixed":true,"allow_unused_params":true},"no_trailing_comma_in_list_call":true,"no_trailing_comma_in_singleline_array":true,"no_unneeded_control_parentheses":{"statements":["break","clone","continue","echo_print","return","switch_case","yield","yield_from"]},"no_unneeded_curly_braces":{"namespaces":true},"no_unset_cast":true,"no_unused_imports":true,"no_whitespace_before_comma_in_array":true,"normalize_index_brace":true,"object_operator_without_whitespace":true,"ordered_imports":true,"php_unit_fqcn_annotation":true,"php_unit_method_casing":true,"phpdoc_align":{"tags":["method","param","property","return","throws","type","var"]},"phpdoc_annotation_without_dot":true,"phpdoc_indent":true,"phpdoc_inline_tag_normalizer":true,"phpdoc_no_access":true,"phpdoc_no_alias_tag":true,"phpdoc_no_package":true,"phpdoc_no_useless_inheritdoc":true,"phpdoc_return_self_reference":true,"phpdoc_scalar":true,"phpdoc_separation":true,"phpdoc_single_line_var_spacing":true,"phpdoc_summary":true,"phpdoc_tag_type":{"tags":{"inheritDoc":"inline"}},"phpdoc_to_comment":true,"phpdoc_trim":true,"phpdoc_trim_consecutive_blank_line_separation":true,"phpdoc_types":true,"phpdoc_types_order":{"null_adjustment":"always_last","sort_algorithm":"none"},"phpdoc_var_without_name":true,"protected_to_private":true,"semicolon_after_instruction":true,"single_class_element_per_statement":{"elements":["property"]},"single_line_comment_style":{"comment_types":["hash"]},"single_quote":true,"single_space_after_construct":true,"space_after_semicolon":{"remove_in_empty_for_expressions":true},"standardize_increment":true,"standardize_not_equals":true,"switch_continue_to_break":true,"trailing_comma_in_multiline":true,"trim_array_spaces":true,"unary_operator_spaces":true,"visibility_required":true,"whitespace_after_comma_in_array":true,"blank_line_after_opening_tag":true,"compact_nullable_typehint":true,"declare_equal_normalize":true,"lowercase_cast":true,"lowercase_static_reference":true,"new_with_braces":true,"no_blank_lines_after_class_opening":true,"no_leading_import_slash":true,"no_whitespace_in_blank_line":true,"ordered_class_elements":{"order":["use_trait"]},"return_type_declaration":true,"short_scalar_cast":true,"single_blank_line_before_namespace":true,"single_trait_insert_per_statement":true,"ternary_operator_spaces":true,"blank_line_after_namespace":true,"constant_case":true,"elseif":true,"function_declaration":true,"indentation_type":true,"line_ending":true,"lowercase_keywords":true,"no_break_comment":true,"no_closing_tag":true,"no_spaces_after_function_name":true,"no_spaces_inside_parenthesis":true,"no_trailing_whitespace":true,"no_trailing_whitespace_in_comment":true,"single_blank_line_at_eof":true,"single_import_per_statement":true,"single_line_after_imports":true,"switch_case_semicolon_to_colon":true,"switch_case_space":true,"encoding":true,"full_opening_tag":true,"declare_strict_types":true,"native_function_invocation":{"include":["@internal"],"scope":"namespaced","strict":true},"no_null_property_initialization":true,"no_superfluous_elseif":true,"no_useless_else":true,"phpdoc_line_span":{"property":"single","const":"single","method":"single"},"simplified_if_return":true,"void_return":true},"hashes":{"src\/Builder\/SpreadsheetBuilderInterface.php":2205312496,"src\/Builder\/SpreadsheetBuilder.php":876001843,"src\/Builder\/Partials\/AbstractBuilder.php":1536108566,"src\/Builder\/Partials\/SheetRowContentBuilder.php":390191125,"src\/Factory\/ExcelStreamedResponseFactory.php":537970808,"src\/Exception\/NotSameClassException.php":1519021811,"src\/Exception\/InvalidExcelSpreadsheetException.php":4118638450,"src\/Exception\/ExcelExportException.php":1621116812,"src\/Annotation\/BorderStyle.php":2845185310,"src\/Annotation\/ColumnsAutoResize.php":2291940379,"src\/Annotation\/GroupBorderStyle.php":674497363,"src\/Annotation\/HeaderTitle.php":3128930718,"src\/Annotation\/HeaderStyle.php":4135587682,"src\/Annotation\/ColumnDimension.php":1864080462,"src\/Annotation\/ColumnMerge.php":3749489870,"src\/Annotation\/Style.php":1246525637,"src\/Annotation\/ContentStyle.php":2750078185,"src\/ConfigurationExtractor\/Model\/CellConfiguration.php":4168982182,"src\/ConfigurationExtractor\/Model\/GeneratedCellConfiguration.php":2683069667,"src\/ConfigurationExtractor\/CellConfigurationsExtractor.php":3745940662,"src\/Model\/ExcelSheet.php":4065493054,"src\/Model\/ExcelContent.php":1865212577,"src\/Model\/ExcelSpreadsheet.php":2429063230,"src\/Model\/AbstractExcelNode.php":68257834,"src\/DependencyInjection\/RichIdExcelGeneratorExtension.php":2727587742,"src\/Listener\/ColumnMergingOnCellGenerated.php":2601930338,"src\/Listener\/AbstractStyleListener.php":2011872910,"src\/Listener\/BorderStyleOnCellGenerated.php":1488253099,"src\/Listener\/HeaderGenerationOnRowPreGenerated.php":960059762,"src\/Listener\/TextStyleOnCellGenerated.php":2770053800,"src\/Listener\/ComputeRowHeightOnRowGenerated.php":3250894440,"src\/Listener\/BackgroundStyleOnCellGenerated.php":2033352810,"src\/Listener\/ComputeColumnsSizeOnRowGenerated.php":1984760109,"src\/Listener\/AlignmentStyleOnCellGenerated.php":3648436298,"src\/Generator\/ExcelGeneratorInterface.php":3428493705,"src\/Generator\/ExcelGenerator.php":2425928705,"src\/Helper\/AbstractHelper.php":693120775,"src\/Helper\/WorksheetHelper.php":2085220077,"src\/Helper\/ArrayHelper.php":2625814072,"src\/Helper\/SpreadsheetHelper.php":605669627,"src\/Helper\/ExpressionLanguageHelper.php":1370786059,"src\/Helper\/AnnotationHelper.php":4007237398,"src\/Event\/ExcelCellGeneratedEvent.php":2661128070,"src\/Event\/ExcelRowPreGeneratedEvent.php":2873760365,"src\/Event\/ExcelSheetGeneratedEvent.php":2327490245,"src\/Event\/ExcelRowGeneratedEvent.php":3221190719,"src\/Event\/ExcelSpreadsheetGeneratedEvent.php":4050208145,"src\/Validator\/Constraints\/CorrectParent.php":2350046719,"src\/Validator\/Constraints\/CorrectParentValidator.php":3595366590,"src\/RichIdExcelGeneratorBundle.php":3923848248,"tests\/Model\/ExcelSpreadsheetTest.php":189226427,"tests\/Resources\/Model\/DummyExcelContent.php":3118508896,"tests\/Resources\/TestCase\/ModelTestCase.php":44541575,"tests\/Resources\/Kernel\/TestKernel.php":2518812504,"tests\/Resources\/Kernel\/config\/bundles.php":2151489969,"tests\/Generator\/ExcelGeneratorTest.php":2601457950,"tests\/Builder\/SpreadsheetBuilderTest.php":2516640080}} \ No newline at end of file diff --git a/Docs/Configuration.md b/Docs/Configuration.md deleted file mode 100644 index a025a48..0000000 --- a/Docs/Configuration.md +++ /dev/null @@ -1 +0,0 @@ -# Configuration diff --git a/README.md b/README.md index 190fdae..f79aeaa 100644 --- a/README.md +++ b/README.md @@ -3,4 +3,142 @@ Rich ID Excel Generator Bundle ======================================= +[![Package version](https://img.shields.io/packagist/v/rich-id/excel-generator-bundle)](https://packagist.org/packages/rich-id/excel-generator-bundle) +[![Actions Status](https://github.com/rich-id/excel-generator-bundle/workflows/Tests/badge.svg)](https://github.com/rich-id/excel-generator-bundle/actions) +[![Coverage Status](https://coveralls.io/repos/github/rich-id/excel-generator-bundle/badge.svg?branch=master)](https://coveralls.io/github/rich-id/excel-generator-bundle?branch=master) +[![Maintainability](https://api.codeclimate.com/v1/badges/144a5e6be7cc097ddc2c/maintainability)](https://codeclimate.com/github/rich-id/excel-generator-bundle/maintainability) +![Symfony 4.4+](https://img.shields.io/badge/Symfony-4.4+-000000) +![PHP 7.3+](https://img.shields.io/badge/PHP-7.3+-858ebb.svg) +[![Contributions Welcome](https://img.shields.io/badge/contributions-welcome-brightgreen.svg?style=flat)](https://github.com/rich-id/excel-generator-bundle/issues) +[![License](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE.md) + +Quickly and easily generate complex Excel files hydrated with your own data with style. + + +# Quick start + +The Excel is built from 3 different models: the spreadsheet, a sheet and a content. + +- The spreadsheet contains only the filename, and a list of sheets +- A sheet has only a name and a list of child +- A child is often a custom class that extends from the ExcelContent class to hydrate the content + +This is an example of a custom content that has some children. Any children will take its own row, which is very handy +for recursion. + +```php +use RichId\ExcelGeneratorBundle\Annotation as Excel; +use RichId\ExcelGeneratorBundle\Model\ExcelContent; + +/** + * @Excel\HeaderStyle(color="#FFFFFF", backgroundColor="#C1D9E1", fontSize=18, position=Excel\Style::POSITION_CENTER) + */ +class PersonContent extends ExcelContent +{ + /** + * @var string + * + * @Excel\ContentStyle(color="#000000", fontSize=12, wrapText=true) + * @Excel\HeaderTitle(title="app.person.firstname") + */ + public $firstname; + + /** + * @var string + * + * @Excel\ContentStyle(color="#000000", fontSize=12, bold=true, wrapText=true) + * @Excel\HeaderTitle(title="app.person.lastname") + */ + public $lastname; + + /** + * @var string + * + * @Excel\ContentStyle(color="#000000", fontSize=10) + * @Excel\HeaderTitle(title="app.person.age") + */ + public $age; + + public function __construct(User $user) + { + $this->firstname = $user->getFirstname(); + $this->lastname = $user->getLastname(); + $this->age = $user->getAge(); + + foreach ($user->getAddresses() as $address) { + $addressContent = new AddressContent($address); + $this->addChild($addressContent); + } + } +} +``` + + +# Table of content + +1. [Installation](#1-installation) +2. [Getting started](#2-getting-started) +3. [Versioning](#3-versioning) +4. [Contributing](#4-contributing) +5. [Hacking](#5-hacking) +6. [License](#6-license) + + +# 1. Installation + This version of the bundle requires Symfony 4.4+ and PHP 7.3+. + +```bash +composer require rich-id/excel-generator-bundle +``` + +# 2 Getting started + +- [Headers](docs/Headers.md) + + +# 3. Versioning + +excel-generator-bundle follows [semantic versioning](https://semver.org/). In short the scheme is MAJOR.MINOR.PATCH where +1. MAJOR is bumped when there is a breaking change, +2. MINOR is bumped when a new feature is added in a backward-compatible way, +3. PATCH is bumped when a bug is fixed in a backward-compatible way. + +Versions bellow 1.0.0 are considered experimental and breaking changes may occur at any time. + + +# 4. Contributing + +Contributions are welcomed! There are many ways to contribute, and we appreciate all of them. Here are some of the major ones: + +* [Bug Reports](https://github.com/rich-id/excel-generator-bundle/issues): While we strive for quality software, bugs can happen and we can't fix issues we're not aware of. So please report even if you're not sure about it or just want to ask a question. If anything the issue might indicate that the documentation can still be improved! +* [Feature Request](https://github.com/rich-id/excel-generator-bundle/issues): You have a use case not covered by the current api? Want to suggest a change or add something? We'd be glad to read about it and start a discussion to try to find the best possible solution. +* [Pull Request](https://github.com/rich-id/excel-generator-bundle/pulls): Want to contribute code or documentation? We'd love that! If you need help to get started, GitHub as [documentation](https://help.github.com/articles/about-pull-requests/) on pull requests. We use the ["fork and pull model"](https://help.github.com/articles/about-collaborative-development-models/) were contributors push changes to their personal fork and then create pull requests to the main repository. Please make your pull requests against the `master` branch. + +As a reminder, all contributors are expected to follow our [Code of Conduct](CODE_OF_CONDUCT.md). + + +# 5. Hacking + +You might use Docker and `docker-compose` to hack the project. Check out the following commands. + +```bash +# Start the project +docker-compose up -d + +# Install dependencies +docker-compose exec application composer install + +# Run tests +docker-compose exec application bin/phpunit + +# Run a bash within the container +docker-compose exec application bash +``` + + +# 6. License + +excel-generator-bundle is distributed under the terms of the MIT license. + +See [LICENSE](LICENSE.md) for details. diff --git a/composer.json b/composer.json index c81f28a..27c599a 100644 --- a/composer.json +++ b/composer.json @@ -19,31 +19,51 @@ "php": ">=7.3", "doctrine/annotations": "^1.12", "phpoffice/phpspreadsheet": "^1.16", - "richcongress/bundle-toolbox": "*", + "richcongress/bundle-toolbox": "^1.0", "symfony/expression-language": "^4|^5", "symfony/serializer-pack": "^1.0", "symfony/translation": "^4|^5", "symfony/validator": "^4|^5" }, "require-dev": { - "roave/security-advisories": "dev-latest", "infection/infection": "^0.16.4", "php-coveralls/php-coveralls": "^2.1", - "richcongress/test-suite": "^0.1" + "richcongress/static-analysis": "dev-master", + "richcongress/test-suite": "^0.1", + "roave/security-advisories": "dev-latest" }, "autoload": { "psr-4": { - "RichId\\ExcelGeneratorBundle\\": "" + "RichId\\ExcelGeneratorBundle\\": "src/" } }, "autoload-dev": { "psr-4": { - "RichId\\ExcelGeneratorBundle\\Tests\\": "Tests/" + "RichId\\ExcelGeneratorBundle\\Tests\\": "tests/" } }, "config": { "bin-dir": "bin", "discard-changes": true, "sort-packages": true + }, + "scripts": { + "post-install-cmd": [ + "cghooks add --ignore-lock" + ], + "post-update-cmd": [ + "cghooks update" + ] + }, + + "extra": { + "hooks": { + "pre-commit": [ + "./bin/php-cs-fixer fix" + ], + "pre-push": [ + "./bin/php-cs-fixer fix --dry-run" + ] + } } } diff --git a/composer.lock b/composer.lock index a6d5509..cfc30fc 100644 --- a/composer.lock +++ b/composer.lock @@ -4,32 +4,34 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "01b3c741ad69433c08b69bd2a7838c73", + "content-hash": "5107c832cd4cff22bc695a257afa9270", "packages": [ { "name": "doctrine/annotations", - "version": "1.12.1", + "version": "1.13.1", "source": { "type": "git", "url": "https://github.com/doctrine/annotations.git", - "reference": "b17c5014ef81d212ac539f07a1001832df1b6d3b" + "reference": "e6e7b7d5b45a2f2abc5460cc6396480b2b1d321f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/annotations/zipball/b17c5014ef81d212ac539f07a1001832df1b6d3b", - "reference": "b17c5014ef81d212ac539f07a1001832df1b6d3b", + "url": "https://api.github.com/repos/doctrine/annotations/zipball/e6e7b7d5b45a2f2abc5460cc6396480b2b1d321f", + "reference": "e6e7b7d5b45a2f2abc5460cc6396480b2b1d321f", "shasum": "" }, "require": { "doctrine/lexer": "1.*", "ext-tokenizer": "*", - "php": "^7.1 || ^8.0" + "php": "^7.1 || ^8.0", + "psr/cache": "^1 || ^2 || ^3" }, "require-dev": { - "doctrine/cache": "1.*", + "doctrine/cache": "^1.11 || ^2.0", "doctrine/coding-standard": "^6.0 || ^8.1", "phpstan/phpstan": "^0.12.20", - "phpunit/phpunit": "^7.5 || ^9.1.5" + "phpunit/phpunit": "^7.5 || ^8.0 || ^9.1.5", + "symfony/cache": "^4.4 || ^5.2" }, "type": "library", "autoload": { @@ -72,9 +74,9 @@ ], "support": { "issues": "https://github.com/doctrine/annotations/issues", - "source": "https://github.com/doctrine/annotations/tree/1.12.1" + "source": "https://github.com/doctrine/annotations/tree/1.13.1" }, - "time": "2021-02-21T21:00:45+00:00" + "time": "2021-05-16T18:07:53+00:00" }, { "name": "doctrine/lexer", @@ -283,16 +285,16 @@ }, { "name": "markbaker/complex", - "version": "2.0.0", + "version": "2.0.3", "source": { "type": "git", "url": "https://github.com/MarkBaker/PHPComplex.git", - "reference": "9999f1432fae467bc93c53f357105b4c31bb994c" + "reference": "6f724d7e04606fd8adaa4e3bb381c3e9db09c946" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/MarkBaker/PHPComplex/zipball/9999f1432fae467bc93c53f357105b4c31bb994c", - "reference": "9999f1432fae467bc93c53f357105b4c31bb994c", + "url": "https://api.github.com/repos/MarkBaker/PHPComplex/zipball/6f724d7e04606fd8adaa4e3bb381c3e9db09c946", + "reference": "6f724d7e04606fd8adaa4e3bb381c3e9db09c946", "shasum": "" }, "require": { @@ -301,11 +303,7 @@ "require-dev": { "dealerdirect/phpcodesniffer-composer-installer": "^0.7.0", "phpcompatibility/php-compatibility": "^9.0", - "phpdocumentor/phpdocumentor": "2.*", - "phploc/phploc": "^4.0", - "phpmd/phpmd": "2.*", "phpunit/phpunit": "^7.0 || ^8.0 || ^9.3", - "sebastian/phpcpd": "^4.0", "squizlabs/php_codesniffer": "^3.4" }, "type": "library", @@ -376,22 +374,22 @@ ], "support": { "issues": "https://github.com/MarkBaker/PHPComplex/issues", - "source": "https://github.com/MarkBaker/PHPComplex/tree/PHP8" + "source": "https://github.com/MarkBaker/PHPComplex/tree/2.0.3" }, - "time": "2020-08-26T10:42:07+00:00" + "time": "2021-06-02T09:44:11+00:00" }, { "name": "markbaker/matrix", - "version": "2.1.2", + "version": "2.1.3", "source": { "type": "git", "url": "https://github.com/MarkBaker/PHPMatrix.git", - "reference": "361c0f545c3172ee26c3d596a0aa03f0cef65e6a" + "reference": "174395a901b5ba0925f1d790fa91bab531074b61" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/MarkBaker/PHPMatrix/zipball/361c0f545c3172ee26c3d596a0aa03f0cef65e6a", - "reference": "361c0f545c3172ee26c3d596a0aa03f0cef65e6a", + "url": "https://api.github.com/repos/MarkBaker/PHPMatrix/zipball/174395a901b5ba0925f1d790fa91bab531074b61", + "reference": "174395a901b5ba0925f1d790fa91bab531074b61", "shasum": "" }, "require": { @@ -450,9 +448,9 @@ ], "support": { "issues": "https://github.com/MarkBaker/PHPMatrix/issues", - "source": "https://github.com/MarkBaker/PHPMatrix/tree/2.1.2" + "source": "https://github.com/MarkBaker/PHPMatrix/tree/2.1.3" }, - "time": "2021-01-23T16:37:31+00:00" + "time": "2021-05-25T15:42:17+00:00" }, { "name": "myclabs/php-enum", @@ -674,16 +672,16 @@ }, { "name": "phpoffice/phpspreadsheet", - "version": "1.17.1", + "version": "1.18.0", "source": { "type": "git", "url": "https://github.com/PHPOffice/PhpSpreadsheet.git", - "reference": "c55269cb06911575a126dc225a05c0e4626e5fb4" + "reference": "418cd304e8e6b417ea79c3b29126a25dc4b1170c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHPOffice/PhpSpreadsheet/zipball/c55269cb06911575a126dc225a05c0e4626e5fb4", - "reference": "c55269cb06911575a126dc225a05c0e4626e5fb4", + "url": "https://api.github.com/repos/PHPOffice/PhpSpreadsheet/zipball/418cd304e8e6b417ea79c3b29126a25dc4b1170c", + "reference": "418cd304e8e6b417ea79c3b29126a25dc4b1170c", "shasum": "" }, "require": { @@ -702,20 +700,23 @@ "ext-zlib": "*", "ezyang/htmlpurifier": "^4.13", "maennchen/zipstream-php": "^2.1", - "markbaker/complex": "^1.5||^2.0", - "markbaker/matrix": "^1.2||^2.0", - "php": "^7.2||^8.0", + "markbaker/complex": "^2.0", + "markbaker/matrix": "^2.0", + "php": "^7.2 || ^8.0", "psr/http-client": "^1.0", "psr/http-factory": "^1.0", "psr/simple-cache": "^1.0" }, "require-dev": { - "dompdf/dompdf": "^0.8.5", + "dealerdirect/phpcodesniffer-composer-installer": "dev-master", + "dompdf/dompdf": "^1.0", "friendsofphp/php-cs-fixer": "^2.18", "jpgraph/jpgraph": "^4.0", "mpdf/mpdf": "^8.0", "phpcompatibility/php-compatibility": "^9.3", - "phpunit/phpunit": "^8.5||^9.3", + "phpstan/phpstan": "^0.12.82", + "phpstan/phpstan-phpunit": "^0.12.18", + "phpunit/phpunit": "^8.5", "squizlabs/php_codesniffer": "^3.5", "tecnickcom/tcpdf": "^6.3" }, @@ -769,9 +770,9 @@ ], "support": { "issues": "https://github.com/PHPOffice/PhpSpreadsheet/issues", - "source": "https://github.com/PHPOffice/PhpSpreadsheet/tree/1.17.1" + "source": "https://github.com/PHPOffice/PhpSpreadsheet/tree/1.18.0" }, - "time": "2021-03-02T17:54:11+00:00" + "time": "2021-05-31T18:21:15+00:00" }, { "name": "psr/cache", @@ -1230,16 +1231,16 @@ }, { "name": "symfony/cache", - "version": "v5.2.7", + "version": "v5.3.0", "source": { "type": "git", "url": "https://github.com/symfony/cache.git", - "reference": "1d801d1dc5e3840e832568db6b35a954cfb435a8" + "reference": "44fd0f97d1fb198d344f22379dfc56af2221e608" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/cache/zipball/1d801d1dc5e3840e832568db6b35a954cfb435a8", - "reference": "1d801d1dc5e3840e832568db6b35a954cfb435a8", + "url": "https://api.github.com/repos/symfony/cache/zipball/44fd0f97d1fb198d344f22379dfc56af2221e608", + "reference": "44fd0f97d1fb198d344f22379dfc56af2221e608", "shasum": "" }, "require": { @@ -1247,6 +1248,7 @@ "psr/cache": "^1.0|^2.0", "psr/log": "^1.1", "symfony/cache-contracts": "^1.1.7|^2", + "symfony/deprecation-contracts": "^2.1", "symfony/polyfill-php80": "^1.15", "symfony/service-contracts": "^1.1|^2", "symfony/var-exporter": "^4.4|^5.0" @@ -1264,7 +1266,7 @@ }, "require-dev": { "cache/integration-tests": "dev-master", - "doctrine/cache": "^1.6", + "doctrine/cache": "^1.6|^2.0", "doctrine/dbal": "^2.10|^3.0", "predis/predis": "^1.1", "psr/simple-cache": "^1.0", @@ -1305,7 +1307,7 @@ "psr6" ], "support": { - "source": "https://github.com/symfony/cache/tree/v5.2.7" + "source": "https://github.com/symfony/cache/tree/v5.3.0" }, "funding": [ { @@ -1321,7 +1323,7 @@ "type": "tidelift" } ], - "time": "2021-04-23T16:56:33+00:00" + "time": "2021-05-26T17:43:10+00:00" }, { "name": "symfony/cache-contracts", @@ -1404,16 +1406,16 @@ }, { "name": "symfony/config", - "version": "v5.2.7", + "version": "v5.3.0", "source": { "type": "git", "url": "https://github.com/symfony/config.git", - "reference": "3817662ada105c8c4d1afdb4ec003003efd1d8d8" + "reference": "9f4a448c2d7fd2c90882dfff930b627ddbe16810" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/config/zipball/3817662ada105c8c4d1afdb4ec003003efd1d8d8", - "reference": "3817662ada105c8c4d1afdb4ec003003efd1d8d8", + "url": "https://api.github.com/repos/symfony/config/zipball/9f4a448c2d7fd2c90882dfff930b627ddbe16810", + "reference": "9f4a448c2d7fd2c90882dfff930b627ddbe16810", "shasum": "" }, "require": { @@ -1421,7 +1423,8 @@ "symfony/deprecation-contracts": "^2.1", "symfony/filesystem": "^4.4|^5.0", "symfony/polyfill-ctype": "~1.8", - "symfony/polyfill-php80": "^1.15" + "symfony/polyfill-php80": "^1.15", + "symfony/polyfill-php81": "^1.22" }, "conflict": { "symfony/finder": "<4.4" @@ -1462,7 +1465,7 @@ "description": "Helps you find, load, combine, autofill and validate configuration values of any kind", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/config/tree/v5.2.7" + "source": "https://github.com/symfony/config/tree/v5.3.0" }, "funding": [ { @@ -1478,31 +1481,32 @@ "type": "tidelift" } ], - "time": "2021-04-07T16:07:52+00:00" + "time": "2021-05-26T17:43:10+00:00" }, { "name": "symfony/dependency-injection", - "version": "v5.2.7", + "version": "v5.3.0", "source": { "type": "git", "url": "https://github.com/symfony/dependency-injection.git", - "reference": "6ca378b99e3c9ba6127eb43b68389fb2b7348577" + "reference": "94d973cb742d8c5c5dcf9534220e6b73b09af1d4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/6ca378b99e3c9ba6127eb43b68389fb2b7348577", - "reference": "6ca378b99e3c9ba6127eb43b68389fb2b7348577", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/94d973cb742d8c5c5dcf9534220e6b73b09af1d4", + "reference": "94d973cb742d8c5c5dcf9534220e6b73b09af1d4", "shasum": "" }, "require": { "php": ">=7.2.5", - "psr/container": "^1.0", + "psr/container": "^1.1.1", "symfony/deprecation-contracts": "^2.1", "symfony/polyfill-php80": "^1.15", "symfony/service-contracts": "^1.1.6|^2" }, "conflict": { - "symfony/config": "<5.1", + "ext-psr": "<1.1|>=2", + "symfony/config": "<5.3", "symfony/finder": "<4.4", "symfony/proxy-manager-bridge": "<4.4", "symfony/yaml": "<4.4" @@ -1512,7 +1516,7 @@ "symfony/service-implementation": "1.0|2.0" }, "require-dev": { - "symfony/config": "^5.1", + "symfony/config": "^5.3", "symfony/expression-language": "^4.4|^5.0", "symfony/yaml": "^4.4|^5.0" }, @@ -1549,7 +1553,7 @@ "description": "Allows you to standardize and centralize the way objects are constructed in your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/dependency-injection/tree/v5.2.7" + "source": "https://github.com/symfony/dependency-injection/tree/v5.3.0" }, "funding": [ { @@ -1565,7 +1569,7 @@ "type": "tidelift" } ], - "time": "2021-04-24T14:32:26+00:00" + "time": "2021-05-26T17:57:12+00:00" }, { "name": "symfony/deprecation-contracts", @@ -1636,16 +1640,16 @@ }, { "name": "symfony/error-handler", - "version": "v5.2.7", + "version": "v5.3.0", "source": { "type": "git", "url": "https://github.com/symfony/error-handler.git", - "reference": "ea3ddbf67615e883ca7c33a4de61213789846782" + "reference": "0e6768b8c0dcef26df087df2bbbaa143867a59b2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/error-handler/zipball/ea3ddbf67615e883ca7c33a4de61213789846782", - "reference": "ea3ddbf67615e883ca7c33a4de61213789846782", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/0e6768b8c0dcef26df087df2bbbaa143867a59b2", + "reference": "0e6768b8c0dcef26df087df2bbbaa143867a59b2", "shasum": "" }, "require": { @@ -1685,7 +1689,7 @@ "description": "Provides tools to manage errors and ease debugging PHP code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/error-handler/tree/v5.2.7" + "source": "https://github.com/symfony/error-handler/tree/v5.3.0" }, "funding": [ { @@ -1701,20 +1705,20 @@ "type": "tidelift" } ], - "time": "2021-04-07T15:57:33+00:00" + "time": "2021-05-26T17:43:10+00:00" }, { "name": "symfony/event-dispatcher", - "version": "v5.2.4", + "version": "v5.3.0", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "d08d6ec121a425897951900ab692b612a61d6240" + "reference": "67a5f354afa8e2f231081b3fa11a5912f933c3ce" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/d08d6ec121a425897951900ab692b612a61d6240", - "reference": "d08d6ec121a425897951900ab692b612a61d6240", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/67a5f354afa8e2f231081b3fa11a5912f933c3ce", + "reference": "67a5f354afa8e2f231081b3fa11a5912f933c3ce", "shasum": "" }, "require": { @@ -1770,7 +1774,7 @@ "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/event-dispatcher/tree/v5.2.4" + "source": "https://github.com/symfony/event-dispatcher/tree/v5.3.0" }, "funding": [ { @@ -1786,7 +1790,7 @@ "type": "tidelift" } ], - "time": "2021-02-18T17:12:37+00:00" + "time": "2021-05-26T17:43:10+00:00" }, { "name": "symfony/event-dispatcher-contracts", @@ -1869,16 +1873,16 @@ }, { "name": "symfony/expression-language", - "version": "v5.2.7", + "version": "v5.3.0", "source": { "type": "git", "url": "https://github.com/symfony/expression-language.git", - "reference": "c8bb14c3bcc397845d7e86a1cc5022671eed1ff8" + "reference": "e3c136ac5333b0d2ca9de9e7e3efe419362aa046" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/expression-language/zipball/c8bb14c3bcc397845d7e86a1cc5022671eed1ff8", - "reference": "c8bb14c3bcc397845d7e86a1cc5022671eed1ff8", + "url": "https://api.github.com/repos/symfony/expression-language/zipball/e3c136ac5333b0d2ca9de9e7e3efe419362aa046", + "reference": "e3c136ac5333b0d2ca9de9e7e3efe419362aa046", "shasum": "" }, "require": { @@ -1913,7 +1917,7 @@ "description": "Provides an engine that can compile and evaluate expressions", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/expression-language/tree/v5.3.0-BETA1" + "source": "https://github.com/symfony/expression-language/tree/v5.3.0" }, "funding": [ { @@ -1929,20 +1933,20 @@ "type": "tidelift" } ], - "time": "2021-04-07T16:07:52+00:00" + "time": "2021-05-26T12:52:38+00:00" }, { "name": "symfony/filesystem", - "version": "v5.2.7", + "version": "v5.3.0", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "056e92acc21d977c37e6ea8e97374b2a6c8551b0" + "reference": "348116319d7fb7d1faa781d26a48922428013eb2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/056e92acc21d977c37e6ea8e97374b2a6c8551b0", - "reference": "056e92acc21d977c37e6ea8e97374b2a6c8551b0", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/348116319d7fb7d1faa781d26a48922428013eb2", + "reference": "348116319d7fb7d1faa781d26a48922428013eb2", "shasum": "" }, "require": { @@ -1975,7 +1979,7 @@ "description": "Provides basic utilities for the filesystem", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/filesystem/tree/v5.2.7" + "source": "https://github.com/symfony/filesystem/tree/v5.3.0" }, "funding": [ { @@ -1991,7 +1995,7 @@ "type": "tidelift" } ], - "time": "2021-04-01T10:42:13+00:00" + "time": "2021-05-26T17:43:10+00:00" }, { "name": "symfony/http-client-contracts", @@ -2073,16 +2077,16 @@ }, { "name": "symfony/http-foundation", - "version": "v5.2.7", + "version": "v5.3.1", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "a416487a73bb9c9d120e9ba3a60547f4a3fb7a1f" + "reference": "8827b90cf8806e467124ad476acd15216c2fceb6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/a416487a73bb9c9d120e9ba3a60547f4a3fb7a1f", - "reference": "a416487a73bb9c9d120e9ba3a60547f4a3fb7a1f", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/8827b90cf8806e467124ad476acd15216c2fceb6", + "reference": "8827b90cf8806e467124ad476acd15216c2fceb6", "shasum": "" }, "require": { @@ -2126,7 +2130,7 @@ "description": "Defines an object-oriented layer for the HTTP specification", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-foundation/tree/v5.2.7" + "source": "https://github.com/symfony/http-foundation/tree/v5.3.1" }, "funding": [ { @@ -2142,20 +2146,20 @@ "type": "tidelift" } ], - "time": "2021-05-01T13:46:24+00:00" + "time": "2021-06-02T09:32:00+00:00" }, { "name": "symfony/http-kernel", - "version": "v5.2.7", + "version": "v5.3.1", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "1e9f6879f070f718e0055fbac232a56f67b8b6bd" + "reference": "74eb022e3bac36b3d3a897951a98759f2b32b864" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/1e9f6879f070f718e0055fbac232a56f67b8b6bd", - "reference": "1e9f6879f070f718e0055fbac232a56f67b8b6bd", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/74eb022e3bac36b3d3a897951a98759f2b32b864", + "reference": "74eb022e3bac36b3d3a897951a98759f2b32b864", "shasum": "" }, "require": { @@ -2165,7 +2169,7 @@ "symfony/error-handler": "^4.4|^5.0", "symfony/event-dispatcher": "^5.0", "symfony/http-client-contracts": "^1.1|^2", - "symfony/http-foundation": "^4.4|^5.0", + "symfony/http-foundation": "^5.3", "symfony/polyfill-ctype": "^1.8", "symfony/polyfill-php73": "^1.9", "symfony/polyfill-php80": "^1.15" @@ -2175,7 +2179,7 @@ "symfony/cache": "<5.0", "symfony/config": "<5.0", "symfony/console": "<4.4", - "symfony/dependency-injection": "<5.1.8", + "symfony/dependency-injection": "<5.3", "symfony/doctrine-bridge": "<5.0", "symfony/form": "<5.0", "symfony/http-client": "<5.0", @@ -2195,7 +2199,7 @@ "symfony/config": "^5.0", "symfony/console": "^4.4|^5.0", "symfony/css-selector": "^4.4|^5.0", - "symfony/dependency-injection": "^5.1.8", + "symfony/dependency-injection": "^5.3", "symfony/dom-crawler": "^4.4|^5.0", "symfony/expression-language": "^4.4|^5.0", "symfony/finder": "^4.4|^5.0", @@ -2238,7 +2242,7 @@ "description": "Provides a structured process for converting a Request into a Response", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-kernel/tree/v5.2.7" + "source": "https://github.com/symfony/http-kernel/tree/v5.3.1" }, "funding": [ { @@ -2254,20 +2258,20 @@ "type": "tidelift" } ], - "time": "2021-05-01T14:53:15+00:00" + "time": "2021-06-02T10:07:12+00:00" }, { "name": "symfony/polyfill-ctype", - "version": "v1.22.1", + "version": "v1.23.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "c6c942b1ac76c82448322025e084cadc56048b4e" + "reference": "46cd95797e9df938fdd2b03693b5fca5e64b01ce" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/c6c942b1ac76c82448322025e084cadc56048b4e", - "reference": "c6c942b1ac76c82448322025e084cadc56048b4e", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/46cd95797e9df938fdd2b03693b5fca5e64b01ce", + "reference": "46cd95797e9df938fdd2b03693b5fca5e64b01ce", "shasum": "" }, "require": { @@ -2279,7 +2283,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.22-dev" + "dev-main": "1.23-dev" }, "thanks": { "name": "symfony/polyfill", @@ -2317,7 +2321,7 @@ "portable" ], "support": { - "source": "https://github.com/symfony/polyfill-ctype/tree/v1.22.1" + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.23.0" }, "funding": [ { @@ -2333,20 +2337,20 @@ "type": "tidelift" } ], - "time": "2021-01-07T16:49:33+00:00" + "time": "2021-02-19T12:13:01+00:00" }, { "name": "symfony/polyfill-intl-grapheme", - "version": "v1.22.1", + "version": "v1.23.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-grapheme.git", - "reference": "5601e09b69f26c1828b13b6bb87cb07cddba3170" + "reference": "24b72c6baa32c746a4d0840147c9715e42bb68ab" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/5601e09b69f26c1828b13b6bb87cb07cddba3170", - "reference": "5601e09b69f26c1828b13b6bb87cb07cddba3170", + "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/24b72c6baa32c746a4d0840147c9715e42bb68ab", + "reference": "24b72c6baa32c746a4d0840147c9715e42bb68ab", "shasum": "" }, "require": { @@ -2358,7 +2362,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.22-dev" + "dev-main": "1.23-dev" }, "thanks": { "name": "symfony/polyfill", @@ -2398,7 +2402,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.22.1" + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.23.0" }, "funding": [ { @@ -2414,20 +2418,20 @@ "type": "tidelift" } ], - "time": "2021-01-22T09:19:47+00:00" + "time": "2021-05-27T09:17:38+00:00" }, { "name": "symfony/polyfill-intl-normalizer", - "version": "v1.22.1", + "version": "v1.23.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-normalizer.git", - "reference": "43a0283138253ed1d48d352ab6d0bdb3f809f248" + "reference": "8590a5f561694770bdcd3f9b5c69dde6945028e8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/43a0283138253ed1d48d352ab6d0bdb3f809f248", - "reference": "43a0283138253ed1d48d352ab6d0bdb3f809f248", + "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/8590a5f561694770bdcd3f9b5c69dde6945028e8", + "reference": "8590a5f561694770bdcd3f9b5c69dde6945028e8", "shasum": "" }, "require": { @@ -2439,7 +2443,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.22-dev" + "dev-main": "1.23-dev" }, "thanks": { "name": "symfony/polyfill", @@ -2482,7 +2486,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.22.1" + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.23.0" }, "funding": [ { @@ -2498,20 +2502,20 @@ "type": "tidelift" } ], - "time": "2021-01-22T09:19:47+00:00" + "time": "2021-02-19T12:13:01+00:00" }, { "name": "symfony/polyfill-mbstring", - "version": "v1.22.1", + "version": "v1.23.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "5232de97ee3b75b0360528dae24e73db49566ab1" + "reference": "2df51500adbaebdc4c38dea4c89a2e131c45c8a1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/5232de97ee3b75b0360528dae24e73db49566ab1", - "reference": "5232de97ee3b75b0360528dae24e73db49566ab1", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/2df51500adbaebdc4c38dea4c89a2e131c45c8a1", + "reference": "2df51500adbaebdc4c38dea4c89a2e131c45c8a1", "shasum": "" }, "require": { @@ -2523,7 +2527,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.22-dev" + "dev-main": "1.23-dev" }, "thanks": { "name": "symfony/polyfill", @@ -2562,7 +2566,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.22.1" + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.23.0" }, "funding": [ { @@ -2578,20 +2582,20 @@ "type": "tidelift" } ], - "time": "2021-01-22T09:19:47+00:00" + "time": "2021-05-27T09:27:20+00:00" }, { "name": "symfony/polyfill-php73", - "version": "v1.22.1", + "version": "v1.23.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php73.git", - "reference": "a678b42e92f86eca04b7fa4c0f6f19d097fb69e2" + "reference": "fba8933c384d6476ab14fb7b8526e5287ca7e010" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/a678b42e92f86eca04b7fa4c0f6f19d097fb69e2", - "reference": "a678b42e92f86eca04b7fa4c0f6f19d097fb69e2", + "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/fba8933c384d6476ab14fb7b8526e5287ca7e010", + "reference": "fba8933c384d6476ab14fb7b8526e5287ca7e010", "shasum": "" }, "require": { @@ -2600,7 +2604,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.22-dev" + "dev-main": "1.23-dev" }, "thanks": { "name": "symfony/polyfill", @@ -2641,7 +2645,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php73/tree/v1.22.1" + "source": "https://github.com/symfony/polyfill-php73/tree/v1.23.0" }, "funding": [ { @@ -2657,20 +2661,20 @@ "type": "tidelift" } ], - "time": "2021-01-07T16:49:33+00:00" + "time": "2021-02-19T12:13:01+00:00" }, { "name": "symfony/polyfill-php80", - "version": "v1.22.1", + "version": "v1.23.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php80.git", - "reference": "dc3063ba22c2a1fd2f45ed856374d79114998f91" + "reference": "eca0bf41ed421bed1b57c4958bab16aa86b757d0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/dc3063ba22c2a1fd2f45ed856374d79114998f91", - "reference": "dc3063ba22c2a1fd2f45ed856374d79114998f91", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/eca0bf41ed421bed1b57c4958bab16aa86b757d0", + "reference": "eca0bf41ed421bed1b57c4958bab16aa86b757d0", "shasum": "" }, "require": { @@ -2679,7 +2683,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.22-dev" + "dev-main": "1.23-dev" }, "thanks": { "name": "symfony/polyfill", @@ -2724,7 +2728,86 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php80/tree/v1.22.1" + "source": "https://github.com/symfony/polyfill-php80/tree/v1.23.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-02-19T12:13:01+00:00" + }, + { + "name": "symfony/polyfill-php81", + "version": "v1.23.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php81.git", + "reference": "e66119f3de95efc359483f810c4c3e6436279436" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/e66119f3de95efc359483f810c4c3e6436279436", + "reference": "e66119f3de95efc359483f810c4c3e6436279436", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.23-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Php81\\": "" + }, + "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 8.1+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php81/tree/v1.23.0" }, "funding": [ { @@ -2740,20 +2823,20 @@ "type": "tidelift" } ], - "time": "2021-01-07T16:49:33+00:00" + "time": "2021-05-21T13:25:03+00:00" }, { "name": "symfony/property-access", - "version": "v5.2.4", + "version": "v5.3.0", "source": { "type": "git", "url": "https://github.com/symfony/property-access.git", - "reference": "3af8ed262bd3217512a13b023981fe68f36ad5f3" + "reference": "8988399a556cffb0fba9bb3603f8d1ba4543eceb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/property-access/zipball/3af8ed262bd3217512a13b023981fe68f36ad5f3", - "reference": "3af8ed262bd3217512a13b023981fe68f36ad5f3", + "url": "https://api.github.com/repos/symfony/property-access/zipball/8988399a556cffb0fba9bb3603f8d1ba4543eceb", + "reference": "8988399a556cffb0fba9bb3603f8d1ba4543eceb", "shasum": "" }, "require": { @@ -2805,7 +2888,7 @@ "reflection" ], "support": { - "source": "https://github.com/symfony/property-access/tree/v5.2.4" + "source": "https://github.com/symfony/property-access/tree/v5.3.0" }, "funding": [ { @@ -2821,20 +2904,20 @@ "type": "tidelift" } ], - "time": "2021-01-27T10:15:41+00:00" + "time": "2021-05-26T17:43:10+00:00" }, { "name": "symfony/property-info", - "version": "v5.2.7", + "version": "v5.3.1", "source": { "type": "git", "url": "https://github.com/symfony/property-info.git", - "reference": "f5850c8d4d987fd1990e2cbdf29f48c663c433e7" + "reference": "6f8bff281f215dbf41929c7ec6f8309cdc0912cf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/property-info/zipball/f5850c8d4d987fd1990e2cbdf29f48c663c433e7", - "reference": "f5850c8d4d987fd1990e2cbdf29f48c663c433e7", + "url": "https://api.github.com/repos/symfony/property-info/zipball/6f8bff281f215dbf41929c7ec6f8309cdc0912cf", + "reference": "6f8bff281f215dbf41929c7ec6f8309cdc0912cf", "shasum": "" }, "require": { @@ -2895,7 +2978,7 @@ "validator" ], "support": { - "source": "https://github.com/symfony/property-info/tree/v5.2.7" + "source": "https://github.com/symfony/property-info/tree/v5.3.1" }, "funding": [ { @@ -2911,38 +2994,39 @@ "type": "tidelift" } ], - "time": "2021-04-16T17:25:34+00:00" + "time": "2021-05-31T12:40:48+00:00" }, { "name": "symfony/serializer", - "version": "v5.2.7", + "version": "v5.3.1", "source": { "type": "git", "url": "https://github.com/symfony/serializer.git", - "reference": "3698d2611c4917d3689ff89c0a0dcaa761c8e771" + "reference": "ebb3dc397af77a08d734eea7305e0b2ec8c5e875" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/serializer/zipball/3698d2611c4917d3689ff89c0a0dcaa761c8e771", - "reference": "3698d2611c4917d3689ff89c0a0dcaa761c8e771", + "url": "https://api.github.com/repos/symfony/serializer/zipball/ebb3dc397af77a08d734eea7305e0b2ec8c5e875", + "reference": "ebb3dc397af77a08d734eea7305e0b2ec8c5e875", "shasum": "" }, "require": { "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1", "symfony/polyfill-ctype": "~1.8", "symfony/polyfill-php80": "^1.15" }, "conflict": { + "doctrine/annotations": "<1.12", "phpdocumentor/reflection-docblock": "<3.2.2", "phpdocumentor/type-resolver": "<1.4.0", "symfony/dependency-injection": "<4.4", "symfony/property-access": "<4.4", - "symfony/property-info": "<4.4", + "symfony/property-info": "<5.3", "symfony/yaml": "<4.4" }, "require-dev": { - "doctrine/annotations": "^1.10.4", - "doctrine/cache": "~1.0", + "doctrine/annotations": "^1.12", "phpdocumentor/reflection-docblock": "^3.2|^4.0|^5.0", "symfony/cache": "^4.4|^5.0", "symfony/config": "^4.4|^5.0", @@ -2954,9 +3038,10 @@ "symfony/http-kernel": "^4.4|^5.0", "symfony/mime": "^4.4|^5.0", "symfony/property-access": "^4.4.9|^5.0.9", - "symfony/property-info": "^4.4|^5.0", + "symfony/property-info": "^5.3", "symfony/uid": "^5.1", "symfony/validator": "^4.4|^5.0", + "symfony/var-dumper": "^4.4|^5.0", "symfony/var-exporter": "^4.4|^5.0", "symfony/yaml": "^4.4|^5.0" }, @@ -2995,7 +3080,7 @@ "description": "Handles serializing and deserializing data structures, including object graphs, into array structures or other formats like XML and JSON.", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/serializer/tree/v5.2.7" + "source": "https://github.com/symfony/serializer/tree/v5.3.1" }, "funding": [ { @@ -3011,7 +3096,7 @@ "type": "tidelift" } ], - "time": "2021-04-13T14:17:49+00:00" + "time": "2021-06-02T09:36:17+00:00" }, { "name": "symfony/serializer-pack", @@ -3141,16 +3226,16 @@ }, { "name": "symfony/string", - "version": "v5.2.6", + "version": "v5.3.0", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "ad0bd91bce2054103f5eaa18ebeba8d3bc2a0572" + "reference": "a9a0f8b6aafc5d2d1c116dcccd1573a95153515b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/ad0bd91bce2054103f5eaa18ebeba8d3bc2a0572", - "reference": "ad0bd91bce2054103f5eaa18ebeba8d3bc2a0572", + "url": "https://api.github.com/repos/symfony/string/zipball/a9a0f8b6aafc5d2d1c116dcccd1573a95153515b", + "reference": "a9a0f8b6aafc5d2d1c116dcccd1573a95153515b", "shasum": "" }, "require": { @@ -3204,7 +3289,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v5.2.6" + "source": "https://github.com/symfony/string/tree/v5.3.0" }, "funding": [ { @@ -3220,24 +3305,25 @@ "type": "tidelift" } ], - "time": "2021-03-17T17:12:15+00:00" + "time": "2021-05-26T17:43:10+00:00" }, { "name": "symfony/translation", - "version": "v5.2.7", + "version": "v5.3.0", "source": { "type": "git", "url": "https://github.com/symfony/translation.git", - "reference": "e37ece5242564bceea54d709eafc948377ec9749" + "reference": "251de0d921c42ef0a81494d8f37405421deefdf6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation/zipball/e37ece5242564bceea54d709eafc948377ec9749", - "reference": "e37ece5242564bceea54d709eafc948377ec9749", + "url": "https://api.github.com/repos/symfony/translation/zipball/251de0d921c42ef0a81494d8f37405421deefdf6", + "reference": "251de0d921c42ef0a81494d8f37405421deefdf6", "shasum": "" }, "require": { "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1", "symfony/polyfill-mbstring": "~1.0", "symfony/polyfill-php80": "^1.15", "symfony/translation-contracts": "^2.3" @@ -3260,6 +3346,7 @@ "symfony/finder": "^4.4|^5.0", "symfony/http-kernel": "^5.0", "symfony/intl": "^4.4|^5.0", + "symfony/polyfill-intl-icu": "^1.21", "symfony/service-contracts": "^1.1.2|^2", "symfony/yaml": "^4.4|^5.0" }, @@ -3297,7 +3384,7 @@ "description": "Provides tools to internationalize your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/translation/tree/v5.2.7" + "source": "https://github.com/symfony/translation/tree/v5.3.0" }, "funding": [ { @@ -3313,7 +3400,7 @@ "type": "tidelift" } ], - "time": "2021-04-01T08:15:21+00:00" + "time": "2021-05-29T22:28:28+00:00" }, { "name": "symfony/translation-contracts", @@ -3395,16 +3482,16 @@ }, { "name": "symfony/validator", - "version": "v5.2.7", + "version": "v5.3.1", "source": { "type": "git", "url": "https://github.com/symfony/validator.git", - "reference": "b0be0360bfbf15059308d815da7f4151bd448b37" + "reference": "111e71ac585a47358e808bc687dcaf66e568470a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/validator/zipball/b0be0360bfbf15059308d815da7f4151bd448b37", - "reference": "b0be0360bfbf15059308d815da7f4151bd448b37", + "url": "https://api.github.com/repos/symfony/validator/zipball/111e71ac585a47358e808bc687dcaf66e568470a", + "reference": "111e71ac585a47358e808bc687dcaf66e568470a", "shasum": "" }, "require": { @@ -3423,12 +3510,13 @@ "symfony/expression-language": "<5.1", "symfony/http-kernel": "<4.4", "symfony/intl": "<4.4", + "symfony/property-info": "<5.3", "symfony/translation": "<4.4", "symfony/yaml": "<4.4" }, "require-dev": { "doctrine/annotations": "^1.10.4", - "doctrine/cache": "~1.0", + "doctrine/cache": "^1.0|^2.0", "egulias/email-validator": "^2.1.10|^3", "symfony/cache": "^4.4|^5.0", "symfony/config": "^4.4|^5.0", @@ -3442,7 +3530,7 @@ "symfony/intl": "^4.4|^5.0", "symfony/mime": "^4.4|^5.0", "symfony/property-access": "^4.4|^5.0", - "symfony/property-info": "^4.4|^5.0", + "symfony/property-info": "^5.3", "symfony/translation": "^4.4|^5.0", "symfony/yaml": "^4.4|^5.0" }, @@ -3484,7 +3572,7 @@ "description": "Provides tools to validate values", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/validator/tree/v5.2.7" + "source": "https://github.com/symfony/validator/tree/v5.3.1" }, "funding": [ { @@ -3500,20 +3588,20 @@ "type": "tidelift" } ], - "time": "2021-04-14T13:12:03+00:00" + "time": "2021-06-02T09:36:17+00:00" }, { "name": "symfony/var-dumper", - "version": "v5.2.7", + "version": "v5.3.0", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "27cb9f7cfa3853c736425c7233a8f68814b19636" + "reference": "1d3953e627fe4b5f6df503f356b6545ada6351f3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/27cb9f7cfa3853c736425c7233a8f68814b19636", - "reference": "27cb9f7cfa3853c736425c7233a8f68814b19636", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/1d3953e627fe4b5f6df503f356b6545ada6351f3", + "reference": "1d3953e627fe4b5f6df503f356b6545ada6351f3", "shasum": "" }, "require": { @@ -3572,7 +3660,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v5.2.7" + "source": "https://github.com/symfony/var-dumper/tree/v5.3.0" }, "funding": [ { @@ -3588,20 +3676,20 @@ "type": "tidelift" } ], - "time": "2021-04-19T14:07:32+00:00" + "time": "2021-05-27T12:28:50+00:00" }, { "name": "symfony/var-exporter", - "version": "v5.2.7", + "version": "v5.3.0", "source": { "type": "git", "url": "https://github.com/symfony/var-exporter.git", - "reference": "01184a5ab95eb9500b9b0ef3e525979e003d9c81" + "reference": "7a7c9dd972541f78e7815c03c0bae9f81e0e9dbb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-exporter/zipball/01184a5ab95eb9500b9b0ef3e525979e003d9c81", - "reference": "01184a5ab95eb9500b9b0ef3e525979e003d9c81", + "url": "https://api.github.com/repos/symfony/var-exporter/zipball/7a7c9dd972541f78e7815c03c0bae9f81e0e9dbb", + "reference": "7a7c9dd972541f78e7815c03c0bae9f81e0e9dbb", "shasum": "" }, "require": { @@ -3645,7 +3733,7 @@ "serialize" ], "support": { - "source": "https://github.com/symfony/var-exporter/tree/v5.3.0-BETA1" + "source": "https://github.com/symfony/var-exporter/tree/v5.3.0" }, "funding": [ { @@ -3661,7 +3749,7 @@ "type": "tidelift" } ], - "time": "2021-04-01T10:42:13+00:00" + "time": "2021-05-26T17:40:38+00:00" }, { "name": "webmozart/assert", @@ -3724,42 +3812,55 @@ ], "packages-dev": [ { - "name": "composer/package-versions-deprecated", - "version": "1.11.99.1", + "name": "brainmaestro/composer-git-hooks", + "version": "v2.8.5", "source": { "type": "git", - "url": "https://github.com/composer/package-versions-deprecated.git", - "reference": "7413f0b55a051e89485c5cb9f765fe24bb02a7b6" + "url": "https://github.com/BrainMaestro/composer-git-hooks.git", + "reference": "ffed8803690ac12214082120eee3441b00aa390e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/package-versions-deprecated/zipball/7413f0b55a051e89485c5cb9f765fe24bb02a7b6", - "reference": "7413f0b55a051e89485c5cb9f765fe24bb02a7b6", + "url": "https://api.github.com/repos/BrainMaestro/composer-git-hooks/zipball/ffed8803690ac12214082120eee3441b00aa390e", + "reference": "ffed8803690ac12214082120eee3441b00aa390e", "shasum": "" }, "require": { - "composer-plugin-api": "^1.1.0 || ^2.0", - "php": "^7 || ^8" - }, - "replace": { - "ocramius/package-versions": "1.11.99" + "php": "^5.6 || >=7.0", + "symfony/console": "^3.2 || ^4.0 || ^5.0" }, "require-dev": { - "composer/composer": "^1.9.3 || ^2.0@dev", - "ext-zip": "^1.13", - "phpunit/phpunit": "^6.5 || ^7" + "ext-json": "*", + "friendsofphp/php-cs-fixer": "^2.9", + "phpunit/phpunit": "^5.7 || ^7.0" }, - "type": "composer-plugin", + "bin": [ + "cghooks" + ], + "type": "library", "extra": { - "class": "PackageVersions\\Installer", - "branch-alias": { - "dev-master": "1.x-dev" + "hooks": { + "pre-commit": "composer check-style", + "pre-push": [ + "composer test", + "appver=$(grep -o -E '\\d.\\d.\\d' cghooks)", + "tag=$(git describe --tags --abbrev=0)", + "if [ \"$tag\" != \"v$appver\" ]; then", + "echo \"The most recent tag $tag does not match the application version $appver\\n\"", + "tag=${tag#v}", + "sed -i -E \"s/$appver/$tag/\" cghooks", + "exit 1", + "fi" + ] } }, "autoload": { "psr-4": { - "PackageVersions\\": "src/PackageVersions" - } + "BrainMaestro\\GitHooks\\": "src/" + }, + "files": [ + "src/helpers.php" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -3767,61 +3868,56 @@ ], "authors": [ { - "name": "Marco Pivetta", - "email": "ocramius@gmail.com" - }, - { - "name": "Jordi Boggiano", - "email": "j.boggiano@seld.be" + "name": "Ezinwa Okpoechi", + "email": "brainmaestro@outlook.com" } ], - "description": "Composer plugin that provides efficient querying for installed package versions (no runtime IO)", + "description": "Easily manage git hooks in your composer config", + "keywords": [ + "HOOK", + "composer", + "git" + ], "support": { - "issues": "https://github.com/composer/package-versions-deprecated/issues", - "source": "https://github.com/composer/package-versions-deprecated/tree/1.11.99.1" + "issues": "https://github.com/BrainMaestro/composer-git-hooks/issues", + "source": "https://github.com/BrainMaestro/composer-git-hooks/tree/v2.8.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": "2020-11-11T10:22:58+00:00" + "time": "2021-02-08T15:59:11+00:00" }, { - "name": "composer/xdebug-handler", - "version": "1.4.6", + "name": "composer/ca-bundle", + "version": "1.2.10", "source": { "type": "git", - "url": "https://github.com/composer/xdebug-handler.git", - "reference": "f27e06cd9675801df441b3656569b328e04aa37c" + "url": "https://github.com/composer/ca-bundle.git", + "reference": "9fdb22c2e97a614657716178093cd1da90a64aa8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/f27e06cd9675801df441b3656569b328e04aa37c", - "reference": "f27e06cd9675801df441b3656569b328e04aa37c", + "url": "https://api.github.com/repos/composer/ca-bundle/zipball/9fdb22c2e97a614657716178093cd1da90a64aa8", + "reference": "9fdb22c2e97a614657716178093cd1da90a64aa8", "shasum": "" }, "require": { - "php": "^5.3.2 || ^7.0 || ^8.0", - "psr/log": "^1.0" + "ext-openssl": "*", + "ext-pcre": "*", + "php": "^5.3.2 || ^7.0 || ^8.0" }, "require-dev": { "phpstan/phpstan": "^0.12.55", - "symfony/phpunit-bridge": "^4.2 || ^5" + "psr/log": "^1.0", + "symfony/phpunit-bridge": "^4.2 || ^5", + "symfony/process": "^2.5 || ^3.0 || ^4.0 || ^5.0" }, "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.x-dev" + } + }, "autoload": { "psr-4": { - "Composer\\XdebugHandler\\": "src" + "Composer\\CaBundle\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -3830,19 +3926,23 @@ ], "authors": [ { - "name": "John Stevenson", - "email": "john-stevenson@blueyonder.co.uk" + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "http://seld.be" } ], - "description": "Restarts a process without Xdebug.", + "description": "Lets you find a path to the system CA bundle, and includes a fallback to the Mozilla CA bundle.", "keywords": [ - "Xdebug", - "performance" + "cabundle", + "cacert", + "certificate", + "ssl", + "tls" ], "support": { "irc": "irc://irc.freenode.org/composer", - "issues": "https://github.com/composer/xdebug-handler/issues", - "source": "https://github.com/composer/xdebug-handler/tree/1.4.6" + "issues": "https://github.com/composer/ca-bundle/issues", + "source": "https://github.com/composer/ca-bundle/tree/1.2.10" }, "funding": [ { @@ -3858,45 +3958,61 @@ "type": "tidelift" } ], - "time": "2021-03-25T17:01:18+00:00" + "time": "2021-06-07T13:58:28+00:00" }, { - "name": "dama/doctrine-test-bundle", - "version": "v6.5.0", + "name": "composer/composer", + "version": "1.10.22", "source": { "type": "git", - "url": "https://github.com/dmaicher/doctrine-test-bundle.git", - "reference": "a43f79239f446bb85ffa34e799878156a43b590b" + "url": "https://github.com/composer/composer.git", + "reference": "28c9dfbe2351635961f670773e8d7b17bc5eda25" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/dmaicher/doctrine-test-bundle/zipball/a43f79239f446bb85ffa34e799878156a43b590b", - "reference": "a43f79239f446bb85ffa34e799878156a43b590b", + "url": "https://api.github.com/repos/composer/composer/zipball/28c9dfbe2351635961f670773e8d7b17bc5eda25", + "reference": "28c9dfbe2351635961f670773e8d7b17bc5eda25", "shasum": "" }, "require": { - "doctrine/dbal": "^2.9.3 || ^3.0", - "doctrine/doctrine-bundle": "^1.11 || ^2.0", - "php": "^7.1 || ^8.0", - "symfony/framework-bundle": "^3.4 || ^4.4 || ^5.1" + "composer/ca-bundle": "^1.0", + "composer/semver": "^1.0", + "composer/spdx-licenses": "^1.2", + "composer/xdebug-handler": "^1.1", + "justinrainbow/json-schema": "^5.2.10", + "php": "^5.3.2 || ^7.0 || ^8.0", + "psr/log": "^1.0", + "seld/jsonlint": "^1.4", + "seld/phar-utils": "^1.0", + "symfony/console": "^2.7 || ^3.0 || ^4.0 || ^5.0", + "symfony/filesystem": "^2.7 || ^3.0 || ^4.0 || ^5.0", + "symfony/finder": "^2.7 || ^3.0 || ^4.0 || ^5.0", + "symfony/process": "^2.7 || ^3.0 || ^4.0 || ^5.0" + }, + "conflict": { + "symfony/console": "2.8.38" }, "require-dev": { - "behat/behat": "^3.0", - "phpstan/phpstan": "^0.12", - "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0", - "symfony/phpunit-bridge": "^5.1", - "symfony/process": "^3.4 || ^4.4 || ^5.1", - "symfony/yaml": "^3.4 || ^4.4 || ^5.1" + "phpspec/prophecy": "^1.10", + "symfony/phpunit-bridge": "^4.2" }, - "type": "symfony-bundle", + "suggest": { + "ext-openssl": "Enabling the openssl extension allows you to access https URLs for repositories and packages", + "ext-zip": "Enabling the zip extension allows you to unzip archives", + "ext-zlib": "Allow gzip compression of HTTP requests" + }, + "bin": [ + "bin/composer" + ], + "type": "library", "extra": { "branch-alias": { - "dev-master": "7.0.x-dev" + "dev-master": "1.10-dev" } }, "autoload": { "psr-4": { - "DAMA\\DoctrineTestBundle\\": "src/DAMA/DoctrineTestBundle" + "Composer\\": "src/Composer" } }, "notification-url": "https://packagist.org/downloads/", @@ -3905,62 +4021,80 @@ ], "authors": [ { - "name": "David Maicher", - "email": "mail@dmaicher.de" + "name": "Nils Adermann", + "email": "naderman@naderman.de", + "homepage": "http://www.naderman.de" + }, + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "http://seld.be" } ], - "description": "Symfony bundle to isolate doctrine database tests and improve test performance", + "description": "Composer helps you declare, manage and install dependencies of PHP projects. It ensures you have the right stack everywhere.", + "homepage": "https://getcomposer.org/", "keywords": [ - "doctrine", - "isolation", - "performance", - "symfony", - "tests" + "autoload", + "dependency", + "package" ], "support": { - "issues": "https://github.com/dmaicher/doctrine-test-bundle/issues", - "source": "https://github.com/dmaicher/doctrine-test-bundle/tree/v6.5.0" + "irc": "irc://irc.freenode.org/composer", + "issues": "https://github.com/composer/composer/issues", + "source": "https://github.com/composer/composer/tree/1.10.22" }, - "time": "2020-12-12T16:34:54+00:00" + "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": "2021-04-27T11:10:45+00:00" }, { - "name": "doctrine/cache", - "version": "1.11.0", + "name": "composer/package-versions-deprecated", + "version": "1.11.99.2", "source": { "type": "git", - "url": "https://github.com/doctrine/cache.git", - "reference": "a9c1b59eba5a08ca2770a76eddb88922f504e8e0" + "url": "https://github.com/composer/package-versions-deprecated.git", + "reference": "c6522afe5540d5fc46675043d3ed5a45a740b27c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/cache/zipball/a9c1b59eba5a08ca2770a76eddb88922f504e8e0", - "reference": "a9c1b59eba5a08ca2770a76eddb88922f504e8e0", + "url": "https://api.github.com/repos/composer/package-versions-deprecated/zipball/c6522afe5540d5fc46675043d3ed5a45a740b27c", + "reference": "c6522afe5540d5fc46675043d3ed5a45a740b27c", "shasum": "" }, "require": { - "php": "~7.1 || ^8.0" + "composer-plugin-api": "^1.1.0 || ^2.0", + "php": "^7 || ^8" }, - "conflict": { - "doctrine/common": ">2.2,<2.4", - "psr/cache": ">=3" + "replace": { + "ocramius/package-versions": "1.11.99" }, "require-dev": { - "alcaeus/mongo-php-adapter": "^1.1", - "cache/integration-tests": "dev-master", - "doctrine/coding-standard": "^8.0", - "mongodb/mongodb": "^1.1", - "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0", - "predis/predis": "~1.0", - "psr/cache": "^1.0 || ^2.0", - "symfony/cache": "^4.4 || ^5.2" + "composer/composer": "^1.9.3 || ^2.0@dev", + "ext-zip": "^1.13", + "phpunit/phpunit": "^6.5 || ^7" }, - "suggest": { - "alcaeus/mongo-php-adapter": "Required to use legacy MongoDB driver" + "type": "composer-plugin", + "extra": { + "class": "PackageVersions\\Installer", + "branch-alias": { + "dev-master": "1.x-dev" + } }, - "type": "library", "autoload": { "psr-4": { - "Doctrine\\Common\\Cache\\": "lib/Doctrine/Common/Cache" + "PackageVersions\\": "src/PackageVersions" } }, "notification-url": "https://packagist.org/downloads/", @@ -3969,86 +4103,64 @@ ], "authors": [ { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" + "name": "Marco Pivetta", + "email": "ocramius@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": "Jordi Boggiano", + "email": "j.boggiano@seld.be" } ], - "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" - ], + "description": "Composer plugin that provides efficient querying for installed package versions (no runtime IO)", "support": { - "issues": "https://github.com/doctrine/cache/issues", - "source": "https://github.com/doctrine/cache/tree/1.11.0" + "issues": "https://github.com/composer/package-versions-deprecated/issues", + "source": "https://github.com/composer/package-versions-deprecated/tree/1.11.99.2" }, "funding": [ { - "url": "https://www.doctrine-project.org/sponsorship.html", + "url": "https://packagist.com", "type": "custom" }, { - "url": "https://www.patreon.com/phpdoctrine", - "type": "patreon" + "url": "https://github.com/composer", + "type": "github" }, { - "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fcache", + "url": "https://tidelift.com/funding/github/packagist/composer/composer", "type": "tidelift" } ], - "time": "2021-04-13T14:46:17+00:00" + "time": "2021-05-24T07:46:03+00:00" }, { - "name": "doctrine/collections", - "version": "1.6.7", + "name": "composer/semver", + "version": "1.7.2", "source": { "type": "git", - "url": "https://github.com/doctrine/collections.git", - "reference": "55f8b799269a1a472457bd1a41b4f379d4cfba4a" + "url": "https://github.com/composer/semver.git", + "reference": "647490bbcaf7fc4891c58f47b825eb99d19c377a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/collections/zipball/55f8b799269a1a472457bd1a41b4f379d4cfba4a", - "reference": "55f8b799269a1a472457bd1a41b4f379d4cfba4a", + "url": "https://api.github.com/repos/composer/semver/zipball/647490bbcaf7fc4891c58f47b825eb99d19c377a", + "reference": "647490bbcaf7fc4891c58f47b825eb99d19c377a", "shasum": "" }, "require": { - "php": "^7.1.3 || ^8.0" + "php": "^5.3.2 || ^7.0 || ^8.0" }, "require-dev": { - "doctrine/coding-standard": "^6.0", - "phpstan/phpstan-shim": "^0.9.2", - "phpunit/phpunit": "^7.0", - "vimeo/psalm": "^3.8.1" + "phpunit/phpunit": "^4.5 || ^5.0.5" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + } + }, "autoload": { "psr-4": { - "Doctrine\\Common\\Collections\\": "lib/Doctrine/Common/Collections" + "Composer\\Semver\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -4057,71 +4169,78 @@ ], "authors": [ { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" - }, - { - "name": "Roman Borschel", - "email": "roman@code-factory.org" - }, - { - "name": "Benjamin Eberlei", - "email": "kontakt@beberlei.de" + "name": "Nils Adermann", + "email": "naderman@naderman.de", + "homepage": "http://www.naderman.de" }, { - "name": "Jonathan Wage", - "email": "jonwage@gmail.com" + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "http://seld.be" }, { - "name": "Johannes Schmitt", - "email": "schmittjoh@gmail.com" + "name": "Rob Bast", + "email": "rob.bast@gmail.com", + "homepage": "http://robbast.nl" } ], - "description": "PHP Doctrine Collections library that adds additional functionality on top of PHP arrays.", - "homepage": "https://www.doctrine-project.org/projects/collections.html", + "description": "Semver library that offers utilities, version constraint parsing and validation.", "keywords": [ - "array", - "collections", - "iterators", - "php" + "semantic", + "semver", + "validation", + "versioning" ], "support": { - "issues": "https://github.com/doctrine/collections/issues", - "source": "https://github.com/doctrine/collections/tree/1.6.7" + "irc": "irc://irc.freenode.org/composer", + "issues": "https://github.com/composer/semver/issues", + "source": "https://github.com/composer/semver/tree/1.7.2" }, - "time": "2020-07-27T17:53:49+00:00" + "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": "2020-12-03T15:47:16+00:00" }, { - "name": "doctrine/common", - "version": "3.1.2", + "name": "composer/spdx-licenses", + "version": "1.5.5", "source": { "type": "git", - "url": "https://github.com/doctrine/common.git", - "reference": "a036d90c303f3163b5be8b8fde9b6755b2be4a3a" + "url": "https://github.com/composer/spdx-licenses.git", + "reference": "de30328a7af8680efdc03e396aad24befd513200" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/common/zipball/a036d90c303f3163b5be8b8fde9b6755b2be4a3a", - "reference": "a036d90c303f3163b5be8b8fde9b6755b2be4a3a", + "url": "https://api.github.com/repos/composer/spdx-licenses/zipball/de30328a7af8680efdc03e396aad24befd513200", + "reference": "de30328a7af8680efdc03e396aad24befd513200", "shasum": "" }, "require": { - "doctrine/persistence": "^2.0", - "php": "^7.1 || ^8.0" + "php": "^5.3.2 || ^7.0 || ^8.0" }, "require-dev": { - "doctrine/coding-standard": "^6.0 || ^8.0", - "phpstan/phpstan": "^0.12", - "phpstan/phpstan-phpunit": "^0.12", - "phpunit/phpunit": "^7.5.20 || ^8.5 || ^9.0", - "squizlabs/php_codesniffer": "^3.0", - "symfony/phpunit-bridge": "^4.0.5", - "vimeo/psalm": "^4.4" + "phpunit/phpunit": "^4.8.35 || ^5.7 || 6.5 - 7" }, "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.x-dev" + } + }, "autoload": { "psr-4": { - "Doctrine\\Common\\": "lib/Doctrine/Common" + "Composer\\Spdx\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -4130,97 +4249,74 @@ ], "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": "Nils Adermann", + "email": "naderman@naderman.de", + "homepage": "http://www.naderman.de" }, { - "name": "Johannes Schmitt", - "email": "schmittjoh@gmail.com" + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "http://seld.be" }, { - "name": "Marco Pivetta", - "email": "ocramius@gmail.com" + "name": "Rob Bast", + "email": "rob.bast@gmail.com", + "homepage": "http://robbast.nl" } ], - "description": "PHP Doctrine Common project is a library that provides additional functionality that other Doctrine projects depend on such as better reflection support, proxies and much more.", - "homepage": "https://www.doctrine-project.org/projects/common.html", + "description": "SPDX licenses list and validation library.", "keywords": [ - "common", - "doctrine", - "php" + "license", + "spdx", + "validator" ], "support": { - "issues": "https://github.com/doctrine/common/issues", - "source": "https://github.com/doctrine/common/tree/3.1.2" + "irc": "irc://irc.freenode.org/composer", + "issues": "https://github.com/composer/spdx-licenses/issues", + "source": "https://github.com/composer/spdx-licenses/tree/1.5.5" }, "funding": [ { - "url": "https://www.doctrine-project.org/sponsorship.html", + "url": "https://packagist.com", "type": "custom" }, { - "url": "https://www.patreon.com/phpdoctrine", - "type": "patreon" + "url": "https://github.com/composer", + "type": "github" }, { - "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fcommon", + "url": "https://tidelift.com/funding/github/packagist/composer/composer", "type": "tidelift" } ], - "time": "2021-02-10T20:18:51+00:00" + "time": "2020-12-03T16:04:16+00:00" }, { - "name": "doctrine/data-fixtures", - "version": "1.5.0", + "name": "composer/xdebug-handler", + "version": "1.4.6", "source": { "type": "git", - "url": "https://github.com/doctrine/data-fixtures.git", - "reference": "51d3d4880d28951fff42a635a2389f8c63baddc5" + "url": "https://github.com/composer/xdebug-handler.git", + "reference": "f27e06cd9675801df441b3656569b328e04aa37c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/data-fixtures/zipball/51d3d4880d28951fff42a635a2389f8c63baddc5", - "reference": "51d3d4880d28951fff42a635a2389f8c63baddc5", + "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/f27e06cd9675801df441b3656569b328e04aa37c", + "reference": "f27e06cd9675801df441b3656569b328e04aa37c", "shasum": "" }, "require": { - "doctrine/common": "^2.13|^3.0", - "doctrine/persistence": "^1.3.3|^2.0", - "php": "^7.2 || ^8.0" - }, - "conflict": { - "doctrine/phpcr-odm": "<1.3.0" + "php": "^5.3.2 || ^7.0 || ^8.0", + "psr/log": "^1.0" }, "require-dev": { - "doctrine/coding-standard": "^8.2", - "doctrine/dbal": "^2.5.4", - "doctrine/mongodb-odm": "^1.3.0 || ^2.0.0", - "doctrine/orm": "^2.7.0", - "ext-sqlite3": "*", - "phpunit/phpunit": "^8.0" - }, - "suggest": { - "alcaeus/mongo-php-adapter": "For using MongoDB ODM 1.3 with PHP 7 (deprecated)", - "doctrine/mongodb-odm": "For loading MongoDB ODM fixtures", - "doctrine/orm": "For loading ORM fixtures", - "doctrine/phpcr-odm": "For loading PHPCR ODM fixtures" + "phpstan/phpstan": "^0.12.55", + "symfony/phpunit-bridge": "^4.2 || ^5" }, "type": "library", "autoload": { "psr-4": { - "Doctrine\\Common\\DataFixtures\\": "lib/Doctrine/Common/DataFixtures" + "Composer\\XdebugHandler\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -4229,75 +4325,74 @@ ], "authors": [ { - "name": "Jonathan Wage", - "email": "jonwage@gmail.com" + "name": "John Stevenson", + "email": "john-stevenson@blueyonder.co.uk" } ], - "description": "Data Fixtures for all Doctrine Object Managers", - "homepage": "http://www.doctrine-project.org", + "description": "Restarts a process without Xdebug.", "keywords": [ - "database" + "Xdebug", + "performance" ], "support": { - "issues": "https://github.com/doctrine/data-fixtures/issues", - "source": "https://github.com/doctrine/data-fixtures/tree/1.5.0" + "irc": "irc://irc.freenode.org/composer", + "issues": "https://github.com/composer/xdebug-handler/issues", + "source": "https://github.com/composer/xdebug-handler/tree/1.4.6" }, "funding": [ { - "url": "https://www.doctrine-project.org/sponsorship.html", + "url": "https://packagist.com", "type": "custom" }, { - "url": "https://www.patreon.com/phpdoctrine", - "type": "patreon" + "url": "https://github.com/composer", + "type": "github" }, { - "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fdata-fixtures", + "url": "https://tidelift.com/funding/github/packagist/composer/composer", "type": "tidelift" } ], - "time": "2021-01-23T10:20:43+00:00" + "time": "2021-03-25T17:01:18+00:00" }, { - "name": "doctrine/dbal", - "version": "2.13.1", + "name": "dama/doctrine-test-bundle", + "version": "v6.6.0", "source": { "type": "git", - "url": "https://github.com/doctrine/dbal.git", - "reference": "c800380457948e65bbd30ba92cc17cda108bf8c9" + "url": "https://github.com/dmaicher/doctrine-test-bundle.git", + "reference": "8cfd3f9a4cc0f26101e6170f592900384b78b799" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/dbal/zipball/c800380457948e65bbd30ba92cc17cda108bf8c9", - "reference": "c800380457948e65bbd30ba92cc17cda108bf8c9", + "url": "https://api.github.com/repos/dmaicher/doctrine-test-bundle/zipball/8cfd3f9a4cc0f26101e6170f592900384b78b799", + "reference": "8cfd3f9a4cc0f26101e6170f592900384b78b799", "shasum": "" }, "require": { - "doctrine/cache": "^1.0", - "doctrine/deprecations": "^0.5.3", - "doctrine/event-manager": "^1.0", - "ext-pdo": "*", - "php": "^7.1 || ^8" + "doctrine/dbal": "^2.9.3 || ^3.0", + "doctrine/doctrine-bundle": "^1.11 || ^2.0", + "php": "^7.1 || ^8.0", + "symfony/cache": "^4.4 || ^5.2", + "symfony/framework-bundle": "^4.4 || ^5.2" }, "require-dev": { - "doctrine/coding-standard": "8.2.0", - "jetbrains/phpstorm-stubs": "2020.2", - "phpstan/phpstan": "0.12.81", - "phpunit/phpunit": "^7.5.20|^8.5|9.5.0", - "squizlabs/php_codesniffer": "3.6.0", - "symfony/console": "^2.0.5|^3.0|^4.0|^5.0", - "vimeo/psalm": "4.6.4" + "behat/behat": "^3.0", + "phpstan/phpstan": "^0.12.85", + "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0", + "symfony/phpunit-bridge": "^5.2", + "symfony/process": "^4.4 || ^5.2", + "symfony/yaml": "^4.4 || ^5.2" }, - "suggest": { - "symfony/console": "For helpful console commands such as SQL execution and import of files." + "type": "symfony-bundle", + "extra": { + "branch-alias": { + "dev-master": "7.0.x-dev" + } }, - "bin": [ - "bin/doctrine-dbal" - ], - "type": "library", "autoload": { "psr-4": { - "Doctrine\\DBAL\\": "lib/Doctrine/DBAL" + "DAMA\\DoctrineTestBundle\\": "src/DAMA/DoctrineTestBundle" } }, "notification-url": "https://packagist.org/downloads/", @@ -4306,166 +4401,132 @@ ], "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": "David Maicher", + "email": "mail@dmaicher.de" } ], - "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", + "description": "Symfony bundle to isolate doctrine database tests and improve test performance", "keywords": [ - "abstraction", - "database", - "db2", - "dbal", - "mariadb", - "mssql", - "mysql", - "oci8", - "oracle", - "pdo", - "pgsql", - "postgresql", - "queryobject", - "sasql", - "sql", - "sqlanywhere", - "sqlite", - "sqlserver", - "sqlsrv" + "doctrine", + "isolation", + "performance", + "symfony", + "tests" ], "support": { - "issues": "https://github.com/doctrine/dbal/issues", - "source": "https://github.com/doctrine/dbal/tree/2.13.1" + "issues": "https://github.com/dmaicher/doctrine-test-bundle/issues", + "source": "https://github.com/dmaicher/doctrine-test-bundle/tree/v6.6.0" }, - "funding": [ - { - "url": "https://www.doctrine-project.org/sponsorship.html", - "type": "custom" - }, - { - "url": "https://www.patreon.com/phpdoctrine", - "type": "patreon" - }, - { - "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fdbal", - "type": "tidelift" - } - ], - "time": "2021-04-17T17:30:19+00:00" + "time": "2021-06-01T18:12:34+00:00" }, { - "name": "doctrine/deprecations", - "version": "v0.5.3", + "name": "dealerdirect/phpcodesniffer-composer-installer", + "version": "v0.7.1", "source": { "type": "git", - "url": "https://github.com/doctrine/deprecations.git", - "reference": "9504165960a1f83cc1480e2be1dd0a0478561314" + "url": "https://github.com/Dealerdirect/phpcodesniffer-composer-installer.git", + "reference": "fe390591e0241955f22eb9ba327d137e501c771c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/deprecations/zipball/9504165960a1f83cc1480e2be1dd0a0478561314", - "reference": "9504165960a1f83cc1480e2be1dd0a0478561314", + "url": "https://api.github.com/repos/Dealerdirect/phpcodesniffer-composer-installer/zipball/fe390591e0241955f22eb9ba327d137e501c771c", + "reference": "fe390591e0241955f22eb9ba327d137e501c771c", "shasum": "" }, "require": { - "php": "^7.1|^8.0" + "composer-plugin-api": "^1.0 || ^2.0", + "php": ">=5.3", + "squizlabs/php_codesniffer": "^2.0 || ^3.0 || ^4.0" }, "require-dev": { - "doctrine/coding-standard": "^6.0|^7.0|^8.0", - "phpunit/phpunit": "^7.0|^8.0|^9.0", - "psr/log": "^1.0" + "composer/composer": "*", + "phpcompatibility/php-compatibility": "^9.0", + "sensiolabs/security-checker": "^4.1.0" }, - "suggest": { - "psr/log": "Allows logging deprecations via PSR-3 logger implementation" + "type": "composer-plugin", + "extra": { + "class": "Dealerdirect\\Composer\\Plugin\\Installers\\PHPCodeSniffer\\Plugin" }, - "type": "library", "autoload": { "psr-4": { - "Doctrine\\Deprecations\\": "lib/Doctrine/Deprecations" + "Dealerdirect\\Composer\\Plugin\\Installers\\PHPCodeSniffer\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], - "description": "A small layer on top of trigger_error(E_USER_DEPRECATED) or PSR-3 logging with options to disable all deprecations or selectively for packages.", - "homepage": "https://www.doctrine-project.org/", + "authors": [ + { + "name": "Franck Nijhof", + "email": "franck.nijhof@dealerdirect.com", + "homepage": "http://www.frenck.nl", + "role": "Developer / IT Manager" + } + ], + "description": "PHP_CodeSniffer Standards Composer Installer Plugin", + "homepage": "http://www.dealerdirect.com", + "keywords": [ + "PHPCodeSniffer", + "PHP_CodeSniffer", + "code quality", + "codesniffer", + "composer", + "installer", + "phpcs", + "plugin", + "qa", + "quality", + "standard", + "standards", + "style guide", + "stylecheck", + "tests" + ], "support": { - "issues": "https://github.com/doctrine/deprecations/issues", - "source": "https://github.com/doctrine/deprecations/tree/v0.5.3" + "issues": "https://github.com/dealerdirect/phpcodesniffer-composer-installer/issues", + "source": "https://github.com/dealerdirect/phpcodesniffer-composer-installer" }, - "time": "2021-03-21T12:59:47+00:00" + "time": "2020-12-07T18:04:37+00:00" }, { - "name": "doctrine/doctrine-bundle", - "version": "2.3.1", + "name": "doctrine/cache", + "version": "1.11.3", "source": { "type": "git", - "url": "https://github.com/doctrine/DoctrineBundle.git", - "reference": "a08bc3b4d8567cdff05e89b272ba1e06e9d71c21" + "url": "https://github.com/doctrine/cache.git", + "reference": "3bb5588cec00a0268829cc4a518490df6741af9d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/DoctrineBundle/zipball/a08bc3b4d8567cdff05e89b272ba1e06e9d71c21", - "reference": "a08bc3b4d8567cdff05e89b272ba1e06e9d71c21", + "url": "https://api.github.com/repos/doctrine/cache/zipball/3bb5588cec00a0268829cc4a518490df6741af9d", + "reference": "3bb5588cec00a0268829cc4a518490df6741af9d", "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.4.7|^5.0", - "symfony/framework-bundle": "^3.4.30|^4.3.3|^5.0", - "symfony/service-contracts": "^1.1.1|^2.0" + "php": "~7.1 || ^8.0" }, "conflict": { - "doctrine/orm": "<2.6", - "twig/twig": "<1.34|>=2.0,<2.4" + "doctrine/common": ">2.2,<2.4", + "psr/cache": ">=3" }, "require-dev": { + "alcaeus/mongo-php-adapter": "^1.1", + "cache/integration-tests": "dev-master", "doctrine/coding-standard": "^8.0", - "doctrine/orm": "^2.6", - "friendsofphp/proxy-manager-lts": "^1.0", - "phpunit/phpunit": "^7.5 || ^8.0 || ^9.3", - "psalm/plugin-phpunit": "^0.15.1", - "psalm/plugin-symfony": "^2.2.4", - "symfony/phpunit-bridge": "^5.2", - "symfony/property-info": "^4.3.3|^5.0", - "symfony/proxy-manager-bridge": "^3.4|^4.3.3|^5.0", - "symfony/security-bundle": "^4.4|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|^3.0", - "vimeo/psalm": "^4.7" + "mongodb/mongodb": "^1.1", + "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0", + "predis/predis": "~1.0", + "psr/cache": "^1.0 || ^2.0", + "symfony/cache": "^4.4 || ^5.2" }, "suggest": { - "doctrine/orm": "The Doctrine ORM integration is optional in the bundle.", - "ext-pdo": "*", - "symfony/web-profiler-bundle": "To use the data collector." + "alcaeus/mongo-php-adapter": "Required to use legacy MongoDB driver" }, - "type": "symfony-bundle", + "type": "library", "autoload": { "psr-4": { - "Doctrine\\Bundle\\DoctrineBundle\\": "" + "Doctrine\\Common\\Cache\\": "lib/Doctrine/Common/Cache" } }, "notification-url": "https://packagist.org/downloads/", @@ -4474,33 +4535,42 @@ ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" }, { "name": "Benjamin Eberlei", "email": "kontakt@beberlei.de" }, { - "name": "Symfony Community", - "homepage": "http://symfony.com/contributors" + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" }, { - "name": "Doctrine Project", - "homepage": "http://www.doctrine-project.org/" + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" } ], - "description": "Symfony DoctrineBundle", - "homepage": "http://www.doctrine-project.org", + "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": [ - "database", - "dbal", - "orm", - "persistence" + "abstraction", + "apcu", + "cache", + "caching", + "couchdb", + "memcached", + "php", + "redis", + "xcache" ], "support": { - "issues": "https://github.com/doctrine/DoctrineBundle/issues", - "source": "https://github.com/doctrine/DoctrineBundle/tree/2.3.1" + "issues": "https://github.com/doctrine/cache/issues", + "source": "https://github.com/doctrine/cache/tree/1.11.3" }, "funding": [ { @@ -4512,47 +4582,39 @@ "type": "patreon" }, { - "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fdoctrine-bundle", + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fcache", "type": "tidelift" } ], - "time": "2021-04-05T14:21:02+00:00" + "time": "2021-05-25T09:01:55+00:00" }, { - "name": "doctrine/doctrine-fixtures-bundle", - "version": "3.4.0", + "name": "doctrine/collections", + "version": "1.6.7", "source": { "type": "git", - "url": "https://github.com/doctrine/DoctrineFixturesBundle.git", - "reference": "870189619a7770f468ffb0b80925302e065a3b34" + "url": "https://github.com/doctrine/collections.git", + "reference": "55f8b799269a1a472457bd1a41b4f379d4cfba4a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/DoctrineFixturesBundle/zipball/870189619a7770f468ffb0b80925302e065a3b34", - "reference": "870189619a7770f468ffb0b80925302e065a3b34", + "url": "https://api.github.com/repos/doctrine/collections/zipball/55f8b799269a1a472457bd1a41b4f379d4cfba4a", + "reference": "55f8b799269a1a472457bd1a41b4f379d4cfba4a", "shasum": "" }, "require": { - "doctrine/data-fixtures": "^1.3", - "doctrine/doctrine-bundle": "^1.11|^2.0", - "doctrine/orm": "^2.6.0", - "doctrine/persistence": "^1.3.7|^2.0", - "php": "^7.1 || ^8.0", - "symfony/config": "^3.4|^4.3|^5.0", - "symfony/console": "^3.4|^4.3|^5.0", - "symfony/dependency-injection": "^3.4|^4.3|^5.0", - "symfony/doctrine-bridge": "^3.4|^4.1|^5.0", - "symfony/http-kernel": "^3.4|^4.3|^5.0" + "php": "^7.1.3 || ^8.0" }, "require-dev": { "doctrine/coding-standard": "^6.0", - "phpunit/phpunit": "^7.4 || ^8.0 || ^9.2", - "symfony/phpunit-bridge": "^4.1|^5.0" + "phpstan/phpstan-shim": "^0.9.2", + "phpunit/phpunit": "^7.0", + "vimeo/psalm": "^3.8.1" }, - "type": "symfony-bundle", + "type": "library", "autoload": { "psr-4": { - "Doctrine\\Bundle\\FixturesBundle\\": "" + "Doctrine\\Common\\Collections\\": "lib/Doctrine/Common/Collections" } }, "notification-url": "https://packagist.org/downloads/", @@ -4561,74 +4623,68 @@ ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" }, { - "name": "Doctrine Project", - "homepage": "http://www.doctrine-project.org" + "name": "Roman Borschel", + "email": "roman@code-factory.org" }, { - "name": "Symfony Community", - "homepage": "http://symfony.com/contributors" - } - ], - "description": "Symfony DoctrineFixturesBundle", - "homepage": "http://www.doctrine-project.org", - "keywords": [ - "Fixture", - "persistence" - ], - "support": { - "issues": "https://github.com/doctrine/DoctrineFixturesBundle/issues", - "source": "https://github.com/doctrine/DoctrineFixturesBundle/tree/3.4.0" - }, - "funding": [ - { - "url": "https://www.doctrine-project.org/sponsorship.html", - "type": "custom" + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" }, { - "url": "https://www.patreon.com/phpdoctrine", - "type": "patreon" + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" }, { - "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fdoctrine-fixtures-bundle", - "type": "tidelift" + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" } ], - "time": "2020-11-14T09:36:49+00:00" + "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" + ], + "support": { + "issues": "https://github.com/doctrine/collections/issues", + "source": "https://github.com/doctrine/collections/tree/1.6.7" + }, + "time": "2020-07-27T17:53:49+00:00" }, { - "name": "doctrine/event-manager", - "version": "1.1.1", + "name": "doctrine/common", + "version": "3.1.2", "source": { "type": "git", - "url": "https://github.com/doctrine/event-manager.git", - "reference": "41370af6a30faa9dc0368c4a6814d596e81aba7f" + "url": "https://github.com/doctrine/common.git", + "reference": "a036d90c303f3163b5be8b8fde9b6755b2be4a3a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/event-manager/zipball/41370af6a30faa9dc0368c4a6814d596e81aba7f", - "reference": "41370af6a30faa9dc0368c4a6814d596e81aba7f", + "url": "https://api.github.com/repos/doctrine/common/zipball/a036d90c303f3163b5be8b8fde9b6755b2be4a3a", + "reference": "a036d90c303f3163b5be8b8fde9b6755b2be4a3a", "shasum": "" }, "require": { + "doctrine/persistence": "^2.0", "php": "^7.1 || ^8.0" }, - "conflict": { - "doctrine/common": "<2.9@dev" - }, "require-dev": { - "doctrine/coding-standard": "^6.0", - "phpunit/phpunit": "^7.0" + "doctrine/coding-standard": "^6.0 || ^8.0", + "phpstan/phpstan": "^0.12", + "phpstan/phpstan-phpunit": "^0.12", + "phpunit/phpunit": "^7.5.20 || ^8.5 || ^9.0", + "squizlabs/php_codesniffer": "^3.0", + "symfony/phpunit-bridge": "^4.0.5", + "vimeo/psalm": "^4.4" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, "autoload": { "psr-4": { "Doctrine\\Common\\": "lib/Doctrine/Common" @@ -4664,18 +4720,16 @@ "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", + "description": "PHP Doctrine Common project is a library that provides additional functionality that other Doctrine projects depend on such as better reflection support, proxies and much more.", + "homepage": "https://www.doctrine-project.org/projects/common.html", "keywords": [ - "event", - "event dispatcher", - "event manager", - "event system", - "events" + "common", + "doctrine", + "php" ], "support": { - "issues": "https://github.com/doctrine/event-manager/issues", - "source": "https://github.com/doctrine/event-manager/tree/1.1.x" + "issues": "https://github.com/doctrine/common/issues", + "source": "https://github.com/doctrine/common/tree/3.1.2" }, "funding": [ { @@ -4687,45 +4741,52 @@ "type": "patreon" }, { - "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fevent-manager", + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fcommon", "type": "tidelift" } ], - "time": "2020-05-29T18:28:51+00:00" + "time": "2021-02-10T20:18:51+00:00" }, { - "name": "doctrine/inflector", - "version": "2.0.3", + "name": "doctrine/data-fixtures", + "version": "1.5.0", "source": { "type": "git", - "url": "https://github.com/doctrine/inflector.git", - "reference": "9cf661f4eb38f7c881cac67c75ea9b00bf97b210" + "url": "https://github.com/doctrine/data-fixtures.git", + "reference": "51d3d4880d28951fff42a635a2389f8c63baddc5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/inflector/zipball/9cf661f4eb38f7c881cac67c75ea9b00bf97b210", - "reference": "9cf661f4eb38f7c881cac67c75ea9b00bf97b210", + "url": "https://api.github.com/repos/doctrine/data-fixtures/zipball/51d3d4880d28951fff42a635a2389f8c63baddc5", + "reference": "51d3d4880d28951fff42a635a2389f8c63baddc5", "shasum": "" }, "require": { + "doctrine/common": "^2.13|^3.0", + "doctrine/persistence": "^1.3.3|^2.0", "php": "^7.2 || ^8.0" }, + "conflict": { + "doctrine/phpcr-odm": "<1.3.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" + "doctrine/coding-standard": "^8.2", + "doctrine/dbal": "^2.5.4", + "doctrine/mongodb-odm": "^1.3.0 || ^2.0.0", + "doctrine/orm": "^2.7.0", + "ext-sqlite3": "*", + "phpunit/phpunit": "^8.0" }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0.x-dev" - } + "suggest": { + "alcaeus/mongo-php-adapter": "For using MongoDB ODM 1.3 with PHP 7 (deprecated)", + "doctrine/mongodb-odm": "For loading MongoDB ODM fixtures", + "doctrine/orm": "For loading ORM fixtures", + "doctrine/phpcr-odm": "For loading PHPCR ODM fixtures" }, + "type": "library", "autoload": { "psr-4": { - "Doctrine\\Inflector\\": "lib/Doctrine/Inflector" + "Doctrine\\Common\\DataFixtures\\": "lib/Doctrine/Common/DataFixtures" } }, "notification-url": "https://packagist.org/downloads/", @@ -4733,44 +4794,19 @@ "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", + "description": "Data Fixtures for all Doctrine Object Managers", + "homepage": "http://www.doctrine-project.org", "keywords": [ - "inflection", - "inflector", - "lowercase", - "manipulation", - "php", - "plural", - "singular", - "strings", - "uppercase", - "words" + "database" ], "support": { - "issues": "https://github.com/doctrine/inflector/issues", - "source": "https://github.com/doctrine/inflector/tree/2.0.x" + "issues": "https://github.com/doctrine/data-fixtures/issues", + "source": "https://github.com/doctrine/data-fixtures/tree/1.5.0" }, "funding": [ { @@ -4782,42 +4818,52 @@ "type": "patreon" }, { - "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finflector", + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fdata-fixtures", "type": "tidelift" } ], - "time": "2020-05-29T15:13:26+00:00" + "time": "2021-01-23T10:20:43+00:00" }, { - "name": "doctrine/instantiator", - "version": "1.4.0", + "name": "doctrine/dbal", + "version": "2.13.1", "source": { "type": "git", - "url": "https://github.com/doctrine/instantiator.git", - "reference": "d56bf6102915de5702778fe20f2de3b2fe570b5b" + "url": "https://github.com/doctrine/dbal.git", + "reference": "c800380457948e65bbd30ba92cc17cda108bf8c9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/instantiator/zipball/d56bf6102915de5702778fe20f2de3b2fe570b5b", - "reference": "d56bf6102915de5702778fe20f2de3b2fe570b5b", + "url": "https://api.github.com/repos/doctrine/dbal/zipball/c800380457948e65bbd30ba92cc17cda108bf8c9", + "reference": "c800380457948e65bbd30ba92cc17cda108bf8c9", "shasum": "" }, "require": { - "php": "^7.1 || ^8.0" + "doctrine/cache": "^1.0", + "doctrine/deprecations": "^0.5.3", + "doctrine/event-manager": "^1.0", + "ext-pdo": "*", + "php": "^7.1 || ^8" }, "require-dev": { - "doctrine/coding-standard": "^8.0", - "ext-pdo": "*", - "ext-phar": "*", - "phpbench/phpbench": "^0.13 || 1.0.0-alpha2", - "phpstan/phpstan": "^0.12", - "phpstan/phpstan-phpunit": "^0.12", - "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0" + "doctrine/coding-standard": "8.2.0", + "jetbrains/phpstorm-stubs": "2020.2", + "phpstan/phpstan": "0.12.81", + "phpunit/phpunit": "^7.5.20|^8.5|9.5.0", + "squizlabs/php_codesniffer": "3.6.0", + "symfony/console": "^2.0.5|^3.0|^4.0|^5.0", + "vimeo/psalm": "4.6.4" + }, + "suggest": { + "symfony/console": "For helpful console commands such as SQL execution and import of files." }, + "bin": [ + "bin/doctrine-dbal" + ], "type": "library", "autoload": { "psr-4": { - "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" + "Doctrine\\DBAL\\": "lib/Doctrine/DBAL" } }, "notification-url": "https://packagist.org/downloads/", @@ -4826,20 +4872,48 @@ ], "authors": [ { - "name": "Marco Pivetta", - "email": "ocramius@gmail.com", - "homepage": "https://ocramius.github.io/" + "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": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", - "homepage": "https://www.doctrine-project.org/projects/instantiator.html", + "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": [ - "constructor", - "instantiate" + "abstraction", + "database", + "db2", + "dbal", + "mariadb", + "mssql", + "mysql", + "oci8", + "oracle", + "pdo", + "pgsql", + "postgresql", + "queryobject", + "sasql", + "sql", + "sqlanywhere", + "sqlite", + "sqlserver", + "sqlsrv" ], "support": { - "issues": "https://github.com/doctrine/instantiator/issues", - "source": "https://github.com/doctrine/instantiator/tree/1.4.0" + "issues": "https://github.com/doctrine/dbal/issues", + "source": "https://github.com/doctrine/dbal/tree/2.13.1" }, "funding": [ { @@ -4851,136 +4925,115 @@ "type": "patreon" }, { - "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finstantiator", + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fdbal", "type": "tidelift" } ], - "time": "2020-11-10T18:47:58+00:00" + "time": "2021-04-17T17:30:19+00:00" }, { - "name": "doctrine/orm", - "version": "2.8.4", + "name": "doctrine/deprecations", + "version": "v0.5.3", "source": { "type": "git", - "url": "https://github.com/doctrine/orm.git", - "reference": "a588555ecd837b8d7e89355d9a13902e54d529c7" + "url": "https://github.com/doctrine/deprecations.git", + "reference": "9504165960a1f83cc1480e2be1dd0a0478561314" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/orm/zipball/a588555ecd837b8d7e89355d9a13902e54d529c7", - "reference": "a588555ecd837b8d7e89355d9a13902e54d529c7", + "url": "https://api.github.com/repos/doctrine/deprecations/zipball/9504165960a1f83cc1480e2be1dd0a0478561314", + "reference": "9504165960a1f83cc1480e2be1dd0a0478561314", "shasum": "" }, "require": { - "composer/package-versions-deprecated": "^1.8", - "doctrine/annotations": "^1.11.1", - "doctrine/cache": "^1.9.1", - "doctrine/collections": "^1.5", - "doctrine/common": "^3.0.3", - "doctrine/dbal": "^2.10.0", - "doctrine/event-manager": "^1.1", - "doctrine/inflector": "^1.4|^2.0", - "doctrine/instantiator": "^1.3", - "doctrine/lexer": "^1.0", - "doctrine/persistence": "^2.0", - "ext-pdo": "*", - "php": "^7.2|^8.0", - "symfony/console": "^3.0|^4.0|^5.0" + "php": "^7.1|^8.0" }, "require-dev": { - "doctrine/coding-standard": "^8.0", - "phpstan/phpstan": "^0.12.18", - "phpunit/phpunit": "^8.5|^9.4", - "symfony/yaml": "^3.4|^4.0|^5.0", - "vimeo/psalm": "4.1.1" + "doctrine/coding-standard": "^6.0|^7.0|^8.0", + "phpunit/phpunit": "^7.0|^8.0|^9.0", + "psr/log": "^1.0" }, "suggest": { - "symfony/yaml": "If you want to use YAML Metadata Mapping Driver" + "psr/log": "Allows logging deprecations via PSR-3 logger implementation" }, - "bin": [ - "bin/doctrine" - ], "type": "library", "autoload": { "psr-4": { - "Doctrine\\ORM\\": "lib/Doctrine/ORM" + "Doctrine\\Deprecations\\": "lib/Doctrine/Deprecations" } }, "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" - ], + "description": "A small layer on top of trigger_error(E_USER_DEPRECATED) or PSR-3 logging with options to disable all deprecations or selectively for packages.", + "homepage": "https://www.doctrine-project.org/", "support": { - "issues": "https://github.com/doctrine/orm/issues", - "source": "https://github.com/doctrine/orm/tree/2.8.4" + "issues": "https://github.com/doctrine/deprecations/issues", + "source": "https://github.com/doctrine/deprecations/tree/v0.5.3" }, - "time": "2021-04-05T18:38:36+00:00" + "time": "2021-03-21T12:59:47+00:00" }, { - "name": "doctrine/persistence", - "version": "2.1.0", + "name": "doctrine/doctrine-bundle", + "version": "2.4.2", "source": { "type": "git", - "url": "https://github.com/doctrine/persistence.git", - "reference": "9899c16934053880876b920a3b8b02ed2337ac1d" + "url": "https://github.com/doctrine/DoctrineBundle.git", + "reference": "4202ce675d29e70a8b9ee763bec021b6f44caccb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/persistence/zipball/9899c16934053880876b920a3b8b02ed2337ac1d", - "reference": "9899c16934053880876b920a3b8b02ed2337ac1d", + "url": "https://api.github.com/repos/doctrine/DoctrineBundle/zipball/4202ce675d29e70a8b9ee763bec021b6f44caccb", + "reference": "4202ce675d29e70a8b9ee763bec021b6f44caccb", "shasum": "" }, "require": { - "doctrine/annotations": "^1.0", - "doctrine/cache": "^1.0", - "doctrine/collections": "^1.0", - "doctrine/event-manager": "^1.0", - "php": "^7.1 || ^8.0" + "doctrine/cache": "^1.11 || ^2.0", + "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|^6.0", + "symfony/config": "^4.4.3|^5.0|^6.0", + "symfony/console": "^3.4.30|^4.3.3|^5.0|^6.0", + "symfony/dependency-injection": "^4.3.3|^5.0|^6.0", + "symfony/deprecation-contracts": "^2.1", + "symfony/doctrine-bridge": "^4.4.22|^5.2.7|^6.0", + "symfony/framework-bundle": "^3.4.30|^4.3.3|^5.0|^6.0", + "symfony/service-contracts": "^1.1.1|^2.0" }, "conflict": { - "doctrine/common": "<2.10@dev" + "doctrine/orm": "<2.9", + "twig/twig": "<1.34|>=2.0,<2.4" }, "require-dev": { - "composer/package-versions-deprecated": "^1.11", - "doctrine/coding-standard": "^6.0 || ^8.0", - "doctrine/common": "^3.0", - "phpstan/phpstan": "^0.12", - "phpunit/phpunit": "^7.5.20 || ^8.0 || ^9.0", - "vimeo/psalm": "^3.11" + "doctrine/coding-standard": "^9.0", + "doctrine/orm": "^2.9", + "friendsofphp/proxy-manager-lts": "^1.0", + "phpunit/phpunit": "^7.5 || ^8.0 || ^9.3", + "psalm/plugin-phpunit": "^0.15.1", + "psalm/plugin-symfony": "^2.3.0", + "symfony/phpunit-bridge": "^5.2|^6.0", + "symfony/property-info": "^4.3.3|^5.0|^6.0", + "symfony/proxy-manager-bridge": "^3.4|^4.3.3|^5.0|^6.0", + "symfony/security-bundle": "^4.4|^5.0|^6.0", + "symfony/twig-bridge": "^3.4.30|^4.3.3|^5.0|^6.0", + "symfony/validator": "^3.4.30|^4.3.3|^5.0|^6.0", + "symfony/web-profiler-bundle": "^3.4.30|^4.3.3|^5.0|^6.0", + "symfony/yaml": "^3.4.30|^4.3.3|^5.0|^6.0", + "twig/twig": "^1.34|^2.12|^3.0", + "vimeo/psalm": "^4.7" }, - "type": "library", + "suggest": { + "doctrine/orm": "The Doctrine ORM integration is optional in the bundle.", + "ext-pdo": "*", + "symfony/web-profiler-bundle": "To use the data collector." + }, + "type": "symfony-bundle", "autoload": { "psr-4": { - "Doctrine\\Common\\": "lib/Doctrine/Common", - "Doctrine\\Persistence\\": "lib/Doctrine/Persistence" + "Doctrine\\Bundle\\DoctrineBundle\\": "" } }, "notification-url": "https://packagist.org/downloads/", @@ -4989,77 +5042,85 @@ ], "authors": [ { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" - }, - { - "name": "Roman Borschel", - "email": "roman@code-factory.org" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" }, { "name": "Benjamin Eberlei", "email": "kontakt@beberlei.de" }, { - "name": "Jonathan Wage", - "email": "jonwage@gmail.com" - }, - { - "name": "Johannes Schmitt", - "email": "schmittjoh@gmail.com" + "name": "Symfony Community", + "homepage": "http://symfony.com/contributors" }, { - "name": "Marco Pivetta", - "email": "ocramius@gmail.com" + "name": "Doctrine Project", + "homepage": "http://www.doctrine-project.org/" } ], - "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", + "description": "Symfony DoctrineBundle", + "homepage": "http://www.doctrine-project.org", "keywords": [ - "mapper", - "object", - "odm", + "database", + "dbal", "orm", "persistence" ], "support": { - "issues": "https://github.com/doctrine/persistence/issues", - "source": "https://github.com/doctrine/persistence/tree/2.1.0" + "issues": "https://github.com/doctrine/DoctrineBundle/issues", + "source": "https://github.com/doctrine/DoctrineBundle/tree/2.4.2" }, - "time": "2020-10-24T22:13:54+00:00" + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fdoctrine-bundle", + "type": "tidelift" + } + ], + "time": "2021-06-05T13:40:39+00:00" }, { - "name": "doctrine/sql-formatter", - "version": "1.1.1", + "name": "doctrine/doctrine-fixtures-bundle", + "version": "3.4.0", "source": { "type": "git", - "url": "https://github.com/doctrine/sql-formatter.git", - "reference": "56070bebac6e77230ed7d306ad13528e60732871" + "url": "https://github.com/doctrine/DoctrineFixturesBundle.git", + "reference": "870189619a7770f468ffb0b80925302e065a3b34" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/sql-formatter/zipball/56070bebac6e77230ed7d306ad13528e60732871", - "reference": "56070bebac6e77230ed7d306ad13528e60732871", + "url": "https://api.github.com/repos/doctrine/DoctrineFixturesBundle/zipball/870189619a7770f468ffb0b80925302e065a3b34", + "reference": "870189619a7770f468ffb0b80925302e065a3b34", "shasum": "" }, "require": { - "php": "^7.1 || ^8.0" + "doctrine/data-fixtures": "^1.3", + "doctrine/doctrine-bundle": "^1.11|^2.0", + "doctrine/orm": "^2.6.0", + "doctrine/persistence": "^1.3.7|^2.0", + "php": "^7.1 || ^8.0", + "symfony/config": "^3.4|^4.3|^5.0", + "symfony/console": "^3.4|^4.3|^5.0", + "symfony/dependency-injection": "^3.4|^4.3|^5.0", + "symfony/doctrine-bridge": "^3.4|^4.1|^5.0", + "symfony/http-kernel": "^3.4|^4.3|^5.0" }, "require-dev": { - "bamarni/composer-bin-plugin": "^1.4" - }, - "bin": [ - "bin/sql-formatter" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.x-dev" - } + "doctrine/coding-standard": "^6.0", + "phpunit/phpunit": "^7.4 || ^8.0 || ^9.2", + "symfony/phpunit-bridge": "^4.1|^5.0" }, + "type": "symfony-bundle", "autoload": { "psr-4": { - "Doctrine\\SqlFormatter\\": "src" + "Doctrine\\Bundle\\FixturesBundle\\": "" } }, "notification-url": "https://packagist.org/downloads/", @@ -5068,65 +5129,77 @@ ], "authors": [ { - "name": "Jeremy Dorn", - "email": "jeremy@jeremydorn.com", - "homepage": "http://jeremydorn.com/" + "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": "a PHP SQL highlighting library", - "homepage": "https://github.com/doctrine/sql-formatter/", + "description": "Symfony DoctrineFixturesBundle", + "homepage": "http://www.doctrine-project.org", "keywords": [ - "highlight", - "sql" + "Fixture", + "persistence" ], "support": { - "issues": "https://github.com/doctrine/sql-formatter/issues", - "source": "https://github.com/doctrine/sql-formatter/tree/1.1.x" + "issues": "https://github.com/doctrine/DoctrineFixturesBundle/issues", + "source": "https://github.com/doctrine/DoctrineFixturesBundle/tree/3.4.0" }, - "time": "2020-07-30T16:57:33+00:00" + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fdoctrine-fixtures-bundle", + "type": "tidelift" + } + ], + "time": "2020-11-14T09:36:49+00:00" }, { - "name": "fakerphp/faker", - "version": "v1.14.1", + "name": "doctrine/event-manager", + "version": "1.1.1", "source": { "type": "git", - "url": "https://github.com/FakerPHP/Faker.git", - "reference": "ed22aee8d17c7b396f74a58b1e7fefa4f90d5ef1" + "url": "https://github.com/doctrine/event-manager.git", + "reference": "41370af6a30faa9dc0368c4a6814d596e81aba7f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/FakerPHP/Faker/zipball/ed22aee8d17c7b396f74a58b1e7fefa4f90d5ef1", - "reference": "ed22aee8d17c7b396f74a58b1e7fefa4f90d5ef1", + "url": "https://api.github.com/repos/doctrine/event-manager/zipball/41370af6a30faa9dc0368c4a6814d596e81aba7f", + "reference": "41370af6a30faa9dc0368c4a6814d596e81aba7f", "shasum": "" }, "require": { - "php": "^7.1 || ^8.0", - "psr/container": "^1.0", - "symfony/deprecation-contracts": "^2.2" + "php": "^7.1 || ^8.0" }, "conflict": { - "fzaninotto/faker": "*" + "doctrine/common": "<2.9@dev" }, "require-dev": { - "bamarni/composer-bin-plugin": "^1.4.1", - "ext-intl": "*", - "symfony/phpunit-bridge": "^4.4 || ^5.2" - }, - "suggest": { - "ext-curl": "Required by Faker\\Provider\\Image to download images.", - "ext-dom": "Required by Faker\\Provider\\HtmlLorem for generating random HTML.", - "ext-iconv": "Required by Faker\\Provider\\ru_RU\\Text::realText() for generating real Russian text.", - "ext-mbstring": "Required for multibyte Unicode string functionality." + "doctrine/coding-standard": "^6.0", + "phpunit/phpunit": "^7.0" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "v1.15-dev" + "dev-master": "1.0.x-dev" } }, "autoload": { "psr-4": { - "Faker\\": "src/Faker/" + "Doctrine\\Common\\": "lib/Doctrine/Common" } }, "notification-url": "https://packagist.org/downloads/", @@ -5135,70 +5208,93 @@ ], "authors": [ { - "name": "François Zaninotto" + "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": "Faker is a PHP library that generates fake data for you.", + "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": [ - "data", - "faker", - "fixtures" + "event", + "event dispatcher", + "event manager", + "event system", + "events" ], "support": { - "issues": "https://github.com/FakerPHP/Faker/issues", - "source": "https://github.com/FakerPHP/Faker/tree/v.1.14.1" - }, - "time": "2021-03-30T06:27:33+00:00" - }, - { - "name": "guzzlehttp/guzzle", - "version": "7.3.0", - "source": { - "type": "git", - "url": "https://github.com/guzzle/guzzle.git", - "reference": "7008573787b430c1c1f650e3722d9bba59967628" + "issues": "https://github.com/doctrine/event-manager/issues", + "source": "https://github.com/doctrine/event-manager/tree/1.1.x" + }, + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fevent-manager", + "type": "tidelift" + } + ], + "time": "2020-05-29T18:28:51+00:00" + }, + { + "name": "doctrine/inflector", + "version": "2.0.3", + "source": { + "type": "git", + "url": "https://github.com/doctrine/inflector.git", + "reference": "9cf661f4eb38f7c881cac67c75ea9b00bf97b210" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/guzzle/zipball/7008573787b430c1c1f650e3722d9bba59967628", - "reference": "7008573787b430c1c1f650e3722d9bba59967628", + "url": "https://api.github.com/repos/doctrine/inflector/zipball/9cf661f4eb38f7c881cac67c75ea9b00bf97b210", + "reference": "9cf661f4eb38f7c881cac67c75ea9b00bf97b210", "shasum": "" }, "require": { - "ext-json": "*", - "guzzlehttp/promises": "^1.4", - "guzzlehttp/psr7": "^1.7 || ^2.0", - "php": "^7.2.5 || ^8.0", - "psr/http-client": "^1.0" - }, - "provide": { - "psr/http-client-implementation": "1.0" + "php": "^7.2 || ^8.0" }, "require-dev": { - "bamarni/composer-bin-plugin": "^1.4.1", - "ext-curl": "*", - "php-http/client-integration-tests": "^3.0", - "phpunit/phpunit": "^8.5.5 || ^9.3.5", - "psr/log": "^1.1" - }, - "suggest": { - "ext-curl": "Required for CURL handler support", - "ext-intl": "Required for Internationalized Domain Name (IDN) support", - "psr/log": "Required for using the Log middleware" + "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": "7.3-dev" + "dev-master": "2.0.x-dev" } }, "autoload": { "psr-4": { - "GuzzleHttp\\": "src/" - }, - "files": [ - "src/functions_include.php" - ] + "Doctrine\\Inflector\\": "lib/Doctrine/Inflector" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -5206,86 +5302,91 @@ ], "authors": [ { - "name": "Michael Dowling", - "email": "mtdowling@gmail.com", - "homepage": "https://github.com/mtdowling" + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" }, { - "name": "Márk Sági-Kazár", - "email": "mark.sagikazar@gmail.com", - "homepage": "https://sagikazarmark.hu" + "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": "Guzzle is a PHP HTTP client library", - "homepage": "http://guzzlephp.org/", + "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": [ - "client", - "curl", - "framework", - "http", - "http client", - "psr-18", - "psr-7", - "rest", - "web service" + "inflection", + "inflector", + "lowercase", + "manipulation", + "php", + "plural", + "singular", + "strings", + "uppercase", + "words" ], "support": { - "issues": "https://github.com/guzzle/guzzle/issues", - "source": "https://github.com/guzzle/guzzle/tree/7.3.0" + "issues": "https://github.com/doctrine/inflector/issues", + "source": "https://github.com/doctrine/inflector/tree/2.0.x" }, "funding": [ { - "url": "https://github.com/GrahamCampbell", - "type": "github" - }, - { - "url": "https://github.com/Nyholm", - "type": "github" + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" }, { - "url": "https://github.com/alexeyshockov", - "type": "github" + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" }, { - "url": "https://github.com/gmponos", - "type": "github" + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finflector", + "type": "tidelift" } ], - "time": "2021-03-23T11:33:13+00:00" + "time": "2020-05-29T15:13:26+00:00" }, { - "name": "guzzlehttp/promises", - "version": "1.4.1", + "name": "doctrine/instantiator", + "version": "1.4.0", "source": { "type": "git", - "url": "https://github.com/guzzle/promises.git", - "reference": "8e7d04f1f6450fef59366c399cfad4b9383aa30d" + "url": "https://github.com/doctrine/instantiator.git", + "reference": "d56bf6102915de5702778fe20f2de3b2fe570b5b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/promises/zipball/8e7d04f1f6450fef59366c399cfad4b9383aa30d", - "reference": "8e7d04f1f6450fef59366c399cfad4b9383aa30d", + "url": "https://api.github.com/repos/doctrine/instantiator/zipball/d56bf6102915de5702778fe20f2de3b2fe570b5b", + "reference": "d56bf6102915de5702778fe20f2de3b2fe570b5b", "shasum": "" }, "require": { - "php": ">=5.5" + "php": "^7.1 || ^8.0" }, "require-dev": { - "symfony/phpunit-bridge": "^4.4 || ^5.1" + "doctrine/coding-standard": "^8.0", + "ext-pdo": "*", + "ext-phar": "*", + "phpbench/phpbench": "^0.13 || 1.0.0-alpha2", + "phpstan/phpstan": "^0.12", + "phpstan/phpstan-phpunit": "^0.12", + "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.4-dev" - } - }, "autoload": { "psr-4": { - "GuzzleHttp\\Promise\\": "src/" - }, - "files": [ - "src/functions_include.php" - ] + "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -5293,63 +5394,90 @@ ], "authors": [ { - "name": "Michael Dowling", - "email": "mtdowling@gmail.com", - "homepage": "https://github.com/mtdowling" + "name": "Marco Pivetta", + "email": "ocramius@gmail.com", + "homepage": "https://ocramius.github.io/" } ], - "description": "Guzzle promises library", + "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", + "homepage": "https://www.doctrine-project.org/projects/instantiator.html", "keywords": [ - "promise" + "constructor", + "instantiate" ], "support": { - "issues": "https://github.com/guzzle/promises/issues", - "source": "https://github.com/guzzle/promises/tree/1.4.1" + "issues": "https://github.com/doctrine/instantiator/issues", + "source": "https://github.com/doctrine/instantiator/tree/1.4.0" }, - "time": "2021-03-07T09:25:29+00:00" + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finstantiator", + "type": "tidelift" + } + ], + "time": "2020-11-10T18:47:58+00:00" }, { - "name": "guzzlehttp/psr7", - "version": "1.8.2", + "name": "doctrine/orm", + "version": "2.9.2", "source": { "type": "git", - "url": "https://github.com/guzzle/psr7.git", - "reference": "dc960a912984efb74d0a90222870c72c87f10c91" + "url": "https://github.com/doctrine/orm.git", + "reference": "75b4b88c5b7cebc24ed7251a20c2a5aa027300e1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/psr7/zipball/dc960a912984efb74d0a90222870c72c87f10c91", - "reference": "dc960a912984efb74d0a90222870c72c87f10c91", + "url": "https://api.github.com/repos/doctrine/orm/zipball/75b4b88c5b7cebc24ed7251a20c2a5aa027300e1", + "reference": "75b4b88c5b7cebc24ed7251a20c2a5aa027300e1", "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" + "composer/package-versions-deprecated": "^1.8", + "doctrine/annotations": "^1.13", + "doctrine/cache": "^1.11.3|^2.0.3", + "doctrine/collections": "^1.5", + "doctrine/common": "^3.0.3", + "doctrine/dbal": "^2.13.0", + "doctrine/deprecations": "^0.5.3", + "doctrine/event-manager": "^1.1", + "doctrine/inflector": "^1.4|^2.0", + "doctrine/instantiator": "^1.3", + "doctrine/lexer": "^1.0", + "doctrine/persistence": "^2.2", + "ext-pdo": "*", + "php": "^7.1|^8.0", + "psr/cache": "^1 || ^2 || ^3", + "symfony/console": "^3.0|^4.0|^5.0|^6.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" + "doctrine/coding-standard": "^9.0", + "phpstan/phpstan": "^0.12.83", + "phpunit/phpunit": "^7.5|^8.5|^9.4", + "squizlabs/php_codesniffer": "3.6.0", + "symfony/cache": "^4.4|^5.2", + "symfony/yaml": "^3.4|^4.0|^5.0|^6.0", + "vimeo/psalm": "4.7.0" }, "suggest": { - "laminas/laminas-httphandlerrunner": "Emit PSR-7 responses" + "symfony/cache": "Provides cache support for Setup Tool with doctrine/cache 2.0", + "symfony/yaml": "If you want to use YAML Metadata Mapping Driver" }, + "bin": [ + "bin/doctrine" + ], "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.7-dev" - } - }, "autoload": { "psr-4": { - "GuzzleHttp\\Psr7\\": "src/" - }, - "files": [ - "src/functions_include.php" - ] + "Doctrine\\ORM\\": "lib/Doctrine/ORM" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -5357,377 +5485,492 @@ ], "authors": [ { - "name": "Michael Dowling", - "email": "mtdowling@gmail.com", - "homepage": "https://github.com/mtdowling" + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" }, { - "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" + "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" ], "support": { - "issues": "https://github.com/guzzle/psr7/issues", - "source": "https://github.com/guzzle/psr7/tree/1.8.2" + "issues": "https://github.com/doctrine/orm/issues", + "source": "https://github.com/doctrine/orm/tree/2.9.2" }, - "time": "2021-04-26T09:17:50+00:00" + "time": "2021-05-31T09:53:14+00:00" }, { - "name": "hamcrest/hamcrest-php", - "version": "v2.0.1", + "name": "doctrine/persistence", + "version": "2.2.1", "source": { "type": "git", - "url": "https://github.com/hamcrest/hamcrest-php.git", - "reference": "8c3d0a3f6af734494ad8f6fbbee0ba92422859f3" + "url": "https://github.com/doctrine/persistence.git", + "reference": "d138f3ab5f761055cab1054070377cfd3222e368" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/hamcrest/hamcrest-php/zipball/8c3d0a3f6af734494ad8f6fbbee0ba92422859f3", - "reference": "8c3d0a3f6af734494ad8f6fbbee0ba92422859f3", + "url": "https://api.github.com/repos/doctrine/persistence/zipball/d138f3ab5f761055cab1054070377cfd3222e368", + "reference": "d138f3ab5f761055cab1054070377cfd3222e368", "shasum": "" }, "require": { - "php": "^5.3|^7.0|^8.0" + "doctrine/annotations": "^1.0", + "doctrine/cache": "^1.11 || ^2.0", + "doctrine/collections": "^1.0", + "doctrine/deprecations": "^0.5.3", + "doctrine/event-manager": "^1.0", + "php": "^7.1 || ^8.0", + "psr/cache": "^1.0|^2.0|^3.0" }, - "replace": { - "cordoval/hamcrest-php": "*", - "davedevelopment/hamcrest-php": "*", - "kodova/hamcrest-php": "*" + "conflict": { + "doctrine/common": "<2.10@dev" }, "require-dev": { - "phpunit/php-file-iterator": "^1.4 || ^2.0", - "phpunit/phpunit": "^4.8.36 || ^5.7 || ^6.5 || ^7.0" + "composer/package-versions-deprecated": "^1.11", + "doctrine/coding-standard": "^6.0 || ^9.0", + "doctrine/common": "^3.0", + "phpstan/phpstan": "0.12.84", + "phpunit/phpunit": "^7.5.20 || ^8.0 || ^9.0", + "symfony/cache": "^4.4|^5.0", + "vimeo/psalm": "4.7.0" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.1-dev" - } - }, "autoload": { - "classmap": [ - "hamcrest" - ] + "psr-4": { + "Doctrine\\Common\\": "lib/Doctrine/Common", + "Doctrine\\Persistence\\": "lib/Doctrine/Persistence" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], - "description": "This is the PHP port of Hamcrest Matchers", + "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": [ - "test" + "mapper", + "object", + "odm", + "orm", + "persistence" ], "support": { - "issues": "https://github.com/hamcrest/hamcrest-php/issues", - "source": "https://github.com/hamcrest/hamcrest-php/tree/v2.0.1" + "issues": "https://github.com/doctrine/persistence/issues", + "source": "https://github.com/doctrine/persistence/tree/2.2.1" }, - "time": "2020-07-09T08:09:16+00:00" + "time": "2021-05-19T07:07:01+00:00" }, { - "name": "infection/abstract-testframework-adapter", - "version": "0.3.1", + "name": "doctrine/sql-formatter", + "version": "1.1.1", "source": { "type": "git", - "url": "https://github.com/infection/abstract-testframework-adapter.git", - "reference": "c52539339f28d6b67625ff24496289b3e6d66025" + "url": "https://github.com/doctrine/sql-formatter.git", + "reference": "56070bebac6e77230ed7d306ad13528e60732871" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/infection/abstract-testframework-adapter/zipball/c52539339f28d6b67625ff24496289b3e6d66025", - "reference": "c52539339f28d6b67625ff24496289b3e6d66025", + "url": "https://api.github.com/repos/doctrine/sql-formatter/zipball/56070bebac6e77230ed7d306ad13528e60732871", + "reference": "56070bebac6e77230ed7d306ad13528e60732871", "shasum": "" }, "require": { - "php": "^7.3 || ^8.0" + "php": "^7.1 || ^8.0" }, "require-dev": { - "ergebnis/composer-normalize": "^2.8", - "friendsofphp/php-cs-fixer": "^2.16", - "phpunit/phpunit": "^9.0" + "bamarni/composer-bin-plugin": "^1.4" }, + "bin": [ + "bin/sql-formatter" + ], "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + } + }, "autoload": { "psr-4": { - "Infection\\AbstractTestFramework\\": "src/" + "Doctrine\\SqlFormatter\\": "src" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Maks Rafalko", - "email": "maks.rafalko@gmail.com" + "name": "Jeremy Dorn", + "email": "jeremy@jeremydorn.com", + "homepage": "http://jeremydorn.com/" } ], - "description": "Abstract Test Framework Adapter for Infection", + "description": "a PHP SQL highlighting library", + "homepage": "https://github.com/doctrine/sql-formatter/", + "keywords": [ + "highlight", + "sql" + ], "support": { - "issues": "https://github.com/infection/abstract-testframework-adapter/issues", - "source": "https://github.com/infection/abstract-testframework-adapter/tree/0.3" + "issues": "https://github.com/doctrine/sql-formatter/issues", + "source": "https://github.com/doctrine/sql-formatter/tree/1.1.x" }, - "time": "2020-08-30T13:50:12+00:00" + "time": "2020-07-30T16:57:33+00:00" }, { - "name": "infection/extension-installer", - "version": "0.1.1", + "name": "fakerphp/faker", + "version": "v1.14.1", "source": { "type": "git", - "url": "https://github.com/infection/extension-installer.git", - "reference": "ff30c0adffcdbc747c96adf92382ccbe271d0afd" + "url": "https://github.com/FakerPHP/Faker.git", + "reference": "ed22aee8d17c7b396f74a58b1e7fefa4f90d5ef1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/infection/extension-installer/zipball/ff30c0adffcdbc747c96adf92382ccbe271d0afd", - "reference": "ff30c0adffcdbc747c96adf92382ccbe271d0afd", + "url": "https://api.github.com/repos/FakerPHP/Faker/zipball/ed22aee8d17c7b396f74a58b1e7fefa4f90d5ef1", + "reference": "ed22aee8d17c7b396f74a58b1e7fefa4f90d5ef1", "shasum": "" }, "require": { - "composer-plugin-api": "^1.1 || ^2.0" + "php": "^7.1 || ^8.0", + "psr/container": "^1.0", + "symfony/deprecation-contracts": "^2.2" + }, + "conflict": { + "fzaninotto/faker": "*" }, "require-dev": { - "composer/composer": "^1.9", - "friendsofphp/php-cs-fixer": "^2.16", - "infection/infection": "^0.15.2", - "php-coveralls/php-coveralls": "^2.2", - "phpstan/extension-installer": "^1.0", - "phpstan/phpstan": "^0.12.10", - "phpstan/phpstan-phpunit": "^0.12.6", - "phpstan/phpstan-strict-rules": "^0.12.2", - "phpstan/phpstan-webmozart-assert": "^0.12.2", - "phpunit/phpunit": "^8.5", - "vimeo/psalm": "^3.8" + "bamarni/composer-bin-plugin": "^1.4.1", + "ext-intl": "*", + "symfony/phpunit-bridge": "^4.4 || ^5.2" }, - "type": "composer-plugin", + "suggest": { + "ext-curl": "Required by Faker\\Provider\\Image to download images.", + "ext-dom": "Required by Faker\\Provider\\HtmlLorem for generating random HTML.", + "ext-iconv": "Required by Faker\\Provider\\ru_RU\\Text::realText() for generating real Russian text.", + "ext-mbstring": "Required for multibyte Unicode string functionality." + }, + "type": "library", "extra": { - "class": "Infection\\ExtensionInstaller\\Plugin" + "branch-alias": { + "dev-main": "v1.15-dev" + } }, "autoload": { "psr-4": { - "Infection\\ExtensionInstaller\\": "src/" + "Faker\\": "src/Faker/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Maks Rafalko", - "email": "maks.rafalko@gmail.com" + "name": "François Zaninotto" } ], - "description": "Infection Extension Installer", + "description": "Faker is a PHP library that generates fake data for you.", + "keywords": [ + "data", + "faker", + "fixtures" + ], "support": { - "issues": "https://github.com/infection/extension-installer/issues", - "source": "https://github.com/infection/extension-installer/tree/0.1.1" + "issues": "https://github.com/FakerPHP/Faker/issues", + "source": "https://github.com/FakerPHP/Faker/tree/v.1.14.1" }, - "time": "2020-04-25T22:40:05+00:00" + "time": "2021-03-30T06:27:33+00:00" }, { - "name": "infection/include-interceptor", - "version": "0.2.4", + "name": "friendsofphp/php-cs-fixer", + "version": "v2.19.0", "source": { "type": "git", - "url": "https://github.com/infection/include-interceptor.git", - "reference": "e3cf9317a7fd554ab60a5587f028b16418cc4264" + "url": "https://github.com/FriendsOfPHP/PHP-CS-Fixer.git", + "reference": "d5b8a9d852b292c2f8a035200fa6844b1f82300b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/infection/include-interceptor/zipball/e3cf9317a7fd554ab60a5587f028b16418cc4264", - "reference": "e3cf9317a7fd554ab60a5587f028b16418cc4264", + "url": "https://api.github.com/repos/FriendsOfPHP/PHP-CS-Fixer/zipball/d5b8a9d852b292c2f8a035200fa6844b1f82300b", + "reference": "d5b8a9d852b292c2f8a035200fa6844b1f82300b", "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": { - "friendsofphp/php-cs-fixer": "^2.16", - "infection/infection": "^0.15.0", - "phan/phan": "^2.4 || ^3", - "php-coveralls/php-coveralls": "^2.2", - "phpstan/phpstan": "^0.12.8", - "phpunit/phpunit": "^8.5", - "vimeo/psalm": "^3.8" + "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" + } }, - "type": "library", "autoload": { "psr-4": { - "Infection\\StreamWrapper\\": "src/" - } + "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": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Maks Rafalko", - "email": "maks.rafalko@gmail.com" - } + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Dariusz Rumiński", + "email": "dariusz.ruminski@gmail.com" + } ], - "description": "Stream Wrapper: Include Interceptor. Allows to replace included (autoloaded) file with another one.", + "description": "A tool to automatically fix PHP code style", "support": { - "issues": "https://github.com/infection/include-interceptor/issues", - "source": "https://github.com/infection/include-interceptor/tree/0.2.4" + "issues": "https://github.com/FriendsOfPHP/PHP-CS-Fixer/issues", + "source": "https://github.com/FriendsOfPHP/PHP-CS-Fixer/tree/v2.19.0" }, - "time": "2020-08-07T22:40:37+00:00" + "funding": [ + { + "url": "https://github.com/keradus", + "type": "github" + } + ], + "time": "2021-05-03T21:43:24+00:00" }, { - "name": "infection/infection", - "version": "0.16.6", + "name": "guzzlehttp/guzzle", + "version": "7.3.0", "source": { "type": "git", - "url": "https://github.com/infection/infection.git", - "reference": "d43267a15ae21d42fce2aed3f1c8a4a22de6698a" + "url": "https://github.com/guzzle/guzzle.git", + "reference": "7008573787b430c1c1f650e3722d9bba59967628" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/infection/infection/zipball/d43267a15ae21d42fce2aed3f1c8a4a22de6698a", - "reference": "d43267a15ae21d42fce2aed3f1c8a4a22de6698a", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/7008573787b430c1c1f650e3722d9bba59967628", + "reference": "7008573787b430c1c1f650e3722d9bba59967628", "shasum": "" }, "require": { - "composer/xdebug-handler": "^1.3.3", - "ext-dom": "*", "ext-json": "*", - "ext-libxml": "*", - "infection/abstract-testframework-adapter": "^0.3.0", - "infection/extension-installer": "^0.1.0", - "infection/include-interceptor": "^0.2.2", - "justinrainbow/json-schema": "^5.2", - "nikic/php-parser": "^4.2.2", - "ocramius/package-versions": "^1.2", - "ondram/ci-detector": "^3.3.0", - "php": "^7.3", - "sanmai/pipeline": "^3.1", - "sebastian/diff": "^3.0.2 || ^4.0", - "seld/jsonlint": "^1.7", - "symfony/console": "^3.4.29 || ^4.0 || ^5.0", - "symfony/filesystem": "^3.4.29 || ^4.0 || ^5.0", - "symfony/finder": "^3.4.29 || ^4.0 || ^5.0", - "symfony/process": "^3.4.29 || ^4.0 || ^5.0", - "thecodingmachine/safe": "^1.0", - "webmozart/assert": "^1.3", - "webmozart/path-util": "^2.3" + "guzzlehttp/promises": "^1.4", + "guzzlehttp/psr7": "^1.7 || ^2.0", + "php": "^7.2.5 || ^8.0", + "psr/http-client": "^1.0" }, - "conflict": { - "phpunit/php-code-coverage": ">9 <9.1.4", - "symfony/console": "=4.1.5" + "provide": { + "psr/http-client-implementation": "1.0" }, "require-dev": { - "ext-simplexml": "*", - "helmich/phpunit-json-assert": "^3.0", - "phpstan/extension-installer": "^1.0", - "phpstan/phpstan": "^0.12.8", - "phpstan/phpstan-phpunit": "^0.12.6", - "phpstan/phpstan-webmozart-assert": "^0.12.2", - "phpunit/phpunit": "^8.2.5 <8.4", - "symfony/phpunit-bridge": "^4.3.4 || ^5.0", - "symfony/yaml": "^5.0", - "thecodingmachine/phpstan-safe-rule": "^1.0" + "bamarni/composer-bin-plugin": "^1.4.1", + "ext-curl": "*", + "php-http/client-integration-tests": "^3.0", + "phpunit/phpunit": "^8.5.5 || ^9.3.5", + "psr/log": "^1.1" + }, + "suggest": { + "ext-curl": "Required for CURL handler support", + "ext-intl": "Required for Internationalized Domain Name (IDN) support", + "psr/log": "Required for using the Log middleware" }, - "bin": [ - "bin/infection" - ], "type": "library", + "extra": { + "branch-alias": { + "dev-master": "7.3-dev" + } + }, "autoload": { "psr-4": { - "Infection\\": "src/" - } + "GuzzleHttp\\": "src/" + }, + "files": [ + "src/functions_include.php" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Maks Rafalko", - "email": "maks.rafalko@gmail.com", - "homepage": "https://twitter.com/maks_rafalko" + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" }, { - "name": "Oleg Zhulnev", - "homepage": "https://github.com/sidz" - }, + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com", + "homepage": "https://sagikazarmark.hu" + } + ], + "description": "Guzzle is a PHP HTTP client library", + "homepage": "http://guzzlephp.org/", + "keywords": [ + "client", + "curl", + "framework", + "http", + "http client", + "psr-18", + "psr-7", + "rest", + "web service" + ], + "support": { + "issues": "https://github.com/guzzle/guzzle/issues", + "source": "https://github.com/guzzle/guzzle/tree/7.3.0" + }, + "funding": [ { - "name": "Gert de Pagter", - "homepage": "https://github.com/BackEndTea" + "url": "https://github.com/GrahamCampbell", + "type": "github" }, { - "name": "Théo FIDRY", - "email": "theo.fidry@gmail.com", - "homepage": "https://twitter.com/tfidry" + "url": "https://github.com/Nyholm", + "type": "github" }, { - "name": "Alexey Kopytko", - "email": "alexey@kopytko.com", - "homepage": "https://www.alexeykopytko.com" + "url": "https://github.com/alexeyshockov", + "type": "github" }, { - "name": "Andreas Möller", - "email": "am@localheinz.com", - "homepage": "https://localheinz.com" + "url": "https://github.com/gmponos", + "type": "github" } ], - "description": "Infection is a Mutation Testing framework for PHP. The mutation adequacy score can be used to measure the effectiveness of a test set in terms of its ability to detect faults.", - "keywords": [ - "coverage", - "mutant", - "mutation framework", - "mutation testing", - "testing", - "unit testing" - ], - "support": { - "issues": "https://github.com/infection/infection/issues", - "source": "https://github.com/infection/infection/tree/0.16.6" - }, - "time": "2020-08-17T20:17:03+00:00" + "time": "2021-03-23T11:33:13+00:00" }, { - "name": "justinrainbow/json-schema", - "version": "5.2.10", + "name": "guzzlehttp/promises", + "version": "1.4.1", "source": { "type": "git", - "url": "https://github.com/justinrainbow/json-schema.git", - "reference": "2ba9c8c862ecd5510ed16c6340aa9f6eadb4f31b" + "url": "https://github.com/guzzle/promises.git", + "reference": "8e7d04f1f6450fef59366c399cfad4b9383aa30d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/justinrainbow/json-schema/zipball/2ba9c8c862ecd5510ed16c6340aa9f6eadb4f31b", - "reference": "2ba9c8c862ecd5510ed16c6340aa9f6eadb4f31b", + "url": "https://api.github.com/repos/guzzle/promises/zipball/8e7d04f1f6450fef59366c399cfad4b9383aa30d", + "reference": "8e7d04f1f6450fef59366c399cfad4b9383aa30d", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": ">=5.5" }, "require-dev": { - "friendsofphp/php-cs-fixer": "~2.2.20||~2.15.1", - "json-schema/json-schema-test-suite": "1.2.0", - "phpunit/phpunit": "^4.8.35" + "symfony/phpunit-bridge": "^4.4 || ^5.1" }, - "bin": [ - "bin/validate-json" - ], "type": "library", "extra": { "branch-alias": { - "dev-master": "5.0.x-dev" + "dev-master": "1.4-dev" } }, "autoload": { "psr-4": { - "JsonSchema\\": "src/JsonSchema/" - } + "GuzzleHttp\\Promise\\": "src/" + }, + "files": [ + "src/functions_include.php" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -5735,288 +5978,229 @@ ], "authors": [ { - "name": "Bruno Prieto Reis", - "email": "bruno.p.reis@gmail.com" - }, - { - "name": "Justin Rainbow", - "email": "justin.rainbow@gmail.com" - }, - { - "name": "Igor Wiedler", - "email": "igor@wiedler.ch" - }, - { - "name": "Robert Schönthal", - "email": "seroscho@googlemail.com" + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" } ], - "description": "A library to validate a json schema.", - "homepage": "https://github.com/justinrainbow/json-schema", + "description": "Guzzle promises library", "keywords": [ - "json", - "schema" + "promise" ], "support": { - "issues": "https://github.com/justinrainbow/json-schema/issues", - "source": "https://github.com/justinrainbow/json-schema/tree/5.2.10" + "issues": "https://github.com/guzzle/promises/issues", + "source": "https://github.com/guzzle/promises/tree/1.4.1" }, - "time": "2020-05-27T16:41:55+00:00" + "time": "2021-03-07T09:25:29+00:00" }, { - "name": "mockery/mockery", - "version": "1.4.3", + "name": "guzzlehttp/psr7", + "version": "1.8.2", "source": { "type": "git", - "url": "https://github.com/mockery/mockery.git", - "reference": "d1339f64479af1bee0e82a0413813fe5345a54ea" + "url": "https://github.com/guzzle/psr7.git", + "reference": "dc960a912984efb74d0a90222870c72c87f10c91" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/mockery/mockery/zipball/d1339f64479af1bee0e82a0413813fe5345a54ea", - "reference": "d1339f64479af1bee0e82a0413813fe5345a54ea", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/dc960a912984efb74d0a90222870c72c87f10c91", + "reference": "dc960a912984efb74d0a90222870c72c87f10c91", "shasum": "" }, "require": { - "hamcrest/hamcrest-php": "^2.0.1", - "lib-pcre": ">=7.0", - "php": "^7.3 || ^8.0" + "php": ">=5.4.0", + "psr/http-message": "~1.0", + "ralouphie/getallheaders": "^2.0.5 || ^3.0.0" }, - "conflict": { - "phpunit/phpunit": "<8.0" + "provide": { + "psr/http-message-implementation": "1.0" }, "require-dev": { - "phpunit/phpunit": "^8.5 || ^9.3" + "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.4.x-dev" + "dev-master": "1.7-dev" } }, "autoload": { - "psr-0": { - "Mockery": "library/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], + "psr-4": { + "GuzzleHttp\\Psr7\\": "src/" + }, + "files": [ + "src/functions_include.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], "authors": [ { - "name": "Pádraic Brady", - "email": "padraic.brady@gmail.com", - "homepage": "http://blog.astrumfutura.com" + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" }, { - "name": "Dave Marshall", - "email": "dave.marshall@atstsolutions.co.uk", - "homepage": "http://davedevelopment.co.uk" + "name": "Tobias Schultze", + "homepage": "https://github.com/Tobion" } ], - "description": "Mockery is a simple yet flexible PHP mock object framework", - "homepage": "https://github.com/mockery/mockery", + "description": "PSR-7 message implementation that also provides common utility methods", "keywords": [ - "BDD", - "TDD", - "library", - "mock", - "mock objects", - "mockery", - "stub", - "test", - "test double", - "testing" + "http", + "message", + "psr-7", + "request", + "response", + "stream", + "uri", + "url" ], "support": { - "issues": "https://github.com/mockery/mockery/issues", - "source": "https://github.com/mockery/mockery/tree/1.4.3" + "issues": "https://github.com/guzzle/psr7/issues", + "source": "https://github.com/guzzle/psr7/tree/1.8.2" }, - "time": "2021-02-24T09:51:49+00:00" + "time": "2021-04-26T09:17:50+00:00" }, { - "name": "myclabs/deep-copy", - "version": "1.10.2", + "name": "hamcrest/hamcrest-php", + "version": "v2.0.1", "source": { "type": "git", - "url": "https://github.com/myclabs/DeepCopy.git", - "reference": "776f831124e9c62e1a2c601ecc52e776d8bb7220" + "url": "https://github.com/hamcrest/hamcrest-php.git", + "reference": "8c3d0a3f6af734494ad8f6fbbee0ba92422859f3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/776f831124e9c62e1a2c601ecc52e776d8bb7220", - "reference": "776f831124e9c62e1a2c601ecc52e776d8bb7220", + "url": "https://api.github.com/repos/hamcrest/hamcrest-php/zipball/8c3d0a3f6af734494ad8f6fbbee0ba92422859f3", + "reference": "8c3d0a3f6af734494ad8f6fbbee0ba92422859f3", "shasum": "" }, "require": { - "php": "^7.1 || ^8.0" + "php": "^5.3|^7.0|^8.0" }, "replace": { - "myclabs/deep-copy": "self.version" + "cordoval/hamcrest-php": "*", + "davedevelopment/hamcrest-php": "*", + "kodova/hamcrest-php": "*" }, "require-dev": { - "doctrine/collections": "^1.0", - "doctrine/common": "^2.6", - "phpunit/phpunit": "^7.1" + "phpunit/php-file-iterator": "^1.4 || ^2.0", + "phpunit/phpunit": "^4.8.36 || ^5.7 || ^6.5 || ^7.0" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.1-dev" + } + }, "autoload": { - "psr-4": { - "DeepCopy\\": "src/DeepCopy/" - }, - "files": [ - "src/DeepCopy/deep_copy.php" + "classmap": [ + "hamcrest" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], - "description": "Create deep copies (clones) of your objects", + "description": "This is the PHP port of Hamcrest Matchers", "keywords": [ - "clone", - "copy", - "duplicate", - "object", - "object graph" + "test" ], "support": { - "issues": "https://github.com/myclabs/DeepCopy/issues", - "source": "https://github.com/myclabs/DeepCopy/tree/1.10.2" + "issues": "https://github.com/hamcrest/hamcrest-php/issues", + "source": "https://github.com/hamcrest/hamcrest-php/tree/v2.0.1" }, - "funding": [ - { - "url": "https://tidelift.com/funding/github/packagist/myclabs/deep-copy", - "type": "tidelift" - } - ], - "time": "2020-11-13T09:40:50+00:00" + "time": "2020-07-09T08:09:16+00:00" }, { - "name": "nelmio/alice", - "version": "v3.8.2", + "name": "infection/abstract-testframework-adapter", + "version": "0.3.1", "source": { "type": "git", - "url": "https://github.com/nelmio/alice.git", - "reference": "b57f4c6f039baa72e2bd5b75fd8de77e1b9228e3" + "url": "https://github.com/infection/abstract-testframework-adapter.git", + "reference": "c52539339f28d6b67625ff24496289b3e6d66025" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nelmio/alice/zipball/b57f4c6f039baa72e2bd5b75fd8de77e1b9228e3", - "reference": "b57f4c6f039baa72e2bd5b75fd8de77e1b9228e3", + "url": "https://api.github.com/repos/infection/abstract-testframework-adapter/zipball/c52539339f28d6b67625ff24496289b3e6d66025", + "reference": "c52539339f28d6b67625ff24496289b3e6d66025", "shasum": "" }, "require": { - "fakerphp/faker": "^1.10", - "myclabs/deep-copy": "^1.10", - "php": "^7.3 || ^8.0", - "sebastian/comparator": "^3.0 || ^4.0", - "symfony/property-access": "^2.8 || ^3.4 || ^4.0 || ^5.0", - "symfony/yaml": "^2.8 || ^3.4 || ^4.0 || ^5.0" - }, - "conflict": { - "symfony/framework-bundle": "<3.4" + "php": "^7.3 || ^8.0" }, "require-dev": { - "bamarni/composer-bin-plugin": "^1.1.0", - "phpspec/prophecy": "^1.6", - "phpspec/prophecy-phpunit": "^2.0", - "phpunit/phpunit": "^8.5.4 || ^9.3", - "symfony/phpunit-bridge": "^5.1.3", - "symfony/var-dumper": "^3.4 || ^4.0 || ^5.0" - }, - "suggest": { - "theofidry/alice-data-fixtures": "Wrapper for Alice to provide a persistence layer." + "ergebnis/composer-normalize": "^2.8", + "friendsofphp/php-cs-fixer": "^2.16", + "phpunit/phpunit": "^9.0" }, "type": "library", - "extra": { - "bamarni-bin": { - "bin-links": false - }, - "branch-alias": { - "dev-master": "3.x-dev" - } - }, "autoload": { - "files": [ - "src/deep_clone.php" - ], "psr-4": { - "Nelmio\\Alice\\": "src" + "Infection\\AbstractTestFramework\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "Jordi Boggiano", - "email": "j.boggiano@seld.be" - }, - { - "name": "Tim Shelburne", - "email": "shelburt02@gmail.com" - }, - { - "name": "Théo FIDRY", - "email": "theo.fidry@gmail.com" + "name": "Maks Rafalko", + "email": "maks.rafalko@gmail.com" } ], - "description": "Expressive fixtures generator", - "keywords": [ - "Fixture", - "data", - "faker", - "test" - ], + "description": "Abstract Test Framework Adapter for Infection", "support": { - "issues": "https://github.com/nelmio/alice/issues", - "source": "https://github.com/nelmio/alice/tree/v3.8.2" + "issues": "https://github.com/infection/abstract-testframework-adapter/issues", + "source": "https://github.com/infection/abstract-testframework-adapter/tree/0.3" }, - "funding": [ - { - "url": "https://github.com/theofidry", - "type": "github" - } - ], - "time": "2021-02-27T19:13:09+00:00" + "time": "2020-08-30T13:50:12+00:00" }, { - "name": "nikic/php-parser", - "version": "v4.10.5", + "name": "infection/extension-installer", + "version": "0.1.1", "source": { "type": "git", - "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "4432ba399e47c66624bc73c8c0f811e5c109576f" + "url": "https://github.com/infection/extension-installer.git", + "reference": "ff30c0adffcdbc747c96adf92382ccbe271d0afd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/4432ba399e47c66624bc73c8c0f811e5c109576f", - "reference": "4432ba399e47c66624bc73c8c0f811e5c109576f", + "url": "https://api.github.com/repos/infection/extension-installer/zipball/ff30c0adffcdbc747c96adf92382ccbe271d0afd", + "reference": "ff30c0adffcdbc747c96adf92382ccbe271d0afd", "shasum": "" }, "require": { - "ext-tokenizer": "*", - "php": ">=7.0" + "composer-plugin-api": "^1.1 || ^2.0" }, "require-dev": { - "ircmaxell/php-yacc": "^0.0.7", - "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0 || ^9.0" + "composer/composer": "^1.9", + "friendsofphp/php-cs-fixer": "^2.16", + "infection/infection": "^0.15.2", + "php-coveralls/php-coveralls": "^2.2", + "phpstan/extension-installer": "^1.0", + "phpstan/phpstan": "^0.12.10", + "phpstan/phpstan-phpunit": "^0.12.6", + "phpstan/phpstan-strict-rules": "^0.12.2", + "phpstan/phpstan-webmozart-assert": "^0.12.2", + "phpunit/phpunit": "^8.5", + "vimeo/psalm": "^3.8" }, - "bin": [ - "bin/php-parse" - ], - "type": "library", + "type": "composer-plugin", "extra": { - "branch-alias": { - "dev-master": "4.9-dev" - } + "class": "Infection\\ExtensionInstaller\\Plugin" }, "autoload": { "psr-4": { - "PhpParser\\": "lib/PhpParser" + "Infection\\ExtensionInstaller\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -6025,123 +6209,125 @@ ], "authors": [ { - "name": "Nikita Popov" + "name": "Maks Rafalko", + "email": "maks.rafalko@gmail.com" } ], - "description": "A PHP parser written in PHP", - "keywords": [ - "parser", - "php" - ], + "description": "Infection Extension Installer", "support": { - "issues": "https://github.com/nikic/PHP-Parser/issues", - "source": "https://github.com/nikic/PHP-Parser/tree/v4.10.5" + "issues": "https://github.com/infection/extension-installer/issues", + "source": "https://github.com/infection/extension-installer/tree/0.1.1" }, - "time": "2021-05-03T19:11:20+00:00" + "time": "2020-04-25T22:40:05+00:00" }, { - "name": "ondram/ci-detector", - "version": "3.5.1", + "name": "infection/include-interceptor", + "version": "0.2.4", "source": { "type": "git", - "url": "https://github.com/OndraM/ci-detector.git", - "reference": "594e61252843b68998bddd48078c5058fe9028bd" + "url": "https://github.com/infection/include-interceptor.git", + "reference": "e3cf9317a7fd554ab60a5587f028b16418cc4264" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/OndraM/ci-detector/zipball/594e61252843b68998bddd48078c5058fe9028bd", - "reference": "594e61252843b68998bddd48078c5058fe9028bd", + "url": "https://api.github.com/repos/infection/include-interceptor/zipball/e3cf9317a7fd554ab60a5587f028b16418cc4264", + "reference": "e3cf9317a7fd554ab60a5587f028b16418cc4264", "shasum": "" }, - "require": { - "php": "^7.1 || ^8.0" - }, "require-dev": { - "ergebnis/composer-normalize": "^2.2", - "lmc/coding-standard": "^1.3 || ^2.0", - "php-parallel-lint/php-parallel-lint": "^1.1", - "phpstan/extension-installer": "^1.0.3", - "phpstan/phpstan": "^0.12.0", - "phpstan/phpstan-phpunit": "^0.12.1", - "phpunit/phpunit": "^7.1 || ^8.0 || ^9.0" + "friendsofphp/php-cs-fixer": "^2.16", + "infection/infection": "^0.15.0", + "phan/phan": "^2.4 || ^3", + "php-coveralls/php-coveralls": "^2.2", + "phpstan/phpstan": "^0.12.8", + "phpunit/phpunit": "^8.5", + "vimeo/psalm": "^3.8" }, "type": "library", "autoload": { "psr-4": { - "OndraM\\CiDetector\\": "src/" + "Infection\\StreamWrapper\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "Ondřej Machulda", - "email": "ondrej.machulda@gmail.com" + "name": "Maks Rafalko", + "email": "maks.rafalko@gmail.com" } ], - "description": "Detect continuous integration environment and provide unified access to properties of current build", - "keywords": [ - "CircleCI", - "Codeship", - "Wercker", - "adapter", - "appveyor", - "aws", - "aws codebuild", - "bamboo", - "bitbucket", - "buddy", - "ci-info", - "codebuild", - "continuous integration", - "continuousphp", - "drone", - "github", - "gitlab", - "interface", - "jenkins", - "teamcity", - "travis" - ], + "description": "Stream Wrapper: Include Interceptor. Allows to replace included (autoloaded) file with another one.", "support": { - "issues": "https://github.com/OndraM/ci-detector/issues", - "source": "https://github.com/OndraM/ci-detector/tree/main" + "issues": "https://github.com/infection/include-interceptor/issues", + "source": "https://github.com/infection/include-interceptor/tree/0.2.4" }, - "time": "2020-09-04T11:21:14+00:00" + "time": "2020-08-07T22:40:37+00:00" }, { - "name": "phar-io/manifest", - "version": "2.0.1", + "name": "infection/infection", + "version": "0.16.6", "source": { "type": "git", - "url": "https://github.com/phar-io/manifest.git", - "reference": "85265efd3af7ba3ca4b2a2c34dbfc5788dd29133" + "url": "https://github.com/infection/infection.git", + "reference": "d43267a15ae21d42fce2aed3f1c8a4a22de6698a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phar-io/manifest/zipball/85265efd3af7ba3ca4b2a2c34dbfc5788dd29133", - "reference": "85265efd3af7ba3ca4b2a2c34dbfc5788dd29133", + "url": "https://api.github.com/repos/infection/infection/zipball/d43267a15ae21d42fce2aed3f1c8a4a22de6698a", + "reference": "d43267a15ae21d42fce2aed3f1c8a4a22de6698a", "shasum": "" }, "require": { + "composer/xdebug-handler": "^1.3.3", "ext-dom": "*", - "ext-phar": "*", - "ext-xmlwriter": "*", - "phar-io/version": "^3.0.1", - "php": "^7.2 || ^8.0" + "ext-json": "*", + "ext-libxml": "*", + "infection/abstract-testframework-adapter": "^0.3.0", + "infection/extension-installer": "^0.1.0", + "infection/include-interceptor": "^0.2.2", + "justinrainbow/json-schema": "^5.2", + "nikic/php-parser": "^4.2.2", + "ocramius/package-versions": "^1.2", + "ondram/ci-detector": "^3.3.0", + "php": "^7.3", + "sanmai/pipeline": "^3.1", + "sebastian/diff": "^3.0.2 || ^4.0", + "seld/jsonlint": "^1.7", + "symfony/console": "^3.4.29 || ^4.0 || ^5.0", + "symfony/filesystem": "^3.4.29 || ^4.0 || ^5.0", + "symfony/finder": "^3.4.29 || ^4.0 || ^5.0", + "symfony/process": "^3.4.29 || ^4.0 || ^5.0", + "thecodingmachine/safe": "^1.0", + "webmozart/assert": "^1.3", + "webmozart/path-util": "^2.3" }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0.x-dev" - } + "conflict": { + "phpunit/php-code-coverage": ">9 <9.1.4", + "symfony/console": "=4.1.5" + }, + "require-dev": { + "ext-simplexml": "*", + "helmich/phpunit-json-assert": "^3.0", + "phpstan/extension-installer": "^1.0", + "phpstan/phpstan": "^0.12.8", + "phpstan/phpstan-phpunit": "^0.12.6", + "phpstan/phpstan-webmozart-assert": "^0.12.2", + "phpunit/phpunit": "^8.2.5 <8.4", + "symfony/phpunit-bridge": "^4.3.4 || ^5.0", + "symfony/yaml": "^5.0", + "thecodingmachine/phpstan-safe-rule": "^1.0" }, + "bin": [ + "bin/infection" + ], + "type": "library", "autoload": { - "classmap": [ - "src/" - ] + "psr-4": { + "Infection\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -6149,118 +6335,161 @@ ], "authors": [ { - "name": "Arne Blankerts", - "email": "arne@blankerts.de", - "role": "Developer" + "name": "Maks Rafalko", + "email": "maks.rafalko@gmail.com", + "homepage": "https://twitter.com/maks_rafalko" }, { - "name": "Sebastian Heuer", - "email": "sebastian@phpeople.de", - "role": "Developer" + "name": "Oleg Zhulnev", + "homepage": "https://github.com/sidz" }, { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "Developer" + "name": "Gert de Pagter", + "homepage": "https://github.com/BackEndTea" + }, + { + "name": "Théo FIDRY", + "email": "theo.fidry@gmail.com", + "homepage": "https://twitter.com/tfidry" + }, + { + "name": "Alexey Kopytko", + "email": "alexey@kopytko.com", + "homepage": "https://www.alexeykopytko.com" + }, + { + "name": "Andreas Möller", + "email": "am@localheinz.com", + "homepage": "https://localheinz.com" } ], - "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", + "description": "Infection is a Mutation Testing framework for PHP. The mutation adequacy score can be used to measure the effectiveness of a test set in terms of its ability to detect faults.", + "keywords": [ + "coverage", + "mutant", + "mutation framework", + "mutation testing", + "testing", + "unit testing" + ], "support": { - "issues": "https://github.com/phar-io/manifest/issues", - "source": "https://github.com/phar-io/manifest/tree/master" + "issues": "https://github.com/infection/infection/issues", + "source": "https://github.com/infection/infection/tree/0.16.6" }, - "time": "2020-06-27T14:33:11+00:00" + "time": "2020-08-17T20:17:03+00:00" }, { - "name": "phar-io/version", - "version": "3.1.0", + "name": "justinrainbow/json-schema", + "version": "5.2.10", "source": { "type": "git", - "url": "https://github.com/phar-io/version.git", - "reference": "bae7c545bef187884426f042434e561ab1ddb182" + "url": "https://github.com/justinrainbow/json-schema.git", + "reference": "2ba9c8c862ecd5510ed16c6340aa9f6eadb4f31b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phar-io/version/zipball/bae7c545bef187884426f042434e561ab1ddb182", - "reference": "bae7c545bef187884426f042434e561ab1ddb182", + "url": "https://api.github.com/repos/justinrainbow/json-schema/zipball/2ba9c8c862ecd5510ed16c6340aa9f6eadb4f31b", + "reference": "2ba9c8c862ecd5510ed16c6340aa9f6eadb4f31b", "shasum": "" }, "require": { - "php": "^7.2 || ^8.0" + "php": ">=5.3.3" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "~2.2.20||~2.15.1", + "json-schema/json-schema-test-suite": "1.2.0", + "phpunit/phpunit": "^4.8.35" }, + "bin": [ + "bin/validate-json" + ], "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.0.x-dev" + } + }, "autoload": { - "classmap": [ - "src/" - ] + "psr-4": { + "JsonSchema\\": "src/JsonSchema/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Arne Blankerts", - "email": "arne@blankerts.de", - "role": "Developer" + "name": "Bruno Prieto Reis", + "email": "bruno.p.reis@gmail.com" }, { - "name": "Sebastian Heuer", - "email": "sebastian@phpeople.de", - "role": "Developer" + "name": "Justin Rainbow", + "email": "justin.rainbow@gmail.com" }, { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "Developer" + "name": "Igor Wiedler", + "email": "igor@wiedler.ch" + }, + { + "name": "Robert Schönthal", + "email": "seroscho@googlemail.com" } ], - "description": "Library for handling version information and constraints", + "description": "A library to validate a json schema.", + "homepage": "https://github.com/justinrainbow/json-schema", + "keywords": [ + "json", + "schema" + ], "support": { - "issues": "https://github.com/phar-io/version/issues", - "source": "https://github.com/phar-io/version/tree/3.1.0" + "issues": "https://github.com/justinrainbow/json-schema/issues", + "source": "https://github.com/justinrainbow/json-schema/tree/5.2.10" }, - "time": "2021-02-23T14:00:09+00:00" + "time": "2020-05-27T16:41:55+00:00" }, { - "name": "php-coveralls/php-coveralls", - "version": "v2.4.3", + "name": "league/container", + "version": "3.3.5", "source": { "type": "git", - "url": "https://github.com/php-coveralls/php-coveralls.git", - "reference": "909381bd40a17ae6e9076051f0d73293c1c091af" + "url": "https://github.com/thephpleague/container.git", + "reference": "048ab87810f508dbedbcb7ae941b606eb8ee353b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-coveralls/php-coveralls/zipball/909381bd40a17ae6e9076051f0d73293c1c091af", - "reference": "909381bd40a17ae6e9076051f0d73293c1c091af", + "url": "https://api.github.com/repos/thephpleague/container/zipball/048ab87810f508dbedbcb7ae941b606eb8ee353b", + "reference": "048ab87810f508dbedbcb7ae941b606eb8ee353b", "shasum": "" }, "require": { - "ext-json": "*", - "ext-simplexml": "*", - "guzzlehttp/guzzle": "^6.0 || ^7.0", - "php": "^5.5 || ^7.0 || ^8.0", - "psr/log": "^1.0", - "symfony/config": "^2.1 || ^3.0 || ^4.0 || ^5.0", - "symfony/console": "^2.1 || ^3.0 || ^4.0 || ^5.0", - "symfony/stopwatch": "^2.0 || ^3.0 || ^4.0 || ^5.0", - "symfony/yaml": "^2.0.5 || ^3.0 || ^4.0 || ^5.0" + "php": "^7.0 || ^8.0", + "psr/container": "^1.0.0 || ^2.0.0" }, - "require-dev": { - "phpunit/phpunit": "^4.8.35 || ^5.4.3 || ^6.0 || ^7.0 || ^8.0 || ^9.0", - "sanmai/phpunit-legacy-adapter": "^6.1 || ^8.0" + "provide": { + "psr/container-implementation": "^1.0" }, - "suggest": { - "symfony/http-kernel": "Allows Symfony integration" + "replace": { + "orno/di": "~2.0" + }, + "require-dev": { + "phpunit/phpunit": "^6.0", + "roave/security-advisories": "dev-master", + "scrutinizer/ocular": "^1.8", + "squizlabs/php_codesniffer": "^3.5" }, - "bin": [ - "bin/php-coveralls" - ], "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.x-dev", + "dev-3.x": "3.x-dev", + "dev-2.x": "2.x-dev", + "dev-1.x": "1.x-dev" + } + }, "autoload": { "psr-4": { - "PhpCoveralls\\": "src/" + "League\\Container\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -6269,316 +6498,293 @@ ], "authors": [ { - "name": "Kitamura Satoshi", - "email": "with.no.parachute@gmail.com", - "homepage": "https://www.facebook.com/satooshi.jp", - "role": "Original creator" - }, - { - "name": "Takashi Matsuo", - "email": "tmatsuo@google.com" - }, - { - "name": "Google Inc" - }, - { - "name": "Dariusz Ruminski", - "email": "dariusz.ruminski@gmail.com", - "homepage": "https://github.com/keradus" - }, - { - "name": "Contributors", - "homepage": "https://github.com/php-coveralls/php-coveralls/graphs/contributors" + "name": "Phil Bennett", + "email": "philipobenito@gmail.com", + "homepage": "http://www.philipobenito.com", + "role": "Developer" } ], - "description": "PHP client library for Coveralls API", - "homepage": "https://github.com/php-coveralls/php-coveralls", + "description": "A fast and intuitive dependency injection container.", + "homepage": "https://github.com/thephpleague/container", "keywords": [ - "ci", - "coverage", - "github", - "test" + "container", + "dependency", + "di", + "injection", + "league", + "provider", + "service" ], "support": { - "issues": "https://github.com/php-coveralls/php-coveralls/issues", - "source": "https://github.com/php-coveralls/php-coveralls/tree/v2.4.3" - }, - "time": "2020-12-24T09:17:03+00:00" - }, - { - "name": "php-di/phpdoc-reader", - "version": "2.2.1", - "source": { - "type": "git", - "url": "https://github.com/PHP-DI/PhpDocReader.git", - "reference": "66daff34cbd2627740ffec9469ffbac9f8c8185c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/PHP-DI/PhpDocReader/zipball/66daff34cbd2627740ffec9469ffbac9f8c8185c", - "reference": "66daff34cbd2627740ffec9469ffbac9f8c8185c", - "shasum": "" - }, - "require": { - "php": ">=7.2.0" - }, - "require-dev": { - "mnapoli/hard-mode": "~0.3.0", - "phpunit/phpunit": "^8.5|^9.0" + "issues": "https://github.com/thephpleague/container/issues", + "source": "https://github.com/thephpleague/container/tree/3.3.5" }, - "type": "library", - "autoload": { - "psr-4": { - "PhpDocReader\\": "src/PhpDocReader" + "funding": [ + { + "url": "https://github.com/philipobenito", + "type": "github" } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "description": "PhpDocReader parses @var and @param values in PHP docblocks (supports namespaced class names with the same resolution rules as PHP)", - "keywords": [ - "phpdoc", - "reflection" ], - "support": { - "issues": "https://github.com/PHP-DI/PhpDocReader/issues", - "source": "https://github.com/PHP-DI/PhpDocReader/tree/2.2.1" - }, - "time": "2020-10-12T12:39:22+00:00" + "time": "2021-03-16T09:42:56+00:00" }, { - "name": "phpspec/prophecy", - "version": "1.13.0", + "name": "mockery/mockery", + "version": "1.4.3", "source": { "type": "git", - "url": "https://github.com/phpspec/prophecy.git", - "reference": "be1996ed8adc35c3fd795488a653f4b518be70ea" + "url": "https://github.com/mockery/mockery.git", + "reference": "d1339f64479af1bee0e82a0413813fe5345a54ea" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpspec/prophecy/zipball/be1996ed8adc35c3fd795488a653f4b518be70ea", - "reference": "be1996ed8adc35c3fd795488a653f4b518be70ea", + "url": "https://api.github.com/repos/mockery/mockery/zipball/d1339f64479af1bee0e82a0413813fe5345a54ea", + "reference": "d1339f64479af1bee0e82a0413813fe5345a54ea", "shasum": "" }, "require": { - "doctrine/instantiator": "^1.2", - "php": "^7.2 || ~8.0, <8.1", - "phpdocumentor/reflection-docblock": "^5.2", - "sebastian/comparator": "^3.0 || ^4.0", - "sebastian/recursion-context": "^3.0 || ^4.0" + "hamcrest/hamcrest-php": "^2.0.1", + "lib-pcre": ">=7.0", + "php": "^7.3 || ^8.0" + }, + "conflict": { + "phpunit/phpunit": "<8.0" }, "require-dev": { - "phpspec/phpspec": "^6.0", - "phpunit/phpunit": "^8.0 || ^9.0" + "phpunit/phpunit": "^8.5 || ^9.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.11.x-dev" + "dev-master": "1.4.x-dev" } }, "autoload": { - "psr-4": { - "Prophecy\\": "src/Prophecy" + "psr-0": { + "Mockery": "library/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "Konstantin Kudryashov", - "email": "ever.zet@gmail.com", - "homepage": "http://everzet.com" + "name": "Pádraic Brady", + "email": "padraic.brady@gmail.com", + "homepage": "http://blog.astrumfutura.com" }, { - "name": "Marcello Duarte", - "email": "marcello.duarte@gmail.com" + "name": "Dave Marshall", + "email": "dave.marshall@atstsolutions.co.uk", + "homepage": "http://davedevelopment.co.uk" } ], - "description": "Highly opinionated mocking framework for PHP 5.3+", - "homepage": "https://github.com/phpspec/prophecy", + "description": "Mockery is a simple yet flexible PHP mock object framework", + "homepage": "https://github.com/mockery/mockery", "keywords": [ - "Double", - "Dummy", - "fake", + "BDD", + "TDD", + "library", "mock", - "spy", - "stub" + "mock objects", + "mockery", + "stub", + "test", + "test double", + "testing" ], "support": { - "issues": "https://github.com/phpspec/prophecy/issues", - "source": "https://github.com/phpspec/prophecy/tree/1.13.0" + "issues": "https://github.com/mockery/mockery/issues", + "source": "https://github.com/mockery/mockery/tree/1.4.3" }, - "time": "2021-03-17T13:42:18+00:00" + "time": "2021-02-24T09:51:49+00:00" }, { - "name": "phpunit/php-code-coverage", - "version": "9.2.6", + "name": "myclabs/deep-copy", + "version": "1.10.2", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "f6293e1b30a2354e8428e004689671b83871edde" + "url": "https://github.com/myclabs/DeepCopy.git", + "reference": "776f831124e9c62e1a2c601ecc52e776d8bb7220" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/f6293e1b30a2354e8428e004689671b83871edde", - "reference": "f6293e1b30a2354e8428e004689671b83871edde", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/776f831124e9c62e1a2c601ecc52e776d8bb7220", + "reference": "776f831124e9c62e1a2c601ecc52e776d8bb7220", "shasum": "" }, "require": { - "ext-dom": "*", - "ext-libxml": "*", - "ext-xmlwriter": "*", - "nikic/php-parser": "^4.10.2", - "php": ">=7.3", - "phpunit/php-file-iterator": "^3.0.3", - "phpunit/php-text-template": "^2.0.2", - "sebastian/code-unit-reverse-lookup": "^2.0.2", - "sebastian/complexity": "^2.0", - "sebastian/environment": "^5.1.2", - "sebastian/lines-of-code": "^1.0.3", - "sebastian/version": "^3.0.1", - "theseer/tokenizer": "^1.2.0" + "php": "^7.1 || ^8.0" }, - "require-dev": { - "phpunit/phpunit": "^9.3" + "replace": { + "myclabs/deep-copy": "self.version" }, - "suggest": { - "ext-pcov": "*", - "ext-xdebug": "*" + "require-dev": { + "doctrine/collections": "^1.0", + "doctrine/common": "^2.6", + "phpunit/phpunit": "^7.1" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "9.2-dev" - } - }, "autoload": { - "classmap": [ - "src/" + "psr-4": { + "DeepCopy\\": "src/DeepCopy/" + }, + "files": [ + "src/DeepCopy/deep_copy.php" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } + "MIT" ], - "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.", - "homepage": "https://github.com/sebastianbergmann/php-code-coverage", + "description": "Create deep copies (clones) of your objects", "keywords": [ - "coverage", - "testing", - "xunit" + "clone", + "copy", + "duplicate", + "object", + "object graph" ], "support": { - "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", - "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.6" + "issues": "https://github.com/myclabs/DeepCopy/issues", + "source": "https://github.com/myclabs/DeepCopy/tree/1.10.2" }, "funding": [ { - "url": "https://github.com/sebastianbergmann", - "type": "github" + "url": "https://tidelift.com/funding/github/packagist/myclabs/deep-copy", + "type": "tidelift" } ], - "time": "2021-03-28T07:26:59+00:00" + "time": "2020-11-13T09:40:50+00:00" }, { - "name": "phpunit/php-file-iterator", - "version": "3.0.5", + "name": "nelmio/alice", + "version": "v3.8.2", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/php-file-iterator.git", - "reference": "aa4be8575f26070b100fccb67faabb28f21f66f8" + "url": "https://github.com/nelmio/alice.git", + "reference": "b57f4c6f039baa72e2bd5b75fd8de77e1b9228e3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/aa4be8575f26070b100fccb67faabb28f21f66f8", - "reference": "aa4be8575f26070b100fccb67faabb28f21f66f8", + "url": "https://api.github.com/repos/nelmio/alice/zipball/b57f4c6f039baa72e2bd5b75fd8de77e1b9228e3", + "reference": "b57f4c6f039baa72e2bd5b75fd8de77e1b9228e3", "shasum": "" }, "require": { - "php": ">=7.3" + "fakerphp/faker": "^1.10", + "myclabs/deep-copy": "^1.10", + "php": "^7.3 || ^8.0", + "sebastian/comparator": "^3.0 || ^4.0", + "symfony/property-access": "^2.8 || ^3.4 || ^4.0 || ^5.0", + "symfony/yaml": "^2.8 || ^3.4 || ^4.0 || ^5.0" }, - "require-dev": { - "phpunit/phpunit": "^9.3" + "conflict": { + "symfony/framework-bundle": "<3.4" + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.1.0", + "phpspec/prophecy": "^1.6", + "phpspec/prophecy-phpunit": "^2.0", + "phpunit/phpunit": "^8.5.4 || ^9.3", + "symfony/phpunit-bridge": "^5.1.3", + "symfony/var-dumper": "^3.4 || ^4.0 || ^5.0" + }, + "suggest": { + "theofidry/alice-data-fixtures": "Wrapper for Alice to provide a persistence layer." }, "type": "library", "extra": { + "bamarni-bin": { + "bin-links": false + }, "branch-alias": { - "dev-master": "3.0-dev" + "dev-master": "3.x-dev" } }, "autoload": { - "classmap": [ - "src/" - ] + "files": [ + "src/deep_clone.php" + ], + "psr-4": { + "Nelmio\\Alice\\": "src" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be" + }, + { + "name": "Tim Shelburne", + "email": "shelburt02@gmail.com" + }, + { + "name": "Théo FIDRY", + "email": "theo.fidry@gmail.com" } ], - "description": "FilterIterator implementation that filters files based on a list of suffixes.", - "homepage": "https://github.com/sebastianbergmann/php-file-iterator/", + "description": "Expressive fixtures generator", "keywords": [ - "filesystem", - "iterator" + "Fixture", + "data", + "faker", + "test" ], "support": { - "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues", - "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/3.0.5" + "issues": "https://github.com/nelmio/alice/issues", + "source": "https://github.com/nelmio/alice/tree/v3.8.2" }, "funding": [ { - "url": "https://github.com/sebastianbergmann", + "url": "https://github.com/theofidry", "type": "github" } ], - "time": "2020-09-28T05:57:25+00:00" + "time": "2021-02-27T19:13:09+00:00" }, { - "name": "phpunit/php-invoker", - "version": "3.1.1", + "name": "nette/utils", + "version": "v3.2.2", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/php-invoker.git", - "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67" + "url": "https://github.com/nette/utils.git", + "reference": "967cfc4f9a1acd5f1058d76715a424c53343c20c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/5a10147d0aaf65b58940a0b72f71c9ac0423cc67", - "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67", + "url": "https://api.github.com/repos/nette/utils/zipball/967cfc4f9a1acd5f1058d76715a424c53343c20c", + "reference": "967cfc4f9a1acd5f1058d76715a424c53343c20c", "shasum": "" }, "require": { - "php": ">=7.3" + "php": ">=7.2 <8.1" + }, + "conflict": { + "nette/di": "<3.0.6" }, "require-dev": { - "ext-pcntl": "*", - "phpunit/phpunit": "^9.3" + "nette/tester": "~2.0", + "phpstan/phpstan": "^0.12", + "tracy/tracy": "^2.3" }, "suggest": { - "ext-pcntl": "*" + "ext-gd": "to use Image", + "ext-iconv": "to use Strings::webalize(), toAscii(), chr() and reverse()", + "ext-intl": "to use Strings::webalize(), toAscii(), normalize() and compare()", + "ext-json": "to use Nette\\Utils\\Json", + "ext-mbstring": "to use Strings::lower() etc...", + "ext-tokenizer": "to use Nette\\Utils\\Reflection::getUseStatements()", + "ext-xml": "to use Strings::length() etc. when mbstring is not available" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.1-dev" + "dev-master": "3.2-dev" } }, "autoload": { @@ -6588,62 +6794,79 @@ }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "BSD-3-Clause", + "GPL-2.0-only", + "GPL-3.0-only" ], "authors": [ { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" + "name": "David Grudl", + "homepage": "https://davidgrudl.com" + }, + { + "name": "Nette Community", + "homepage": "https://nette.org/contributors" } ], - "description": "Invoke callables with a timeout", - "homepage": "https://github.com/sebastianbergmann/php-invoker/", + "description": "🛠 Nette Utils: lightweight utilities for string & array manipulation, image handling, safe JSON encoding/decoding, validation, slug or strong password generating etc.", + "homepage": "https://nette.org", "keywords": [ - "process" + "array", + "core", + "datetime", + "images", + "json", + "nette", + "paginator", + "password", + "slugify", + "string", + "unicode", + "utf-8", + "utility", + "validation" ], "support": { - "issues": "https://github.com/sebastianbergmann/php-invoker/issues", - "source": "https://github.com/sebastianbergmann/php-invoker/tree/3.1.1" + "issues": "https://github.com/nette/utils/issues", + "source": "https://github.com/nette/utils/tree/v3.2.2" }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2020-09-28T05:58:55+00:00" + "time": "2021-03-03T22:53:25+00:00" }, { - "name": "phpunit/php-text-template", - "version": "2.0.4", + "name": "nikic/php-parser", + "version": "v4.10.5", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/php-text-template.git", - "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28" + "url": "https://github.com/nikic/PHP-Parser.git", + "reference": "4432ba399e47c66624bc73c8c0f811e5c109576f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28", - "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/4432ba399e47c66624bc73c8c0f811e5c109576f", + "reference": "4432ba399e47c66624bc73c8c0f811e5c109576f", "shasum": "" }, "require": { - "php": ">=7.3" + "ext-tokenizer": "*", + "php": ">=7.0" }, "require-dev": { - "phpunit/phpunit": "^9.3" + "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": "2.0-dev" + "dev-master": "4.9-dev" } }, "autoload": { - "classmap": [ - "src/" - ] + "psr-4": { + "PhpParser\\": "lib/PhpParser" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -6651,216 +6874,206 @@ ], "authors": [ { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" + "name": "Nikita Popov" } ], - "description": "Simple template engine.", - "homepage": "https://github.com/sebastianbergmann/php-text-template/", + "description": "A PHP parser written in PHP", "keywords": [ - "template" + "parser", + "php" ], "support": { - "issues": "https://github.com/sebastianbergmann/php-text-template/issues", - "source": "https://github.com/sebastianbergmann/php-text-template/tree/2.0.4" + "issues": "https://github.com/nikic/PHP-Parser/issues", + "source": "https://github.com/nikic/PHP-Parser/tree/v4.10.5" }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2020-10-26T05:33:50+00:00" + "time": "2021-05-03T19:11:20+00:00" }, { - "name": "phpunit/php-timer", - "version": "5.0.3", + "name": "nunomaduro/phpinsights", + "version": "v1.14.1", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/php-timer.git", - "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2" + "url": "https://github.com/nunomaduro/phpinsights.git", + "reference": "d8204dc1c30e5f0fe725b29eac1b5ea2202a7fcf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2", - "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2", + "url": "https://api.github.com/repos/nunomaduro/phpinsights/zipball/d8204dc1c30e5f0fe725b29eac1b5ea2202a7fcf", + "reference": "d8204dc1c30e5f0fe725b29eac1b5ea2202a7fcf", "shasum": "" }, "require": { - "php": ">=7.3" + "composer/composer": "^1.7", + "ext-iconv": "*", + "ext-json": "*", + "ext-mbstring": "*", + "ext-tokenizer": "*", + "friendsofphp/php-cs-fixer": "^2.15", + "justinrainbow/json-schema": "^5.1", + "league/container": "^3.2", + "object-calisthenics/phpcs-calisthenics-rules": "^3.7", + "php": "^7.2", + "phploc/phploc": "^5.0|^6.0", + "psr/container": "^1.0", + "slevomat/coding-standard": "^6.0", + "squizlabs/php_codesniffer": "^3.4", + "symfony/console": "^4.2|^5.0", + "symfony/finder": "^4.2|^5.0", + "symfony/http-client": "^4.3|^5.0" }, "require-dev": { - "phpunit/phpunit": "^9.3" + "ergebnis/phpstan-rules": "^0.14.0", + "illuminate/console": "^5.8|^6.0|^7.0", + "illuminate/support": "^5.8|^6.0|^7.0", + "mockery/mockery": "^1.0", + "phpstan/phpstan-strict-rules": "^0.12", + "phpunit/phpunit": "^8.0|^9.0", + "symfony/var-dumper": "^4.2|^5.0", + "symplify/easy-coding-standard": "^7.1", + "thecodingmachine/phpstan-strict-rules": "^0.12.0" + }, + "suggest": { + "ext-simplexml": "It is needed for the checkstyle formatter" }, + "bin": [ + "bin/phpinsights" + ], "type": "library", "extra": { - "branch-alias": { - "dev-master": "5.0-dev" + "laravel": { + "providers": [ + "NunoMaduro\\PhpInsights\\Application\\Adapters\\Laravel\\InsightsServiceProvider" + ] } }, "autoload": { - "classmap": [ - "src/" - ] + "psr-4": { + "NunoMaduro\\PhpInsights\\": "src" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" + "name": "Nuno Maduro", + "email": "enunomaduro@gmail.com" } ], - "description": "Utility class for timing", - "homepage": "https://github.com/sebastianbergmann/php-timer/", + "description": "Instant PHP quality checks from your console.", "keywords": [ - "timer" + "Insights", + "code", + "console", + "php", + "quality", + "source" ], "support": { - "issues": "https://github.com/sebastianbergmann/php-timer/issues", - "source": "https://github.com/sebastianbergmann/php-timer/tree/5.0.3" + "issues": "https://github.com/nunomaduro/phpinsights/issues", + "source": "https://github.com/nunomaduro/phpinsights/tree/v1.14.1" }, "funding": [ { - "url": "https://github.com/sebastianbergmann", + "url": "https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66BYDWAT92N6L", + "type": "custom" + }, + { + "url": "https://github.com/nunomaduro", + "type": "github" + }, + { + "url": "https://github.com/olivernybroe", "type": "github" + }, + { + "url": "https://www.patreon.com/nunomaduro", + "type": "patreon" } ], - "time": "2020-10-26T13:16:10+00:00" + "time": "2021-01-27T19:08:59+00:00" }, { - "name": "phpunit/phpunit", - "version": "9.5.4", + "name": "object-calisthenics/phpcs-calisthenics-rules", + "version": "v3.8.0", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "c73c6737305e779771147af66c96ca6a7ed8a741" + "url": "https://github.com/object-calisthenics/phpcs-calisthenics-rules.git", + "reference": "c26ce1f98ea25e4791ab0f171b2737a4f5609de6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/c73c6737305e779771147af66c96ca6a7ed8a741", - "reference": "c73c6737305e779771147af66c96ca6a7ed8a741", + "url": "https://api.github.com/repos/object-calisthenics/phpcs-calisthenics-rules/zipball/c26ce1f98ea25e4791ab0f171b2737a4f5609de6", + "reference": "c26ce1f98ea25e4791ab0f171b2737a4f5609de6", "shasum": "" }, "require": { - "doctrine/instantiator": "^1.3.1", - "ext-dom": "*", - "ext-json": "*", - "ext-libxml": "*", - "ext-mbstring": "*", - "ext-xml": "*", - "ext-xmlwriter": "*", - "myclabs/deep-copy": "^1.10.1", - "phar-io/manifest": "^2.0.1", - "phar-io/version": "^3.0.2", - "php": ">=7.3", - "phpspec/prophecy": "^1.12.1", - "phpunit/php-code-coverage": "^9.2.3", - "phpunit/php-file-iterator": "^3.0.5", - "phpunit/php-invoker": "^3.1.1", - "phpunit/php-text-template": "^2.0.3", - "phpunit/php-timer": "^5.0.2", - "sebastian/cli-parser": "^1.0.1", - "sebastian/code-unit": "^1.0.6", - "sebastian/comparator": "^4.0.5", - "sebastian/diff": "^4.0.3", - "sebastian/environment": "^5.1.3", - "sebastian/exporter": "^4.0.3", - "sebastian/global-state": "^5.0.1", - "sebastian/object-enumerator": "^4.0.3", - "sebastian/resource-operations": "^3.0.3", - "sebastian/type": "^2.3", - "sebastian/version": "^3.0.2" + "nette/utils": "^3.1", + "php": "^7.2", + "slevomat/coding-standard": "^6.3", + "squizlabs/php_codesniffer": "^3.5" }, "require-dev": { - "ext-pdo": "*", - "phpspec/prophecy-phpunit": "^2.0.1" - }, - "suggest": { - "ext-soap": "*", - "ext-xdebug": "*" - }, - "bin": [ - "phpunit" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "9.5-dev" - } - }, + "phpstan/phpdoc-parser": "0.4.8 as 0.4.4", + "phpstan/phpstan": "^0.12.32", + "phpunit/phpunit": "^8.5|^9.0", + "rector/rector": "^0.7.43", + "symplify/changelog-linker": "^8.1", + "symplify/coding-standard": "^8.1", + "symplify/easy-coding-standard-tester": "^8.1", + "symplify/phpstan-extensions": "^8.1", + "tracy/tracy": "^2.7" + }, + "type": "phpcodesniffer-standard", "autoload": { - "classmap": [ - "src/" - ], - "files": [ - "src/Framework/Assert/Functions.php" - ] + "psr-4": { + "ObjectCalisthenics\\": "src/ObjectCalisthenics" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "The PHP Unit Testing framework.", - "homepage": "https://phpunit.de/", - "keywords": [ - "phpunit", - "testing", - "xunit" + "MIT" ], + "description": "PHP CodeSniffer Object Calisthenics rules/sniffs", "support": { - "issues": "https://github.com/sebastianbergmann/phpunit/issues", - "source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.4" + "issues": "https://github.com/object-calisthenics/phpcs-calisthenics-rules/issues", + "source": "https://github.com/object-calisthenics/phpcs-calisthenics-rules/tree/master" }, - "funding": [ - { - "url": "https://phpunit.de/donate.html", - "type": "custom" - }, - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2021-03-23T07:16:29+00:00" + "abandoned": "symplify/phpstan-rules", + "time": "2020-07-06T12:11:43+00:00" }, { - "name": "ralouphie/getallheaders", - "version": "3.0.3", + "name": "ondram/ci-detector", + "version": "3.5.1", "source": { "type": "git", - "url": "https://github.com/ralouphie/getallheaders.git", - "reference": "120b605dfeb996808c31b6477290a714d356e822" + "url": "https://github.com/OndraM/ci-detector.git", + "reference": "594e61252843b68998bddd48078c5058fe9028bd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ralouphie/getallheaders/zipball/120b605dfeb996808c31b6477290a714d356e822", - "reference": "120b605dfeb996808c31b6477290a714d356e822", + "url": "https://api.github.com/repos/OndraM/ci-detector/zipball/594e61252843b68998bddd48078c5058fe9028bd", + "reference": "594e61252843b68998bddd48078c5058fe9028bd", "shasum": "" }, "require": { - "php": ">=5.6" + "php": "^7.1 || ^8.0" }, "require-dev": { - "php-coveralls/php-coveralls": "^2.1", - "phpunit/phpunit": "^5 || ^6.5" + "ergebnis/composer-normalize": "^2.2", + "lmc/coding-standard": "^1.3 || ^2.0", + "php-parallel-lint/php-parallel-lint": "^1.1", + "phpstan/extension-installer": "^1.0.3", + "phpstan/phpstan": "^0.12.0", + "phpstan/phpstan-phpunit": "^0.12.1", + "phpunit/phpunit": "^7.1 || ^8.0 || ^9.0" }, "type": "library", "autoload": { - "files": [ - "src/getallheaders.php" - ] + "psr-4": { + "OndraM\\CiDetector\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -6868,148 +7081,191 @@ ], "authors": [ { - "name": "Ralph Khattar", - "email": "ralph.khattar@gmail.com" + "name": "Ondřej Machulda", + "email": "ondrej.machulda@gmail.com" } ], - "description": "A polyfill for getallheaders.", + "description": "Detect continuous integration environment and provide unified access to properties of current build", + "keywords": [ + "CircleCI", + "Codeship", + "Wercker", + "adapter", + "appveyor", + "aws", + "aws codebuild", + "bamboo", + "bitbucket", + "buddy", + "ci-info", + "codebuild", + "continuous integration", + "continuousphp", + "drone", + "github", + "gitlab", + "interface", + "jenkins", + "teamcity", + "travis" + ], "support": { - "issues": "https://github.com/ralouphie/getallheaders/issues", - "source": "https://github.com/ralouphie/getallheaders/tree/develop" + "issues": "https://github.com/OndraM/ci-detector/issues", + "source": "https://github.com/OndraM/ci-detector/tree/main" }, - "time": "2019-03-08T08:55:37+00:00" + "time": "2020-09-04T11:21:14+00:00" }, { - "name": "richcongress/fixture-test", - "version": "v0.1.1", + "name": "phar-io/manifest", + "version": "2.0.1", "source": { "type": "git", - "url": "https://github.com/richcongress/fixture-test.git", - "reference": "00abb6cac8828ce1bc2fdd9f500b4043317a11bd" + "url": "https://github.com/phar-io/manifest.git", + "reference": "85265efd3af7ba3ca4b2a2c34dbfc5788dd29133" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/richcongress/fixture-test/zipball/00abb6cac8828ce1bc2fdd9f500b4043317a11bd", - "reference": "00abb6cac8828ce1bc2fdd9f500b4043317a11bd", + "url": "https://api.github.com/repos/phar-io/manifest/zipball/85265efd3af7ba3ca4b2a2c34dbfc5788dd29133", + "reference": "85265efd3af7ba3ca4b2a2c34dbfc5788dd29133", "shasum": "" }, "require": { - "doctrine/annotations": "^1.11", - "nelmio/alice": "^3.7", - "php": ">=7.3", - "php-di/phpdoc-reader": "^2.2" - }, - "require-dev": { - "richcongress/test-tools": "dev-master", - "roave/security-advisories": "dev-master" + "ext-dom": "*", + "ext-phar": "*", + "ext-xmlwriter": "*", + "phar-io/version": "^3.0.1", + "php": "^7.2 || ^8.0" }, "type": "library", - "autoload": { - "psr-4": { - "RichCongress\\FixtureTestBundle\\": "" + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" } }, + "autoload": { + "classmap": [ + "src/" + ] + }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "RichCongress", - "homepage": "https://www.richcongress.com" + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" + }, + { + "name": "Sebastian Heuer", + "email": "sebastian@phpeople.de", + "role": "Developer" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "Developer" } ], - "description": "Generate random and meaningful data for objects", + "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", "support": { - "docs": "https://github.com/richcongress/fixture-test/blob/master/README.md", - "email": "contact@richcongress.com", - "issues": "https://github.com/richcongress/fixture-test/issues", - "source": "https://github.com/richcongress/fixture-test" + "issues": "https://github.com/phar-io/manifest/issues", + "source": "https://github.com/phar-io/manifest/tree/master" }, - "time": "2021-02-05T09:41:38+00:00" + "time": "2020-06-27T14:33:11+00:00" }, { - "name": "richcongress/recurrent-fixtures-test-bundle", - "version": "v0.1.2", + "name": "phar-io/version", + "version": "3.1.0", "source": { "type": "git", - "url": "https://github.com/rich-id/recurrent-fixtures-test-bundle.git", - "reference": "fe0f4a90b7748a3a91cdfdfb25859c40fd0fbdd7" + "url": "https://github.com/phar-io/version.git", + "reference": "bae7c545bef187884426f042434e561ab1ddb182" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/rich-id/recurrent-fixtures-test-bundle/zipball/fe0f4a90b7748a3a91cdfdfb25859c40fd0fbdd7", - "reference": "fe0f4a90b7748a3a91cdfdfb25859c40fd0fbdd7", + "url": "https://api.github.com/repos/phar-io/version/zipball/bae7c545bef187884426f042434e561ab1ddb182", + "reference": "bae7c545bef187884426f042434e561ab1ddb182", "shasum": "" }, "require": { - "doctrine/doctrine-fixtures-bundle": "^3.4", - "php": ">=7.3", - "richcongress/bundle-toolbox": "*", - "richcongress/fixture-test": "^0.1", - "richcongress/web-test-bundle": "^0.1" - }, - "require-dev": { - "infection/infection": "^0.16.4", - "php-coveralls/php-coveralls": "^2.1", - "roave/security-advisories": "dev-master" + "php": "^7.2 || ^8.0" }, - "type": "symfony-bundle", + "type": "library", "autoload": { - "psr-4": { - "RichCongress\\RecurrentFixturesTestBundle\\": "" - } + "classmap": [ + "src/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "RichCongress", - "homepage": "https://www.richcongress.com" + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" + }, + { + "name": "Sebastian Heuer", + "email": "sebastian@phpeople.de", + "role": "Developer" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "Developer" } ], - "description": "A magic bundle", + "description": "Library for handling version information and constraints", "support": { - "docs": "https://github.com/richcongress/recurrent-fixtures-test-bundle/blob/master/README.md", - "email": "contact@richcongress.com", - "issues": "https://github.com/richcongress/recurrent-fixtures-test-bundle/issues", - "source": "https://github.com/richcongress/recurrent-fixtures-test-bundle" + "issues": "https://github.com/phar-io/version/issues", + "source": "https://github.com/phar-io/version/tree/3.1.0" }, - "time": "2021-03-02T11:00:45+00:00" + "time": "2021-02-23T14:00:09+00:00" }, { - "name": "richcongress/test-framework", - "version": "v0.1.0", + "name": "php-coveralls/php-coveralls", + "version": "v2.4.3", "source": { "type": "git", - "url": "https://github.com/richcongress/test-framework.git", - "reference": "762c08ef66d5c1a13ed2a1b18cf2883acfa680de" + "url": "https://github.com/php-coveralls/php-coveralls.git", + "reference": "909381bd40a17ae6e9076051f0d73293c1c091af" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/richcongress/test-framework/zipball/762c08ef66d5c1a13ed2a1b18cf2883acfa680de", - "reference": "762c08ef66d5c1a13ed2a1b18cf2883acfa680de", + "url": "https://api.github.com/repos/php-coveralls/php-coveralls/zipball/909381bd40a17ae6e9076051f0d73293c1c091af", + "reference": "909381bd40a17ae6e9076051f0d73293c1c091af", "shasum": "" }, "require": { - "doctrine/annotations": "^1.11", - "php": ">=7.3", - "phpunit/phpunit": "^7|^8|^9" + "ext-json": "*", + "ext-simplexml": "*", + "guzzlehttp/guzzle": "^6.0 || ^7.0", + "php": "^5.5 || ^7.0 || ^8.0", + "psr/log": "^1.0", + "symfony/config": "^2.1 || ^3.0 || ^4.0 || ^5.0", + "symfony/console": "^2.1 || ^3.0 || ^4.0 || ^5.0", + "symfony/stopwatch": "^2.0 || ^3.0 || ^4.0 || ^5.0", + "symfony/yaml": "^2.0.5 || ^3.0 || ^4.0 || ^5.0" }, "require-dev": { - "php-coveralls/php-coveralls": "^2.1", - "phpunit/phpunit": "^7.5" + "phpunit/phpunit": "^4.8.35 || ^5.4.3 || ^6.0 || ^7.0 || ^8.0 || ^9.0", + "sanmai/phpunit-legacy-adapter": "^6.1 || ^8.0" + }, + "suggest": { + "symfony/http-kernel": "Allows Symfony integration" }, + "bin": [ + "bin/php-coveralls" + ], "type": "library", "autoload": { "psr-4": { - "RichCongress\\TestFramework\\": "" - }, - "files": [ - "TestConfiguration/Annotation/TestConfig.php" - ] + "PhpCoveralls\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -7017,166 +7273,234 @@ ], "authors": [ { - "name": "RichCongress", - "homepage": "https://www.richcongress.com" - } - ], - "description": "A Test framework that uses the PHPUnit Extension with priorities", - "support": { - "docs": "https://github.com/richcongress/test-framework/blob/master/README.md", - "email": "contact@richcongress.com", - "issues": "https://github.com/richcongress/test-framework/issues", - "source": "https://github.com/richcongress/test-framework" + "name": "Kitamura Satoshi", + "email": "with.no.parachute@gmail.com", + "homepage": "https://www.facebook.com/satooshi.jp", + "role": "Original creator" + }, + { + "name": "Takashi Matsuo", + "email": "tmatsuo@google.com" + }, + { + "name": "Google Inc" + }, + { + "name": "Dariusz Ruminski", + "email": "dariusz.ruminski@gmail.com", + "homepage": "https://github.com/keradus" + }, + { + "name": "Contributors", + "homepage": "https://github.com/php-coveralls/php-coveralls/graphs/contributors" + } + ], + "description": "PHP client library for Coveralls API", + "homepage": "https://github.com/php-coveralls/php-coveralls", + "keywords": [ + "ci", + "coverage", + "github", + "test" + ], + "support": { + "issues": "https://github.com/php-coveralls/php-coveralls/issues", + "source": "https://github.com/php-coveralls/php-coveralls/tree/v2.4.3" }, - "time": "2021-02-04T13:47:51+00:00" + "time": "2020-12-24T09:17:03+00:00" }, { - "name": "richcongress/test-suite", - "version": "v0.1.0", + "name": "php-cs-fixer/diff", + "version": "v1.3.1", "source": { "type": "git", - "url": "https://github.com/richcongress/test-suite.git", - "reference": "3563ea09e3cf757b2425574f11a7bc3a91155968" + "url": "https://github.com/PHP-CS-Fixer/diff.git", + "reference": "dbd31aeb251639ac0b9e7e29405c1441907f5759" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/richcongress/test-suite/zipball/3563ea09e3cf757b2425574f11a7bc3a91155968", - "reference": "3563ea09e3cf757b2425574f11a7bc3a91155968", + "url": "https://api.github.com/repos/PHP-CS-Fixer/diff/zipball/dbd31aeb251639ac0b9e7e29405c1441907f5759", + "reference": "dbd31aeb251639ac0b9e7e29405c1441907f5759", "shasum": "" }, "require": { - "php": ">=7.3", - "richcongress/fixture-test": "^0.1", - "richcongress/recurrent-fixtures-test-bundle": "^0.1", - "richcongress/test-framework": "^0.1", - "richcongress/test-tools": "^0.1", - "richcongress/web-test-bundle": "^0.1" + "php": "^5.6 || ^7.0 || ^8.0" }, - "type": "symfony-bundle", + "require-dev": { + "phpunit/phpunit": "^5.7.23 || ^6.4.3 || ^7.0", + "symfony/process": "^3.3" + }, + "type": "library", "autoload": { - "psr-4": { - "RichCongress\\TestSuite\\": "" - } + "classmap": [ + "src/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "RichCongress", - "homepage": "https://www.richcongress.com" + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Kore Nordmann", + "email": "mail@kore-nordmann.de" + }, + { + "name": "SpacePossum" } ], - "description": "The full RichCongress test suite for Symfony", + "description": "sebastian/diff v2 backport support for PHP5.6", + "homepage": "https://github.com/PHP-CS-Fixer", + "keywords": [ + "diff" + ], "support": { - "issues": "https://github.com/richcongress/test-suite/issues", - "source": "https://github.com/richcongress/test-suite/tree/v0.1.0" + "issues": "https://github.com/PHP-CS-Fixer/diff/issues", + "source": "https://github.com/PHP-CS-Fixer/diff/tree/v1.3.1" }, - "time": "2021-02-05T12:53:55+00:00" + "time": "2020-10-14T08:39:05+00:00" }, { - "name": "richcongress/test-tools", - "version": "v0.1.0", + "name": "php-di/phpdoc-reader", + "version": "2.2.1", "source": { "type": "git", - "url": "https://github.com/richcongress/test-tools.git", - "reference": "d22d3d6d4af9e29827c10ef1f40f785ae83d5651" + "url": "https://github.com/PHP-DI/PhpDocReader.git", + "reference": "66daff34cbd2627740ffec9469ffbac9f8c8185c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/richcongress/test-tools/zipball/d22d3d6d4af9e29827c10ef1f40f785ae83d5651", - "reference": "d22d3d6d4af9e29827c10ef1f40f785ae83d5651", + "url": "https://api.github.com/repos/PHP-DI/PhpDocReader/zipball/66daff34cbd2627740ffec9469ffbac9f8c8185c", + "reference": "66daff34cbd2627740ffec9469ffbac9f8c8185c", "shasum": "" }, "require": { - "mockery/mockery": "^1.0", - "php": ">=7.3", - "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0" + "php": ">=7.2.0" }, "require-dev": { - "doctrine/annotations": "^1.11@dev", - "doctrine/orm": "^2.0 || ^3.0", - "php-coveralls/php-coveralls": "^2.1", - "phpunit/phpunit": "^8.0", - "richcongress/static-analysis": "dev-master", - "roave/security-advisories": "dev-master", - "symfony/dependency-injection": "^4.0 || ^5.0", - "symfony/security": "^4.0 || ^5.0", - "symfony/translation": "^4.0 || ^5.0", - "symfony/validator": "^4.0 || ^5.0" + "mnapoli/hard-mode": "~0.3.0", + "phpunit/phpunit": "^8.5|^9.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "PhpDocReader\\": "src/PhpDocReader" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "PhpDocReader parses @var and @param values in PHP docblocks (supports namespaced class names with the same resolution rules as PHP)", + "keywords": [ + "phpdoc", + "reflection" + ], + "support": { + "issues": "https://github.com/PHP-DI/PhpDocReader/issues", + "source": "https://github.com/PHP-DI/PhpDocReader/tree/2.2.1" + }, + "time": "2020-10-12T12:39:22+00:00" + }, + { + "name": "phploc/phploc", + "version": "6.0.2", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/phploc.git", + "reference": "00e3bade7b22a6f23b17c3bf2fa4dba24ead8a29" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/phploc/zipball/00e3bade7b22a6f23b17c3bf2fa4dba24ead8a29", + "reference": "00e3bade7b22a6f23b17c3bf2fa4dba24ead8a29", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-json": "*", + "php": "^7.3", + "sebastian/finder-facade": "^2.0", + "sebastian/version": "^3.0", + "symfony/console": "^4.0 || ^5.0" }, + "bin": [ + "phploc" + ], "type": "library", "extra": { - "hooks": { - "pre-commit": [ - "./bin/phpstan analyse", - "./bin/phpinsights analyse ./" - ] + "branch-alias": { + "dev-master": "6.0-dev" } }, "autoload": { - "psr-4": { - "RichCongress\\TestTools\\": "" - }, - "files": [ - "./Helper/GlobalNamespaceHelper.php" + "classmap": [ + "src/" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "RichCongress", - "homepage": "https://www.richcongress.com" + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" } ], - "description": "This library gives a set of tools to test your application with Unit tests.", + "description": "A tool for quickly measuring the size of a PHP project.", + "homepage": "https://github.com/sebastianbergmann/phploc", "support": { - "issues": "https://github.com/richcongress/test-tools/issues", - "source": "https://github.com/richcongress/test-tools/tree/v0.1.0" + "issues": "https://github.com/sebastianbergmann/phploc/issues", + "source": "https://github.com/sebastianbergmann/phploc/tree/6.0.2" }, - "time": "2021-01-29T13:51:52+00:00" + "time": "2020-02-28T05:42:22+00:00" }, { - "name": "richcongress/web-test-bundle", - "version": "v0.1.1", + "name": "phpmetrics/phpmetrics", + "version": "v2.7.4", "source": { "type": "git", - "url": "https://github.com/richcongress/web-test-bundle.git", - "reference": "571e91406ff393ac32b2501193a01de3803ee145" + "url": "https://github.com/phpmetrics/PhpMetrics.git", + "reference": "e6a7aee0e0948e363eb78ce9d58573cd5af2cdec" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/richcongress/web-test-bundle/zipball/571e91406ff393ac32b2501193a01de3803ee145", - "reference": "571e91406ff393ac32b2501193a01de3803ee145", + "url": "https://api.github.com/repos/phpmetrics/PhpMetrics/zipball/e6a7aee0e0948e363eb78ce9d58573cd5af2cdec", + "reference": "e6a7aee0e0948e363eb78ce9d58573cd5af2cdec", "shasum": "" }, "require": { - "dama/doctrine-test-bundle": "^6.3", - "ext-json": "*", - "php": ">=7.3", - "php-di/phpdoc-reader": "^2.2", - "richcongress/bundle-toolbox": "*", - "richcongress/test-framework": "^0.1.", - "richcongress/test-tools": "^0.1", - "symfony/browser-kit": "^3.0 || ^4.0 || ^5.0", - "symfony/console": "^4.0|^5.0" + "ext-dom": "*", + "ext-tokenizer": "*", + "nikic/php-parser": "^3|^4", + "php": ">=5.5" + }, + "replace": { + "halleck45/php-metrics": "*", + "halleck45/phpmetrics": "*" }, "require-dev": { - "roave/security-advisories": "dev-master", - "symfony/form": "^4.0|^5.0", - "symfony/orm-pack": "^1.0", - "symfony/security-bundle": "^4.0|^5.0", - "symfony/yaml": "^5.1" + "phpunit/phpunit": "^4.8.36 || ^5.7.27 || ^6.5.14", + "sebastian/comparator": ">=1.2.3", + "squizlabs/php_codesniffer": "^3.5" }, - "type": "symfony-bundle", + "bin": [ + "bin/phpmetrics" + ], + "type": "library", "autoload": { - "psr-4": { - "RichCongress\\WebTestBundle\\": "" - } + "psr-0": { + "Hal\\": "./src/" + }, + "files": [ + "./src/functions.php" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -7184,71 +7508,1090 @@ ], "authors": [ { - "name": "RichCongress", - "homepage": "https://www.richcongress.com" + "name": "Jean-François Lépine", + "email": "lepinejeanfrancois@yahoo.fr", + "homepage": "http://www.lepine.pro", + "role": "Copyright Holder" } ], - "description": "A magic bundle", + "description": "Static analyzer tool for PHP : Coupling, Cyclomatic complexity, Maintainability Index, Halstead's metrics... and more !", + "homepage": "http://www.phpmetrics.org", + "keywords": [ + "analysis", + "qa", + "quality", + "testing" + ], "support": { - "docs": "https://github.com/richcongress/web-test-bundle/blob/master/README.md", - "email": "contact@richcongress.com", - "issues": "https://github.com/richcongress/web-test-bundle/issues", - "source": "https://github.com/richcongress/web-test-bundle" + "issues": "https://github.com/PhpMetrics/PhpMetrics/issues", + "source": "https://github.com/phpmetrics/PhpMetrics/tree/master" }, - "time": "2021-02-05T09:31:06+00:00" + "time": "2020-06-30T20:33:55+00:00" }, { - "name": "roave/security-advisories", - "version": "dev-latest", + "name": "phpspec/prophecy", + "version": "1.13.0", "source": { "type": "git", - "url": "https://github.com/Roave/SecurityAdvisories.git", - "reference": "db47aac368cb81bc9d3b09556e63b716be61cf43" + "url": "https://github.com/phpspec/prophecy.git", + "reference": "be1996ed8adc35c3fd795488a653f4b518be70ea" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/db47aac368cb81bc9d3b09556e63b716be61cf43", - "reference": "db47aac368cb81bc9d3b09556e63b716be61cf43", + "url": "https://api.github.com/repos/phpspec/prophecy/zipball/be1996ed8adc35c3fd795488a653f4b518be70ea", + "reference": "be1996ed8adc35c3fd795488a653f4b518be70ea", "shasum": "" }, - "conflict": { - "3f/pygmentize": "<1.2", - "adodb/adodb-php": "<5.20.12", - "alterphp/easyadmin-extension-bundle": ">=1.2,<1.2.11|>=1.3,<1.3.1", - "amphp/artax": "<1.0.6|>=2,<2.0.6", - "amphp/http": "<1.0.1", - "amphp/http-client": ">=4,<4.4", - "api-platform/core": ">=2.2,<2.2.10|>=2.3,<2.3.6", - "asymmetricrypt/asymmetricrypt": ">=0,<9.9.99", - "aws/aws-sdk-php": ">=3,<3.2.1", - "bagisto/bagisto": "<0.1.5", - "barrelstrength/sprout-base-email": "<1.2.7", - "barrelstrength/sprout-forms": "<3.9", - "baserproject/basercms": ">=4,<=4.3.6|>=4.4,<4.4.1", - "bk2k/bootstrap-package": ">=7.1,<7.1.2|>=8,<8.0.8|>=9,<9.0.4|>=9.1,<9.1.3|>=10,<10.0.10|>=11,<11.0.3", - "bolt/bolt": "<3.7.1", - "bolt/core": "<4.1.13", - "brightlocal/phpwhois": "<=4.2.5", - "buddypress/buddypress": "<5.1.2", - "bugsnag/bugsnag-laravel": ">=2,<2.0.2", - "cakephp/cakephp": ">=1.3,<1.3.18|>=2,<2.4.99|>=2.5,<2.5.99|>=2.6,<2.6.12|>=2.7,<2.7.6|>=3,<3.5.18|>=3.6,<3.6.15|>=3.7,<3.7.7", - "cart2quote/module-quotation": ">=4.1.6,<=4.4.5|>=5,<5.4.4", - "cartalyst/sentry": "<=2.1.6", - "centreon/centreon": "<18.10.8|>=19,<19.4.5", - "cesnet/simplesamlphp-module-proxystatistics": "<3.1", - "codeigniter/framework": "<=3.0.6", - "composer/composer": "<1.10.22|>=2-alpha.1,<2.0.13", - "contao-components/mediaelement": ">=2.14.2,<2.21.1", - "contao/core": ">=2,<3.5.39", - "contao/core-bundle": ">=4,<4.4.52|>=4.5,<4.9.6|= 4.10.0", - "contao/listing-bundle": ">=4,<4.4.8", - "datadog/dd-trace": ">=0.30,<0.30.2", - "david-garcia/phpwhois": "<=4.3.1", - "derhansen/sf_event_mgt": "<4.3.1|>=5,<5.1.1", - "doctrine/annotations": ">=1,<1.2.7", - "doctrine/cache": ">=1,<1.3.2|>=1.4,<1.4.2", - "doctrine/common": ">=2,<2.4.3|>=2.5,<2.5.1", - "doctrine/dbal": ">=2,<2.0.8|>=2.1,<2.1.2", + "require": { + "doctrine/instantiator": "^1.2", + "php": "^7.2 || ~8.0, <8.1", + "phpdocumentor/reflection-docblock": "^5.2", + "sebastian/comparator": "^3.0 || ^4.0", + "sebastian/recursion-context": "^3.0 || ^4.0" + }, + "require-dev": { + "phpspec/phpspec": "^6.0", + "phpunit/phpunit": "^8.0 || ^9.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.11.x-dev" + } + }, + "autoload": { + "psr-4": { + "Prophecy\\": "src/Prophecy" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Konstantin Kudryashov", + "email": "ever.zet@gmail.com", + "homepage": "http://everzet.com" + }, + { + "name": "Marcello Duarte", + "email": "marcello.duarte@gmail.com" + } + ], + "description": "Highly opinionated mocking framework for PHP 5.3+", + "homepage": "https://github.com/phpspec/prophecy", + "keywords": [ + "Double", + "Dummy", + "fake", + "mock", + "spy", + "stub" + ], + "support": { + "issues": "https://github.com/phpspec/prophecy/issues", + "source": "https://github.com/phpspec/prophecy/tree/1.13.0" + }, + "time": "2021-03-17T13:42:18+00:00" + }, + { + "name": "phpstan/phpdoc-parser", + "version": "0.4.9", + "source": { + "type": "git", + "url": "https://github.com/phpstan/phpdoc-parser.git", + "reference": "98a088b17966bdf6ee25c8a4b634df313d8aa531" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/98a088b17966bdf6ee25c8a4b634df313d8aa531", + "reference": "98a088b17966bdf6ee25c8a4b634df313d8aa531", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0" + }, + "require-dev": { + "consistence/coding-standard": "^3.5", + "ergebnis/composer-normalize": "^2.0.2", + "jakub-onderka/php-parallel-lint": "^0.9.2", + "phing/phing": "^2.16.0", + "phpstan/extension-installer": "^1.0", + "phpstan/phpstan": "^0.12.26", + "phpstan/phpstan-strict-rules": "^0.12", + "phpunit/phpunit": "^6.3", + "slevomat/coding-standard": "^4.7.2", + "symfony/process": "^4.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "0.4-dev" + } + }, + "autoload": { + "psr-4": { + "PHPStan\\PhpDocParser\\": [ + "src/" + ] + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "PHPDoc parser with support for nullable, intersection and generic types", + "support": { + "issues": "https://github.com/phpstan/phpdoc-parser/issues", + "source": "https://github.com/phpstan/phpdoc-parser/tree/master" + }, + "time": "2020-08-03T20:32:43+00:00" + }, + { + "name": "phpstan/phpstan", + "version": "0.12.89", + "source": { + "type": "git", + "url": "https://github.com/phpstan/phpstan.git", + "reference": "54c0f5a6c30511b77128d58b6369f718df250542" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/54c0f5a6c30511b77128d58b6369f718df250542", + "reference": "54c0f5a6c30511b77128d58b6369f718df250542", + "shasum": "" + }, + "require": { + "php": "^7.1|^8.0" + }, + "conflict": { + "phpstan/phpstan-shim": "*" + }, + "bin": [ + "phpstan", + "phpstan.phar" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "0.12-dev" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "PHPStan - PHP Static Analysis Tool", + "support": { + "issues": "https://github.com/phpstan/phpstan/issues", + "source": "https://github.com/phpstan/phpstan/tree/0.12.89" + }, + "funding": [ + { + "url": "https://github.com/ondrejmirtes", + "type": "github" + }, + { + "url": "https://github.com/phpstan", + "type": "github" + }, + { + "url": "https://www.patreon.com/phpstan", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/phpstan/phpstan", + "type": "tidelift" + } + ], + "time": "2021-06-09T20:23:49+00:00" + }, + { + "name": "phpunit/php-code-coverage", + "version": "9.2.6", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-code-coverage.git", + "reference": "f6293e1b30a2354e8428e004689671b83871edde" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/f6293e1b30a2354e8428e004689671b83871edde", + "reference": "f6293e1b30a2354e8428e004689671b83871edde", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-libxml": "*", + "ext-xmlwriter": "*", + "nikic/php-parser": "^4.10.2", + "php": ">=7.3", + "phpunit/php-file-iterator": "^3.0.3", + "phpunit/php-text-template": "^2.0.2", + "sebastian/code-unit-reverse-lookup": "^2.0.2", + "sebastian/complexity": "^2.0", + "sebastian/environment": "^5.1.2", + "sebastian/lines-of-code": "^1.0.3", + "sebastian/version": "^3.0.1", + "theseer/tokenizer": "^1.2.0" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "suggest": { + "ext-pcov": "*", + "ext-xdebug": "*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "9.2-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.", + "homepage": "https://github.com/sebastianbergmann/php-code-coverage", + "keywords": [ + "coverage", + "testing", + "xunit" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.6" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2021-03-28T07:26:59+00:00" + }, + { + "name": "phpunit/php-file-iterator", + "version": "3.0.5", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-file-iterator.git", + "reference": "aa4be8575f26070b100fccb67faabb28f21f66f8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/aa4be8575f26070b100fccb67faabb28f21f66f8", + "reference": "aa4be8575f26070b100fccb67faabb28f21f66f8", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "FilterIterator implementation that filters files based on a list of suffixes.", + "homepage": "https://github.com/sebastianbergmann/php-file-iterator/", + "keywords": [ + "filesystem", + "iterator" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues", + "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/3.0.5" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-09-28T05:57:25+00:00" + }, + { + "name": "phpunit/php-invoker", + "version": "3.1.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-invoker.git", + "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/5a10147d0aaf65b58940a0b72f71c9ac0423cc67", + "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "ext-pcntl": "*", + "phpunit/phpunit": "^9.3" + }, + "suggest": { + "ext-pcntl": "*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.1-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Invoke callables with a timeout", + "homepage": "https://github.com/sebastianbergmann/php-invoker/", + "keywords": [ + "process" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-invoker/issues", + "source": "https://github.com/sebastianbergmann/php-invoker/tree/3.1.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-09-28T05:58:55+00:00" + }, + { + "name": "phpunit/php-text-template", + "version": "2.0.4", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-text-template.git", + "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28", + "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Simple template engine.", + "homepage": "https://github.com/sebastianbergmann/php-text-template/", + "keywords": [ + "template" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-text-template/issues", + "source": "https://github.com/sebastianbergmann/php-text-template/tree/2.0.4" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T05:33:50+00:00" + }, + { + "name": "phpunit/php-timer", + "version": "5.0.3", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-timer.git", + "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2", + "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Utility class for timing", + "homepage": "https://github.com/sebastianbergmann/php-timer/", + "keywords": [ + "timer" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-timer/issues", + "source": "https://github.com/sebastianbergmann/php-timer/tree/5.0.3" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T13:16:10+00:00" + }, + { + "name": "phpunit/phpunit", + "version": "9.5.5", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/phpunit.git", + "reference": "89ff45ea9d70e35522fb6654a2ebc221158de276" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/89ff45ea9d70e35522fb6654a2ebc221158de276", + "reference": "89ff45ea9d70e35522fb6654a2ebc221158de276", + "shasum": "" + }, + "require": { + "doctrine/instantiator": "^1.3.1", + "ext-dom": "*", + "ext-json": "*", + "ext-libxml": "*", + "ext-mbstring": "*", + "ext-xml": "*", + "ext-xmlwriter": "*", + "myclabs/deep-copy": "^1.10.1", + "phar-io/manifest": "^2.0.1", + "phar-io/version": "^3.0.2", + "php": ">=7.3", + "phpspec/prophecy": "^1.12.1", + "phpunit/php-code-coverage": "^9.2.3", + "phpunit/php-file-iterator": "^3.0.5", + "phpunit/php-invoker": "^3.1.1", + "phpunit/php-text-template": "^2.0.3", + "phpunit/php-timer": "^5.0.2", + "sebastian/cli-parser": "^1.0.1", + "sebastian/code-unit": "^1.0.6", + "sebastian/comparator": "^4.0.5", + "sebastian/diff": "^4.0.3", + "sebastian/environment": "^5.1.3", + "sebastian/exporter": "^4.0.3", + "sebastian/global-state": "^5.0.1", + "sebastian/object-enumerator": "^4.0.3", + "sebastian/resource-operations": "^3.0.3", + "sebastian/type": "^2.3.2", + "sebastian/version": "^3.0.2" + }, + "require-dev": { + "ext-pdo": "*", + "phpspec/prophecy-phpunit": "^2.0.1" + }, + "suggest": { + "ext-soap": "*", + "ext-xdebug": "*" + }, + "bin": [ + "phpunit" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "9.5-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ], + "files": [ + "src/Framework/Assert/Functions.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "The PHP Unit Testing framework.", + "homepage": "https://phpunit.de/", + "keywords": [ + "phpunit", + "testing", + "xunit" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/phpunit/issues", + "source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.5" + }, + "funding": [ + { + "url": "https://phpunit.de/donate.html", + "type": "custom" + }, + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2021-06-05T04:49:07+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.", + "support": { + "issues": "https://github.com/ralouphie/getallheaders/issues", + "source": "https://github.com/ralouphie/getallheaders/tree/develop" + }, + "time": "2019-03-08T08:55:37+00:00" + }, + { + "name": "richcongress/fixture-test", + "version": "v0.1.1", + "source": { + "type": "git", + "url": "https://github.com/richcongress/fixture-test.git", + "reference": "00abb6cac8828ce1bc2fdd9f500b4043317a11bd" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/richcongress/fixture-test/zipball/00abb6cac8828ce1bc2fdd9f500b4043317a11bd", + "reference": "00abb6cac8828ce1bc2fdd9f500b4043317a11bd", + "shasum": "" + }, + "require": { + "doctrine/annotations": "^1.11", + "nelmio/alice": "^3.7", + "php": ">=7.3", + "php-di/phpdoc-reader": "^2.2" + }, + "require-dev": { + "richcongress/test-tools": "dev-master", + "roave/security-advisories": "dev-master" + }, + "type": "library", + "autoload": { + "psr-4": { + "RichCongress\\FixtureTestBundle\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "RichCongress", + "homepage": "https://www.richcongress.com" + } + ], + "description": "Generate random and meaningful data for objects", + "support": { + "docs": "https://github.com/richcongress/fixture-test/blob/master/README.md", + "email": "contact@richcongress.com", + "issues": "https://github.com/richcongress/fixture-test/issues", + "source": "https://github.com/richcongress/fixture-test" + }, + "time": "2021-02-05T09:41:38+00:00" + }, + { + "name": "richcongress/recurrent-fixtures-test-bundle", + "version": "v0.1.2", + "source": { + "type": "git", + "url": "https://github.com/rich-id/recurrent-fixtures-test-bundle.git", + "reference": "fe0f4a90b7748a3a91cdfdfb25859c40fd0fbdd7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/rich-id/recurrent-fixtures-test-bundle/zipball/fe0f4a90b7748a3a91cdfdfb25859c40fd0fbdd7", + "reference": "fe0f4a90b7748a3a91cdfdfb25859c40fd0fbdd7", + "shasum": "" + }, + "require": { + "doctrine/doctrine-fixtures-bundle": "^3.4", + "php": ">=7.3", + "richcongress/bundle-toolbox": "*", + "richcongress/fixture-test": "^0.1", + "richcongress/web-test-bundle": "^0.1" + }, + "require-dev": { + "infection/infection": "^0.16.4", + "php-coveralls/php-coveralls": "^2.1", + "roave/security-advisories": "dev-master" + }, + "type": "symfony-bundle", + "autoload": { + "psr-4": { + "RichCongress\\RecurrentFixturesTestBundle\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "RichCongress", + "homepage": "https://www.richcongress.com" + } + ], + "description": "A magic bundle", + "support": { + "docs": "https://github.com/richcongress/recurrent-fixtures-test-bundle/blob/master/README.md", + "email": "contact@richcongress.com", + "issues": "https://github.com/richcongress/recurrent-fixtures-test-bundle/issues", + "source": "https://github.com/richcongress/recurrent-fixtures-test-bundle" + }, + "time": "2021-03-02T11:00:45+00:00" + }, + { + "name": "richcongress/static-analysis", + "version": "dev-master", + "source": { + "type": "git", + "url": "https://github.com/rich-id/static-analysis.git", + "reference": "da03798b3ab2bf4ac5dae6c5b3be2258fd261029" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/rich-id/static-analysis/zipball/da03798b3ab2bf4ac5dae6c5b3be2258fd261029", + "reference": "da03798b3ab2bf4ac5dae6c5b3be2258fd261029", + "shasum": "" + }, + "require": { + "brainmaestro/composer-git-hooks": "^2.8", + "friendsofphp/php-cs-fixer": "^2.0 || ^3.0", + "nunomaduro/phpinsights": "^1.0", + "phpmetrics/phpmetrics": "^2.7", + "phpstan/phpstan": "^0.12" + }, + "default-branch": true, + "bin": [ + "bin/static_analysis" + ], + "type": "library", + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Guilloux", + "email": "nguilloux@richcongress.com" + } + ], + "description": "A library to setup quickly the static analysis tools for RichCongress", + "support": { + "issues": "https://github.com/rich-id/static-analysis/issues", + "source": "https://github.com/rich-id/static-analysis/tree/master" + }, + "time": "2021-06-10T14:07:14+00:00" + }, + { + "name": "richcongress/test-framework", + "version": "v0.1.0", + "source": { + "type": "git", + "url": "https://github.com/richcongress/test-framework.git", + "reference": "762c08ef66d5c1a13ed2a1b18cf2883acfa680de" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/richcongress/test-framework/zipball/762c08ef66d5c1a13ed2a1b18cf2883acfa680de", + "reference": "762c08ef66d5c1a13ed2a1b18cf2883acfa680de", + "shasum": "" + }, + "require": { + "doctrine/annotations": "^1.11", + "php": ">=7.3", + "phpunit/phpunit": "^7|^8|^9" + }, + "require-dev": { + "php-coveralls/php-coveralls": "^2.1", + "phpunit/phpunit": "^7.5" + }, + "type": "library", + "autoload": { + "psr-4": { + "RichCongress\\TestFramework\\": "" + }, + "files": [ + "TestConfiguration/Annotation/TestConfig.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "RichCongress", + "homepage": "https://www.richcongress.com" + } + ], + "description": "A Test framework that uses the PHPUnit Extension with priorities", + "support": { + "docs": "https://github.com/richcongress/test-framework/blob/master/README.md", + "email": "contact@richcongress.com", + "issues": "https://github.com/richcongress/test-framework/issues", + "source": "https://github.com/richcongress/test-framework" + }, + "time": "2021-02-04T13:47:51+00:00" + }, + { + "name": "richcongress/test-suite", + "version": "v0.1.0", + "source": { + "type": "git", + "url": "https://github.com/richcongress/test-suite.git", + "reference": "3563ea09e3cf757b2425574f11a7bc3a91155968" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/richcongress/test-suite/zipball/3563ea09e3cf757b2425574f11a7bc3a91155968", + "reference": "3563ea09e3cf757b2425574f11a7bc3a91155968", + "shasum": "" + }, + "require": { + "php": ">=7.3", + "richcongress/fixture-test": "^0.1", + "richcongress/recurrent-fixtures-test-bundle": "^0.1", + "richcongress/test-framework": "^0.1", + "richcongress/test-tools": "^0.1", + "richcongress/web-test-bundle": "^0.1" + }, + "type": "symfony-bundle", + "autoload": { + "psr-4": { + "RichCongress\\TestSuite\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "RichCongress", + "homepage": "https://www.richcongress.com" + } + ], + "description": "The full RichCongress test suite for Symfony", + "support": { + "issues": "https://github.com/richcongress/test-suite/issues", + "source": "https://github.com/richcongress/test-suite/tree/v0.1.0" + }, + "time": "2021-02-05T12:53:55+00:00" + }, + { + "name": "richcongress/test-tools", + "version": "v0.1.0", + "source": { + "type": "git", + "url": "https://github.com/richcongress/test-tools.git", + "reference": "d22d3d6d4af9e29827c10ef1f40f785ae83d5651" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/richcongress/test-tools/zipball/d22d3d6d4af9e29827c10ef1f40f785ae83d5651", + "reference": "d22d3d6d4af9e29827c10ef1f40f785ae83d5651", + "shasum": "" + }, + "require": { + "mockery/mockery": "^1.0", + "php": ">=7.3", + "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0" + }, + "require-dev": { + "doctrine/annotations": "^1.11@dev", + "doctrine/orm": "^2.0 || ^3.0", + "php-coveralls/php-coveralls": "^2.1", + "phpunit/phpunit": "^8.0", + "richcongress/static-analysis": "dev-master", + "roave/security-advisories": "dev-master", + "symfony/dependency-injection": "^4.0 || ^5.0", + "symfony/security": "^4.0 || ^5.0", + "symfony/translation": "^4.0 || ^5.0", + "symfony/validator": "^4.0 || ^5.0" + }, + "type": "library", + "extra": { + "hooks": { + "pre-commit": [ + "./bin/phpstan analyse", + "./bin/phpinsights analyse ./" + ] + } + }, + "autoload": { + "psr-4": { + "RichCongress\\TestTools\\": "" + }, + "files": [ + "./Helper/GlobalNamespaceHelper.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "RichCongress", + "homepage": "https://www.richcongress.com" + } + ], + "description": "This library gives a set of tools to test your application with Unit tests.", + "support": { + "issues": "https://github.com/richcongress/test-tools/issues", + "source": "https://github.com/richcongress/test-tools/tree/v0.1.0" + }, + "time": "2021-01-29T13:51:52+00:00" + }, + { + "name": "richcongress/web-test-bundle", + "version": "v0.1.1", + "source": { + "type": "git", + "url": "https://github.com/richcongress/web-test-bundle.git", + "reference": "571e91406ff393ac32b2501193a01de3803ee145" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/richcongress/web-test-bundle/zipball/571e91406ff393ac32b2501193a01de3803ee145", + "reference": "571e91406ff393ac32b2501193a01de3803ee145", + "shasum": "" + }, + "require": { + "dama/doctrine-test-bundle": "^6.3", + "ext-json": "*", + "php": ">=7.3", + "php-di/phpdoc-reader": "^2.2", + "richcongress/bundle-toolbox": "*", + "richcongress/test-framework": "^0.1.", + "richcongress/test-tools": "^0.1", + "symfony/browser-kit": "^3.0 || ^4.0 || ^5.0", + "symfony/console": "^4.0|^5.0" + }, + "require-dev": { + "roave/security-advisories": "dev-master", + "symfony/form": "^4.0|^5.0", + "symfony/orm-pack": "^1.0", + "symfony/security-bundle": "^4.0|^5.0", + "symfony/yaml": "^5.1" + }, + "type": "symfony-bundle", + "autoload": { + "psr-4": { + "RichCongress\\WebTestBundle\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "RichCongress", + "homepage": "https://www.richcongress.com" + } + ], + "description": "A magic bundle", + "support": { + "docs": "https://github.com/richcongress/web-test-bundle/blob/master/README.md", + "email": "contact@richcongress.com", + "issues": "https://github.com/richcongress/web-test-bundle/issues", + "source": "https://github.com/richcongress/web-test-bundle" + }, + "time": "2021-02-05T09:31:06+00:00" + }, + { + "name": "roave/security-advisories", + "version": "dev-latest", + "source": { + "type": "git", + "url": "https://github.com/Roave/SecurityAdvisories.git", + "reference": "ba841897ca44f2ef8eff82d0edf3d6681f0e9875" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/ba841897ca44f2ef8eff82d0edf3d6681f0e9875", + "reference": "ba841897ca44f2ef8eff82d0edf3d6681f0e9875", + "shasum": "" + }, + "conflict": { + "3f/pygmentize": "<1.2", + "adodb/adodb-php": "<5.20.12", + "alterphp/easyadmin-extension-bundle": ">=1.2,<1.2.11|>=1.3,<1.3.1", + "amazing/media2click": ">=1,<1.3.3", + "amphp/artax": "<1.0.6|>=2,<2.0.6", + "amphp/http": "<1.0.1", + "amphp/http-client": ">=4,<4.4", + "api-platform/core": ">=2.2,<2.2.10|>=2.3,<2.3.6", + "asymmetricrypt/asymmetricrypt": ">=0,<9.9.99", + "aws/aws-sdk-php": ">=3,<3.2.1", + "bagisto/bagisto": "<0.1.5", + "barrelstrength/sprout-base-email": "<1.2.7", + "barrelstrength/sprout-forms": "<3.9", + "baserproject/basercms": "<4.4.5", + "bk2k/bootstrap-package": ">=7.1,<7.1.2|>=8,<8.0.8|>=9,<9.0.4|>=9.1,<9.1.3|>=10,<10.0.10|>=11,<11.0.3", + "bolt/bolt": "<3.7.2", + "bolt/core": "<4.1.13", + "brightlocal/phpwhois": "<=4.2.5", + "buddypress/buddypress": "<5.1.2", + "bugsnag/bugsnag-laravel": ">=2,<2.0.2", + "cakephp/cakephp": ">=1.3,<1.3.18|>=2,<2.4.99|>=2.5,<2.5.99|>=2.6,<2.6.12|>=2.7,<2.7.6|>=3,<3.5.18|>=3.6,<3.6.15|>=3.7,<3.7.7", + "cart2quote/module-quotation": ">=4.1.6,<=4.4.5|>=5,<5.4.4", + "cartalyst/sentry": "<=2.1.6", + "centreon/centreon": "<20.10.7", + "cesnet/simplesamlphp-module-proxystatistics": "<3.1", + "codeigniter/framework": "<=3.0.6", + "composer/composer": "<1.10.22|>=2-alpha.1,<2.0.13", + "contao-components/mediaelement": ">=2.14.2,<2.21.1", + "contao/core": ">=2,<3.5.39", + "contao/core-bundle": ">=4,<4.4.52|>=4.5,<4.9.6|= 4.10.0", + "contao/listing-bundle": ">=4,<4.4.8", + "datadog/dd-trace": ">=0.30,<0.30.2", + "david-garcia/phpwhois": "<=4.3.1", + "derhansen/sf_event_mgt": "<4.3.1|>=5,<5.1.1", + "directmailteam/direct-mail": "<5.2.4", + "doctrine/annotations": ">=1,<1.2.7", + "doctrine/cache": ">=1,<1.3.2|>=1.4,<1.4.2", + "doctrine/common": ">=2,<2.4.3|>=2.5,<2.5.1", + "doctrine/dbal": ">=2,<2.0.8|>=2.1,<2.1.2", "doctrine/doctrine-bundle": "<1.5.2", "doctrine/doctrine-module": "<=0.7.1", "doctrine/mongodb-odm": ">=1,<1.0.2", @@ -7256,8 +8599,9 @@ "doctrine/orm": ">=2,<2.4.8|>=2.5,<2.5.1|>=2.8.3,<2.8.4", "dolibarr/dolibarr": "<11.0.4", "dompdf/dompdf": ">=0.6,<0.6.2", - "drupal/core": ">=7,<7.74|>=8,<8.8.11|>=8.9,<8.9.9|>=9,<9.0.8", - "drupal/drupal": ">=7,<7.74|>=8,<8.8.11|>=8.9,<8.9.9|>=9,<9.0.8", + "drupal/core": ">=7,<7.80|>=8,<8.9.14|>=9,<9.0.12|>=9.1,<9.1.7", + "drupal/drupal": ">=7,<7.80|>=8,<8.9.14|>=9,<9.0.12|>=9.1,<9.1.7", + "dweeves/magmi": "<=0.7.24", "endroid/qr-code-bundle": "<3.4.2", "enshrined/svg-sanitize": "<0.13.1", "erusev/parsedown": "<1.7.2", @@ -7277,18 +8621,22 @@ "ezsystems/repository-forms": ">=2.3,<2.3.2.1", "ezyang/htmlpurifier": "<4.1.1", "facade/ignition": "<1.16.14|>=2,<2.4.2|>=2.5,<2.5.2", + "feehi/cms": "<=2.1.1", "firebase/php-jwt": "<2", + "flarum/core": ">=1,<=1.0.1", "flarum/sticky": ">=0.1-beta.14,<=0.1-beta.15", "flarum/tags": "<=0.1-beta.13", "fluidtypo3/vhs": "<5.1.1", "fooman/tcpdf": "<6.2.22", + "forkcms/forkcms": "<5.8.3", "fossar/tcpdf-parser": "<6.2.22", + "francoisjacquet/rosariosis": "<6.5.1", "friendsofsymfony/oauth2-php": "<1.3", "friendsofsymfony/rest-bundle": ">=1.2,<1.2.2", "friendsofsymfony/user-bundle": ">=1.2,<1.3.5", "friendsoftypo3/mediace": ">=7.6.2,<7.6.5", "fuel/core": "<1.8.1", - "getgrav/grav": "<1.7.11", + "getgrav/grav": "<=1.7.10", "getkirby/cms": "<3.5.4", "getkirby/panel": "<2.5.14", "gos/web-socket-bundle": "<1.10.4|>=2,<2.6.1|>=3,<3.3", @@ -7308,12 +8656,15 @@ "jsmitty12/phpwhois": "<5.1", "kazist/phpwhois": "<=4.2.6", "kitodo/presentation": "<3.1.2", + "klaviyo/magento2-extension": ">=1,<3", "kreait/firebase-php": ">=3.2,<3.8.1", "la-haute-societe/tcpdf": "<6.2.22", + "laminas/laminas-http": "<2.14.2", "laravel/framework": "<6.20.26|>=7,<8.40", "laravel/socialite": ">=1,<1.0.99|>=2,<2.0.10", "league/commonmark": "<0.18.3", - "librenms/librenms": "<1.53", + "lexik/jwt-authentication-bundle": "<2.10.7|>=2.11,<2.11.3", + "librenms/librenms": "<21.1", "livewire/livewire": ">2.2.4,<2.2.6", "magento/community-edition": ">=2,<2.2.10|>=2.3,<2.3.3", "magento/magento1ce": "<1.9.4.3", @@ -7334,11 +8685,12 @@ "nystudio107/craft-seomatic": "<3.3", "nzo/url-encryptor-bundle": ">=4,<4.3.2|>=5,<5.0.1", "october/backend": "<1.1.2", - "october/cms": "= 1.0.469|>=1.0.319,<1.0.469", + "october/cms": "= 1.1.1|= 1.0.471|= 1.0.469|>=1.0.319,<1.0.469", "october/october": ">=1.0.319,<1.0.466", "october/rain": "<1.0.472|>=1.1,<1.1.2", "onelogin/php-saml": "<2.10.4", "oneup/uploader-bundle": "<1.9.3|>=2,<2.1.5", + "opencart/opencart": "<=3.0.3.2", "openid/php-openid": "<2.3", "openmage/magento-lts": "<=19.4.12|>=20,<=20.0.8", "orchid/platform": ">=9,<9.4.4", @@ -7351,6 +8703,7 @@ "paypal/merchant-sdk-php": "<3.12", "pear/archive_tar": "<1.4.12", "personnummer/personnummer": "<3.0.2", + "phanan/koel": "<5.1.4", "phpfastcache/phpfastcache": ">=5,<5.0.13", "phpmailer/phpmailer": "<6.1.6|>=6.1.8,<6.4.1", "phpmussel/phpmussel": ">=1,<1.6", @@ -7387,14 +8740,14 @@ "shopware/core": "<=6.3.5.2", "shopware/platform": "<=6.3.5.2", "shopware/production": "<=6.3.5.2", - "shopware/shopware": "<5.6.9", + "shopware/shopware": "<=5.6.9", "silverstripe/admin": ">=1.0.3,<1.0.4|>=1.1,<1.1.1", "silverstripe/assets": ">=1,<1.4.7|>=1.5,<1.5.2", "silverstripe/cms": "<4.3.6|>=4.4,<4.4.4", "silverstripe/comments": ">=1.3,<1.9.99|>=2,<2.9.99|>=3,<3.1.1", "silverstripe/forum": "<=0.6.1|>=0.7,<=0.7.3", "silverstripe/framework": "<4.4.7|>=4.5,<4.5.4", - "silverstripe/graphql": ">=2,<2.0.5|>=3,<3.1.2|>=3.2,<3.2.4", + "silverstripe/graphql": "<=3.5", "silverstripe/registry": ">=2.1,<2.1.2|>=2.2,<2.2.1", "silverstripe/restfulserver": ">=1,<1.0.9|>=2,<2.0.4", "silverstripe/subsites": ">=2,<2.1.1", @@ -7432,31 +8785,34 @@ "symfony/http-foundation": ">=2,<2.8.52|>=3,<3.4.35|>=4,<4.2.12|>=4.3,<4.3.8|>=4.4,<4.4.7|>=5,<5.0.7", "symfony/http-kernel": ">=2,<2.8.52|>=3,<3.4.35|>=4,<4.2.12|>=4.3,<4.4.13|>=5,<5.1.5", "symfony/intl": ">=2.7,<2.7.38|>=2.8,<2.8.31|>=3,<3.2.14|>=3.3,<3.3.13", + "symfony/maker-bundle": ">=1.27,<1.29.2|>=1.30,<1.31.1", "symfony/mime": ">=4.3,<4.3.8", "symfony/phpunit-bridge": ">=2.8,<2.8.50|>=3,<3.4.26|>=4,<4.1.12|>=4.2,<4.2.7", "symfony/polyfill": ">=1,<1.10", "symfony/polyfill-php55": ">=1,<1.10", "symfony/proxy-manager-bridge": ">=2.7,<2.7.51|>=2.8,<2.8.50|>=3,<3.4.26|>=4,<4.1.12|>=4.2,<4.2.7", "symfony/routing": ">=2,<2.0.19", - "symfony/security": ">=2,<2.7.51|>=2.8,<2.8.50|>=3,<3.4.26|>=4,<4.1.12|>=4.2,<4.2.7|>=4.4,<4.4.7|>=5,<5.0.7", + "symfony/security": ">=2,<2.7.51|>=2.8,<3.4.49|>=4,<4.4.24|>=5,<5.2.8", "symfony/security-bundle": ">=2,<2.7.48|>=2.8,<2.8.41|>=3,<3.3.17|>=3.4,<3.4.11|>=4,<4.0.11", - "symfony/security-core": ">=2.4,<2.6.13|>=2.7,<2.7.9|>=2.7.30,<2.7.32|>=2.8,<2.8.37|>=3,<3.3.17|>=3.4,<3.4.7|>=4,<4.0.7", + "symfony/security-core": ">=2.4,<2.6.13|>=2.7,<2.7.9|>=2.7.30,<2.7.32|>=2.8,<3.4.49|>=4,<4.4.24|>=5,<5.2.9", "symfony/security-csrf": ">=2.4,<2.7.48|>=2.8,<2.8.41|>=3,<3.3.17|>=3.4,<3.4.11|>=4,<4.0.11", - "symfony/security-guard": ">=2.8,<2.8.41|>=3,<3.3.17|>=3.4,<3.4.11|>=4,<4.0.11", - "symfony/security-http": ">=2.3,<2.3.41|>=2.4,<2.7.51|>=2.8,<2.8.50|>=3,<3.4.26|>=4,<4.2.12|>=4.3,<4.3.8|>=4.4,<4.4.7|>=5,<5.0.7", + "symfony/security-guard": ">=2.8,<3.4.48|>=4,<4.4.23|>=5,<5.2.8", + "symfony/security-http": ">=2.3,<2.3.41|>=2.4,<2.7.51|>=2.8,<3.4.48|>=4,<4.4.23|>=5,<5.2.8", "symfony/serializer": ">=2,<2.0.11", - "symfony/symfony": ">=2,<2.8.52|>=3,<3.4.35|>=4,<4.2.12|>=4.3,<4.4.13|>=5,<5.1.5", + "symfony/symfony": ">=2,<3.4.49|>=4,<4.4.24|>=5,<5.2.9", "symfony/translation": ">=2,<2.0.17", "symfony/validator": ">=2,<2.0.24|>=2.1,<2.1.12|>=2.2,<2.2.5|>=2.3,<2.3.3", "symfony/var-exporter": ">=4.2,<4.2.12|>=4.3,<4.3.8", "symfony/web-profiler-bundle": ">=2,<2.3.19|>=2.4,<2.4.9|>=2.5,<2.5.4", "symfony/yaml": ">=2,<2.0.22|>=2.1,<2.1.7", + "t3/dce": ">=2.2,<2.6.2", "t3g/svg-sanitizer": "<1.0.3", "tecnickcom/tcpdf": "<6.2.22", "thelia/backoffice-default-template": ">=2.1,<2.1.2", "thelia/thelia": ">=2.1-beta.1,<2.1.3", "theonedemon/phpwhois": "<=4.2.5", "titon/framework": ">=0,<9.9.99", + "tribalsystems/zenario": "<8.8.53370", "truckersmp/phpwhois": "<=4.3.1", "twig/twig": "<1.38|>=2,<2.7", "typo3/cms": ">=6.2,<6.2.30|>=7,<7.6.32|>=8,<8.7.38|>=9,<9.5.25|>=10,<10.4.14|>=11,<11.1.1", @@ -7475,6 +8831,7 @@ "wallabag/tcpdf": "<6.2.22", "wikimedia/parsoid": "<0.12.2", "willdurand/js-translation-bundle": "<2.1.1", + "wp-cli/wp-cli": "<2.5", "yii2mod/yii2-cms": "<1.9.2", "yiisoft/yii": ">=1.1.14,<1.1.15", "yiisoft/yii2": "<2.0.38", @@ -7484,6 +8841,7 @@ "yiisoft/yii2-gii": "<2.0.4", "yiisoft/yii2-jui": "<2.0.4", "yiisoft/yii2-redis": "<2.0.8", + "yoast-seo-for-typo3/yoast_seo": "<7.2.1", "yourls/yourls": "<1.7.4", "zendesk/zendesk_api_client_php": "<2.2.11", "zendframework/zend-cache": ">=2.4,<2.4.8|>=2.5,<2.5.3", @@ -7503,135 +8861,640 @@ "zendframework/zend-validator": ">=2.3,<2.3.6", "zendframework/zend-view": ">=2,<2.2.7|>=2.3,<2.3.1", "zendframework/zend-xmlrpc": ">=2.1,<2.1.6|>=2.2,<2.2.6", - "zendframework/zendframework": "<2.5.1", + "zendframework/zendframework": "<=3", "zendframework/zendframework1": "<1.12.20", "zendframework/zendopenid": ">=2,<2.0.2", "zendframework/zendxml": ">=1,<1.0.1", "zetacomponents/mail": "<1.8.2", "zf-commons/zfc-user": "<1.2.2", "zfcampus/zf-apigility-doctrine": ">=1,<1.0.3", - "zfr/zfr-oauth2-server-module": "<0.1.2" + "zfr/zfr-oauth2-server-module": "<0.1.2", + "zoujingli/thinkadmin": "<6.0.22" + }, + "default-branch": true, + "type": "metapackage", + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com", + "role": "maintainer" + }, + { + "name": "Ilya Tribusean", + "email": "slash3b@gmail.com", + "role": "maintainer" + } + ], + "description": "Prevents installation of composer packages with known security vulnerabilities: no API, simply require it", + "support": { + "issues": "https://github.com/Roave/SecurityAdvisories/issues", + "source": "https://github.com/Roave/SecurityAdvisories/tree/latest" + }, + "funding": [ + { + "url": "https://github.com/Ocramius", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/roave/security-advisories", + "type": "tidelift" + } + ], + "time": "2021-06-10T17:35:36+00:00" + }, + { + "name": "sanmai/pipeline", + "version": "v3.1.4", + "source": { + "type": "git", + "url": "https://github.com/sanmai/pipeline.git", + "reference": "07a532743086cc01af9313d28eedacbaf77ea70e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sanmai/pipeline/zipball/07a532743086cc01af9313d28eedacbaf77ea70e", + "reference": "07a532743086cc01af9313d28eedacbaf77ea70e", + "shasum": "" + }, + "require": { + "php": "^7.1" + }, + "require-dev": { + "codacy/coverage": "^1.4", + "friendsofphp/php-cs-fixer": "^2.13", + "infection/infection": ">=0.10.5", + "league/pipeline": "^1.0 || ^0.3", + "mockery/mockery": "^1.0", + "phan/phan": "^1.1 || ^2.0", + "php-coveralls/php-coveralls": "^2.0", + "phpstan/phpstan": ">=0.10", + "phpunit/phpunit": "^7.4 || ^8.1", + "vimeo/psalm": "^2.0 || ^3.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Pipeline\\": "src/" + }, + "files": [ + "src/functions.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "authors": [ + { + "name": "Alexey Kopytko", + "email": "alexey@kopytko.com" + } + ], + "description": "General-purpose collections pipeline", + "support": { + "issues": "https://github.com/sanmai/pipeline/issues", + "source": "https://github.com/sanmai/pipeline/tree/v3.1.4" + }, + "funding": [ + { + "url": "https://github.com/sanmai", + "type": "github" + } + ], + "time": "2020-10-21T01:57:59+00:00" + }, + { + "name": "sebastian/cli-parser", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/cli-parser.git", + "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/442e7c7e687e42adc03470c7b668bc4b2402c0b2", + "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library for parsing CLI options", + "homepage": "https://github.com/sebastianbergmann/cli-parser", + "support": { + "issues": "https://github.com/sebastianbergmann/cli-parser/issues", + "source": "https://github.com/sebastianbergmann/cli-parser/tree/1.0.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-09-28T06:08:49+00:00" + }, + { + "name": "sebastian/code-unit", + "version": "1.0.8", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/code-unit.git", + "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/1fc9f64c0927627ef78ba436c9b17d967e68e120", + "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Collection of value objects that represent the PHP code units", + "homepage": "https://github.com/sebastianbergmann/code-unit", + "support": { + "issues": "https://github.com/sebastianbergmann/code-unit/issues", + "source": "https://github.com/sebastianbergmann/code-unit/tree/1.0.8" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T13:08:54+00:00" + }, + { + "name": "sebastian/code-unit-reverse-lookup", + "version": "2.0.3", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", + "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5", + "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Looks up which function or method a line of code belongs to", + "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", + "support": { + "issues": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues", + "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/2.0.3" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-09-28T05:30:19+00:00" + }, + { + "name": "sebastian/comparator", + "version": "4.0.6", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/comparator.git", + "reference": "55f4261989e546dc112258c7a75935a81a7ce382" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/55f4261989e546dc112258c7a75935a81a7ce382", + "reference": "55f4261989e546dc112258c7a75935a81a7ce382", + "shasum": "" + }, + "require": { + "php": ">=7.3", + "sebastian/diff": "^4.0", + "sebastian/exporter": "^4.0" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Volker Dusch", + "email": "github@wallbash.com" + }, + { + "name": "Bernhard Schussek", + "email": "bschussek@2bepublished.at" + } + ], + "description": "Provides the functionality to compare PHP values for equality", + "homepage": "https://github.com/sebastianbergmann/comparator", + "keywords": [ + "comparator", + "compare", + "equality" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/comparator/issues", + "source": "https://github.com/sebastianbergmann/comparator/tree/4.0.6" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T15:49:45+00:00" + }, + { + "name": "sebastian/complexity", + "version": "2.0.2", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/complexity.git", + "reference": "739b35e53379900cc9ac327b2147867b8b6efd88" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/739b35e53379900cc9ac327b2147867b8b6efd88", + "reference": "739b35e53379900cc9ac327b2147867b8b6efd88", + "shasum": "" + }, + "require": { + "nikic/php-parser": "^4.7", + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library for calculating the complexity of PHP code units", + "homepage": "https://github.com/sebastianbergmann/complexity", + "support": { + "issues": "https://github.com/sebastianbergmann/complexity/issues", + "source": "https://github.com/sebastianbergmann/complexity/tree/2.0.2" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T15:52:27+00:00" + }, + { + "name": "sebastian/diff", + "version": "4.0.4", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/diff.git", + "reference": "3461e3fccc7cfdfc2720be910d3bd73c69be590d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/3461e3fccc7cfdfc2720be910d3bd73c69be590d", + "reference": "3461e3fccc7cfdfc2720be910d3bd73c69be590d", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3", + "symfony/process": "^4.2 || ^5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.0-dev" + } + }, + "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" + } + ], + "description": "Diff implementation", + "homepage": "https://github.com/sebastianbergmann/diff", + "keywords": [ + "diff", + "udiff", + "unidiff", + "unified diff" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/diff/issues", + "source": "https://github.com/sebastianbergmann/diff/tree/4.0.4" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T13:10:38+00:00" + }, + { + "name": "sebastian/environment", + "version": "5.1.3", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/environment.git", + "reference": "388b6ced16caa751030f6a69e588299fa09200ac" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/388b6ced16caa751030f6a69e588299fa09200ac", + "reference": "388b6ced16caa751030f6a69e588299fa09200ac", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "suggest": { + "ext-posix": "*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.1-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] }, - "default-branch": true, - "type": "metapackage", "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "Marco Pivetta", - "email": "ocramius@gmail.com", - "role": "maintainer" - }, - { - "name": "Ilya Tribusean", - "email": "slash3b@gmail.com", - "role": "maintainer" + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" } ], - "description": "Prevents installation of composer packages with known security vulnerabilities: no API, simply require it", + "description": "Provides functionality to handle HHVM/PHP environments", + "homepage": "http://www.github.com/sebastianbergmann/environment", + "keywords": [ + "Xdebug", + "environment", + "hhvm" + ], "support": { - "issues": "https://github.com/Roave/SecurityAdvisories/issues", - "source": "https://github.com/Roave/SecurityAdvisories/tree/latest" + "issues": "https://github.com/sebastianbergmann/environment/issues", + "source": "https://github.com/sebastianbergmann/environment/tree/5.1.3" }, "funding": [ { - "url": "https://github.com/Ocramius", + "url": "https://github.com/sebastianbergmann", "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/roave/security-advisories", - "type": "tidelift" } ], - "time": "2021-05-02T09:01:19+00:00" + "time": "2020-09-28T05:52:38+00:00" }, { - "name": "sanmai/pipeline", - "version": "v3.1.4", + "name": "sebastian/exporter", + "version": "4.0.3", "source": { "type": "git", - "url": "https://github.com/sanmai/pipeline.git", - "reference": "07a532743086cc01af9313d28eedacbaf77ea70e" + "url": "https://github.com/sebastianbergmann/exporter.git", + "reference": "d89cc98761b8cb5a1a235a6b703ae50d34080e65" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sanmai/pipeline/zipball/07a532743086cc01af9313d28eedacbaf77ea70e", - "reference": "07a532743086cc01af9313d28eedacbaf77ea70e", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/d89cc98761b8cb5a1a235a6b703ae50d34080e65", + "reference": "d89cc98761b8cb5a1a235a6b703ae50d34080e65", "shasum": "" }, "require": { - "php": "^7.1" + "php": ">=7.3", + "sebastian/recursion-context": "^4.0" }, "require-dev": { - "codacy/coverage": "^1.4", - "friendsofphp/php-cs-fixer": "^2.13", - "infection/infection": ">=0.10.5", - "league/pipeline": "^1.0 || ^0.3", - "mockery/mockery": "^1.0", - "phan/phan": "^1.1 || ^2.0", - "php-coveralls/php-coveralls": "^2.0", - "phpstan/phpstan": ">=0.10", - "phpunit/phpunit": "^7.4 || ^8.1", - "vimeo/psalm": "^2.0 || ^3.0" + "ext-mbstring": "*", + "phpunit/phpunit": "^9.3" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.0-dev" + } + }, "autoload": { - "psr-4": { - "Pipeline\\": "src/" - }, - "files": [ - "src/functions.php" + "classmap": [ + "src/" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "Apache-2.0" + "BSD-3-Clause" ], "authors": [ { - "name": "Alexey Kopytko", - "email": "alexey@kopytko.com" + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Volker Dusch", + "email": "github@wallbash.com" + }, + { + "name": "Adam Harvey", + "email": "aharvey@php.net" + }, + { + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" } ], - "description": "General-purpose collections pipeline", + "description": "Provides the functionality to export PHP variables for visualization", + "homepage": "http://www.github.com/sebastianbergmann/exporter", + "keywords": [ + "export", + "exporter" + ], "support": { - "issues": "https://github.com/sanmai/pipeline/issues", - "source": "https://github.com/sanmai/pipeline/tree/v3.1.4" + "issues": "https://github.com/sebastianbergmann/exporter/issues", + "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.3" }, "funding": [ { - "url": "https://github.com/sanmai", + "url": "https://github.com/sebastianbergmann", "type": "github" } ], - "time": "2020-10-21T01:57:59+00:00" + "time": "2020-09-28T05:24:23+00:00" }, { - "name": "sebastian/cli-parser", - "version": "1.0.1", + "name": "sebastian/finder-facade", + "version": "2.0.0", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/cli-parser.git", - "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2" + "url": "https://github.com/sebastianbergmann/finder-facade.git", + "reference": "9d3e74b845a2ce50e19b25b5f0c2718e153bee6c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/442e7c7e687e42adc03470c7b668bc4b2402c0b2", - "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2", + "url": "https://api.github.com/repos/sebastianbergmann/finder-facade/zipball/9d3e74b845a2ce50e19b25b5f0c2718e153bee6c", + "reference": "9d3e74b845a2ce50e19b25b5f0c2718e153bee6c", "shasum": "" }, "require": { - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" + "ext-ctype": "*", + "php": "^7.3", + "symfony/finder": "^4.1|^5.0", + "theseer/fdomdocument": "^1.6" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0-dev" + "dev-master": "2.0-dev" } }, "autoload": { @@ -7650,44 +9513,45 @@ "role": "lead" } ], - "description": "Library for parsing CLI options", - "homepage": "https://github.com/sebastianbergmann/cli-parser", + "description": "FinderFacade is a convenience wrapper for Symfony's Finder component.", + "homepage": "https://github.com/sebastianbergmann/finder-facade", "support": { - "issues": "https://github.com/sebastianbergmann/cli-parser/issues", - "source": "https://github.com/sebastianbergmann/cli-parser/tree/1.0.1" + "issues": "https://github.com/sebastianbergmann/finder-facade/issues", + "source": "https://github.com/sebastianbergmann/finder-facade/tree/2.0.0" }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2020-09-28T06:08:49+00:00" + "abandoned": true, + "time": "2020-02-08T06:07:58+00:00" }, { - "name": "sebastian/code-unit", - "version": "1.0.8", + "name": "sebastian/global-state", + "version": "5.0.3", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/code-unit.git", - "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120" + "url": "https://github.com/sebastianbergmann/global-state.git", + "reference": "23bd5951f7ff26f12d4e3242864df3e08dec4e49" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/1fc9f64c0927627ef78ba436c9b17d967e68e120", - "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/23bd5951f7ff26f12d4e3242864df3e08dec4e49", + "reference": "23bd5951f7ff26f12d4e3242864df3e08dec4e49", "shasum": "" }, "require": { - "php": ">=7.3" + "php": ">=7.3", + "sebastian/object-reflector": "^2.0", + "sebastian/recursion-context": "^4.0" }, "require-dev": { + "ext-dom": "*", "phpunit/phpunit": "^9.3" }, + "suggest": { + "ext-uopz": "*" + }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0-dev" + "dev-master": "5.0-dev" } }, "autoload": { @@ -7702,15 +9566,17 @@ "authors": [ { "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" + "email": "sebastian@phpunit.de" } ], - "description": "Collection of value objects that represent the PHP code units", - "homepage": "https://github.com/sebastianbergmann/code-unit", + "description": "Snapshotting of global state", + "homepage": "http://www.github.com/sebastianbergmann/global-state", + "keywords": [ + "global state" + ], "support": { - "issues": "https://github.com/sebastianbergmann/code-unit/issues", - "source": "https://github.com/sebastianbergmann/code-unit/tree/1.0.8" + "issues": "https://github.com/sebastianbergmann/global-state/issues", + "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.3" }, "funding": [ { @@ -7718,23 +9584,24 @@ "type": "github" } ], - "time": "2020-10-26T13:08:54+00:00" + "time": "2021-06-11T13:31:12+00:00" }, { - "name": "sebastian/code-unit-reverse-lookup", - "version": "2.0.3", + "name": "sebastian/lines-of-code", + "version": "1.0.3", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", - "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5" + "url": "https://github.com/sebastianbergmann/lines-of-code.git", + "reference": "c1c2e997aa3146983ed888ad08b15470a2e22ecc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5", - "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5", + "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/c1c2e997aa3146983ed888ad08b15470a2e22ecc", + "reference": "c1c2e997aa3146983ed888ad08b15470a2e22ecc", "shasum": "" }, "require": { + "nikic/php-parser": "^4.6", "php": ">=7.3" }, "require-dev": { @@ -7743,7 +9610,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0-dev" + "dev-master": "1.0-dev" } }, "autoload": { @@ -7758,14 +9625,15 @@ "authors": [ { "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" + "email": "sebastian@phpunit.de", + "role": "lead" } ], - "description": "Looks up which function or method a line of code belongs to", - "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", + "description": "Library for counting the lines of code in PHP source code", + "homepage": "https://github.com/sebastianbergmann/lines-of-code", "support": { - "issues": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues", - "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/2.0.3" + "issues": "https://github.com/sebastianbergmann/lines-of-code/issues", + "source": "https://github.com/sebastianbergmann/lines-of-code/tree/1.0.3" }, "funding": [ { @@ -7773,26 +9641,26 @@ "type": "github" } ], - "time": "2020-09-28T05:30:19+00:00" + "time": "2020-11-28T06:42:11+00:00" }, { - "name": "sebastian/comparator", - "version": "4.0.6", + "name": "sebastian/object-enumerator", + "version": "4.0.4", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/comparator.git", - "reference": "55f4261989e546dc112258c7a75935a81a7ce382" + "url": "https://github.com/sebastianbergmann/object-enumerator.git", + "reference": "5c9eeac41b290a3712d88851518825ad78f45c71" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/55f4261989e546dc112258c7a75935a81a7ce382", - "reference": "55f4261989e546dc112258c7a75935a81a7ce382", + "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/5c9eeac41b290a3712d88851518825ad78f45c71", + "reference": "5c9eeac41b290a3712d88851518825ad78f45c71", "shasum": "" }, "require": { "php": ">=7.3", - "sebastian/diff": "^4.0", - "sebastian/exporter": "^4.0" + "sebastian/object-reflector": "^2.0", + "sebastian/recursion-context": "^4.0" }, "require-dev": { "phpunit/phpunit": "^9.3" @@ -7816,30 +9684,13 @@ { "name": "Sebastian Bergmann", "email": "sebastian@phpunit.de" - }, - { - "name": "Jeff Welch", - "email": "whatthejeff@gmail.com" - }, - { - "name": "Volker Dusch", - "email": "github@wallbash.com" - }, - { - "name": "Bernhard Schussek", - "email": "bschussek@2bepublished.at" } ], - "description": "Provides the functionality to compare PHP values for equality", - "homepage": "https://github.com/sebastianbergmann/comparator", - "keywords": [ - "comparator", - "compare", - "equality" - ], + "description": "Traverses array structures and object graphs to enumerate all referenced objects", + "homepage": "https://github.com/sebastianbergmann/object-enumerator/", "support": { - "issues": "https://github.com/sebastianbergmann/comparator/issues", - "source": "https://github.com/sebastianbergmann/comparator/tree/4.0.6" + "issues": "https://github.com/sebastianbergmann/object-enumerator/issues", + "source": "https://github.com/sebastianbergmann/object-enumerator/tree/4.0.4" }, "funding": [ { @@ -7847,24 +9698,23 @@ "type": "github" } ], - "time": "2020-10-26T15:49:45+00:00" + "time": "2020-10-26T13:12:34+00:00" }, { - "name": "sebastian/complexity", - "version": "2.0.2", + "name": "sebastian/object-reflector", + "version": "2.0.4", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/complexity.git", - "reference": "739b35e53379900cc9ac327b2147867b8b6efd88" + "url": "https://github.com/sebastianbergmann/object-reflector.git", + "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/739b35e53379900cc9ac327b2147867b8b6efd88", - "reference": "739b35e53379900cc9ac327b2147867b8b6efd88", + "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/b4f479ebdbf63ac605d183ece17d8d7fe49c15c7", + "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7", "shasum": "" }, "require": { - "nikic/php-parser": "^4.7", "php": ">=7.3" }, "require-dev": { @@ -7888,15 +9738,14 @@ "authors": [ { "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" + "email": "sebastian@phpunit.de" } ], - "description": "Library for calculating the complexity of PHP code units", - "homepage": "https://github.com/sebastianbergmann/complexity", + "description": "Allows reflection of object attributes, including inherited and non-public ones", + "homepage": "https://github.com/sebastianbergmann/object-reflector/", "support": { - "issues": "https://github.com/sebastianbergmann/complexity/issues", - "source": "https://github.com/sebastianbergmann/complexity/tree/2.0.2" + "issues": "https://github.com/sebastianbergmann/object-reflector/issues", + "source": "https://github.com/sebastianbergmann/object-reflector/tree/2.0.4" }, "funding": [ { @@ -7904,28 +9753,27 @@ "type": "github" } ], - "time": "2020-10-26T15:52:27+00:00" + "time": "2020-10-26T13:14:26+00:00" }, { - "name": "sebastian/diff", + "name": "sebastian/recursion-context", "version": "4.0.4", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/diff.git", - "reference": "3461e3fccc7cfdfc2720be910d3bd73c69be590d" + "url": "https://github.com/sebastianbergmann/recursion-context.git", + "reference": "cd9d8cf3c5804de4341c283ed787f099f5506172" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/3461e3fccc7cfdfc2720be910d3bd73c69be590d", - "reference": "3461e3fccc7cfdfc2720be910d3bd73c69be590d", + "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/cd9d8cf3c5804de4341c283ed787f099f5506172", + "reference": "cd9d8cf3c5804de4341c283ed787f099f5506172", "shasum": "" }, "require": { "php": ">=7.3" }, "require-dev": { - "phpunit/phpunit": "^9.3", - "symfony/process": "^4.2 || ^5" + "phpunit/phpunit": "^9.3" }, "type": "library", "extra": { @@ -7948,21 +9796,19 @@ "email": "sebastian@phpunit.de" }, { - "name": "Kore Nordmann", - "email": "mail@kore-nordmann.de" + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Adam Harvey", + "email": "aharvey@php.net" } ], - "description": "Diff implementation", - "homepage": "https://github.com/sebastianbergmann/diff", - "keywords": [ - "diff", - "udiff", - "unidiff", - "unified diff" - ], + "description": "Provides functionality to recursively process PHP variables", + "homepage": "http://www.github.com/sebastianbergmann/recursion-context", "support": { - "issues": "https://github.com/sebastianbergmann/diff/issues", - "source": "https://github.com/sebastianbergmann/diff/tree/4.0.4" + "issues": "https://github.com/sebastianbergmann/recursion-context/issues", + "source": "https://github.com/sebastianbergmann/recursion-context/tree/4.0.4" }, "funding": [ { @@ -7970,35 +9816,32 @@ "type": "github" } ], - "time": "2020-10-26T13:10:38+00:00" + "time": "2020-10-26T13:17:30+00:00" }, { - "name": "sebastian/environment", - "version": "5.1.3", + "name": "sebastian/resource-operations", + "version": "3.0.3", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/environment.git", - "reference": "388b6ced16caa751030f6a69e588299fa09200ac" + "url": "https://github.com/sebastianbergmann/resource-operations.git", + "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/388b6ced16caa751030f6a69e588299fa09200ac", - "reference": "388b6ced16caa751030f6a69e588299fa09200ac", + "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8", + "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8", "shasum": "" }, "require": { "php": ">=7.3" }, "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "suggest": { - "ext-posix": "*" + "phpunit/phpunit": "^9.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "5.1-dev" + "dev-master": "3.0-dev" } }, "autoload": { @@ -8016,16 +9859,11 @@ "email": "sebastian@phpunit.de" } ], - "description": "Provides functionality to handle HHVM/PHP environments", - "homepage": "http://www.github.com/sebastianbergmann/environment", - "keywords": [ - "Xdebug", - "environment", - "hhvm" - ], + "description": "Provides a list of PHP built-in functions that operate on resources", + "homepage": "https://www.github.com/sebastianbergmann/resource-operations", "support": { - "issues": "https://github.com/sebastianbergmann/environment/issues", - "source": "https://github.com/sebastianbergmann/environment/tree/5.1.3" + "issues": "https://github.com/sebastianbergmann/resource-operations/issues", + "source": "https://github.com/sebastianbergmann/resource-operations/tree/3.0.3" }, "funding": [ { @@ -8033,34 +9871,32 @@ "type": "github" } ], - "time": "2020-09-28T05:52:38+00:00" + "time": "2020-09-28T06:45:17+00:00" }, { - "name": "sebastian/exporter", - "version": "4.0.3", + "name": "sebastian/type", + "version": "2.3.2", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "d89cc98761b8cb5a1a235a6b703ae50d34080e65" + "url": "https://github.com/sebastianbergmann/type.git", + "reference": "0d1c587401514d17e8f9258a27e23527cb1b06c1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/d89cc98761b8cb5a1a235a6b703ae50d34080e65", - "reference": "d89cc98761b8cb5a1a235a6b703ae50d34080e65", + "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/0d1c587401514d17e8f9258a27e23527cb1b06c1", + "reference": "0d1c587401514d17e8f9258a27e23527cb1b06c1", "shasum": "" }, "require": { - "php": ">=7.3", - "sebastian/recursion-context": "^4.0" + "php": ">=7.3" }, "require-dev": { - "ext-mbstring": "*", "phpunit/phpunit": "^9.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "4.0-dev" + "dev-master": "2.3-dev" } }, "autoload": { @@ -8075,34 +9911,15 @@ "authors": [ { "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - }, - { - "name": "Jeff Welch", - "email": "whatthejeff@gmail.com" - }, - { - "name": "Volker Dusch", - "email": "github@wallbash.com" - }, - { - "name": "Adam Harvey", - "email": "aharvey@php.net" - }, - { - "name": "Bernhard Schussek", - "email": "bschussek@gmail.com" + "email": "sebastian@phpunit.de", + "role": "lead" } ], - "description": "Provides the functionality to export PHP variables for visualization", - "homepage": "http://www.github.com/sebastianbergmann/exporter", - "keywords": [ - "export", - "exporter" - ], + "description": "Collection of value objects that represent the types of the PHP type system", + "homepage": "https://github.com/sebastianbergmann/type", "support": { - "issues": "https://github.com/sebastianbergmann/exporter/issues", - "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.3" + "issues": "https://github.com/sebastianbergmann/type/issues", + "source": "https://github.com/sebastianbergmann/type/tree/2.3.2" }, "funding": [ { @@ -8110,38 +9927,29 @@ "type": "github" } ], - "time": "2020-09-28T05:24:23+00:00" + "time": "2021-06-04T13:02:07+00:00" }, { - "name": "sebastian/global-state", - "version": "5.0.2", + "name": "sebastian/version", + "version": "3.0.2", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/global-state.git", - "reference": "a90ccbddffa067b51f574dea6eb25d5680839455" + "url": "https://github.com/sebastianbergmann/version.git", + "reference": "c6c1022351a901512170118436c764e473f6de8c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/a90ccbddffa067b51f574dea6eb25d5680839455", - "reference": "a90ccbddffa067b51f574dea6eb25d5680839455", + "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c6c1022351a901512170118436c764e473f6de8c", + "reference": "c6c1022351a901512170118436c764e473f6de8c", "shasum": "" }, "require": { - "php": ">=7.3", - "sebastian/object-reflector": "^2.0", - "sebastian/recursion-context": "^4.0" - }, - "require-dev": { - "ext-dom": "*", - "phpunit/phpunit": "^9.3" - }, - "suggest": { - "ext-uopz": "*" + "php": ">=7.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "5.0-dev" + "dev-master": "3.0-dev" } }, "autoload": { @@ -8156,17 +9964,15 @@ "authors": [ { "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" + "email": "sebastian@phpunit.de", + "role": "lead" } ], - "description": "Snapshotting of global state", - "homepage": "http://www.github.com/sebastianbergmann/global-state", - "keywords": [ - "global state" - ], + "description": "Library that helps with managing the version number of Git-hosted PHP projects", + "homepage": "https://github.com/sebastianbergmann/version", "support": { - "issues": "https://github.com/sebastianbergmann/global-state/issues", - "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.2" + "issues": "https://github.com/sebastianbergmann/version/issues", + "source": "https://github.com/sebastianbergmann/version/tree/3.0.2" }, "funding": [ { @@ -8174,432 +9980,557 @@ "type": "github" } ], - "time": "2020-10-26T15:55:19+00:00" + "time": "2020-09-28T06:39:44+00:00" }, { - "name": "sebastian/lines-of-code", - "version": "1.0.3", + "name": "seld/jsonlint", + "version": "1.8.3", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/lines-of-code.git", - "reference": "c1c2e997aa3146983ed888ad08b15470a2e22ecc" + "url": "https://github.com/Seldaek/jsonlint.git", + "reference": "9ad6ce79c342fbd44df10ea95511a1b24dee5b57" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/c1c2e997aa3146983ed888ad08b15470a2e22ecc", - "reference": "c1c2e997aa3146983ed888ad08b15470a2e22ecc", + "url": "https://api.github.com/repos/Seldaek/jsonlint/zipball/9ad6ce79c342fbd44df10ea95511a1b24dee5b57", + "reference": "9ad6ce79c342fbd44df10ea95511a1b24dee5b57", "shasum": "" }, "require": { - "nikic/php-parser": "^4.6", - "php": ">=7.3" + "php": "^5.3 || ^7.0 || ^8.0" }, "require-dev": { - "phpunit/phpunit": "^9.3" + "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0" }, + "bin": [ + "bin/jsonlint" + ], "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0-dev" - } - }, "autoload": { - "classmap": [ - "src/" - ] + "psr-4": { + "Seld\\JsonLint\\": "src/Seld/JsonLint/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "http://seld.be" } ], - "description": "Library for counting the lines of code in PHP source code", - "homepage": "https://github.com/sebastianbergmann/lines-of-code", + "description": "JSON Linter", + "keywords": [ + "json", + "linter", + "parser", + "validator" + ], "support": { - "issues": "https://github.com/sebastianbergmann/lines-of-code/issues", - "source": "https://github.com/sebastianbergmann/lines-of-code/tree/1.0.3" + "issues": "https://github.com/Seldaek/jsonlint/issues", + "source": "https://github.com/Seldaek/jsonlint/tree/1.8.3" }, "funding": [ { - "url": "https://github.com/sebastianbergmann", + "url": "https://github.com/Seldaek", "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/seld/jsonlint", + "type": "tidelift" } ], - "time": "2020-11-28T06:42:11+00:00" + "time": "2020-11-11T09:19:24+00:00" }, { - "name": "sebastian/object-enumerator", - "version": "4.0.4", + "name": "seld/phar-utils", + "version": "1.1.1", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/object-enumerator.git", - "reference": "5c9eeac41b290a3712d88851518825ad78f45c71" + "url": "https://github.com/Seldaek/phar-utils.git", + "reference": "8674b1d84ffb47cc59a101f5d5a3b61e87d23796" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/5c9eeac41b290a3712d88851518825ad78f45c71", - "reference": "5c9eeac41b290a3712d88851518825ad78f45c71", + "url": "https://api.github.com/repos/Seldaek/phar-utils/zipball/8674b1d84ffb47cc59a101f5d5a3b61e87d23796", + "reference": "8674b1d84ffb47cc59a101f5d5a3b61e87d23796", "shasum": "" }, "require": { - "php": ">=7.3", - "sebastian/object-reflector": "^2.0", - "sebastian/recursion-context": "^4.0" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" + "php": ">=5.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "4.0-dev" + "dev-master": "1.x-dev" } }, "autoload": { - "classmap": [ - "src/" - ] + "psr-4": { + "Seld\\PharUtils\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be" } ], - "description": "Traverses array structures and object graphs to enumerate all referenced objects", - "homepage": "https://github.com/sebastianbergmann/object-enumerator/", + "description": "PHAR file format utilities, for when PHP phars you up", + "keywords": [ + "phar" + ], "support": { - "issues": "https://github.com/sebastianbergmann/object-enumerator/issues", - "source": "https://github.com/sebastianbergmann/object-enumerator/tree/4.0.4" + "issues": "https://github.com/Seldaek/phar-utils/issues", + "source": "https://github.com/Seldaek/phar-utils/tree/master" }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2020-10-26T13:12:34+00:00" + "time": "2020-07-07T18:42:57+00:00" }, { - "name": "sebastian/object-reflector", - "version": "2.0.4", + "name": "slevomat/coding-standard", + "version": "6.4.1", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/object-reflector.git", - "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7" + "url": "https://github.com/slevomat/coding-standard.git", + "reference": "696dcca217d0c9da2c40d02731526c1e25b65346" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/b4f479ebdbf63ac605d183ece17d8d7fe49c15c7", - "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7", + "url": "https://api.github.com/repos/slevomat/coding-standard/zipball/696dcca217d0c9da2c40d02731526c1e25b65346", + "reference": "696dcca217d0c9da2c40d02731526c1e25b65346", "shasum": "" }, "require": { - "php": ">=7.3" + "dealerdirect/phpcodesniffer-composer-installer": "^0.6.2 || ^0.7", + "php": "^7.1 || ^8.0", + "phpstan/phpdoc-parser": "0.4.5 - 0.4.9", + "squizlabs/php_codesniffer": "^3.5.6" }, "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "type": "library", + "phing/phing": "2.16.3", + "php-parallel-lint/php-parallel-lint": "1.2.0", + "phpstan/phpstan": "0.12.48", + "phpstan/phpstan-deprecation-rules": "0.12.5", + "phpstan/phpstan-phpunit": "0.12.16", + "phpstan/phpstan-strict-rules": "0.12.5", + "phpunit/phpunit": "7.5.20|8.5.5|9.4.0" + }, + "type": "phpcodesniffer-standard", "extra": { "branch-alias": { - "dev-master": "2.0-dev" + "dev-master": "6.x-dev" } }, "autoload": { - "classmap": [ - "src/" - ] + "psr-4": { + "SlevomatCodingStandard\\": "SlevomatCodingStandard" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } + "MIT" ], - "description": "Allows reflection of object attributes, including inherited and non-public ones", - "homepage": "https://github.com/sebastianbergmann/object-reflector/", + "description": "Slevomat Coding Standard for PHP_CodeSniffer complements Consistence Coding Standard by providing sniffs with additional checks.", "support": { - "issues": "https://github.com/sebastianbergmann/object-reflector/issues", - "source": "https://github.com/sebastianbergmann/object-reflector/tree/2.0.4" + "issues": "https://github.com/slevomat/coding-standard/issues", + "source": "https://github.com/slevomat/coding-standard/tree/6.4.1" }, "funding": [ { - "url": "https://github.com/sebastianbergmann", + "url": "https://github.com/kukulich", "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/slevomat/coding-standard", + "type": "tidelift" } ], - "time": "2020-10-26T13:14:26+00:00" + "time": "2020-10-05T12:39:37+00:00" }, { - "name": "sebastian/recursion-context", - "version": "4.0.4", + "name": "squizlabs/php_codesniffer", + "version": "3.6.0", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/recursion-context.git", - "reference": "cd9d8cf3c5804de4341c283ed787f099f5506172" + "url": "https://github.com/squizlabs/PHP_CodeSniffer.git", + "reference": "ffced0d2c8fa8e6cdc4d695a743271fab6c38625" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/cd9d8cf3c5804de4341c283ed787f099f5506172", - "reference": "cd9d8cf3c5804de4341c283ed787f099f5506172", + "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/ffced0d2c8fa8e6cdc4d695a743271fab6c38625", + "reference": "ffced0d2c8fa8e6cdc4d695a743271fab6c38625", "shasum": "" }, "require": { - "php": ">=7.3" + "ext-simplexml": "*", + "ext-tokenizer": "*", + "ext-xmlwriter": "*", + "php": ">=5.4.0" }, "require-dev": { - "phpunit/phpunit": "^9.3" + "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0" }, + "bin": [ + "bin/phpcs", + "bin/phpcbf" + ], "type": "library", "extra": { "branch-alias": { - "dev-master": "4.0-dev" + "dev-master": "3.x-dev" } }, - "autoload": { - "classmap": [ - "src/" - ] - }, "notification-url": "https://packagist.org/downloads/", "license": [ "BSD-3-Clause" ], "authors": [ { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - }, - { - "name": "Jeff Welch", - "email": "whatthejeff@gmail.com" - }, - { - "name": "Adam Harvey", - "email": "aharvey@php.net" + "name": "Greg Sherwood", + "role": "lead" } ], - "description": "Provides functionality to recursively process PHP variables", - "homepage": "http://www.github.com/sebastianbergmann/recursion-context", + "description": "PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.", + "homepage": "https://github.com/squizlabs/PHP_CodeSniffer", + "keywords": [ + "phpcs", + "standards" + ], "support": { - "issues": "https://github.com/sebastianbergmann/recursion-context/issues", - "source": "https://github.com/sebastianbergmann/recursion-context/tree/4.0.4" + "issues": "https://github.com/squizlabs/PHP_CodeSniffer/issues", + "source": "https://github.com/squizlabs/PHP_CodeSniffer", + "wiki": "https://github.com/squizlabs/PHP_CodeSniffer/wiki" }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2020-10-26T13:17:30+00:00" + "time": "2021-04-09T00:54:41+00:00" }, { - "name": "sebastian/resource-operations", - "version": "3.0.3", + "name": "symfony/browser-kit", + "version": "v5.3.0", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/resource-operations.git", - "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8" + "url": "https://github.com/symfony/browser-kit.git", + "reference": "379984e25eee9811b0a25a2105e1a2b3b8d9b734" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8", - "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8", + "url": "https://api.github.com/repos/symfony/browser-kit/zipball/379984e25eee9811b0a25a2105e1a2b3b8d9b734", + "reference": "379984e25eee9811b0a25a2105e1a2b3b8d9b734", "shasum": "" }, "require": { - "php": ">=7.3" + "php": ">=7.2.5", + "symfony/dom-crawler": "^4.4|^5.0" }, "require-dev": { - "phpunit/phpunit": "^9.0" + "symfony/css-selector": "^4.4|^5.0", + "symfony/http-client": "^4.4|^5.0", + "symfony/mime": "^4.4|^5.0", + "symfony/process": "^4.4|^5.0" }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.0-dev" - } + "suggest": { + "symfony/process": "" }, + "type": "library", "autoload": { - "classmap": [ - "src/" + "psr-4": { + "Symfony\\Component\\BrowserKit\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "Provides a list of PHP built-in functions that operate on resources", - "homepage": "https://www.github.com/sebastianbergmann/resource-operations", + "description": "Simulates the behavior of a web browser, allowing you to make requests, click on links and submit forms programmatically", + "homepage": "https://symfony.com", "support": { - "issues": "https://github.com/sebastianbergmann/resource-operations/issues", - "source": "https://github.com/sebastianbergmann/resource-operations/tree/3.0.3" + "source": "https://github.com/symfony/browser-kit/tree/v5.3.0" }, "funding": [ { - "url": "https://github.com/sebastianbergmann", + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" } ], - "time": "2020-09-28T06:45:17+00:00" + "time": "2021-05-26T17:43:10+00:00" }, { - "name": "sebastian/type", - "version": "2.3.1", + "name": "symfony/console", + "version": "v5.3.0", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/type.git", - "reference": "81cd61ab7bbf2de744aba0ea61fae32f721df3d2" + "url": "https://github.com/symfony/console.git", + "reference": "058553870f7809087fa80fa734704a21b9bcaeb2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/81cd61ab7bbf2de744aba0ea61fae32f721df3d2", - "reference": "81cd61ab7bbf2de744aba0ea61fae32f721df3d2", + "url": "https://api.github.com/repos/symfony/console/zipball/058553870f7809087fa80fa734704a21b9bcaeb2", + "reference": "058553870f7809087fa80fa734704a21b9bcaeb2", "shasum": "" }, "require": { - "php": ">=7.3" + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1", + "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-php73": "^1.8", + "symfony/polyfill-php80": "^1.15", + "symfony/service-contracts": "^1.1|^2", + "symfony/string": "^5.1" + }, + "conflict": { + "symfony/dependency-injection": "<4.4", + "symfony/dotenv": "<5.1", + "symfony/event-dispatcher": "<4.4", + "symfony/lock": "<4.4", + "symfony/process": "<4.4" + }, + "provide": { + "psr/log-implementation": "1.0" }, "require-dev": { - "phpunit/phpunit": "^9.3" + "psr/log": "~1.0", + "symfony/config": "^4.4|^5.0", + "symfony/dependency-injection": "^4.4|^5.0", + "symfony/event-dispatcher": "^4.4|^5.0", + "symfony/lock": "^4.4|^5.0", + "symfony/process": "^4.4|^5.0", + "symfony/var-dumper": "^4.4|^5.0" }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.3-dev" - } + "suggest": { + "psr/log": "For using the console logger", + "symfony/event-dispatcher": "", + "symfony/lock": "", + "symfony/process": "" }, + "type": "library", "autoload": { - "classmap": [ - "src/" + "psr-4": { + "Symfony\\Component\\Console\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "Collection of value objects that represent the types of the PHP type system", - "homepage": "https://github.com/sebastianbergmann/type", + "description": "Eases the creation of beautiful and testable command line interfaces", + "homepage": "https://symfony.com", + "keywords": [ + "cli", + "command line", + "console", + "terminal" + ], "support": { - "issues": "https://github.com/sebastianbergmann/type/issues", - "source": "https://github.com/sebastianbergmann/type/tree/2.3.1" + "source": "https://github.com/symfony/console/tree/v5.3.0" }, "funding": [ { - "url": "https://github.com/sebastianbergmann", + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" } ], - "time": "2020-10-26T13:18:59+00:00" + "time": "2021-05-26T17:43:10+00:00" }, { - "name": "sebastian/version", - "version": "3.0.2", + "name": "symfony/doctrine-bridge", + "version": "v5.3.1", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/version.git", - "reference": "c6c1022351a901512170118436c764e473f6de8c" + "url": "https://github.com/symfony/doctrine-bridge.git", + "reference": "29516dcc8165bc7e2339182a9360ea7d3471fb03" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c6c1022351a901512170118436c764e473f6de8c", - "reference": "c6c1022351a901512170118436c764e473f6de8c", + "url": "https://api.github.com/repos/symfony/doctrine-bridge/zipball/29516dcc8165bc7e2339182a9360ea7d3471fb03", + "reference": "29516dcc8165bc7e2339182a9360ea7d3471fb03", "shasum": "" }, - "require": { - "php": ">=7.3" + "require": { + "doctrine/event-manager": "~1.0", + "doctrine/persistence": "^2", + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-php80": "^1.15", + "symfony/service-contracts": "^1.1|^2" + }, + "conflict": { + "doctrine/dbal": "<2.10", + "phpunit/phpunit": "<5.4.3", + "symfony/dependency-injection": "<4.4", + "symfony/form": "<5.1", + "symfony/http-kernel": "<5", + "symfony/messenger": "<4.4", + "symfony/property-info": "<5", + "symfony/security-bundle": "<5", + "symfony/security-core": "<5.3", + "symfony/validator": "<5.2" }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.0-dev" - } + "require-dev": { + "composer/package-versions-deprecated": "^1.8", + "doctrine/annotations": "^1.10.4", + "doctrine/collections": "~1.0", + "doctrine/data-fixtures": "^1.1", + "doctrine/dbal": "^2.10|^3.0", + "doctrine/orm": "^2.7.3", + "symfony/cache": "^5.1", + "symfony/config": "^4.4|^5.0", + "symfony/dependency-injection": "^4.4|^5.0", + "symfony/doctrine-messenger": "^5.1", + "symfony/expression-language": "^4.4|^5.0", + "symfony/form": "^5.1.3", + "symfony/http-kernel": "^5.0", + "symfony/messenger": "^4.4|^5.0", + "symfony/property-access": "^4.4|^5.0", + "symfony/property-info": "^5.0", + "symfony/proxy-manager-bridge": "^4.4|^5.0", + "symfony/security-core": "^5.3", + "symfony/stopwatch": "^4.4|^5.0", + "symfony/translation": "^4.4|^5.0", + "symfony/uid": "^5.1", + "symfony/validator": "^5.2", + "symfony/var-dumper": "^4.4|^5.0" + }, + "suggest": { + "doctrine/data-fixtures": "", + "doctrine/dbal": "", + "doctrine/orm": "", + "symfony/form": "", + "symfony/property-info": "", + "symfony/validator": "" }, + "type": "symfony-bridge", "autoload": { - "classmap": [ - "src/" + "psr-4": { + "Symfony\\Bridge\\Doctrine\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "Library that helps with managing the version number of Git-hosted PHP projects", - "homepage": "https://github.com/sebastianbergmann/version", + "description": "Provides integration for Doctrine with various Symfony components", + "homepage": "https://symfony.com", "support": { - "issues": "https://github.com/sebastianbergmann/version/issues", - "source": "https://github.com/sebastianbergmann/version/tree/3.0.2" + "source": "https://github.com/symfony/doctrine-bridge/tree/v5.3.1" }, "funding": [ { - "url": "https://github.com/sebastianbergmann", + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" } ], - "time": "2020-09-28T06:39:44+00:00" + "time": "2021-06-01T15:43:02+00:00" }, { - "name": "seld/jsonlint", - "version": "1.8.3", + "name": "symfony/dom-crawler", + "version": "v5.3.0", "source": { "type": "git", - "url": "https://github.com/Seldaek/jsonlint.git", - "reference": "9ad6ce79c342fbd44df10ea95511a1b24dee5b57" + "url": "https://github.com/symfony/dom-crawler.git", + "reference": "55fff62b19f413f897a752488ade1bc9c8a19cdd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Seldaek/jsonlint/zipball/9ad6ce79c342fbd44df10ea95511a1b24dee5b57", - "reference": "9ad6ce79c342fbd44df10ea95511a1b24dee5b57", + "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/55fff62b19f413f897a752488ade1bc9c8a19cdd", + "reference": "55fff62b19f413f897a752488ade1bc9c8a19cdd", "shasum": "" }, "require": { - "php": "^5.3 || ^7.0 || ^8.0" + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-php80": "^1.15" + }, + "conflict": { + "masterminds/html5": "<2.6" }, "require-dev": { - "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0" + "masterminds/html5": "^2.6", + "symfony/css-selector": "^4.4|^5.0" + }, + "suggest": { + "symfony/css-selector": "" }, - "bin": [ - "bin/jsonlint" - ], "type": "library", "autoload": { "psr-4": { - "Seld\\JsonLint\\": "src/Seld/JsonLint/" - } + "Symfony\\Component\\DomCrawler\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -8607,65 +10538,56 @@ ], "authors": [ { - "name": "Jordi Boggiano", - "email": "j.boggiano@seld.be", - "homepage": "http://seld.be" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "JSON Linter", - "keywords": [ - "json", - "linter", - "parser", - "validator" - ], + "description": "Eases DOM navigation for HTML and XML documents", + "homepage": "https://symfony.com", "support": { - "issues": "https://github.com/Seldaek/jsonlint/issues", - "source": "https://github.com/Seldaek/jsonlint/tree/1.8.3" + "source": "https://github.com/symfony/dom-crawler/tree/v5.3.0" }, "funding": [ { - "url": "https://github.com/Seldaek", + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", "type": "github" }, { - "url": "https://tidelift.com/funding/github/packagist/seld/jsonlint", + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2020-11-11T09:19:24+00:00" + "time": "2021-05-26T17:43:10+00:00" }, { - "name": "symfony/browser-kit", - "version": "v5.2.7", + "name": "symfony/finder", + "version": "v5.3.0", "source": { "type": "git", - "url": "https://github.com/symfony/browser-kit.git", - "reference": "b1c9d5701273a255da3a580f85066b83bd94e97d" + "url": "https://github.com/symfony/finder.git", + "reference": "0ae3f047bed4edff6fd35b26a9a6bfdc92c953c6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/browser-kit/zipball/b1c9d5701273a255da3a580f85066b83bd94e97d", - "reference": "b1c9d5701273a255da3a580f85066b83bd94e97d", + "url": "https://api.github.com/repos/symfony/finder/zipball/0ae3f047bed4edff6fd35b26a9a6bfdc92c953c6", + "reference": "0ae3f047bed4edff6fd35b26a9a6bfdc92c953c6", "shasum": "" }, "require": { - "php": ">=7.2.5", - "symfony/dom-crawler": "^4.4|^5.0" - }, - "require-dev": { - "symfony/css-selector": "^4.4|^5.0", - "symfony/http-client": "^4.4|^5.0", - "symfony/mime": "^4.4|^5.0", - "symfony/process": "^4.4|^5.0" - }, - "suggest": { - "symfony/process": "" + "php": ">=7.2.5" }, "type": "library", "autoload": { "psr-4": { - "Symfony\\Component\\BrowserKit\\": "" + "Symfony\\Component\\Finder\\": "" }, "exclude-from-classmap": [ "/Tests/" @@ -8685,10 +10607,10 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Simulates the behavior of a web browser, allowing you to make requests, click on links and submit forms programmatically", + "description": "Finds files and directories via an intuitive fluent interface", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/browser-kit/tree/v5.2.7" + "source": "https://github.com/symfony/finder/tree/v5.3.0" }, "funding": [ { @@ -8704,59 +10626,151 @@ "type": "tidelift" } ], - "time": "2021-04-08T10:27:02+00:00" + "time": "2021-05-26T12:52:38+00:00" }, { - "name": "symfony/console", - "version": "v5.2.7", + "name": "symfony/framework-bundle", + "version": "v5.3.0", "source": { "type": "git", - "url": "https://github.com/symfony/console.git", - "reference": "90374b8ed059325b49a29b55b3f8bb4062c87629" + "url": "https://github.com/symfony/framework-bundle.git", + "reference": "99196372c703b8cc97ee61d63d98acbf9896d425" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/90374b8ed059325b49a29b55b3f8bb4062c87629", - "reference": "90374b8ed059325b49a29b55b3f8bb4062c87629", + "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/99196372c703b8cc97ee61d63d98acbf9896d425", + "reference": "99196372c703b8cc97ee61d63d98acbf9896d425", "shasum": "" }, "require": { + "ext-xml": "*", "php": ">=7.2.5", + "symfony/cache": "^5.2", + "symfony/config": "^5.3", + "symfony/dependency-injection": "^5.3", + "symfony/deprecation-contracts": "^2.1", + "symfony/error-handler": "^4.4.1|^5.0.1", + "symfony/event-dispatcher": "^5.1", + "symfony/filesystem": "^4.4|^5.0", + "symfony/finder": "^4.4|^5.0", + "symfony/http-foundation": "^5.3", + "symfony/http-kernel": "^5.3", "symfony/polyfill-mbstring": "~1.0", - "symfony/polyfill-php73": "^1.8", "symfony/polyfill-php80": "^1.15", - "symfony/service-contracts": "^1.1|^2", - "symfony/string": "^5.1" + "symfony/routing": "^5.3" }, "conflict": { - "symfony/dependency-injection": "<4.4", + "doctrine/persistence": "<1.3", + "phpdocumentor/reflection-docblock": "<3.2.2", + "phpdocumentor/type-resolver": "<1.4.0", + "phpunit/phpunit": "<5.4.3", + "symfony/asset": "<5.3", + "symfony/browser-kit": "<4.4", + "symfony/console": "<5.2.5", + "symfony/dom-crawler": "<4.4", "symfony/dotenv": "<5.1", - "symfony/event-dispatcher": "<4.4", + "symfony/form": "<5.2", + "symfony/http-client": "<4.4", "symfony/lock": "<4.4", - "symfony/process": "<4.4" - }, - "provide": { - "psr/log-implementation": "1.0" + "symfony/mailer": "<5.2", + "symfony/messenger": "<4.4", + "symfony/mime": "<4.4", + "symfony/property-access": "<5.3", + "symfony/property-info": "<4.4", + "symfony/security-core": "<5.3", + "symfony/security-csrf": "<5.3", + "symfony/serializer": "<5.2", + "symfony/stopwatch": "<4.4", + "symfony/translation": "<5.3", + "symfony/twig-bridge": "<4.4", + "symfony/twig-bundle": "<4.4", + "symfony/validator": "<5.2", + "symfony/web-profiler-bundle": "<4.4", + "symfony/workflow": "<5.2" }, "require-dev": { - "psr/log": "~1.0", - "symfony/config": "^4.4|^5.0", - "symfony/dependency-injection": "^4.4|^5.0", - "symfony/event-dispatcher": "^4.4|^5.0", + "doctrine/annotations": "^1.10.4", + "doctrine/cache": "^1.0|^2.0", + "doctrine/persistence": "^1.3|^2.0", + "paragonie/sodium_compat": "^1.8", + "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0", + "symfony/allmysms-notifier": "^5.3", + "symfony/asset": "^5.3", + "symfony/browser-kit": "^4.4|^5.0", + "symfony/clickatell-notifier": "^5.3", + "symfony/console": "^5.2", + "symfony/css-selector": "^4.4|^5.0", + "symfony/discord-notifier": "^5.3", + "symfony/dom-crawler": "^4.4|^5.0", + "symfony/dotenv": "^5.1", + "symfony/esendex-notifier": "^5.3", + "symfony/expression-language": "^4.4|^5.0", + "symfony/fake-chat-notifier": "^5.3", + "symfony/fake-sms-notifier": "^5.3", + "symfony/firebase-notifier": "^5.3", + "symfony/form": "^5.2", + "symfony/free-mobile-notifier": "^5.3", + "symfony/gatewayapi-notifier": "^5.3", + "symfony/gitter-notifier": "^5.3", + "symfony/google-chat-notifier": "^5.3", + "symfony/http-client": "^4.4|^5.0", + "symfony/infobip-notifier": "^5.3", + "symfony/iqsms-notifier": "^5.3", + "symfony/light-sms-notifier": "^5.3", + "symfony/linked-in-notifier": "^5.3", "symfony/lock": "^4.4|^5.0", + "symfony/mailer": "^5.2", + "symfony/mattermost-notifier": "^5.3", + "symfony/message-bird-notifier": "^5.3", + "symfony/messenger": "^5.2", + "symfony/microsoft-teams-notifier": "^5.3", + "symfony/mime": "^4.4|^5.0", + "symfony/mobyt-notifier": "^5.3", + "symfony/nexmo-notifier": "^5.3", + "symfony/notifier": "^5.3", + "symfony/octopush-notifier": "^5.3", + "symfony/ovh-cloud-notifier": "^5.3", + "symfony/phpunit-bridge": "^5.3", + "symfony/polyfill-intl-icu": "~1.0", "symfony/process": "^4.4|^5.0", - "symfony/var-dumper": "^4.4|^5.0" + "symfony/property-info": "^4.4|^5.0", + "symfony/rate-limiter": "^5.2", + "symfony/rocket-chat-notifier": "^5.3", + "symfony/security-bundle": "^5.3", + "symfony/sendinblue-notifier": "^5.3", + "symfony/serializer": "^5.2", + "symfony/sinch-notifier": "^5.3", + "symfony/slack-notifier": "^5.3", + "symfony/sms-biuras-notifier": "^5.3", + "symfony/smsapi-notifier": "^5.3", + "symfony/spot-hit-notifier": "^5.3", + "symfony/stopwatch": "^4.4|^5.0", + "symfony/string": "^5.0", + "symfony/telegram-notifier": "^5.3", + "symfony/translation": "^5.3", + "symfony/twig-bundle": "^4.4|^5.0", + "symfony/twilio-notifier": "^5.3", + "symfony/validator": "^5.2", + "symfony/web-link": "^4.4|^5.0", + "symfony/workflow": "^5.2", + "symfony/yaml": "^4.4|^5.0", + "symfony/zulip-notifier": "^5.3", + "twig/twig": "^2.10|^3.0" }, "suggest": { - "psr/log": "For using the console logger", - "symfony/event-dispatcher": "", - "symfony/lock": "", - "symfony/process": "" + "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": "library", + "type": "symfony-bundle", "autoload": { "psr-4": { - "Symfony\\Component\\Console\\": "" + "Symfony\\Bundle\\FrameworkBundle\\": "" }, "exclude-from-classmap": [ "/Tests/" @@ -8776,16 +10790,10 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Eases the creation of beautiful and testable command line interfaces", + "description": "Provides a tight integration between Symfony components and the Symfony full-stack framework", "homepage": "https://symfony.com", - "keywords": [ - "cli", - "command line", - "console", - "terminal" - ], "support": { - "source": "https://github.com/symfony/console/tree/v5.2.7" + "source": "https://github.com/symfony/framework-bundle/tree/v5.3.0" }, "funding": [ { @@ -8801,82 +10809,55 @@ "type": "tidelift" } ], - "time": "2021-04-19T14:07:32+00:00" + "time": "2021-05-31T10:12:54+00:00" }, { - "name": "symfony/doctrine-bridge", - "version": "v5.2.7", + "name": "symfony/http-client", + "version": "v5.3.0", "source": { "type": "git", - "url": "https://github.com/symfony/doctrine-bridge.git", - "reference": "6c8318bb9b315d3d325e9904445e4c4514e3d8ed" + "url": "https://github.com/symfony/http-client.git", + "reference": "ef85ca5fa7a4f9c57592fab49faeccdf22b13136" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/doctrine-bridge/zipball/6c8318bb9b315d3d325e9904445e4c4514e3d8ed", - "reference": "6c8318bb9b315d3d325e9904445e4c4514e3d8ed", + "url": "https://api.github.com/repos/symfony/http-client/zipball/ef85ca5fa7a4f9c57592fab49faeccdf22b13136", + "reference": "ef85ca5fa7a4f9c57592fab49faeccdf22b13136", "shasum": "" }, "require": { - "doctrine/event-manager": "~1.0", - "doctrine/persistence": "^2", "php": ">=7.2.5", + "psr/log": "^1.0", "symfony/deprecation-contracts": "^2.1", - "symfony/polyfill-ctype": "~1.8", - "symfony/polyfill-mbstring": "~1.0", + "symfony/http-client-contracts": "^2.4", + "symfony/polyfill-php73": "^1.11", "symfony/polyfill-php80": "^1.15", - "symfony/service-contracts": "^1.1|^2" + "symfony/service-contracts": "^1.0|^2" }, - "conflict": { - "doctrine/dbal": "<2.10", - "phpunit/phpunit": "<5.4.3", - "symfony/dependency-injection": "<4.4", - "symfony/form": "<5.1", - "symfony/http-kernel": "<5", - "symfony/messenger": "<4.4", - "symfony/property-info": "<5", - "symfony/security-bundle": "<5", - "symfony/security-core": "<5", - "symfony/validator": "<5.2" + "provide": { + "php-http/async-client-implementation": "*", + "php-http/client-implementation": "*", + "psr/http-client-implementation": "1.0", + "symfony/http-client-implementation": "2.4" }, "require-dev": { - "composer/package-versions-deprecated": "^1.8", - "doctrine/annotations": "^1.10.4", - "doctrine/cache": "~1.6", - "doctrine/collections": "~1.0", - "doctrine/data-fixtures": "^1.1", - "doctrine/dbal": "^2.10|^3.0", - "doctrine/orm": "^2.7.3", - "symfony/cache": "^5.1", - "symfony/config": "^4.4|^5.0", + "amphp/amp": "^2.5", + "amphp/http-client": "^4.2.1", + "amphp/http-tunnel": "^1.0", + "amphp/socket": "^1.1", + "guzzlehttp/promises": "^1.4", + "nyholm/psr7": "^1.0", + "php-http/httplug": "^1.0|^2.0", + "psr/http-client": "^1.0", "symfony/dependency-injection": "^4.4|^5.0", - "symfony/doctrine-messenger": "^5.1", - "symfony/expression-language": "^4.4|^5.0", - "symfony/form": "^5.1.3", - "symfony/http-kernel": "^5.0", - "symfony/messenger": "^4.4|^5.0", - "symfony/property-access": "^4.4|^5.0", - "symfony/property-info": "^5.0", - "symfony/proxy-manager-bridge": "^4.4|^5.0", - "symfony/security-core": "^5.0", - "symfony/stopwatch": "^4.4|^5.0", - "symfony/translation": "^4.4|^5.0", - "symfony/uid": "^5.1", - "symfony/validator": "^5.2", - "symfony/var-dumper": "^4.4|^5.0" - }, - "suggest": { - "doctrine/data-fixtures": "", - "doctrine/dbal": "", - "doctrine/orm": "", - "symfony/form": "", - "symfony/property-info": "", - "symfony/validator": "" + "symfony/http-kernel": "^4.4.13|^5.1.5", + "symfony/process": "^4.4|^5.0", + "symfony/stopwatch": "^4.4|^5.0" }, - "type": "symfony-bridge", + "type": "library", "autoload": { "psr-4": { - "Symfony\\Bridge\\Doctrine\\": "" + "Symfony\\Component\\HttpClient\\": "" }, "exclude-from-classmap": [ "/Tests/" @@ -8888,18 +10869,18 @@ ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" + "name": "Nicolas Grekas", + "email": "p@tchwork.com" }, { "name": "Symfony Community", "homepage": "https://symfony.com/contributors" } ], - "description": "Provides integration for Doctrine with various Symfony components", + "description": "Provides powerful methods to fetch HTTP resources synchronously or asynchronously", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/doctrine-bridge/tree/v5.2.7" + "source": "https://github.com/symfony/http-client/tree/v5.3.0" }, "funding": [ { @@ -8915,42 +10896,32 @@ "type": "tidelift" } ], - "time": "2021-04-16T17:25:34+00:00" + "time": "2021-05-26T17:43:10+00:00" }, { - "name": "symfony/dom-crawler", - "version": "v5.2.4", + "name": "symfony/options-resolver", + "version": "v5.3.0", "source": { "type": "git", - "url": "https://github.com/symfony/dom-crawler.git", - "reference": "400e265163f65aceee7e904ef532e15228de674b" + "url": "https://github.com/symfony/options-resolver.git", + "reference": "162e886ca035869866d233a2bfef70cc28f9bbe5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/400e265163f65aceee7e904ef532e15228de674b", - "reference": "400e265163f65aceee7e904ef532e15228de674b", + "url": "https://api.github.com/repos/symfony/options-resolver/zipball/162e886ca035869866d233a2bfef70cc28f9bbe5", + "reference": "162e886ca035869866d233a2bfef70cc28f9bbe5", "shasum": "" }, "require": { "php": ">=7.2.5", - "symfony/polyfill-ctype": "~1.8", - "symfony/polyfill-mbstring": "~1.0", + "symfony/deprecation-contracts": "^2.1", + "symfony/polyfill-php73": "~1.0", "symfony/polyfill-php80": "^1.15" }, - "conflict": { - "masterminds/html5": "<2.6" - }, - "require-dev": { - "masterminds/html5": "^2.6", - "symfony/css-selector": "^4.4|^5.0" - }, - "suggest": { - "symfony/css-selector": "" - }, "type": "library", "autoload": { "psr-4": { - "Symfony\\Component\\DomCrawler\\": "" + "Symfony\\Component\\OptionsResolver\\": "" }, "exclude-from-classmap": [ "/Tests/" @@ -8970,10 +10941,15 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Eases DOM navigation for HTML and XML documents", + "description": "Provides an improved replacement for the array_replace PHP function", "homepage": "https://symfony.com", + "keywords": [ + "config", + "configuration", + "options" + ], "support": { - "source": "https://github.com/symfony/dom-crawler/tree/v5.2.4" + "source": "https://github.com/symfony/options-resolver/tree/v5.3.0" }, "funding": [ { @@ -8989,33 +10965,34 @@ "type": "tidelift" } ], - "time": "2021-02-15T18:55:04+00:00" + "time": "2021-05-26T17:43:10+00:00" }, { - "name": "symfony/finder", - "version": "v5.2.4", + "name": "symfony/polyfill-php70", + "version": "v1.20.0", "source": { "type": "git", - "url": "https://github.com/symfony/finder.git", - "reference": "0d639a0943822626290d169965804f79400e6a04" + "url": "https://github.com/symfony/polyfill-php70.git", + "reference": "5f03a781d984aae42cebd18e7912fa80f02ee644" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/0d639a0943822626290d169965804f79400e6a04", - "reference": "0d639a0943822626290d169965804f79400e6a04", + "url": "https://api.github.com/repos/symfony/polyfill-php70/zipball/5f03a781d984aae42cebd18e7912fa80f02ee644", + "reference": "5f03a781d984aae42cebd18e7912fa80f02ee644", "shasum": "" }, "require": { - "php": ">=7.2.5" + "php": ">=7.1" }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\Finder\\": "" + "type": "metapackage", + "extra": { + "branch-alias": { + "dev-main": "1.20-dev" }, - "exclude-from-classmap": [ - "/Tests/" - ] + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -9023,18 +11000,24 @@ ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" + "name": "Nicolas Grekas", + "email": "p@tchwork.com" }, { "name": "Symfony Community", "homepage": "https://symfony.com/contributors" } ], - "description": "Finds files and directories via an intuitive fluent interface", + "description": "Symfony polyfill backporting some PHP 7.0+ features to lower PHP versions", "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], "support": { - "source": "https://github.com/symfony/finder/tree/v5.2.4" + "source": "https://github.com/symfony/polyfill-php70/tree/v1.20.0" }, "funding": [ { @@ -9050,120 +11033,41 @@ "type": "tidelift" } ], - "time": "2021-02-15T18:55:04+00:00" + "time": "2020-10-23T14:02:19+00:00" }, { - "name": "symfony/framework-bundle", - "version": "v5.2.7", + "name": "symfony/polyfill-php72", + "version": "v1.23.0", "source": { "type": "git", - "url": "https://github.com/symfony/framework-bundle.git", - "reference": "af652965c2a598e192200c6932ab9edd283ffe42" + "url": "https://github.com/symfony/polyfill-php72.git", + "reference": "9a142215a36a3888e30d0a9eeea9766764e96976" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/af652965c2a598e192200c6932ab9edd283ffe42", - "reference": "af652965c2a598e192200c6932ab9edd283ffe42", + "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/9a142215a36a3888e30d0a9eeea9766764e96976", + "reference": "9a142215a36a3888e30d0a9eeea9766764e96976", "shasum": "" }, "require": { - "ext-xml": "*", - "php": ">=7.2.5", - "symfony/cache": "^5.2", - "symfony/config": "^5.0", - "symfony/dependency-injection": "^5.2", - "symfony/deprecation-contracts": "^2.1", - "symfony/error-handler": "^4.4.1|^5.0.1", - "symfony/event-dispatcher": "^5.1", - "symfony/filesystem": "^4.4|^5.0", - "symfony/finder": "^4.4|^5.0", - "symfony/http-foundation": "^5.2.1", - "symfony/http-kernel": "^5.2.1", - "symfony/polyfill-mbstring": "~1.0", - "symfony/polyfill-php80": "^1.15", - "symfony/routing": "^5.2" - }, - "conflict": { - "doctrine/persistence": "<1.3", - "phpdocumentor/reflection-docblock": "<3.2.2", - "phpdocumentor/type-resolver": "<1.4.0", - "phpunit/phpunit": "<5.4.3", - "symfony/asset": "<5.1", - "symfony/browser-kit": "<4.4", - "symfony/console": "<5.2.5", - "symfony/dom-crawler": "<4.4", - "symfony/dotenv": "<5.1", - "symfony/form": "<5.2", - "symfony/http-client": "<4.4", - "symfony/lock": "<4.4", - "symfony/mailer": "<5.2", - "symfony/messenger": "<4.4", - "symfony/mime": "<4.4", - "symfony/property-access": "<5.2", - "symfony/property-info": "<4.4", - "symfony/serializer": "<5.2", - "symfony/stopwatch": "<4.4", - "symfony/translation": "<5.0", - "symfony/twig-bridge": "<4.4", - "symfony/twig-bundle": "<4.4", - "symfony/validator": "<5.2", - "symfony/web-profiler-bundle": "<4.4", - "symfony/workflow": "<5.2" - }, - "require-dev": { - "doctrine/annotations": "^1.10.4", - "doctrine/cache": "~1.0", - "doctrine/persistence": "^1.3|^2.0", - "paragonie/sodium_compat": "^1.8", - "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0", - "symfony/asset": "^5.1", - "symfony/browser-kit": "^4.4|^5.0", - "symfony/console": "^5.2", - "symfony/css-selector": "^4.4|^5.0", - "symfony/dom-crawler": "^4.4|^5.0", - "symfony/dotenv": "^5.1", - "symfony/expression-language": "^4.4|^5.0", - "symfony/form": "^5.2", - "symfony/http-client": "^4.4|^5.0", - "symfony/lock": "^4.4|^5.0", - "symfony/mailer": "^5.2", - "symfony/messenger": "^5.2", - "symfony/mime": "^4.4|^5.0", - "symfony/polyfill-intl-icu": "~1.0", - "symfony/process": "^4.4|^5.0", - "symfony/property-info": "^4.4|^5.0", - "symfony/security-bundle": "^5.1", - "symfony/security-core": "^4.4|^5.2", - "symfony/security-csrf": "^4.4|^5.0", - "symfony/security-http": "^4.4|^5.0", - "symfony/serializer": "^5.2", - "symfony/stopwatch": "^4.4|^5.0", - "symfony/string": "^5.0", - "symfony/translation": "^5.0", - "symfony/twig-bundle": "^4.4|^5.0", - "symfony/validator": "^5.2", - "symfony/web-link": "^4.4|^5.0", - "symfony/workflow": "^5.2", - "symfony/yaml": "^4.4|^5.0", - "twig/twig": "^2.10|^3.0" + "php": ">=7.1" }, - "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": "library", + "extra": { + "branch-alias": { + "dev-main": "1.23-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } }, - "type": "symfony-bundle", "autoload": { "psr-4": { - "Symfony\\Bundle\\FrameworkBundle\\": "" + "Symfony\\Polyfill\\Php72\\": "" }, - "exclude-from-classmap": [ - "/Tests/" + "files": [ + "bootstrap.php" ] }, "notification-url": "https://packagist.org/downloads/", @@ -9172,18 +11076,24 @@ ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" + "name": "Nicolas Grekas", + "email": "p@tchwork.com" }, { "name": "Symfony Community", "homepage": "https://symfony.com/contributors" } ], - "description": "Provides a tight integration between Symfony components and the Symfony full-stack framework", + "description": "Symfony polyfill backporting some PHP 7.2+ features to lower PHP versions", "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], "support": { - "source": "https://github.com/symfony/framework-bundle/tree/v5.2.7" + "source": "https://github.com/symfony/polyfill-php72/tree/v1.23.0" }, "funding": [ { @@ -9199,20 +11109,20 @@ "type": "tidelift" } ], - "time": "2021-04-16T17:21:25+00:00" + "time": "2021-05-27T09:17:38+00:00" }, { "name": "symfony/process", - "version": "v5.2.7", + "version": "v5.3.0", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "98cb8eeb72e55d4196dd1e36f1f16e7b3a9a088e" + "reference": "53e36cb1c160505cdaf1ef201501669c4c317191" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/98cb8eeb72e55d4196dd1e36f1f16e7b3a9a088e", - "reference": "98cb8eeb72e55d4196dd1e36f1f16e7b3a9a088e", + "url": "https://api.github.com/repos/symfony/process/zipball/53e36cb1c160505cdaf1ef201501669c4c317191", + "reference": "53e36cb1c160505cdaf1ef201501669c4c317191", "shasum": "" }, "require": { @@ -9245,7 +11155,7 @@ "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/process/tree/v5.3.0-BETA1" + "source": "https://github.com/symfony/process/tree/v5.3.0" }, "funding": [ { @@ -9261,20 +11171,20 @@ "type": "tidelift" } ], - "time": "2021-04-08T10:27:02+00:00" + "time": "2021-05-26T12:52:38+00:00" }, { "name": "symfony/routing", - "version": "v5.2.7", + "version": "v5.3.0", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "3f0cab2e95b5e92226f34c2c1aa969d3fc41f48c" + "reference": "368e81376a8e049c37cb80ae87dbfbf411279199" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/3f0cab2e95b5e92226f34c2c1aa969d3fc41f48c", - "reference": "3f0cab2e95b5e92226f34c2c1aa969d3fc41f48c", + "url": "https://api.github.com/repos/symfony/routing/zipball/368e81376a8e049c37cb80ae87dbfbf411279199", + "reference": "368e81376a8e049c37cb80ae87dbfbf411279199", "shasum": "" }, "require": { @@ -9283,14 +11193,15 @@ "symfony/polyfill-php80": "^1.15" }, "conflict": { - "symfony/config": "<5.0", + "doctrine/annotations": "<1.12", + "symfony/config": "<5.3", "symfony/dependency-injection": "<4.4", "symfony/yaml": "<4.4" }, "require-dev": { - "doctrine/annotations": "^1.10.4", + "doctrine/annotations": "^1.12", "psr/log": "~1.0", - "symfony/config": "^5.0", + "symfony/config": "^5.3", "symfony/dependency-injection": "^4.4|^5.0", "symfony/expression-language": "^4.4|^5.0", "symfony/http-foundation": "^4.4|^5.0", @@ -9334,7 +11245,7 @@ "url" ], "support": { - "source": "https://github.com/symfony/routing/tree/v5.2.7" + "source": "https://github.com/symfony/routing/tree/v5.3.0" }, "funding": [ { @@ -9350,20 +11261,20 @@ "type": "tidelift" } ], - "time": "2021-04-11T22:55:21+00:00" + "time": "2021-05-26T17:43:10+00:00" }, { "name": "symfony/stopwatch", - "version": "v5.2.7", + "version": "v5.3.0", "source": { "type": "git", "url": "https://github.com/symfony/stopwatch.git", - "reference": "d99310c33e833def36419c284f60e8027d359678" + "reference": "313d02f59d6543311865007e5ff4ace05b35ee65" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/stopwatch/zipball/d99310c33e833def36419c284f60e8027d359678", - "reference": "d99310c33e833def36419c284f60e8027d359678", + "url": "https://api.github.com/repos/symfony/stopwatch/zipball/313d02f59d6543311865007e5ff4ace05b35ee65", + "reference": "313d02f59d6543311865007e5ff4ace05b35ee65", "shasum": "" }, "require": { @@ -9396,7 +11307,7 @@ "description": "Provides a way to profile code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/stopwatch/tree/v5.3.0-BETA1" + "source": "https://github.com/symfony/stopwatch/tree/v5.3.0" }, "funding": [ { @@ -9412,20 +11323,20 @@ "type": "tidelift" } ], - "time": "2021-03-29T15:28:41+00:00" + "time": "2021-05-26T17:43:10+00:00" }, { "name": "symfony/yaml", - "version": "v5.2.7", + "version": "v5.3.0", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "76546cbeddd0a9540b4e4e57eddeec3e9bb444a5" + "reference": "3bbcf262fceb3d8f48175302e6ba0ac96e3a5a11" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/76546cbeddd0a9540b4e4e57eddeec3e9bb444a5", - "reference": "76546cbeddd0a9540b4e4e57eddeec3e9bb444a5", + "url": "https://api.github.com/repos/symfony/yaml/zipball/3bbcf262fceb3d8f48175302e6ba0ac96e3a5a11", + "reference": "3bbcf262fceb3d8f48175302e6ba0ac96e3a5a11", "shasum": "" }, "require": { @@ -9471,7 +11382,7 @@ "description": "Loads and dumps YAML files", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/yaml/tree/v5.2.7" + "source": "https://github.com/symfony/yaml/tree/v5.3.0" }, "funding": [ { @@ -9487,7 +11398,7 @@ "type": "tidelift" } ], - "time": "2021-04-29T20:47:09+00:00" + "time": "2021-05-26T17:43:10+00:00" }, { "name": "thecodingmachine/safe", @@ -9628,6 +11539,50 @@ }, "time": "2020-10-28T17:51:34+00:00" }, + { + "name": "theseer/fdomdocument", + "version": "1.6.6", + "source": { + "type": "git", + "url": "https://github.com/theseer/fDOMDocument.git", + "reference": "6e8203e40a32a9c770bcb62fe37e68b948da6dca" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/theseer/fDOMDocument/zipball/6e8203e40a32a9c770bcb62fe37e68b948da6dca", + "reference": "6e8203e40a32a9c770bcb62fe37e68b948da6dca", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "lib-libxml": "*", + "php": ">=5.3.3" + }, + "type": "library", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "lead" + } + ], + "description": "The classes contained within this repository extend the standard DOM to use exceptions at all occasions of errors instead of PHP warnings or notices. They also add various custom methods and shortcuts for convenience and to simplify the usage of DOM.", + "homepage": "https://github.com/theseer/fDOMDocument", + "support": { + "issues": "https://github.com/theseer/fDOMDocument/issues", + "source": "https://github.com/theseer/fDOMDocument/tree/master" + }, + "time": "2017-06-30T11:53:12+00:00" + }, { "name": "theseer/tokenizer", "version": "1.2.0", @@ -9732,6 +11687,7 @@ "aliases": [], "minimum-stability": "stable", "stability-flags": { + "richcongress/static-analysis": 20, "roave/security-advisories": 20 }, "prefer-stable": false, diff --git a/docs/Headers.md b/docs/Headers.md new file mode 100644 index 0000000..a73e7aa --- /dev/null +++ b/docs/Headers.md @@ -0,0 +1,87 @@ +# Headers + +It is common to add a header above a set of data. This can be implemented 2 ways. + + +## Add the header only if data are available + +Let's say you want to add a list of people information but only if at least one person is available in this list. Check +the class under. + +You will transform all the people into a list of `PersonContent`. From there, if the list is empty, the header will be +not added to your sheet since no data are available. + + +```php +use RichId\ExcelGeneratorBundle\Annotation as Excel; +use RichId\ExcelGeneratorBundle\Model\ExcelContent; + +/** + * @Excel\HeaderStyle(color="#FFFFFF", backgroundColor="#C1D9E1", fontSize=18, position=Excel\Style::POSITION_CENTER) + */ +class PersonContent extends ExcelContent +{ + /** + * @var string + * + * @Excel\ContentStyle(color="#000000", fontSize=12, wrapText=true) + * @Excel\HeaderTitle(title="app.person.firstname") + */ + public $firstname; + + /** + * @var string + * + * @Excel\ContentStyle(color="#000000", fontSize=12, bold=true, wrapText=true) + * @Excel\HeaderTitle(title="app.person.lastname") + */ + public $lastname; + + /** + * @var string + * + * @Excel\ContentStyle(color="#000000", fontSize=10) + * @Excel\HeaderTitle(title="app.person.age") + */ + public $age; +} +``` + + +## Add the header even if there is no data available + +Let's say now you want to add the header event if the list is empty. To do that, you will need to create a new class +that will contain the same number of property and implement the header using the `ContentStyle`. + +Let's use the same class as before. First, you need to remove all annotation related to the header since we will +implement it as a wrapper. Then, create a new class to implement the header explicitly: + + +```php +use RichId\ExcelGeneratorBundle\Annotation as Excel; +use RichId\ExcelGeneratorBundle\Model\ExcelContent; + +class PersonHeader extends ExcelContent +{ + /** + * @var string + * + * @Excel\ContentStyle(color="#FFFFFF", backgroundColor="#C1D9E1", fontSize=18, position=Excel\Style::POSITION_CENTER) + */ + public $firstname = 'Firstname'; + + /** + * @var string + * + * @Excel\ContentStyle(color="#FFFFFF", backgroundColor="#C1D9E1", fontSize=18, position=Excel\Style::POSITION_CENTER) + */ + public $lastname = 'Lastname'; + + /** + * @var string + * + * @Excel\ContentStyle(color="#000000", fontSize=12, bold=true, wrapText=true) + */ + public $age = 'Age'; +} +``` diff --git a/phpinsights.php b/phpinsights.php new file mode 120000 index 0000000..97566a4 --- /dev/null +++ b/phpinsights.php @@ -0,0 +1 @@ +vendor/richcongress/static-analysis/configs/phpinsights.php \ No newline at end of file diff --git a/phpstan.neon b/phpstan.neon new file mode 120000 index 0000000..51d8b86 --- /dev/null +++ b/phpstan.neon @@ -0,0 +1 @@ +vendor/richcongress/static-analysis/configs/phpstan.neon \ No newline at end of file diff --git a/phpunit.xml.dist b/phpunit.xml.dist index 67e926d..aa5d598 100644 --- a/phpunit.xml.dist +++ b/phpunit.xml.dist @@ -10,7 +10,7 @@ > - + @@ -18,21 +18,19 @@ - Tests + tests - . + src bin DependencyInjection Resources - Tests - vendor RichIdExcelGeneratorBundle.php diff --git a/Annotation/BorderStyle.php b/src/Annotation/BorderStyle.php similarity index 56% rename from Annotation/BorderStyle.php rename to src/Annotation/BorderStyle.php index 01bd193..b8416f4 100644 --- a/Annotation/BorderStyle.php +++ b/src/Annotation/BorderStyle.php @@ -1,11 +1,12 @@ - * @copyright 2014 - 2021 RichId (https://www.rich-id.fr) */ @@ -52,23 +53,21 @@ public function hasAllowedBorder(): bool return false; } + $allowedValues = [ + self::BORDER_BOTTOM, + self::BORDER_LEFT, + self::BORDER_RIGHT, + self::BORDER_TOP, + self::BORDER_ALL_BORDERS, + self::BORDER_DIAGONAL, + self::BORDER_HORIZONTAL, + self::BORDER_INSIDE, + self::BORDER_OUTLINE, + self::BORDER_VERTICAL, + ]; + foreach ($this->border as $border) { - if (!\in_array( - $border, - [ - self::BORDER_BOTTOM, - self::BORDER_LEFT, - self::BORDER_RIGHT, - self::BORDER_TOP, - self::BORDER_ALL_BORDERS, - self::BORDER_DIAGONAL, - self::BORDER_HORIZONTAL, - self::BORDER_INSIDE, - self::BORDER_OUTLINE, - self::BORDER_VERTICAL, - ], - true - )) { + if (!\in_array($border, $allowedValues, true)) { return false; } } @@ -78,24 +77,24 @@ public function hasAllowedBorder(): bool public function hasAllowedBorderStyle(): bool { - return $this->borderStyle != null && \in_array( - $this->borderStyle, - [ - self::BORDER_DASHDOT, - self::BORDER_DASHDOTDOT, - self::BORDER_DASHED, - self::BORDER_DOTTED, - self::BORDER_DOUBLE, - self::BORDER_HAIR, - self::BORDER_MEDIUM, - self::BORDER_MEDIUMDASHDOT, - self::BORDER_MEDIUMDASHDOTDOT, - self::BORDER_MEDIUMDASHED, - self::BORDER_SLANTDASHDOT, - self::BORDER_THICK, - self::BORDER_THIN, - ], - true - ); + return \in_array( + $this->borderStyle, + [ + self::BORDER_DASHDOT, + self::BORDER_DASHDOTDOT, + self::BORDER_DASHED, + self::BORDER_DOTTED, + self::BORDER_DOUBLE, + self::BORDER_HAIR, + self::BORDER_MEDIUM, + self::BORDER_MEDIUMDASHDOT, + self::BORDER_MEDIUMDASHDOTDOT, + self::BORDER_MEDIUMDASHED, + self::BORDER_SLANTDASHDOT, + self::BORDER_THICK, + self::BORDER_THIN, + ], + true + ); } } diff --git a/Annotation/ColumnDimension.php b/src/Annotation/ColumnDimension.php similarity index 76% rename from Annotation/ColumnDimension.php rename to src/Annotation/ColumnDimension.php index a063003..96a5ee4 100644 --- a/Annotation/ColumnDimension.php +++ b/src/Annotation/ColumnDimension.php @@ -1,11 +1,12 @@ - * @copyright 2014 - 2021 RichId (https://www.rich-id.fr) * diff --git a/Annotation/ColumnMerge.php b/src/Annotation/ColumnMerge.php similarity index 73% rename from Annotation/ColumnMerge.php rename to src/Annotation/ColumnMerge.php index bea0f14..44e2612 100644 --- a/Annotation/ColumnMerge.php +++ b/src/Annotation/ColumnMerge.php @@ -1,11 +1,12 @@ - * @copyright 2014 - 2021 RichId (https://www.rich-id.fr) * diff --git a/Annotation/ColumnsAutoResize.php b/src/Annotation/ColumnsAutoResize.php similarity index 69% rename from Annotation/ColumnsAutoResize.php rename to src/Annotation/ColumnsAutoResize.php index fbbf64f..7fa30d9 100644 --- a/Annotation/ColumnsAutoResize.php +++ b/src/Annotation/ColumnsAutoResize.php @@ -1,11 +1,12 @@ - * @copyright 2014 - 2021 RichId (https://www.rich-id.fr) * diff --git a/Annotation/ContentStyle.php b/src/Annotation/ContentStyle.php similarity index 71% rename from Annotation/ContentStyle.php rename to src/Annotation/ContentStyle.php index 271132e..e27977b 100644 --- a/Annotation/ContentStyle.php +++ b/src/Annotation/ContentStyle.php @@ -1,11 +1,12 @@ - * @copyright 2014 - 2021 RichId (https://www.rich-id.fr) * diff --git a/Annotation/GroupBorderStyle.php b/src/Annotation/GroupBorderStyle.php similarity index 65% rename from Annotation/GroupBorderStyle.php rename to src/Annotation/GroupBorderStyle.php index 66eacc0..ef2276d 100644 --- a/Annotation/GroupBorderStyle.php +++ b/src/Annotation/GroupBorderStyle.php @@ -1,11 +1,12 @@ - * @copyright 2014 - 2021 RichId (https://www.rich-id.fr) * @@ -21,6 +22,6 @@ final class GroupBorderStyle public function hasAllowedBorder(): bool { - return $this->border != null && \in_array($this->border, [self::BORDER_OUTLINE], true); + return $this->border !== null && \in_array($this->border, [self::BORDER_OUTLINE], true); } } diff --git a/Annotation/HeaderStyle.php b/src/Annotation/HeaderStyle.php similarity index 71% rename from Annotation/HeaderStyle.php rename to src/Annotation/HeaderStyle.php index ea43d76..cb8ec68 100644 --- a/Annotation/HeaderStyle.php +++ b/src/Annotation/HeaderStyle.php @@ -1,11 +1,12 @@ - * @copyright 2014 - 2021 RichId (https://www.rich-id.fr) * diff --git a/Annotation/HeaderTitle.php b/src/Annotation/HeaderTitle.php similarity index 79% rename from Annotation/HeaderTitle.php rename to src/Annotation/HeaderTitle.php index 00fc864..b3a6fa9 100644 --- a/Annotation/HeaderTitle.php +++ b/src/Annotation/HeaderTitle.php @@ -1,11 +1,12 @@ - * @copyright 2014 - 2021 RichId (https://www.rich-id.fr) * diff --git a/Annotation/Style.php b/src/Annotation/Style.php similarity index 75% rename from Annotation/Style.php rename to src/Annotation/Style.php index 3fe2123..7cbd8da 100644 --- a/Annotation/Style.php +++ b/src/Annotation/Style.php @@ -1,11 +1,12 @@ - * @copyright 2014 - 2021 RichId (https://www.rich-id.fr) */ @@ -49,11 +50,11 @@ public function hasStyle(): bool public function hasAllowedPosition(): bool { - return $this->position != null && \in_array($this->position, [self::POSITION_LEFT, self::POSITION_CENTER, self::POSITION_RIGHT], true); + return $this->position !== null && \in_array($this->position, [self::POSITION_LEFT, self::POSITION_CENTER, self::POSITION_RIGHT], true); } public function hasAllowedVerticalPosition(): bool { - return $this->verticalPosition != null && \in_array($this->verticalPosition, [self::VERTICAL_POSITION_TOP, self::VERTICAL_POSITION_CENTER, self::VERTICAL_POSITION_BOTTOM], true); + return $this->verticalPosition !== null && \in_array($this->verticalPosition, [self::VERTICAL_POSITION_TOP, self::VERTICAL_POSITION_CENTER, self::VERTICAL_POSITION_BOTTOM], true); } } diff --git a/Builder/Partials/AbstractBuilder.php b/src/Builder/Partials/AbstractBuilder.php similarity index 69% rename from Builder/Partials/AbstractBuilder.php rename to src/Builder/Partials/AbstractBuilder.php index 72853fb..bbd6a37 100644 --- a/Builder/Partials/AbstractBuilder.php +++ b/src/Builder/Partials/AbstractBuilder.php @@ -1,13 +1,14 @@ - * @copyright 2014 - 2021 Rich ID (https://www.rich-id.fr) */ @@ -16,11 +17,9 @@ abstract class AbstractBuilder /** @var EventDispatcherInterface */ protected $eventDispatcher; - /** - * @required - */ + /** @required */ public function initAbstractBuilder(EventDispatcherInterface $eventDispatcher): void { - $this->eventDispatcher = $eventDispatcher; + $this->eventDispatcher = $eventDispatcher; } } diff --git a/Builder/Partials/SheetRowContentBuilder.php b/src/Builder/Partials/SheetRowContentBuilder.php similarity index 93% rename from Builder/Partials/SheetRowContentBuilder.php rename to src/Builder/Partials/SheetRowContentBuilder.php index e4774a1..1c9b783 100644 --- a/Builder/Partials/SheetRowContentBuilder.php +++ b/src/Builder/Partials/SheetRowContentBuilder.php @@ -1,18 +1,19 @@ - * @copyright 2014 - 2021 RichId (https://www.rich-id.fr) */ diff --git a/Builder/SpreadsheetBuilder.php b/src/Builder/SpreadsheetBuilder.php similarity index 96% rename from Builder/SpreadsheetBuilder.php rename to src/Builder/SpreadsheetBuilder.php index e1bf98e..f1a2041 100644 --- a/Builder/SpreadsheetBuilder.php +++ b/src/Builder/SpreadsheetBuilder.php @@ -1,14 +1,16 @@ - * @copyright 2014 - 2021 RichId (https://www.rich-id.fr) */ @@ -35,8 +36,7 @@ class SpreadsheetBuilder extends AbstractBuilder implements SpreadsheetBuilderIn public function __construct( SheetRowContentBuilder $sheetRowContentBuilder, ValidatorInterface $validator - ) - { + ) { $this->sheetRowContentBuilder = $sheetRowContentBuilder; $this->validator = $validator; } diff --git a/Builder/SpreadsheetBuilderInterface.php b/src/Builder/SpreadsheetBuilderInterface.php similarity index 76% rename from Builder/SpreadsheetBuilderInterface.php rename to src/Builder/SpreadsheetBuilderInterface.php index 3760057..e845556 100644 --- a/Builder/SpreadsheetBuilderInterface.php +++ b/src/Builder/SpreadsheetBuilderInterface.php @@ -1,4 +1,6 @@ - * @copyright 2014 - 2021 RichId (https://www.rich-id.fr) */ diff --git a/ConfigurationExtractor/CellConfigurationsExtractor.php b/src/ConfigurationExtractor/CellConfigurationsExtractor.php similarity index 76% rename from ConfigurationExtractor/CellConfigurationsExtractor.php rename to src/ConfigurationExtractor/CellConfigurationsExtractor.php index d28492b..9d54311 100644 --- a/ConfigurationExtractor/CellConfigurationsExtractor.php +++ b/src/ConfigurationExtractor/CellConfigurationsExtractor.php @@ -1,4 +1,6 @@ - * @copyright 2014 - 2021 Rich ID (https://www.rich-id.fr) */ class CellConfigurationsExtractor { - /** - * @return CellConfiguration[] - */ + /** @return CellConfiguration[] */ public function getCellConfigurations(ExcelContent $excelContent): array { $reflectionClass = new \ReflectionClass($excelContent); @@ -24,7 +23,7 @@ public function getCellConfigurations(ExcelContent $excelContent): array $cellConfigurations = []; foreach ($properties as $property) { - if (in_array($property->getName(), ['parent', 'children'], true)) { + if (\in_array($property->getName(), ['parent', 'children'], true)) { continue; } diff --git a/ConfigurationExtractor/Model/CellConfiguration.php b/src/ConfigurationExtractor/Model/CellConfiguration.php similarity index 90% rename from ConfigurationExtractor/Model/CellConfiguration.php rename to src/ConfigurationExtractor/Model/CellConfiguration.php index 202ae4f..f4bba10 100644 --- a/ConfigurationExtractor/Model/CellConfiguration.php +++ b/src/ConfigurationExtractor/Model/CellConfiguration.php @@ -1,4 +1,6 @@ - * @copyright 2014 - 2021 Rich ID (https://www.rich-id.fr) */ @@ -36,11 +37,13 @@ public function __construct(\ReflectionProperty $reflectionProperty, ExcelConten $this->columnMerge = $this->getAnnotation(ColumnMerge::class); } + /** @return mixed */ public function getValue() { return $this->reflectionProperty->getValue($this->model); } + /** @return mixed|object|null */ public function getAnnotation(string $annotationClass) { return AnnotationHelper::getPropertyAnnotation($this->reflectionProperty, $annotationClass); diff --git a/ConfigurationExtractor/Model/GeneratedCellConfiguration.php b/src/ConfigurationExtractor/Model/GeneratedCellConfiguration.php similarity index 70% rename from ConfigurationExtractor/Model/GeneratedCellConfiguration.php rename to src/ConfigurationExtractor/Model/GeneratedCellConfiguration.php index cf7231f..9c063c8 100644 --- a/ConfigurationExtractor/Model/GeneratedCellConfiguration.php +++ b/src/ConfigurationExtractor/Model/GeneratedCellConfiguration.php @@ -1,11 +1,12 @@ - * @copyright 2014 - 2021 Rich ID (https://www.rich-id.fr) * @@ -16,9 +17,7 @@ class GeneratedCellConfiguration extends CellConfiguration /** @var mixed */ public $value; - /** - * @return mixed - */ + /** @return mixed */ public function getValue() { return $this->value; diff --git a/DependencyInjection/RichIdExcelGeneratorExtension.php b/src/DependencyInjection/RichIdExcelGeneratorExtension.php similarity index 73% rename from DependencyInjection/RichIdExcelGeneratorExtension.php rename to src/DependencyInjection/RichIdExcelGeneratorExtension.php index b87a813..d2a96d0 100644 --- a/DependencyInjection/RichIdExcelGeneratorExtension.php +++ b/src/DependencyInjection/RichIdExcelGeneratorExtension.php @@ -1,4 +1,6 @@ - $configs */ public function load(array $configs, ContainerBuilder $container): void { $loader = new XmlFileLoader($container, new FileLocator(__DIR__ . '/../Resources')); diff --git a/Event/ExcelCellGeneratedEvent.php b/src/Event/ExcelCellGeneratedEvent.php similarity index 89% rename from Event/ExcelCellGeneratedEvent.php rename to src/Event/ExcelCellGeneratedEvent.php index b3fd7df..80ace4c 100644 --- a/Event/ExcelCellGeneratedEvent.php +++ b/src/Event/ExcelCellGeneratedEvent.php @@ -1,4 +1,6 @@ - * @copyright 2014 - 2021 Rich ID (https://www.rich-id.fr) */ diff --git a/Event/ExcelRowGeneratedEvent.php b/src/Event/ExcelRowGeneratedEvent.php similarity index 84% rename from Event/ExcelRowGeneratedEvent.php rename to src/Event/ExcelRowGeneratedEvent.php index 6c6f321..6254040 100644 --- a/Event/ExcelRowGeneratedEvent.php +++ b/src/Event/ExcelRowGeneratedEvent.php @@ -1,4 +1,6 @@ - * @copyright 2014 - 2021 Rich ID (https://www.rich-id.fr) */ @@ -18,7 +19,7 @@ class ExcelRowGeneratedEvent /** @var CellConfiguration[] */ public $cellConfigurations; - /** @var ExcelContent */ + /** @var ExcelContent|null */ public $model; /** @var int */ @@ -27,13 +28,13 @@ class ExcelRowGeneratedEvent /** @var Worksheet */ public $worksheet; + /** @param CellConfiguration[] $cellConfigurations */ public function __construct( Worksheet $worksheet, array $cellConfigurations, int $row, ?ExcelContent $model = null - ) - { + ) { $this->worksheet = $worksheet; $this->cellConfigurations = $cellConfigurations; $this->row = $row; diff --git a/Event/ExcelRowPreGeneratedEvent.php b/src/Event/ExcelRowPreGeneratedEvent.php similarity index 83% rename from Event/ExcelRowPreGeneratedEvent.php rename to src/Event/ExcelRowPreGeneratedEvent.php index 1ecb57d..34c1572 100644 --- a/Event/ExcelRowPreGeneratedEvent.php +++ b/src/Event/ExcelRowPreGeneratedEvent.php @@ -1,4 +1,6 @@ - * @copyright 2014 - 2021 Rich ID (https://www.rich-id.fr) */ diff --git a/Event/ExcelSheetGeneratedEvent.php b/src/Event/ExcelSheetGeneratedEvent.php similarity index 87% rename from Event/ExcelSheetGeneratedEvent.php rename to src/Event/ExcelSheetGeneratedEvent.php index b6681e3..ff0aa59 100644 --- a/Event/ExcelSheetGeneratedEvent.php +++ b/src/Event/ExcelSheetGeneratedEvent.php @@ -1,4 +1,6 @@ - * @copyright 2014 - 2021 RichId (https://www.rich-id.fr) */ diff --git a/Event/ExcelSpreadsheetGeneratedEvent.php b/src/Event/ExcelSpreadsheetGeneratedEvent.php similarity index 87% rename from Event/ExcelSpreadsheetGeneratedEvent.php rename to src/Event/ExcelSpreadsheetGeneratedEvent.php index d591d23..e7d422a 100644 --- a/Event/ExcelSpreadsheetGeneratedEvent.php +++ b/src/Event/ExcelSpreadsheetGeneratedEvent.php @@ -1,4 +1,6 @@ - * @copyright 2014 - 2021 RichId (https://www.rich-id.fr) */ diff --git a/Exception/ExcelExportException.php b/src/Exception/ExcelExportException.php similarity index 62% rename from Exception/ExcelExportException.php rename to src/Exception/ExcelExportException.php index a5b9cab..ed50c36 100644 --- a/Exception/ExcelExportException.php +++ b/src/Exception/ExcelExportException.php @@ -1,11 +1,12 @@ - * @copyright 2014 - 2021 RichId (https://www.rich-id.fr) */ diff --git a/Exception/InvalidExcelSpreadsheetException.php b/src/Exception/InvalidExcelSpreadsheetException.php similarity index 86% rename from Exception/InvalidExcelSpreadsheetException.php rename to src/Exception/InvalidExcelSpreadsheetException.php index 16f763c..cc2f54e 100644 --- a/Exception/InvalidExcelSpreadsheetException.php +++ b/src/Exception/InvalidExcelSpreadsheetException.php @@ -1,4 +1,6 @@ - * @copyright 2014 - 2021 Rich ID (https://www.rich-id.fr) */ @@ -27,4 +28,4 @@ public function __construct(ExcelSpreadsheet $excelSpreadsheet, ConstraintViolat parent::__construct('Invalid excel spreadsheet.'); } -} \ No newline at end of file +} diff --git a/Exception/NotSameClassException.php b/src/Exception/NotSameClassException.php similarity index 82% rename from Exception/NotSameClassException.php rename to src/Exception/NotSameClassException.php index 0dc9a9f..bc40b0a 100644 --- a/Exception/NotSameClassException.php +++ b/src/Exception/NotSameClassException.php @@ -1,11 +1,12 @@ - * @copyright 2014 - 2021 RichId (https://www.rich-id.fr) */ diff --git a/Factory/ExcelStreamedResponseFactory.php b/src/Factory/ExcelStreamedResponseFactory.php similarity index 90% rename from Factory/ExcelStreamedResponseFactory.php rename to src/Factory/ExcelStreamedResponseFactory.php index 16631fb..5fcc72a 100644 --- a/Factory/ExcelStreamedResponseFactory.php +++ b/src/Factory/ExcelStreamedResponseFactory.php @@ -1,4 +1,6 @@ - * @copyright 2014 - 2021 Rich ID (https://www.rich-id.fr) */ @@ -33,7 +34,7 @@ public function __invoke(ExcelSpreadsheet $spreadsheet): StreamedResponse $writer = self::generateWriter($excel); $streamedResponse->setCallback( - function () use ($writer) { + static function () use ($writer): void { $writer->save('php://output'); } ); diff --git a/Generator/ExcelGenerator.php b/src/Generator/ExcelGenerator.php similarity index 89% rename from Generator/ExcelGenerator.php rename to src/Generator/ExcelGenerator.php index a312fa2..27e298c 100644 --- a/Generator/ExcelGenerator.php +++ b/src/Generator/ExcelGenerator.php @@ -1,15 +1,16 @@ - * @copyright 2014 - 2021 RichId (https://www.rich-id.fr) */ diff --git a/Generator/ExcelGeneratorInterface.php b/src/Generator/ExcelGeneratorInterface.php similarity index 74% rename from Generator/ExcelGeneratorInterface.php rename to src/Generator/ExcelGeneratorInterface.php index 49a0ba9..068200e 100644 --- a/Generator/ExcelGeneratorInterface.php +++ b/src/Generator/ExcelGeneratorInterface.php @@ -1,13 +1,14 @@ - * @copyright 2014 - 2021 RichId (https://www.rich-id.fr) */ diff --git a/Helper/AbstractHelper.php b/src/Helper/AbstractHelper.php similarity index 75% rename from Helper/AbstractHelper.php rename to src/Helper/AbstractHelper.php index 52a4903..5246042 100644 --- a/Helper/AbstractHelper.php +++ b/src/Helper/AbstractHelper.php @@ -1,18 +1,18 @@ - * @copyright 2014 - 2021 Rich ID (https://www.rich-id.fr) */ abstract class AbstractHelper { - /** - * @codeCoverageIgnore - */ + /** @codeCoverageIgnore */ private function __construct() { // Make it not instantiable diff --git a/Helper/AnnotationHelper.php b/src/Helper/AnnotationHelper.php similarity index 86% rename from Helper/AnnotationHelper.php rename to src/Helper/AnnotationHelper.php index 1e1871e..e05cd3f 100644 --- a/Helper/AnnotationHelper.php +++ b/src/Helper/AnnotationHelper.php @@ -1,13 +1,14 @@ - * @copyright 2014 - 2021 Rich ID (https://www.rich-id.fr) */ @@ -25,9 +26,7 @@ public static function getAnnotationReader(): AnnotationReader return static::$annotationReader; } - /** - * @param \ReflectionClass|string|object $class - */ + /** @param \ReflectionClass|string|object $class */ public static function getClassAnnotation($class, string $annotation) { if ($class === null) { diff --git a/Helper/ArrayHelper.php b/src/Helper/ArrayHelper.php similarity index 79% rename from Helper/ArrayHelper.php rename to src/Helper/ArrayHelper.php index 576a9bd..d1938fc 100644 --- a/Helper/ArrayHelper.php +++ b/src/Helper/ArrayHelper.php @@ -1,11 +1,12 @@ - * @copyright 2014 - 2021 Rich ID (https://www.rich-id.fr) */ @@ -14,7 +15,7 @@ final class ArrayHelper public static function mergeOptions(array $base, array $data): array { foreach ($data as $key => $value) { - if (is_array($value)) { + if (\is_array($value)) { $base[$key] = self::mergeOptions($base[$key] ?? [], $value); } else { $base[$key] = $value; diff --git a/Helper/ExpressionLanguageHelper.php b/src/Helper/ExpressionLanguageHelper.php similarity index 86% rename from Helper/ExpressionLanguageHelper.php rename to src/Helper/ExpressionLanguageHelper.php index 1ae09e2..81397a2 100644 --- a/Helper/ExpressionLanguageHelper.php +++ b/src/Helper/ExpressionLanguageHelper.php @@ -1,13 +1,14 @@ - * @copyright 2014 - 2021 Rich ID (https://www.rich-id.fr) */ @@ -16,9 +17,7 @@ class ExpressionLanguageHelper extends AbstractHelper /** @var ExpressionLanguage|null */ private static $expressionLanguage; - /** - * @return mixed - */ + /** @return mixed */ public static function evaluate(string $expression, $data = null) { if ($data === null || \strpos($expression, 'this.') === false) { diff --git a/Helper/SpreadsheetHelper.php b/src/Helper/SpreadsheetHelper.php similarity index 84% rename from Helper/SpreadsheetHelper.php rename to src/Helper/SpreadsheetHelper.php index 2a84dc9..ed1c762 100644 --- a/Helper/SpreadsheetHelper.php +++ b/src/Helper/SpreadsheetHelper.php @@ -1,4 +1,6 @@ - * @copyright 2014 - 2021 Rich ID (https://www.rich-id.fr) */ diff --git a/Helper/WorksheetHelper.php b/src/Helper/WorksheetHelper.php similarity index 80% rename from Helper/WorksheetHelper.php rename to src/Helper/WorksheetHelper.php index 2b2d596..1880a64 100644 --- a/Helper/WorksheetHelper.php +++ b/src/Helper/WorksheetHelper.php @@ -1,13 +1,14 @@ - * @copyright 2014 - 2021 Rich ID (https://www.rich-id.fr) */ diff --git a/Listener/AbstractStyleListener.php b/src/Listener/AbstractStyleListener.php similarity index 90% rename from Listener/AbstractStyleListener.php rename to src/Listener/AbstractStyleListener.php index 66b01c6..3a82575 100644 --- a/Listener/AbstractStyleListener.php +++ b/src/Listener/AbstractStyleListener.php @@ -1,4 +1,6 @@ - * @copyright 2014 - 2021 Rich ID (https://www.rich-id.fr) */ diff --git a/Listener/AlignmentStyleOnCellGenerated.php b/src/Listener/AlignmentStyleOnCellGenerated.php similarity index 89% rename from Listener/AlignmentStyleOnCellGenerated.php rename to src/Listener/AlignmentStyleOnCellGenerated.php index 851db13..bce6957 100644 --- a/Listener/AlignmentStyleOnCellGenerated.php +++ b/src/Listener/AlignmentStyleOnCellGenerated.php @@ -1,4 +1,6 @@ - * @copyright 2014 - 2021 Rich ID (https://www.rich-id.fr) */ @@ -22,7 +23,7 @@ protected function editStyle(ExcelCellGeneratedEvent $event, array $style): arra $newStyles = [ $this->getHorizontalAlignment($config), $this->getVerticalAlignment($config), - $this->getTextWrapping($config) + $this->getTextWrapping($config), ]; foreach ($newStyles as $newStyle) { @@ -41,7 +42,7 @@ protected function getHorizontalAlignment(Style $config): array return [ 'alignment' => [ 'horizontal' => $config->position, - ] + ], ]; } @@ -54,7 +55,7 @@ protected function getVerticalAlignment(Style $config): array return [ 'alignment' => [ 'vertical' => $config->verticalPosition, - ] + ], ]; } @@ -67,7 +68,7 @@ protected function getTextWrapping(Style $config): array return [ 'alignment' => [ 'wrapText' => $config->wrapText, - ] + ], ]; } } diff --git a/Listener/BackgroundStyleOnCellGenerated.php b/src/Listener/BackgroundStyleOnCellGenerated.php similarity index 89% rename from Listener/BackgroundStyleOnCellGenerated.php rename to src/Listener/BackgroundStyleOnCellGenerated.php index 227eed5..09e6402 100644 --- a/Listener/BackgroundStyleOnCellGenerated.php +++ b/src/Listener/BackgroundStyleOnCellGenerated.php @@ -1,4 +1,6 @@ - * @copyright 2014 - 2021 Rich ID (https://www.rich-id.fr) */ @@ -33,7 +34,7 @@ protected function editStyle(ExcelCellGeneratedEvent $event, array $style): arra $style['fill'] = [ 'fillType' => Fill::FILL_SOLID, - 'startColor' => ['rgb' => \str_replace('#', '', $hexCode)] + 'startColor' => ['rgb' => \str_replace('#', '', $hexCode)], ]; return $style; diff --git a/Listener/BorderStyleOnCellGenerated.php b/src/Listener/BorderStyleOnCellGenerated.php similarity index 89% rename from Listener/BorderStyleOnCellGenerated.php rename to src/Listener/BorderStyleOnCellGenerated.php index e7843d0..93b263f 100644 --- a/Listener/BorderStyleOnCellGenerated.php +++ b/src/Listener/BorderStyleOnCellGenerated.php @@ -1,4 +1,6 @@ - * @copyright 2014 - 2021 Rich ID (https://www.rich-id.fr) */ diff --git a/Listener/ColumnMergingOnCellGenerated.php b/src/Listener/ColumnMergingOnCellGenerated.php similarity index 85% rename from Listener/ColumnMergingOnCellGenerated.php rename to src/Listener/ColumnMergingOnCellGenerated.php index 5cceea0..f39cb2b 100644 --- a/Listener/ColumnMergingOnCellGenerated.php +++ b/src/Listener/ColumnMergingOnCellGenerated.php @@ -1,13 +1,14 @@ - * @copyright 2014 - 2021 Rich ID (https://www.rich-id.fr) */ diff --git a/Listener/ComputeColumnsSizeOnRowGenerated.php b/src/Listener/ComputeColumnsSizeOnRowGenerated.php similarity index 95% rename from Listener/ComputeColumnsSizeOnRowGenerated.php rename to src/Listener/ComputeColumnsSizeOnRowGenerated.php index 05bfc89..7033642 100644 --- a/Listener/ComputeColumnsSizeOnRowGenerated.php +++ b/src/Listener/ComputeColumnsSizeOnRowGenerated.php @@ -1,4 +1,6 @@ - * @copyright 2014 - 2021 Rich ID (https://www.rich-id.fr) */ @@ -62,8 +63,7 @@ protected function resizeColumn( ExcelRowGeneratedEvent $event, CellConfiguration $cellConfiguration, int $column - ): void - { + ): void { $columnDimensionAnnotation = $cellConfiguration->getAnnotation(ColumnDimension::class); if (!$columnDimensionAnnotation instanceof ColumnDimension) { @@ -79,6 +79,7 @@ protected function resizeColumn( if ($columnDimensionAnnotation->autoResize) { $columnDimension->setAutoSize(true); + return; } diff --git a/Listener/ComputeRowHeightOnRowGenerated.php b/src/Listener/ComputeRowHeightOnRowGenerated.php similarity index 88% rename from Listener/ComputeRowHeightOnRowGenerated.php rename to src/Listener/ComputeRowHeightOnRowGenerated.php index 18db63c..fee6519 100644 --- a/Listener/ComputeRowHeightOnRowGenerated.php +++ b/src/Listener/ComputeRowHeightOnRowGenerated.php @@ -1,4 +1,6 @@ - * @copyright 2014 - 2021 Rich ID (https://www.rich-id.fr) */ class ComputeRowHeightOnRowGenerated { public const ROW_HEIGHT_MULTIPLICATOR = 1.4; - + /** @var CellConfigurationsExtractor */ protected $cellConfigurationsExtractor; @@ -34,7 +35,7 @@ public function __invoke(ExcelRowGeneratedEvent $event): void /** @var Style $config */ $config = $cellConfiguration->style; $fontSize = $config->fontSize ?? 0; - $maxFontSize = max($maxFontSize, $fontSize); + $maxFontSize = \max($maxFontSize, $fontSize); } $rowDimension = $event->worksheet->getRowDimension($event->row); diff --git a/Listener/HeaderGenerationOnRowPreGenerated.php b/src/Listener/HeaderGenerationOnRowPreGenerated.php similarity index 92% rename from Listener/HeaderGenerationOnRowPreGenerated.php rename to src/Listener/HeaderGenerationOnRowPreGenerated.php index 718840e..49e9803 100644 --- a/Listener/HeaderGenerationOnRowPreGenerated.php +++ b/src/Listener/HeaderGenerationOnRowPreGenerated.php @@ -1,4 +1,6 @@ - * @copyright 2014 - 2021 Rich ID (https://www.rich-id.fr) */ @@ -59,7 +60,7 @@ public function __invoke(ExcelRowPreGeneratedEvent $event): void $newConfigurations = []; $hashKey = $this->getHashKey($event); - if (!$this->hasHeader($cellConfigurations) || in_array($hashKey, $this->alreadyRenderedHeaders, true)) { + if (!$this->hasHeader($cellConfigurations) || \in_array($hashKey, $this->alreadyRenderedHeaders, true)) { return; } @@ -82,9 +83,7 @@ public function __invoke(ExcelRowPreGeneratedEvent $event): void WorksheetHelper::newLine($event->worksheet); } - /** - * @param CellConfiguration[] $cellConfigurations - */ + /** @param CellConfiguration[] $cellConfigurations */ protected function hasHeader(array $cellConfigurations): bool { foreach ($cellConfigurations as $cellConfiguration) { @@ -101,7 +100,7 @@ protected function getHashKey(ExcelRowPreGeneratedEvent $event): string $modelClass = \get_class($event->model); $parent = $event->model->parent; - return $modelClass . '_' . spl_object_hash($parent); + return $modelClass . '_' . \spl_object_hash($parent); } protected function generateCellConfiguration(ExcelRowPreGeneratedEvent $event, CellConfiguration $cellConfiguration): GeneratedCellConfiguration diff --git a/Listener/TextStyleOnCellGenerated.php b/src/Listener/TextStyleOnCellGenerated.php similarity index 89% rename from Listener/TextStyleOnCellGenerated.php rename to src/Listener/TextStyleOnCellGenerated.php index 2f2aa97..5856d0e 100644 --- a/Listener/TextStyleOnCellGenerated.php +++ b/src/Listener/TextStyleOnCellGenerated.php @@ -1,4 +1,6 @@ - * @copyright 2014 - 2021 Rich ID (https://www.rich-id.fr) */ @@ -23,7 +24,7 @@ protected function editStyle(ExcelCellGeneratedEvent $event, array $style): arra $newStyles = [ $this->getBoldStyle($config), $this->getColorStyle($config, $event), - $this->getFontSizeStyle($config) + $this->getFontSizeStyle($config), ]; foreach ($newStyles as $newStyle) { @@ -58,7 +59,7 @@ protected function getColorStyle(Style $config, ExcelCellGeneratedEvent $event): 'font' => [ 'color' => [ 'argb' => null, - 'rgb' => \str_replace('#', '', $hexCode), + 'rgb' => \str_replace('#', '', $hexCode), ], ], ]; diff --git a/Model/AbstractExcelNode.php b/src/Model/AbstractExcelNode.php similarity index 85% rename from Model/AbstractExcelNode.php rename to src/Model/AbstractExcelNode.php index f1ffbcc..ea40400 100644 --- a/Model/AbstractExcelNode.php +++ b/src/Model/AbstractExcelNode.php @@ -1,4 +1,6 @@ - * @copyright 2014 - 2021 Rich ID (https://www.rich-id.fr) */ @@ -33,9 +34,7 @@ public function addChild(ExcelContent $excelContent): self return $this; } - /** - * @return ExcelContent[] - */ + /** @return ExcelContent[] */ public function getChildren(): array { return $this->children; diff --git a/Model/ExcelContent.php b/src/Model/ExcelContent.php similarity index 81% rename from Model/ExcelContent.php rename to src/Model/ExcelContent.php index 5ab230b..b0955b5 100644 --- a/Model/ExcelContent.php +++ b/src/Model/ExcelContent.php @@ -1,13 +1,14 @@ - * @copyright 2014 - 2021 Rich ID (https://www.rich-id.fr) */ diff --git a/Model/ExcelSheet.php b/src/Model/ExcelSheet.php similarity index 85% rename from Model/ExcelSheet.php rename to src/Model/ExcelSheet.php index 03c1da2..f41c1d9 100644 --- a/Model/ExcelSheet.php +++ b/src/Model/ExcelSheet.php @@ -1,13 +1,14 @@ - * @copyright 2014 - 2021 Rich ID (https://www.rich-id.fr) */ diff --git a/Model/ExcelSpreadsheet.php b/src/Model/ExcelSpreadsheet.php similarity index 86% rename from Model/ExcelSpreadsheet.php rename to src/Model/ExcelSpreadsheet.php index 399604c..e085853 100644 --- a/Model/ExcelSpreadsheet.php +++ b/src/Model/ExcelSpreadsheet.php @@ -1,4 +1,6 @@ - * @copyright 2014 - 2021 Rich ID (https://www.rich-id.fr) */ @@ -41,9 +42,7 @@ public function addSheet(ExcelSheet $excelSheet): self return $this; } - /** - * @return ExcelSheet[] - */ + /** @return ExcelSheet[] */ public function getSheets(): array { return $this->sheets; diff --git a/Resources/services.xml b/src/Resources/services.xml similarity index 100% rename from Resources/services.xml rename to src/Resources/services.xml diff --git a/RichIdExcelGeneratorBundle.php b/src/RichIdExcelGeneratorBundle.php similarity index 72% rename from RichIdExcelGeneratorBundle.php rename to src/RichIdExcelGeneratorBundle.php index d697f5b..f6a8f67 100644 --- a/RichIdExcelGeneratorBundle.php +++ b/src/RichIdExcelGeneratorBundle.php @@ -1,13 +1,14 @@ - * @copyright 2014 - 2021 RichId (https://www.rich-id.fr) */ diff --git a/Validator/Constraints/CorrectParent.php b/src/Validator/Constraints/CorrectParent.php similarity index 80% rename from Validator/Constraints/CorrectParent.php rename to src/Validator/Constraints/CorrectParent.php index cda3d65..e9e06d4 100644 --- a/Validator/Constraints/CorrectParent.php +++ b/src/Validator/Constraints/CorrectParent.php @@ -1,13 +1,14 @@ - * @copyright 2014 - 2021 Rich ID (https://www.rich-id.fr) * diff --git a/Validator/Constraints/CorrectParentValidator.php b/src/Validator/Constraints/CorrectParentValidator.php similarity index 81% rename from Validator/Constraints/CorrectParentValidator.php rename to src/Validator/Constraints/CorrectParentValidator.php index d07083e..e0796f6 100644 --- a/Validator/Constraints/CorrectParentValidator.php +++ b/src/Validator/Constraints/CorrectParentValidator.php @@ -1,4 +1,6 @@ - * @copyright 2014 - 2021 Rich ID (https://www.rich-id.fr) */ @@ -21,7 +22,7 @@ public function validate($value, Constraint $constraint): void return; } - $subject = $this->context->getObject(); + $subject = $this->context->getObject(); if ($value->parent !== null && $subject !== $value->parent) { $this->context->addViolation($constraint->inappropriateParent); diff --git a/Tests/Builder/SpreadsheetBuilderTest.php b/tests/Builder/SpreadsheetBuilderTest.php similarity index 96% rename from Tests/Builder/SpreadsheetBuilderTest.php rename to tests/Builder/SpreadsheetBuilderTest.php index e8f7543..45baae6 100644 --- a/Tests/Builder/SpreadsheetBuilderTest.php +++ b/tests/Builder/SpreadsheetBuilderTest.php @@ -1,4 +1,6 @@ - * @copyright 2014 - 2021 Rich ID (https://www.rich-id.fr) * diff --git a/Tests/Generator/ExcelGeneratorTest.php b/tests/Generator/ExcelGeneratorTest.php similarity index 90% rename from Tests/Generator/ExcelGeneratorTest.php rename to tests/Generator/ExcelGeneratorTest.php index 4b5489d..4c12880 100644 --- a/Tests/Generator/ExcelGeneratorTest.php +++ b/tests/Generator/ExcelGeneratorTest.php @@ -1,4 +1,6 @@ - * @copyright 2014 - 2021 Rich ID (https://www.rich-id.fr) * * @TestConfig("container") - * @covers RichId\ExcelGeneratorBundle\Generator\ExcelGenerator + * @covers \RichId\ExcelGeneratorBundle\Generator\ExcelGenerator */ final class ExcelGeneratorTest extends TestCase { @@ -28,18 +29,13 @@ final class ExcelGeneratorTest extends TestCase /** @var string */ private $cacheDirectory; - protected function beforeTest(): void - { - $this->cacheDirectory = $this->getService(ParameterBagInterface::class)->get('kernel.cache_dir'); - } - public function testGenerate(): void { $excelSpreadsheet = $this->generateExcelSpreadsheet(); $filePath = $this->cacheDirectory . '/' . $excelSpreadsheet->filename; - if (file_exists($filePath)) { - unlink($filePath); + if (\file_exists($filePath)) { + \unlink($filePath); } $this->generator->save($excelSpreadsheet, $this->cacheDirectory); @@ -47,6 +43,11 @@ public function testGenerate(): void self::assertFileExists($filePath); } + protected function beforeTest(): void + { + $this->cacheDirectory = $this->getService(ParameterBagInterface::class)->get('kernel.cache_dir'); + } + private function generateExcelSpreadsheet(): ExcelSpreadsheet { $content1 = new DummyExcelContent(); @@ -76,4 +77,4 @@ private function generateExcelSpreadsheet(): ExcelSpreadsheet return $excelSpreadsheet; } -} \ No newline at end of file +} diff --git a/Tests/Model/ExcelSpreadsheetTest.php b/tests/Model/ExcelSpreadsheetTest.php similarity index 96% rename from Tests/Model/ExcelSpreadsheetTest.php rename to tests/Model/ExcelSpreadsheetTest.php index 402022f..854ab01 100644 --- a/Tests/Model/ExcelSpreadsheetTest.php +++ b/tests/Model/ExcelSpreadsheetTest.php @@ -1,4 +1,6 @@ - * @copyright 2014 - 2021 Rich ID (https://www.rich-id.fr) * @@ -25,16 +26,6 @@ class ExcelSpreadsheetTest extends ModelTestCase /** @var ExcelSpreadsheet */ protected $model; - protected function beforeTest(): void - { - $sheet = new ExcelSheet(); - $sheet->name = 'Sheet 1'; - - $this->model = new ExcelSpreadsheet(); - $this->model->filename = 'filename.xls'; - $this->model->addSheet($sheet); - } - public function testValid(): void { self::assertEmpty($this->validate()); @@ -86,4 +77,14 @@ public function testInappropriateParent(): void self::assertCount(1, $violations); self::assertSame('The parent is not what is expected, make sure you don\'t use an object twice and don\'t set the parent on your own.', $violations->get(0)->getMessage()); } + + protected function beforeTest(): void + { + $sheet = new ExcelSheet(); + $sheet->name = 'Sheet 1'; + + $this->model = new ExcelSpreadsheet(); + $this->model->filename = 'filename.xls'; + $this->model->addSheet($sheet); + } } diff --git a/Tests/Resources/Kernel/TestKernel.php b/tests/Resources/Kernel/TestKernel.php similarity index 75% rename from Tests/Resources/Kernel/TestKernel.php rename to tests/Resources/Kernel/TestKernel.php index 145aeff..482ebf0 100755 --- a/Tests/Resources/Kernel/TestKernel.php +++ b/tests/Resources/Kernel/TestKernel.php @@ -1,13 +1,14 @@ - * @copyright 2014 - 2021 RichID (https://www.rich-id.fr) */ @@ -18,9 +19,6 @@ public function __construct() parent::__construct('test', false); } - /** - * @return string|null - */ public function getConfigurationDir(): ?string { return __DIR__ . '/config'; diff --git a/Tests/Resources/Kernel/bin/console b/tests/Resources/Kernel/bin/console similarity index 100% rename from Tests/Resources/Kernel/bin/console rename to tests/Resources/Kernel/bin/console diff --git a/Tests/Resources/Kernel/config/bundles.php b/tests/Resources/Kernel/config/bundles.php similarity index 75% rename from Tests/Resources/Kernel/config/bundles.php rename to tests/Resources/Kernel/config/bundles.php index f4d6d92..2a59dcf 100644 --- a/Tests/Resources/Kernel/config/bundles.php +++ b/tests/Resources/Kernel/config/bundles.php @@ -1,4 +1,6 @@ - ['all' => true], diff --git a/Tests/Resources/Kernel/config/packages/doctrine.yaml b/tests/Resources/Kernel/config/packages/doctrine.yaml similarity index 100% rename from Tests/Resources/Kernel/config/packages/doctrine.yaml rename to tests/Resources/Kernel/config/packages/doctrine.yaml diff --git a/Tests/Resources/Kernel/config/packages/framework.yaml b/tests/Resources/Kernel/config/packages/framework.yaml similarity index 100% rename from Tests/Resources/Kernel/config/packages/framework.yaml rename to tests/Resources/Kernel/config/packages/framework.yaml diff --git a/Tests/Resources/Kernel/config/services.yaml b/tests/Resources/Kernel/config/services.yaml similarity index 100% rename from Tests/Resources/Kernel/config/services.yaml rename to tests/Resources/Kernel/config/services.yaml diff --git a/Tests/Resources/Model/DummyExcelContent.php b/tests/Resources/Model/DummyExcelContent.php similarity index 76% rename from Tests/Resources/Model/DummyExcelContent.php rename to tests/Resources/Model/DummyExcelContent.php index f674a80..0622ec8 100644 --- a/Tests/Resources/Model/DummyExcelContent.php +++ b/tests/Resources/Model/DummyExcelContent.php @@ -1,21 +1,25 @@ - * @copyright 2014 - 2021 Rich ID (https://www.rich-id.fr) */ class DummyExcelContent extends ExcelContent { + /** @var string */ public $property1 = 'First property'; + /** @var int */ public $property2 = 2; + /** @var bool */ public $property3 = true; } diff --git a/Tests/Resources/TestCase/ModelTestCase.php b/tests/Resources/TestCase/ModelTestCase.php similarity index 85% rename from Tests/Resources/TestCase/ModelTestCase.php rename to tests/Resources/TestCase/ModelTestCase.php index 8681722..935bf2d 100644 --- a/Tests/Resources/TestCase/ModelTestCase.php +++ b/tests/Resources/TestCase/ModelTestCase.php @@ -1,4 +1,6 @@ - * @copyright 2014 - 2021 Rich ID (https://www.rich-id.fr) * @@ -25,4 +26,4 @@ protected function validate(): ConstraintViolationListInterface { return $this->getService(ValidatorInterface::class)->validate($this->model); } -} \ No newline at end of file +} From aa6f47a7201ad29aefc316a74bf1c74ba5444d49 Mon Sep 17 00:00:00 2001 From: Nicolas Guilloux Date: Fri, 18 Jun 2021 16:56:22 +0200 Subject: [PATCH 09/10] Add more documentation --- README.md | 9 +++- docs/Columns.md | 65 ++++++++++++++++++++++++ docs/Headers.md | 4 +- docs/Styles.md | 77 +++++++++++++++++++++++++++++ src/Annotation/GroupBorderStyle.php | 27 ---------- 5 files changed, 150 insertions(+), 32 deletions(-) create mode 100644 docs/Columns.md create mode 100644 docs/Styles.md delete mode 100644 src/Annotation/GroupBorderStyle.php diff --git a/README.md b/README.md index f79aeaa..77e8072 100644 --- a/README.md +++ b/README.md @@ -77,7 +77,10 @@ class PersonContent extends ExcelContent # Table of content 1. [Installation](#1-installation) -2. [Getting started](#2-getting-started) +2. [Configuration](#2-configuration) + - [Columns](docs/Columns.md) + - [Headers](docs/Headers.md) + - [Styles](docs/Styles.md) 3. [Versioning](#3-versioning) 4. [Contributing](#4-contributing) 5. [Hacking](#5-hacking) @@ -92,9 +95,11 @@ This version of the bundle requires Symfony 4.4+ and PHP 7.3+. composer require rich-id/excel-generator-bundle ``` -# 2 Getting started +# 2. Configuration +- [Columns](docs/Columns.md) - [Headers](docs/Headers.md) +- [Styles](docs/Styles.md) # 3. Versioning diff --git a/docs/Columns.md b/docs/Columns.md new file mode 100644 index 0000000..1674036 --- /dev/null +++ b/docs/Columns.md @@ -0,0 +1,65 @@ +# Columns + +You can edit the column options to fit your needs. + + +## RichId\ExcelGeneratorBundle\Annotation\ColumnDimension + +This annotation has 2 properties : +- `dimension`: Dimension in pixel +- `autoResize`: Automatically resize the column to fit the content + +```php +use RichId\ExcelGeneratorBundle\Annotation\ColumnDimension; +use RichId\ExcelGeneratorBundle\Model\ExcelContent; + +class Content extends ExcelContent +{ + /** + * @ColumnDimension(dimension=540) + */ + public $anyProperty; + + /** + * @ColumnDimension(autoResize=true) + */ + public $anotherProperty; +} +``` + + +## RichId\ExcelGeneratorBundle\Annotation\ColumnMerge + +This annotation has only one property : +- `count`: Number of columns to merge + +```php +use RichId\ExcelGeneratorBundle\Annotation\ColumnMerge; +use RichId\ExcelGeneratorBundle\Model\ExcelContent; + +class Content extends ExcelContent +{ + /** + * @ColumnMerge(count=4) + */ + public $anyProperty; +} +``` + + +## RichId\ExcelGeneratorBundle\Annotation\ColumnAutoResize + +This annotation has no property. It auto resize the column. + +```php +use RichId\ExcelGeneratorBundle\Annotation\ColumnsAutoResize; +use RichId\ExcelGeneratorBundle\Model\ExcelContent; + +class Content extends ExcelContent +{ + /** + * @ColumnsAutoResize + */ + public $anyProperty; +} +``` diff --git a/docs/Headers.md b/docs/Headers.md index a73e7aa..3cfe5f3 100644 --- a/docs/Headers.md +++ b/docs/Headers.md @@ -11,6 +11,7 @@ the class under. You will transform all the people into a list of `PersonContent`. From there, if the list is empty, the header will be not added to your sheet since no data are available. +About the Header style, checkout the [Styles](Styles.md) documentation. Both annotation inherits from the global style annotation. ```php use RichId\ExcelGeneratorBundle\Annotation as Excel; @@ -24,7 +25,6 @@ class PersonContent extends ExcelContent /** * @var string * - * @Excel\ContentStyle(color="#000000", fontSize=12, wrapText=true) * @Excel\HeaderTitle(title="app.person.firstname") */ public $firstname; @@ -32,7 +32,6 @@ class PersonContent extends ExcelContent /** * @var string * - * @Excel\ContentStyle(color="#000000", fontSize=12, bold=true, wrapText=true) * @Excel\HeaderTitle(title="app.person.lastname") */ public $lastname; @@ -40,7 +39,6 @@ class PersonContent extends ExcelContent /** * @var string * - * @Excel\ContentStyle(color="#000000", fontSize=10) * @Excel\HeaderTitle(title="app.person.age") */ public $age; diff --git a/docs/Styles.md b/docs/Styles.md new file mode 100644 index 0000000..6429c9d --- /dev/null +++ b/docs/Styles.md @@ -0,0 +1,77 @@ +# Styles + +Three annotations implements the main Style configuration: + - `RichId\ExcelGeneratorBundle\Annotation\ContentStyle` + - `RichId\ExcelGeneratorBundle\Annotation\HeaderStyle` + - `RichId\ExcelGeneratorBundle\Annotation\HeaderTitle` + +As they all implement the same features, the configuration is the same but used in different contexts. For the +following documentation, we will only use the `ContentStyle` annotation as the others are already explained in the +[Headers](Headers.md) documentation. + + +## Color + +You can set either the text color using the `color` option, or the background color using the `backgroundColor` option. + +Both option can either be a hexadecimal code, or an expression that returns a hexadecimal code. Therefore, the code should be either `#xxxxxx` or directly `xxxxxx` without the hash. + +```php +use RichId\ExcelGeneratorBundle\Annotation\ContentStyle; +use RichId\ExcelGeneratorBundle\Model\ExcelContent; + +class Content extends ExcelContent +{ + /** + * @ContentStyle(color="#012345", backgroundColor="this.getBackgroundColor()") + */ + public $anyProperty; + + public function getBackgroundColor(): string + { + return '#' . substr(md5(mt_rand()), 0, 6); + } +} +``` + + +## Font + +For now, only 2 font modifiers are supported: `bold` and `fontSize`. Their functions are explicit enough. However, an expression cannot be used as a value. + +```php +use RichId\ExcelGeneratorBundle\Annotation\ContentStyle; +use RichId\ExcelGeneratorBundle\Model\ExcelContent; + +class Content extends ExcelContent +{ + /** + * @ContentStyle(bold=true, fontSize=24) + */ + public $anyProperty; +} +``` + + +## Positions and behaviour + +The horizontal and vertical position of the content as well. You also can choose if the text should wrap of been overflown. + +The `position` option controls the horizontal position of the content. The value can only be `left`, `center` of `right`. + +The `verticalPosition` option controls the vertical position of the content. The value can only be `top`, `center` of `bottom`. + +The `wrapText` option is a boolean to control whether the text should be wrapped in the cell. + +```php +use RichId\ExcelGeneratorBundle\Annotation\ContentStyle; +use RichId\ExcelGeneratorBundle\Model\ExcelContent; + +class Content extends ExcelContent +{ + /** + * @ContentStyle(position="right", verticalPosition="bottom", wrapText=true) + */ + public $anyProperty; +} +``` diff --git a/src/Annotation/GroupBorderStyle.php b/src/Annotation/GroupBorderStyle.php deleted file mode 100644 index ef2276d..0000000 --- a/src/Annotation/GroupBorderStyle.php +++ /dev/null @@ -1,27 +0,0 @@ - - * @copyright 2014 - 2021 RichId (https://www.rich-id.fr) - * - * @Annotation - * @Target({"CLASS"}) - */ -final class GroupBorderStyle -{ - public const BORDER_OUTLINE = 'outline'; - - /** @var string */ - public $border; - - public function hasAllowedBorder(): bool - { - return $this->border !== null && \in_array($this->border, [self::BORDER_OUTLINE], true); - } -} From c330ee259ef6bb35397c8444a87cd20f05a92206 Mon Sep 17 00:00:00 2001 From: Nicolas Guilloux Date: Fri, 18 Jun 2021 16:59:53 +0200 Subject: [PATCH 10/10] Add Changelog, fix documentation --- CHANGELOG.md | 5 +++++ docs/Styles.md | 7 ++++--- 2 files changed, 9 insertions(+), 3 deletions(-) create mode 100644 CHANGELOG.md diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..462111b --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,5 @@ +# Changelog + +## Version 1.0.0 + +First release of the bundle. Checkout the [Versioning][README.md#3-versioning] to see how the future versions will be named. diff --git a/docs/Styles.md b/docs/Styles.md index 6429c9d..cf174e0 100644 --- a/docs/Styles.md +++ b/docs/Styles.md @@ -1,9 +1,10 @@ # Styles Three annotations implements the main Style configuration: - - `RichId\ExcelGeneratorBundle\Annotation\ContentStyle` - - `RichId\ExcelGeneratorBundle\Annotation\HeaderStyle` - - `RichId\ExcelGeneratorBundle\Annotation\HeaderTitle` + +- `RichId\ExcelGeneratorBundle\Annotation\ContentStyle` +- `RichId\ExcelGeneratorBundle\Annotation\HeaderStyle` +- `RichId\ExcelGeneratorBundle\Annotation\HeaderTitle` As they all implement the same features, the configuration is the same but used in different contexts. For the following documentation, we will only use the `ContentStyle` annotation as the others are already explained in the