diff --git a/vendor/composer/ClassLoader.php b/vendor/composer/ClassLoader.php index fce8549f0781bafdc7da2301b84d048286757445..dc02dfb114fb6af2eacf89407a529c37ab8e7eb8 100644 --- a/vendor/composer/ClassLoader.php +++ b/vendor/composer/ClassLoader.php @@ -279,7 +279,7 @@ public function isClassMapAuthoritative() */ public function setApcuPrefix($apcuPrefix) { - $this->apcuPrefix = function_exists('apcu_fetch') && filter_var(ini_get('apc.enabled'), FILTER_VALIDATE_BOOLEAN) ? $apcuPrefix : null; + $this->apcuPrefix = function_exists('apcu_fetch') && ini_get('apc.enabled') ? $apcuPrefix : null; } /** @@ -377,7 +377,7 @@ private function findFileWithExtension($class, $ext) $subPath = $class; while (false !== $lastPos = strrpos($subPath, '\\')) { $subPath = substr($subPath, 0, $lastPos); - $search = $subPath . '\\'; + $search = $subPath.'\\'; if (isset($this->prefixDirsPsr4[$search])) { $pathEnd = DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $lastPos + 1); foreach ($this->prefixDirsPsr4[$search] as $dir) { diff --git a/vendor/composer/autoload_classmap.php b/vendor/composer/autoload_classmap.php index ac031cc8af871c45bee3084d6f45dddef57a390f..5fda7ff2c50bbace59d8b4191214fcf0f556165a 100644 --- a/vendor/composer/autoload_classmap.php +++ b/vendor/composer/autoload_classmap.php @@ -271,12 +271,14 @@ 'Consolidation\\AnnotatedCommand\\CommandFileDiscovery' => $vendorDir . '/consolidation/annotated-command/src/CommandFileDiscovery.php', 'Consolidation\\AnnotatedCommand\\CommandInfoAltererInterface' => $vendorDir . '/consolidation/annotated-command/src/CommandInfoAltererInterface.php', 'Consolidation\\AnnotatedCommand\\CommandProcessor' => $vendorDir . '/consolidation/annotated-command/src/CommandProcessor.php', + 'Consolidation\\AnnotatedCommand\\CommandResult' => $vendorDir . '/consolidation/annotated-command/src/CommandResult.php', 'Consolidation\\AnnotatedCommand\\Events\\CustomEventAwareInterface' => $vendorDir . '/consolidation/annotated-command/src/Events/CustomEventAwareInterface.php', 'Consolidation\\AnnotatedCommand\\Events\\CustomEventAwareTrait' => $vendorDir . '/consolidation/annotated-command/src/Events/CustomEventAwareTrait.php', 'Consolidation\\AnnotatedCommand\\ExitCodeInterface' => $vendorDir . '/consolidation/annotated-command/src/ExitCodeInterface.php', 'Consolidation\\AnnotatedCommand\\Help\\HelpCommand' => $vendorDir . '/consolidation/annotated-command/src/Help/HelpCommand.php', 'Consolidation\\AnnotatedCommand\\Help\\HelpDocument' => $vendorDir . '/consolidation/annotated-command/src/Help/HelpDocument.php', 'Consolidation\\AnnotatedCommand\\Help\\HelpDocumentAlter' => $vendorDir . '/consolidation/annotated-command/src/Help/HelpDocumentAlter.php', + 'Consolidation\\AnnotatedCommand\\Help\\HelpDocumentBuilder' => $vendorDir . '/consolidation/annotated-command/src/Help/HelpDocumentBuilder.php', 'Consolidation\\AnnotatedCommand\\Hooks\\AlterResultInterface' => $vendorDir . '/consolidation/annotated-command/src/Hooks/AlterResultInterface.php', 'Consolidation\\AnnotatedCommand\\Hooks\\Dispatchers\\CommandEventHookDispatcher' => $vendorDir . '/consolidation/annotated-command/src/Hooks/Dispatchers/CommandEventHookDispatcher.php', 'Consolidation\\AnnotatedCommand\\Hooks\\Dispatchers\\ExtracterHookDispatcher' => $vendorDir . '/consolidation/annotated-command/src/Hooks/Dispatchers/ExtracterHookDispatcher.php', @@ -296,11 +298,16 @@ 'Consolidation\\AnnotatedCommand\\Hooks\\ProcessResultInterface' => $vendorDir . '/consolidation/annotated-command/src/Hooks/ProcessResultInterface.php', 'Consolidation\\AnnotatedCommand\\Hooks\\StatusDeterminerInterface' => $vendorDir . '/consolidation/annotated-command/src/Hooks/StatusDeterminerInterface.php', 'Consolidation\\AnnotatedCommand\\Hooks\\ValidatorInterface' => $vendorDir . '/consolidation/annotated-command/src/Hooks/ValidatorInterface.php', + 'Consolidation\\AnnotatedCommand\\Input\\StdinAwareInterface' => $vendorDir . '/consolidation/annotated-command/src/Input/StdinAwareInterface.php', + 'Consolidation\\AnnotatedCommand\\Input\\StdinAwareTrait' => $vendorDir . '/consolidation/annotated-command/src/Input/StdinAwareTrait.php', + 'Consolidation\\AnnotatedCommand\\Input\\StdinHandler' => $vendorDir . '/consolidation/annotated-command/src/Input/StdinHandler.php', 'Consolidation\\AnnotatedCommand\\Options\\AlterOptionsCommandEvent' => $vendorDir . '/consolidation/annotated-command/src/Options/AlterOptionsCommandEvent.php', 'Consolidation\\AnnotatedCommand\\Options\\AutomaticOptionsProviderInterface' => $vendorDir . '/consolidation/annotated-command/src/Options/AutomaticOptionsProviderInterface.php', 'Consolidation\\AnnotatedCommand\\Options\\PrepareFormatter' => $vendorDir . '/consolidation/annotated-command/src/Options/PrepareFormatter.php', 'Consolidation\\AnnotatedCommand\\Options\\PrepareTerminalWidthOption' => $vendorDir . '/consolidation/annotated-command/src/Options/PrepareTerminalWidthOption.php', 'Consolidation\\AnnotatedCommand\\OutputDataInterface' => $vendorDir . '/consolidation/annotated-command/src/OutputDataInterface.php', + 'Consolidation\\AnnotatedCommand\\ParameterInjection' => $vendorDir . '/consolidation/annotated-command/src/ParameterInjection.php', + 'Consolidation\\AnnotatedCommand\\ParameterInjector' => $vendorDir . '/consolidation/annotated-command/src/ParameterInjector.php', 'Consolidation\\AnnotatedCommand\\Parser\\CommandInfo' => $vendorDir . '/consolidation/annotated-command/src/Parser/CommandInfo.php', 'Consolidation\\AnnotatedCommand\\Parser\\CommandInfoDeserializer' => $vendorDir . '/consolidation/annotated-command/src/Parser/CommandInfoDeserializer.php', 'Consolidation\\AnnotatedCommand\\Parser\\CommandInfoSerializer' => $vendorDir . '/consolidation/annotated-command/src/Parser/CommandInfoSerializer.php', @@ -311,6 +318,7 @@ 'Consolidation\\AnnotatedCommand\\Parser\\Internal\\DocblockTag' => $vendorDir . '/consolidation/annotated-command/src/Parser/Internal/DocblockTag.php', 'Consolidation\\AnnotatedCommand\\Parser\\Internal\\FullyQualifiedClassCache' => $vendorDir . '/consolidation/annotated-command/src/Parser/Internal/FullyQualifiedClassCache.php', 'Consolidation\\AnnotatedCommand\\Parser\\Internal\\TagFactory' => $vendorDir . '/consolidation/annotated-command/src/Parser/Internal/TagFactory.php', + 'Consolidation\\AnnotatedCommand\\ResultWriter' => $vendorDir . '/consolidation/annotated-command/src/ResultWriter.php', 'Consolidation\\OutputFormatters\\Exception\\AbstractDataFormatException' => $vendorDir . '/consolidation/output-formatters/src/Exception/AbstractDataFormatException.php', 'Consolidation\\OutputFormatters\\Exception\\IncompatibleDataException' => $vendorDir . '/consolidation/output-formatters/src/Exception/IncompatibleDataException.php', 'Consolidation\\OutputFormatters\\Exception\\InvalidFormatException' => $vendorDir . '/consolidation/output-formatters/src/Exception/InvalidFormatException.php', @@ -326,6 +334,7 @@ 'Consolidation\\OutputFormatters\\Formatters\\ListFormatter' => $vendorDir . '/consolidation/output-formatters/src/Formatters/ListFormatter.php', 'Consolidation\\OutputFormatters\\Formatters\\MetadataFormatterInterface' => $vendorDir . '/consolidation/output-formatters/src/Formatters/MetadataFormatterInterface.php', 'Consolidation\\OutputFormatters\\Formatters\\MetadataFormatterTrait' => $vendorDir . '/consolidation/output-formatters/src/Formatters/MetadataFormatterTrait.php', + 'Consolidation\\OutputFormatters\\Formatters\\NoOutputFormatter' => $vendorDir . '/consolidation/output-formatters/src/Formatters/NoOutputFormatter.php', 'Consolidation\\OutputFormatters\\Formatters\\PrintRFormatter' => $vendorDir . '/consolidation/output-formatters/src/Formatters/PrintRFormatter.php', 'Consolidation\\OutputFormatters\\Formatters\\RenderDataInterface' => $vendorDir . '/consolidation/output-formatters/src/Formatters/RenderDataInterface.php', 'Consolidation\\OutputFormatters\\Formatters\\RenderTableDataTrait' => $vendorDir . '/consolidation/output-formatters/src/Formatters/RenderTableDataTrait.php', @@ -340,9 +349,12 @@ 'Consolidation\\OutputFormatters\\Formatters\\YamlFormatter' => $vendorDir . '/consolidation/output-formatters/src/Formatters/YamlFormatter.php', 'Consolidation\\OutputFormatters\\Options\\FormatterOptions' => $vendorDir . '/consolidation/output-formatters/src/Options/FormatterOptions.php', 'Consolidation\\OutputFormatters\\Options\\OverrideOptionsInterface' => $vendorDir . '/consolidation/output-formatters/src/Options/OverrideOptionsInterface.php', + 'Consolidation\\OutputFormatters\\StructuredData\\AbstractListData' => $vendorDir . '/consolidation/output-formatters/src/StructuredData/AbstractListData.php', 'Consolidation\\OutputFormatters\\StructuredData\\AbstractStructuredList' => $vendorDir . '/consolidation/output-formatters/src/StructuredData/AbstractStructuredList.php', 'Consolidation\\OutputFormatters\\StructuredData\\AssociativeList' => $vendorDir . '/consolidation/output-formatters/src/StructuredData/AssociativeList.php', 'Consolidation\\OutputFormatters\\StructuredData\\CallableRenderer' => $vendorDir . '/consolidation/output-formatters/src/StructuredData/CallableRenderer.php', + 'Consolidation\\OutputFormatters\\StructuredData\\ConversionInterface' => $vendorDir . '/consolidation/output-formatters/src/StructuredData/ConversionInterface.php', + 'Consolidation\\OutputFormatters\\StructuredData\\FieldProcessor' => $vendorDir . '/consolidation/output-formatters/src/StructuredData/FieldProcessor.php', 'Consolidation\\OutputFormatters\\StructuredData\\HelpDocument' => $vendorDir . '/consolidation/output-formatters/src/StructuredData/HelpDocument.php', 'Consolidation\\OutputFormatters\\StructuredData\\ListDataFromKeys' => $vendorDir . '/consolidation/output-formatters/src/StructuredData/ListDataFromKeys.php', 'Consolidation\\OutputFormatters\\StructuredData\\ListDataInterface' => $vendorDir . '/consolidation/output-formatters/src/StructuredData/ListDataInterface.php', @@ -359,6 +371,9 @@ 'Consolidation\\OutputFormatters\\StructuredData\\RowsOfFields' => $vendorDir . '/consolidation/output-formatters/src/StructuredData/RowsOfFields.php', 'Consolidation\\OutputFormatters\\StructuredData\\RowsOfFieldsWithMetadata' => $vendorDir . '/consolidation/output-formatters/src/StructuredData/RowsOfFieldsWithMetadata.php', 'Consolidation\\OutputFormatters\\StructuredData\\TableDataInterface' => $vendorDir . '/consolidation/output-formatters/src/StructuredData/TableDataInterface.php', + 'Consolidation\\OutputFormatters\\StructuredData\\UnstructuredData' => $vendorDir . '/consolidation/output-formatters/src/StructuredData/UnstructuredData.php', + 'Consolidation\\OutputFormatters\\StructuredData\\UnstructuredInterface' => $vendorDir . '/consolidation/output-formatters/src/StructuredData/UnstructuredInterface.php', + 'Consolidation\\OutputFormatters\\StructuredData\\UnstructuredListData' => $vendorDir . '/consolidation/output-formatters/src/StructuredData/UnstructuredListData.php', 'Consolidation\\OutputFormatters\\StructuredData\\Xml\\DomDataInterface' => $vendorDir . '/consolidation/output-formatters/src/StructuredData/Xml/DomDataInterface.php', 'Consolidation\\OutputFormatters\\StructuredData\\Xml\\XmlSchema' => $vendorDir . '/consolidation/output-formatters/src/StructuredData/Xml/XmlSchema.php', 'Consolidation\\OutputFormatters\\StructuredData\\Xml\\XmlSchemaInterface' => $vendorDir . '/consolidation/output-formatters/src/StructuredData/Xml/XmlSchemaInterface.php', @@ -368,7 +383,11 @@ 'Consolidation\\OutputFormatters\\Transformations\\PropertyParser' => $vendorDir . '/consolidation/output-formatters/src/Transformations/PropertyParser.php', 'Consolidation\\OutputFormatters\\Transformations\\ReorderFields' => $vendorDir . '/consolidation/output-formatters/src/Transformations/ReorderFields.php', 'Consolidation\\OutputFormatters\\Transformations\\SimplifyToArrayInterface' => $vendorDir . '/consolidation/output-formatters/src/Transformations/SimplifyToArrayInterface.php', + 'Consolidation\\OutputFormatters\\Transformations\\StringTransformationInterface' => $vendorDir . '/consolidation/output-formatters/src/Transformations/StringTransformationInterface.php', 'Consolidation\\OutputFormatters\\Transformations\\TableTransformation' => $vendorDir . '/consolidation/output-formatters/src/Transformations/TableTransformation.php', + 'Consolidation\\OutputFormatters\\Transformations\\UnstructuredDataFieldAccessor' => $vendorDir . '/consolidation/output-formatters/src/Transformations/UnstructuredDataFieldAccessor.php', + 'Consolidation\\OutputFormatters\\Transformations\\UnstructuredDataListTransformation' => $vendorDir . '/consolidation/output-formatters/src/Transformations/UnstructuredDataListTransformation.php', + 'Consolidation\\OutputFormatters\\Transformations\\UnstructuredDataTransformation' => $vendorDir . '/consolidation/output-formatters/src/Transformations/UnstructuredDataTransformation.php', 'Consolidation\\OutputFormatters\\Transformations\\WordWrapper' => $vendorDir . '/consolidation/output-formatters/src/Transformations/WordWrapper.php', 'Consolidation\\OutputFormatters\\Transformations\\Wrap\\CalculateWidths' => $vendorDir . '/consolidation/output-formatters/src/Transformations/Wrap/CalculateWidths.php', 'Consolidation\\OutputFormatters\\Transformations\\Wrap\\ColumnWidths' => $vendorDir . '/consolidation/output-formatters/src/Transformations/Wrap/ColumnWidths.php', @@ -1953,6 +1972,8 @@ 'Drupal\\Core\\Language\\LanguageManager' => $baseDir . '/web/core/lib/Drupal/Core/Language/LanguageManager.php', 'Drupal\\Core\\Language\\LanguageManagerInterface' => $baseDir . '/web/core/lib/Drupal/Core/Language/LanguageManagerInterface.php', 'Drupal\\Core\\Layout\\Annotation\\Layout' => $baseDir . '/web/core/lib/Drupal/Core/Layout/Annotation/Layout.php', + 'Drupal\\Core\\Layout\\Icon\\IconBuilderInterface' => $baseDir . '/web/core/lib/Drupal/Core/Layout/Icon/IconBuilderInterface.php', + 'Drupal\\Core\\Layout\\Icon\\SvgIconBuilder' => $baseDir . '/web/core/lib/Drupal/Core/Layout/Icon/SvgIconBuilder.php', 'Drupal\\Core\\Layout\\LayoutDefault' => $baseDir . '/web/core/lib/Drupal/Core/Layout/LayoutDefault.php', 'Drupal\\Core\\Layout\\LayoutDefinition' => $baseDir . '/web/core/lib/Drupal/Core/Layout/LayoutDefinition.php', 'Drupal\\Core\\Layout\\LayoutInterface' => $baseDir . '/web/core/lib/Drupal/Core/Layout/LayoutInterface.php', @@ -2538,12 +2559,17 @@ 'Drush\\Command\\DrushInputAdapter' => $vendorDir . '/drush/drush/lib/Drush/Command/DrushInputAdapter.php', 'Drush\\Command\\DrushOutputAdapter' => $vendorDir . '/drush/drush/lib/Drush/Command/DrushOutputAdapter.php', 'Drush\\Command\\ServiceCommandlist' => $vendorDir . '/drush/drush/lib/Drush/Command/ServiceCommandlist.php', + 'Drush\\Commands\\DrushCommands' => $vendorDir . '/drush/drush/lib/Drush/Commands/DrushCommands.php', 'Drush\\Commands\\core\\SanitizeCommands' => $vendorDir . '/drush/drush/lib/Drush/Commands/core/SanitizeCommands.php', 'Drush\\Commands\\core\\StatusCommands' => $vendorDir . '/drush/drush/lib/Drush/Commands/core/StatusCommands.php', + 'Drush\\ConfigAdapter' => $vendorDir . '/drush/drush/lib/Drush/ConfigAdapter.php', 'Drush\\Drupal\\DrupalKernel' => $vendorDir . '/drush/drush/lib/Drush/Drupal/DrupalKernel.php', 'Drush\\Drupal\\DrushServiceModifier' => $vendorDir . '/drush/drush/lib/Drush/Drupal/DrushServiceModifier.php', 'Drush\\Drupal\\ExtensionDiscovery' => $vendorDir . '/drush/drush/lib/Drush/Drupal/ExtensionDiscovery.php', 'Drush\\Drupal\\FindCommandsCompilerPass' => $vendorDir . '/drush/drush/lib/Drush/Drupal/FindCommandsCompilerPass.php', + 'Drush\\Drush' => $vendorDir . '/drush/drush/lib/Drush/Drush.php', + 'Drush\\DrushConfig' => $vendorDir . '/drush/drush/lib/Drush/DrushConfig.php', + 'Drush\\Exceptions\\UserAbortException' => $vendorDir . '/drush/drush/lib/Drush/Exceptions/UserAbortException.php', 'Drush\\Log\\DrushLog' => $vendorDir . '/drush/drush/lib/Drush/Log/DrushLog.php', 'Drush\\Log\\LogLevel' => $vendorDir . '/drush/drush/lib/Drush/Log/LogLevel.php', 'Drush\\Log\\Logger' => $vendorDir . '/drush/drush/lib/Drush/Log/Logger.php', @@ -2565,6 +2591,10 @@ 'Drush\\Role\\Role8' => $vendorDir . '/drush/drush/lib/Drush/Role/Role8.php', 'Drush\\Role\\RoleBase' => $vendorDir . '/drush/drush/lib/Drush/Role/RoleBase.php', 'Drush\\Role\\RoleException' => $vendorDir . '/drush/drush/lib/Drush/Role/RoleException.php', + 'Drush\\SiteAlias\\AliasManagerAdapter' => $vendorDir . '/drush/drush/lib/Drush/SiteAlias/AliasManagerAdapter.php', + 'Drush\\SiteAlias\\AliasManagerAdapterInjector' => $vendorDir . '/drush/drush/lib/Drush/SiteAlias/AliasManagerAdapterInjector.php', + 'Drush\\SiteAlias\\ProcessManager' => $vendorDir . '/drush/drush/lib/Drush/SiteAlias/ProcessManager.php', + 'Drush\\SiteAlias\\ProcessManagerInjector' => $vendorDir . '/drush/drush/lib/Drush/SiteAlias/ProcessManagerInjector.php', 'Drush\\Sql\\Sql6' => $vendorDir . '/drush/drush/lib/Drush/Sql/Sql6.php', 'Drush\\Sql\\Sql7' => $vendorDir . '/drush/drush/lib/Drush/Sql/Sql7.php', 'Drush\\Sql\\Sql8' => $vendorDir . '/drush/drush/lib/Drush/Sql/Sql8.php', @@ -2572,10 +2602,14 @@ 'Drush\\Sql\\SqlException' => $vendorDir . '/drush/drush/lib/Drush/Sql/SqlException.php', 'Drush\\Sql\\SqlVersion' => $vendorDir . '/drush/drush/lib/Drush/Sql/SqlVersion.php', 'Drush\\Sql\\Sqlmysql' => $vendorDir . '/drush/drush/lib/Drush/Sql/Sqlmysql.php', + 'Drush\\Sql\\Sqlmysqli' => $vendorDir . '/drush/drush/lib/Drush/Sql/Sqlmysqli.php', 'Drush\\Sql\\Sqloracle' => $vendorDir . '/drush/drush/lib/Drush/Sql/Sqloracle.php', 'Drush\\Sql\\Sqlpgsql' => $vendorDir . '/drush/drush/lib/Drush/Sql/Sqlpgsql.php', 'Drush\\Sql\\Sqlsqlite' => $vendorDir . '/drush/drush/lib/Drush/Sql/Sqlsqlite.php', 'Drush\\Sql\\Sqlsqlsrv' => $vendorDir . '/drush/drush/lib/Drush/Sql/Sqlsqlsrv.php', + 'Drush\\TestTraits\\CliTestTrait' => $vendorDir . '/drush/drush/src/TestTraits/CliTestTrait.php', + 'Drush\\TestTraits\\DrushTestTrait' => $vendorDir . '/drush/drush/src/TestTraits/DrushTestTrait.php', + 'Drush\\TestTraits\\OutputUtilsTrait' => $vendorDir . '/drush/drush/src/TestTraits/OutputUtilsTrait.php', 'Drush\\UpdateService\\Project' => $vendorDir . '/drush/drush/lib/Drush/UpdateService/Project.php', 'Drush\\UpdateService\\ReleaseInfo' => $vendorDir . '/drush/drush/lib/Drush/UpdateService/ReleaseInfo.php', 'Drush\\UpdateService\\StatusInfoDrupal6' => $vendorDir . '/drush/drush/lib/Drush/UpdateService/StatusInfoDrupal6.php', @@ -2768,9 +2802,9 @@ 'JaimePerez\\TwigConfigurableI18n\\Twig\\Extensions\\Extension\\I18n' => $vendorDir . '/jaimeperez/twig-configurable-i18n/src/Twig/Extensions/Extension/I18n.php', 'JaimePerez\\TwigConfigurableI18n\\Twig\\Extensions\\Node\\Trans' => $vendorDir . '/jaimeperez/twig-configurable-i18n/src/Twig/Extensions/Node/Trans.php', 'JaimePerez\\TwigConfigurableI18n\\Twig\\Extensions\\TokenParser\\Trans' => $vendorDir . '/jaimeperez/twig-configurable-i18n/src/Twig/Extensions/TokenParser/Trans.php', - 'JakubOnderka\\PhpConsoleColor\\ConsoleColor' => $vendorDir . '/jakub-onderka/php-console-color/src/JakubOnderka/PhpConsoleColor/ConsoleColor.php', - 'JakubOnderka\\PhpConsoleColor\\InvalidStyleException' => $vendorDir . '/jakub-onderka/php-console-color/src/JakubOnderka/PhpConsoleColor/InvalidStyleException.php', - 'JakubOnderka\\PhpConsoleHighlighter\\Highlighter' => $vendorDir . '/jakub-onderka/php-console-highlighter/src/JakubOnderka/PhpConsoleHighlighter/Highlighter.php', + 'JakubOnderka\\PhpConsoleColor\\ConsoleColor' => $vendorDir . '/jakub-onderka/php-console-color/src/ConsoleColor.php', + 'JakubOnderka\\PhpConsoleColor\\InvalidStyleException' => $vendorDir . '/jakub-onderka/php-console-color/src/InvalidStyleException.php', + 'JakubOnderka\\PhpConsoleHighlighter\\Highlighter' => $vendorDir . '/jakub-onderka/php-console-highlighter/src/Highlighter.php', 'Masterminds\\HTML5' => $vendorDir . '/masterminds/html5/src/HTML5.php', 'Masterminds\\HTML5\\Elements' => $vendorDir . '/masterminds/html5/src/HTML5/Elements.php', 'Masterminds\\HTML5\\Entities' => $vendorDir . '/masterminds/html5/src/HTML5/Entities.php', @@ -2810,6 +2844,8 @@ 'PhpParser\\Builder\\Namespace_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Builder/Namespace_.php', 'PhpParser\\Builder\\Param' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Builder/Param.php', 'PhpParser\\Builder\\Property' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Builder/Property.php', + 'PhpParser\\Builder\\TraitUse' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Builder/TraitUse.php', + 'PhpParser\\Builder\\TraitUseAdaptation' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Builder/TraitUseAdaptation.php', 'PhpParser\\Builder\\Trait_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Builder/Trait_.php', 'PhpParser\\Builder\\Use_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Builder/Use_.php', 'PhpParser\\Comment' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Comment.php', @@ -2827,6 +2863,9 @@ 'PhpParser\\JsonDecoder' => $vendorDir . '/nikic/php-parser/lib/PhpParser/JsonDecoder.php', 'PhpParser\\Lexer' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Lexer.php', 'PhpParser\\Lexer\\Emulative' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Lexer/Emulative.php', + 'PhpParser\\Lexer\\TokenEmulator\\CoaleseEqualTokenEmulator' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/CoaleseEqualTokenEmulator.php', + 'PhpParser\\Lexer\\TokenEmulator\\FnTokenEmulator' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/FnTokenEmulator.php', + 'PhpParser\\Lexer\\TokenEmulator\\TokenEmulatorInterface' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/TokenEmulatorInterface.php', 'PhpParser\\NameContext' => $vendorDir . '/nikic/php-parser/lib/PhpParser/NameContext.php', 'PhpParser\\Node' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node.php', 'PhpParser\\NodeAbstract' => $vendorDir . '/nikic/php-parser/lib/PhpParser/NodeAbstract.php', @@ -2846,11 +2885,13 @@ 'PhpParser\\Node\\Expr\\ArrayDimFetch' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/ArrayDimFetch.php', 'PhpParser\\Node\\Expr\\ArrayItem' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/ArrayItem.php', 'PhpParser\\Node\\Expr\\Array_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/Array_.php', + 'PhpParser\\Node\\Expr\\ArrowFunction' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/ArrowFunction.php', 'PhpParser\\Node\\Expr\\Assign' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/Assign.php', 'PhpParser\\Node\\Expr\\AssignOp' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp.php', 'PhpParser\\Node\\Expr\\AssignOp\\BitwiseAnd' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/BitwiseAnd.php', 'PhpParser\\Node\\Expr\\AssignOp\\BitwiseOr' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/BitwiseOr.php', 'PhpParser\\Node\\Expr\\AssignOp\\BitwiseXor' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/BitwiseXor.php', + 'PhpParser\\Node\\Expr\\AssignOp\\Coalesce' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Coalesce.php', 'PhpParser\\Node\\Expr\\AssignOp\\Concat' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Concat.php', 'PhpParser\\Node\\Expr\\AssignOp\\Div' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Div.php', 'PhpParser\\Node\\Expr\\AssignOp\\Minus' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Minus.php', diff --git a/vendor/composer/autoload_namespaces.php b/vendor/composer/autoload_namespaces.php index ce921821cac5b863af40fa2d52ba53ce507c12d9..3c85b1d0b1642b0d19f893cc3539c5a3a980c637 100644 --- a/vendor/composer/autoload_namespaces.php +++ b/vendor/composer/autoload_namespaces.php @@ -10,8 +10,6 @@ 'Twig_' => array($vendorDir . '/twig/twig/lib'), 'Stack' => array($vendorDir . '/stack/builder/src'), 'SAML2\\' => array($vendorDir . '/simplesamlphp/saml2/src'), - 'JakubOnderka\\PhpConsoleHighlighter' => array($vendorDir . '/jakub-onderka/php-console-highlighter/src'), - 'JakubOnderka\\PhpConsoleColor' => array($vendorDir . '/jakub-onderka/php-console-color/src'), 'Egulias\\' => array($vendorDir . '/egulias/email-validator/src'), 'EasyRdf_' => array($vendorDir . '/easyrdf/easyrdf/lib'), 'Drush' => array($vendorDir . '/drush/drush/lib'), diff --git a/vendor/composer/autoload_psr4.php b/vendor/composer/autoload_psr4.php index 0b8bd6f2a318adb195045c01ecab20ad66d6bedf..8495a07e53d7a87c0cfd4b9ea563855c60b16124 100644 --- a/vendor/composer/autoload_psr4.php +++ b/vendor/composer/autoload_psr4.php @@ -56,12 +56,15 @@ 'PantheonSystems\\CDNBehatHelpers\\' => array($baseDir . '/web/modules/pantheon_advanced_page_cache/tests/behat/helper_classes'), 'OomphInc\\ComposerInstallersExtender\\' => array($vendorDir . '/oomphinc/composer-installers-extender/src'), 'Masterminds\\' => array($vendorDir . '/masterminds/html5/src'), + 'JakubOnderka\\PhpConsoleHighlighter\\' => array($vendorDir . '/jakub-onderka/php-console-highlighter/src'), + 'JakubOnderka\\PhpConsoleColor\\' => array($vendorDir . '/jakub-onderka/php-console-color/src'), 'JaimePerez\\TwigConfigurableI18n\\' => array($vendorDir . '/jaimeperez/twig-configurable-i18n/src'), 'GuzzleHttp\\Psr7\\' => array($vendorDir . '/guzzlehttp/psr7/src'), 'GuzzleHttp\\Promise\\' => array($vendorDir . '/guzzlehttp/promises/src'), 'GuzzleHttp\\' => array($vendorDir . '/guzzlehttp/guzzle/src'), 'Gettext\\Languages\\' => array($vendorDir . '/gettext/languages/src'), 'Gettext\\' => array($vendorDir . '/gettext/gettext/src'), + 'Drush\\' => array($vendorDir . '/drush/drush/src'), 'Drupal\\redis\\' => array($baseDir . '/web/modules/redis/src'), 'Drupal\\Driver\\' => array($baseDir . '/web/drivers/lib/Drupal/Driver'), 'Drupal\\Core\\' => array($baseDir . '/web/core/lib/Drupal/Core'), diff --git a/vendor/composer/autoload_static.php b/vendor/composer/autoload_static.php index 2dea499e2779d70c0228e6d8b513e0f547808ec2..d7032e74afecbe3192223bbf3227ee3a82af8ac0 100644 --- a/vendor/composer/autoload_static.php +++ b/vendor/composer/autoload_static.php @@ -120,6 +120,8 @@ class ComposerStaticInit5c689ffcd54b9e495ed983fdce09b530 ), 'J' => array ( + 'JakubOnderka\\PhpConsoleHighlighter\\' => 35, + 'JakubOnderka\\PhpConsoleColor\\' => 29, 'JaimePerez\\TwigConfigurableI18n\\' => 32, ), 'G' => @@ -132,6 +134,7 @@ class ComposerStaticInit5c689ffcd54b9e495ed983fdce09b530 ), 'D' => array ( + 'Drush\\' => 6, 'Drupal\\redis\\' => 13, 'Drupal\\Driver\\' => 14, 'Drupal\\Core\\' => 12, @@ -366,6 +369,14 @@ class ComposerStaticInit5c689ffcd54b9e495ed983fdce09b530 array ( 0 => __DIR__ . '/..' . '/masterminds/html5/src', ), + 'JakubOnderka\\PhpConsoleHighlighter\\' => + array ( + 0 => __DIR__ . '/..' . '/jakub-onderka/php-console-highlighter/src', + ), + 'JakubOnderka\\PhpConsoleColor\\' => + array ( + 0 => __DIR__ . '/..' . '/jakub-onderka/php-console-color/src', + ), 'JaimePerez\\TwigConfigurableI18n\\' => array ( 0 => __DIR__ . '/..' . '/jaimeperez/twig-configurable-i18n/src', @@ -390,6 +401,10 @@ class ComposerStaticInit5c689ffcd54b9e495ed983fdce09b530 array ( 0 => __DIR__ . '/..' . '/gettext/gettext/src', ), + 'Drush\\' => + array ( + 0 => __DIR__ . '/..' . '/drush/drush/src', + ), 'Drupal\\redis\\' => array ( 0 => __DIR__ . '/../..' . '/web/modules/redis/src', @@ -499,17 +514,6 @@ class ComposerStaticInit5c689ffcd54b9e495ed983fdce09b530 0 => __DIR__ . '/..' . '/simplesamlphp/saml2/src', ), ), - 'J' => - array ( - 'JakubOnderka\\PhpConsoleHighlighter' => - array ( - 0 => __DIR__ . '/..' . '/jakub-onderka/php-console-highlighter/src', - ), - 'JakubOnderka\\PhpConsoleColor' => - array ( - 0 => __DIR__ . '/..' . '/jakub-onderka/php-console-color/src', - ), - ), 'E' => array ( 'Egulias\\' => @@ -823,12 +827,14 @@ class ComposerStaticInit5c689ffcd54b9e495ed983fdce09b530 'Consolidation\\AnnotatedCommand\\CommandFileDiscovery' => __DIR__ . '/..' . '/consolidation/annotated-command/src/CommandFileDiscovery.php', 'Consolidation\\AnnotatedCommand\\CommandInfoAltererInterface' => __DIR__ . '/..' . '/consolidation/annotated-command/src/CommandInfoAltererInterface.php', 'Consolidation\\AnnotatedCommand\\CommandProcessor' => __DIR__ . '/..' . '/consolidation/annotated-command/src/CommandProcessor.php', + 'Consolidation\\AnnotatedCommand\\CommandResult' => __DIR__ . '/..' . '/consolidation/annotated-command/src/CommandResult.php', 'Consolidation\\AnnotatedCommand\\Events\\CustomEventAwareInterface' => __DIR__ . '/..' . '/consolidation/annotated-command/src/Events/CustomEventAwareInterface.php', 'Consolidation\\AnnotatedCommand\\Events\\CustomEventAwareTrait' => __DIR__ . '/..' . '/consolidation/annotated-command/src/Events/CustomEventAwareTrait.php', 'Consolidation\\AnnotatedCommand\\ExitCodeInterface' => __DIR__ . '/..' . '/consolidation/annotated-command/src/ExitCodeInterface.php', 'Consolidation\\AnnotatedCommand\\Help\\HelpCommand' => __DIR__ . '/..' . '/consolidation/annotated-command/src/Help/HelpCommand.php', 'Consolidation\\AnnotatedCommand\\Help\\HelpDocument' => __DIR__ . '/..' . '/consolidation/annotated-command/src/Help/HelpDocument.php', 'Consolidation\\AnnotatedCommand\\Help\\HelpDocumentAlter' => __DIR__ . '/..' . '/consolidation/annotated-command/src/Help/HelpDocumentAlter.php', + 'Consolidation\\AnnotatedCommand\\Help\\HelpDocumentBuilder' => __DIR__ . '/..' . '/consolidation/annotated-command/src/Help/HelpDocumentBuilder.php', 'Consolidation\\AnnotatedCommand\\Hooks\\AlterResultInterface' => __DIR__ . '/..' . '/consolidation/annotated-command/src/Hooks/AlterResultInterface.php', 'Consolidation\\AnnotatedCommand\\Hooks\\Dispatchers\\CommandEventHookDispatcher' => __DIR__ . '/..' . '/consolidation/annotated-command/src/Hooks/Dispatchers/CommandEventHookDispatcher.php', 'Consolidation\\AnnotatedCommand\\Hooks\\Dispatchers\\ExtracterHookDispatcher' => __DIR__ . '/..' . '/consolidation/annotated-command/src/Hooks/Dispatchers/ExtracterHookDispatcher.php', @@ -848,11 +854,16 @@ class ComposerStaticInit5c689ffcd54b9e495ed983fdce09b530 'Consolidation\\AnnotatedCommand\\Hooks\\ProcessResultInterface' => __DIR__ . '/..' . '/consolidation/annotated-command/src/Hooks/ProcessResultInterface.php', 'Consolidation\\AnnotatedCommand\\Hooks\\StatusDeterminerInterface' => __DIR__ . '/..' . '/consolidation/annotated-command/src/Hooks/StatusDeterminerInterface.php', 'Consolidation\\AnnotatedCommand\\Hooks\\ValidatorInterface' => __DIR__ . '/..' . '/consolidation/annotated-command/src/Hooks/ValidatorInterface.php', + 'Consolidation\\AnnotatedCommand\\Input\\StdinAwareInterface' => __DIR__ . '/..' . '/consolidation/annotated-command/src/Input/StdinAwareInterface.php', + 'Consolidation\\AnnotatedCommand\\Input\\StdinAwareTrait' => __DIR__ . '/..' . '/consolidation/annotated-command/src/Input/StdinAwareTrait.php', + 'Consolidation\\AnnotatedCommand\\Input\\StdinHandler' => __DIR__ . '/..' . '/consolidation/annotated-command/src/Input/StdinHandler.php', 'Consolidation\\AnnotatedCommand\\Options\\AlterOptionsCommandEvent' => __DIR__ . '/..' . '/consolidation/annotated-command/src/Options/AlterOptionsCommandEvent.php', 'Consolidation\\AnnotatedCommand\\Options\\AutomaticOptionsProviderInterface' => __DIR__ . '/..' . '/consolidation/annotated-command/src/Options/AutomaticOptionsProviderInterface.php', 'Consolidation\\AnnotatedCommand\\Options\\PrepareFormatter' => __DIR__ . '/..' . '/consolidation/annotated-command/src/Options/PrepareFormatter.php', 'Consolidation\\AnnotatedCommand\\Options\\PrepareTerminalWidthOption' => __DIR__ . '/..' . '/consolidation/annotated-command/src/Options/PrepareTerminalWidthOption.php', 'Consolidation\\AnnotatedCommand\\OutputDataInterface' => __DIR__ . '/..' . '/consolidation/annotated-command/src/OutputDataInterface.php', + 'Consolidation\\AnnotatedCommand\\ParameterInjection' => __DIR__ . '/..' . '/consolidation/annotated-command/src/ParameterInjection.php', + 'Consolidation\\AnnotatedCommand\\ParameterInjector' => __DIR__ . '/..' . '/consolidation/annotated-command/src/ParameterInjector.php', 'Consolidation\\AnnotatedCommand\\Parser\\CommandInfo' => __DIR__ . '/..' . '/consolidation/annotated-command/src/Parser/CommandInfo.php', 'Consolidation\\AnnotatedCommand\\Parser\\CommandInfoDeserializer' => __DIR__ . '/..' . '/consolidation/annotated-command/src/Parser/CommandInfoDeserializer.php', 'Consolidation\\AnnotatedCommand\\Parser\\CommandInfoSerializer' => __DIR__ . '/..' . '/consolidation/annotated-command/src/Parser/CommandInfoSerializer.php', @@ -863,6 +874,7 @@ class ComposerStaticInit5c689ffcd54b9e495ed983fdce09b530 'Consolidation\\AnnotatedCommand\\Parser\\Internal\\DocblockTag' => __DIR__ . '/..' . '/consolidation/annotated-command/src/Parser/Internal/DocblockTag.php', 'Consolidation\\AnnotatedCommand\\Parser\\Internal\\FullyQualifiedClassCache' => __DIR__ . '/..' . '/consolidation/annotated-command/src/Parser/Internal/FullyQualifiedClassCache.php', 'Consolidation\\AnnotatedCommand\\Parser\\Internal\\TagFactory' => __DIR__ . '/..' . '/consolidation/annotated-command/src/Parser/Internal/TagFactory.php', + 'Consolidation\\AnnotatedCommand\\ResultWriter' => __DIR__ . '/..' . '/consolidation/annotated-command/src/ResultWriter.php', 'Consolidation\\OutputFormatters\\Exception\\AbstractDataFormatException' => __DIR__ . '/..' . '/consolidation/output-formatters/src/Exception/AbstractDataFormatException.php', 'Consolidation\\OutputFormatters\\Exception\\IncompatibleDataException' => __DIR__ . '/..' . '/consolidation/output-formatters/src/Exception/IncompatibleDataException.php', 'Consolidation\\OutputFormatters\\Exception\\InvalidFormatException' => __DIR__ . '/..' . '/consolidation/output-formatters/src/Exception/InvalidFormatException.php', @@ -878,6 +890,7 @@ class ComposerStaticInit5c689ffcd54b9e495ed983fdce09b530 'Consolidation\\OutputFormatters\\Formatters\\ListFormatter' => __DIR__ . '/..' . '/consolidation/output-formatters/src/Formatters/ListFormatter.php', 'Consolidation\\OutputFormatters\\Formatters\\MetadataFormatterInterface' => __DIR__ . '/..' . '/consolidation/output-formatters/src/Formatters/MetadataFormatterInterface.php', 'Consolidation\\OutputFormatters\\Formatters\\MetadataFormatterTrait' => __DIR__ . '/..' . '/consolidation/output-formatters/src/Formatters/MetadataFormatterTrait.php', + 'Consolidation\\OutputFormatters\\Formatters\\NoOutputFormatter' => __DIR__ . '/..' . '/consolidation/output-formatters/src/Formatters/NoOutputFormatter.php', 'Consolidation\\OutputFormatters\\Formatters\\PrintRFormatter' => __DIR__ . '/..' . '/consolidation/output-formatters/src/Formatters/PrintRFormatter.php', 'Consolidation\\OutputFormatters\\Formatters\\RenderDataInterface' => __DIR__ . '/..' . '/consolidation/output-formatters/src/Formatters/RenderDataInterface.php', 'Consolidation\\OutputFormatters\\Formatters\\RenderTableDataTrait' => __DIR__ . '/..' . '/consolidation/output-formatters/src/Formatters/RenderTableDataTrait.php', @@ -892,9 +905,12 @@ class ComposerStaticInit5c689ffcd54b9e495ed983fdce09b530 'Consolidation\\OutputFormatters\\Formatters\\YamlFormatter' => __DIR__ . '/..' . '/consolidation/output-formatters/src/Formatters/YamlFormatter.php', 'Consolidation\\OutputFormatters\\Options\\FormatterOptions' => __DIR__ . '/..' . '/consolidation/output-formatters/src/Options/FormatterOptions.php', 'Consolidation\\OutputFormatters\\Options\\OverrideOptionsInterface' => __DIR__ . '/..' . '/consolidation/output-formatters/src/Options/OverrideOptionsInterface.php', + 'Consolidation\\OutputFormatters\\StructuredData\\AbstractListData' => __DIR__ . '/..' . '/consolidation/output-formatters/src/StructuredData/AbstractListData.php', 'Consolidation\\OutputFormatters\\StructuredData\\AbstractStructuredList' => __DIR__ . '/..' . '/consolidation/output-formatters/src/StructuredData/AbstractStructuredList.php', 'Consolidation\\OutputFormatters\\StructuredData\\AssociativeList' => __DIR__ . '/..' . '/consolidation/output-formatters/src/StructuredData/AssociativeList.php', 'Consolidation\\OutputFormatters\\StructuredData\\CallableRenderer' => __DIR__ . '/..' . '/consolidation/output-formatters/src/StructuredData/CallableRenderer.php', + 'Consolidation\\OutputFormatters\\StructuredData\\ConversionInterface' => __DIR__ . '/..' . '/consolidation/output-formatters/src/StructuredData/ConversionInterface.php', + 'Consolidation\\OutputFormatters\\StructuredData\\FieldProcessor' => __DIR__ . '/..' . '/consolidation/output-formatters/src/StructuredData/FieldProcessor.php', 'Consolidation\\OutputFormatters\\StructuredData\\HelpDocument' => __DIR__ . '/..' . '/consolidation/output-formatters/src/StructuredData/HelpDocument.php', 'Consolidation\\OutputFormatters\\StructuredData\\ListDataFromKeys' => __DIR__ . '/..' . '/consolidation/output-formatters/src/StructuredData/ListDataFromKeys.php', 'Consolidation\\OutputFormatters\\StructuredData\\ListDataInterface' => __DIR__ . '/..' . '/consolidation/output-formatters/src/StructuredData/ListDataInterface.php', @@ -911,6 +927,9 @@ class ComposerStaticInit5c689ffcd54b9e495ed983fdce09b530 'Consolidation\\OutputFormatters\\StructuredData\\RowsOfFields' => __DIR__ . '/..' . '/consolidation/output-formatters/src/StructuredData/RowsOfFields.php', 'Consolidation\\OutputFormatters\\StructuredData\\RowsOfFieldsWithMetadata' => __DIR__ . '/..' . '/consolidation/output-formatters/src/StructuredData/RowsOfFieldsWithMetadata.php', 'Consolidation\\OutputFormatters\\StructuredData\\TableDataInterface' => __DIR__ . '/..' . '/consolidation/output-formatters/src/StructuredData/TableDataInterface.php', + 'Consolidation\\OutputFormatters\\StructuredData\\UnstructuredData' => __DIR__ . '/..' . '/consolidation/output-formatters/src/StructuredData/UnstructuredData.php', + 'Consolidation\\OutputFormatters\\StructuredData\\UnstructuredInterface' => __DIR__ . '/..' . '/consolidation/output-formatters/src/StructuredData/UnstructuredInterface.php', + 'Consolidation\\OutputFormatters\\StructuredData\\UnstructuredListData' => __DIR__ . '/..' . '/consolidation/output-formatters/src/StructuredData/UnstructuredListData.php', 'Consolidation\\OutputFormatters\\StructuredData\\Xml\\DomDataInterface' => __DIR__ . '/..' . '/consolidation/output-formatters/src/StructuredData/Xml/DomDataInterface.php', 'Consolidation\\OutputFormatters\\StructuredData\\Xml\\XmlSchema' => __DIR__ . '/..' . '/consolidation/output-formatters/src/StructuredData/Xml/XmlSchema.php', 'Consolidation\\OutputFormatters\\StructuredData\\Xml\\XmlSchemaInterface' => __DIR__ . '/..' . '/consolidation/output-formatters/src/StructuredData/Xml/XmlSchemaInterface.php', @@ -920,7 +939,11 @@ class ComposerStaticInit5c689ffcd54b9e495ed983fdce09b530 'Consolidation\\OutputFormatters\\Transformations\\PropertyParser' => __DIR__ . '/..' . '/consolidation/output-formatters/src/Transformations/PropertyParser.php', 'Consolidation\\OutputFormatters\\Transformations\\ReorderFields' => __DIR__ . '/..' . '/consolidation/output-formatters/src/Transformations/ReorderFields.php', 'Consolidation\\OutputFormatters\\Transformations\\SimplifyToArrayInterface' => __DIR__ . '/..' . '/consolidation/output-formatters/src/Transformations/SimplifyToArrayInterface.php', + 'Consolidation\\OutputFormatters\\Transformations\\StringTransformationInterface' => __DIR__ . '/..' . '/consolidation/output-formatters/src/Transformations/StringTransformationInterface.php', 'Consolidation\\OutputFormatters\\Transformations\\TableTransformation' => __DIR__ . '/..' . '/consolidation/output-formatters/src/Transformations/TableTransformation.php', + 'Consolidation\\OutputFormatters\\Transformations\\UnstructuredDataFieldAccessor' => __DIR__ . '/..' . '/consolidation/output-formatters/src/Transformations/UnstructuredDataFieldAccessor.php', + 'Consolidation\\OutputFormatters\\Transformations\\UnstructuredDataListTransformation' => __DIR__ . '/..' . '/consolidation/output-formatters/src/Transformations/UnstructuredDataListTransformation.php', + 'Consolidation\\OutputFormatters\\Transformations\\UnstructuredDataTransformation' => __DIR__ . '/..' . '/consolidation/output-formatters/src/Transformations/UnstructuredDataTransformation.php', 'Consolidation\\OutputFormatters\\Transformations\\WordWrapper' => __DIR__ . '/..' . '/consolidation/output-formatters/src/Transformations/WordWrapper.php', 'Consolidation\\OutputFormatters\\Transformations\\Wrap\\CalculateWidths' => __DIR__ . '/..' . '/consolidation/output-formatters/src/Transformations/Wrap/CalculateWidths.php', 'Consolidation\\OutputFormatters\\Transformations\\Wrap\\ColumnWidths' => __DIR__ . '/..' . '/consolidation/output-formatters/src/Transformations/Wrap/ColumnWidths.php', @@ -2505,6 +2528,8 @@ class ComposerStaticInit5c689ffcd54b9e495ed983fdce09b530 'Drupal\\Core\\Language\\LanguageManager' => __DIR__ . '/../..' . '/web/core/lib/Drupal/Core/Language/LanguageManager.php', 'Drupal\\Core\\Language\\LanguageManagerInterface' => __DIR__ . '/../..' . '/web/core/lib/Drupal/Core/Language/LanguageManagerInterface.php', 'Drupal\\Core\\Layout\\Annotation\\Layout' => __DIR__ . '/../..' . '/web/core/lib/Drupal/Core/Layout/Annotation/Layout.php', + 'Drupal\\Core\\Layout\\Icon\\IconBuilderInterface' => __DIR__ . '/../..' . '/web/core/lib/Drupal/Core/Layout/Icon/IconBuilderInterface.php', + 'Drupal\\Core\\Layout\\Icon\\SvgIconBuilder' => __DIR__ . '/../..' . '/web/core/lib/Drupal/Core/Layout/Icon/SvgIconBuilder.php', 'Drupal\\Core\\Layout\\LayoutDefault' => __DIR__ . '/../..' . '/web/core/lib/Drupal/Core/Layout/LayoutDefault.php', 'Drupal\\Core\\Layout\\LayoutDefinition' => __DIR__ . '/../..' . '/web/core/lib/Drupal/Core/Layout/LayoutDefinition.php', 'Drupal\\Core\\Layout\\LayoutInterface' => __DIR__ . '/../..' . '/web/core/lib/Drupal/Core/Layout/LayoutInterface.php', @@ -3090,12 +3115,17 @@ class ComposerStaticInit5c689ffcd54b9e495ed983fdce09b530 'Drush\\Command\\DrushInputAdapter' => __DIR__ . '/..' . '/drush/drush/lib/Drush/Command/DrushInputAdapter.php', 'Drush\\Command\\DrushOutputAdapter' => __DIR__ . '/..' . '/drush/drush/lib/Drush/Command/DrushOutputAdapter.php', 'Drush\\Command\\ServiceCommandlist' => __DIR__ . '/..' . '/drush/drush/lib/Drush/Command/ServiceCommandlist.php', + 'Drush\\Commands\\DrushCommands' => __DIR__ . '/..' . '/drush/drush/lib/Drush/Commands/DrushCommands.php', 'Drush\\Commands\\core\\SanitizeCommands' => __DIR__ . '/..' . '/drush/drush/lib/Drush/Commands/core/SanitizeCommands.php', 'Drush\\Commands\\core\\StatusCommands' => __DIR__ . '/..' . '/drush/drush/lib/Drush/Commands/core/StatusCommands.php', + 'Drush\\ConfigAdapter' => __DIR__ . '/..' . '/drush/drush/lib/Drush/ConfigAdapter.php', 'Drush\\Drupal\\DrupalKernel' => __DIR__ . '/..' . '/drush/drush/lib/Drush/Drupal/DrupalKernel.php', 'Drush\\Drupal\\DrushServiceModifier' => __DIR__ . '/..' . '/drush/drush/lib/Drush/Drupal/DrushServiceModifier.php', 'Drush\\Drupal\\ExtensionDiscovery' => __DIR__ . '/..' . '/drush/drush/lib/Drush/Drupal/ExtensionDiscovery.php', 'Drush\\Drupal\\FindCommandsCompilerPass' => __DIR__ . '/..' . '/drush/drush/lib/Drush/Drupal/FindCommandsCompilerPass.php', + 'Drush\\Drush' => __DIR__ . '/..' . '/drush/drush/lib/Drush/Drush.php', + 'Drush\\DrushConfig' => __DIR__ . '/..' . '/drush/drush/lib/Drush/DrushConfig.php', + 'Drush\\Exceptions\\UserAbortException' => __DIR__ . '/..' . '/drush/drush/lib/Drush/Exceptions/UserAbortException.php', 'Drush\\Log\\DrushLog' => __DIR__ . '/..' . '/drush/drush/lib/Drush/Log/DrushLog.php', 'Drush\\Log\\LogLevel' => __DIR__ . '/..' . '/drush/drush/lib/Drush/Log/LogLevel.php', 'Drush\\Log\\Logger' => __DIR__ . '/..' . '/drush/drush/lib/Drush/Log/Logger.php', @@ -3117,6 +3147,10 @@ class ComposerStaticInit5c689ffcd54b9e495ed983fdce09b530 'Drush\\Role\\Role8' => __DIR__ . '/..' . '/drush/drush/lib/Drush/Role/Role8.php', 'Drush\\Role\\RoleBase' => __DIR__ . '/..' . '/drush/drush/lib/Drush/Role/RoleBase.php', 'Drush\\Role\\RoleException' => __DIR__ . '/..' . '/drush/drush/lib/Drush/Role/RoleException.php', + 'Drush\\SiteAlias\\AliasManagerAdapter' => __DIR__ . '/..' . '/drush/drush/lib/Drush/SiteAlias/AliasManagerAdapter.php', + 'Drush\\SiteAlias\\AliasManagerAdapterInjector' => __DIR__ . '/..' . '/drush/drush/lib/Drush/SiteAlias/AliasManagerAdapterInjector.php', + 'Drush\\SiteAlias\\ProcessManager' => __DIR__ . '/..' . '/drush/drush/lib/Drush/SiteAlias/ProcessManager.php', + 'Drush\\SiteAlias\\ProcessManagerInjector' => __DIR__ . '/..' . '/drush/drush/lib/Drush/SiteAlias/ProcessManagerInjector.php', 'Drush\\Sql\\Sql6' => __DIR__ . '/..' . '/drush/drush/lib/Drush/Sql/Sql6.php', 'Drush\\Sql\\Sql7' => __DIR__ . '/..' . '/drush/drush/lib/Drush/Sql/Sql7.php', 'Drush\\Sql\\Sql8' => __DIR__ . '/..' . '/drush/drush/lib/Drush/Sql/Sql8.php', @@ -3124,10 +3158,14 @@ class ComposerStaticInit5c689ffcd54b9e495ed983fdce09b530 'Drush\\Sql\\SqlException' => __DIR__ . '/..' . '/drush/drush/lib/Drush/Sql/SqlException.php', 'Drush\\Sql\\SqlVersion' => __DIR__ . '/..' . '/drush/drush/lib/Drush/Sql/SqlVersion.php', 'Drush\\Sql\\Sqlmysql' => __DIR__ . '/..' . '/drush/drush/lib/Drush/Sql/Sqlmysql.php', + 'Drush\\Sql\\Sqlmysqli' => __DIR__ . '/..' . '/drush/drush/lib/Drush/Sql/Sqlmysqli.php', 'Drush\\Sql\\Sqloracle' => __DIR__ . '/..' . '/drush/drush/lib/Drush/Sql/Sqloracle.php', 'Drush\\Sql\\Sqlpgsql' => __DIR__ . '/..' . '/drush/drush/lib/Drush/Sql/Sqlpgsql.php', 'Drush\\Sql\\Sqlsqlite' => __DIR__ . '/..' . '/drush/drush/lib/Drush/Sql/Sqlsqlite.php', 'Drush\\Sql\\Sqlsqlsrv' => __DIR__ . '/..' . '/drush/drush/lib/Drush/Sql/Sqlsqlsrv.php', + 'Drush\\TestTraits\\CliTestTrait' => __DIR__ . '/..' . '/drush/drush/src/TestTraits/CliTestTrait.php', + 'Drush\\TestTraits\\DrushTestTrait' => __DIR__ . '/..' . '/drush/drush/src/TestTraits/DrushTestTrait.php', + 'Drush\\TestTraits\\OutputUtilsTrait' => __DIR__ . '/..' . '/drush/drush/src/TestTraits/OutputUtilsTrait.php', 'Drush\\UpdateService\\Project' => __DIR__ . '/..' . '/drush/drush/lib/Drush/UpdateService/Project.php', 'Drush\\UpdateService\\ReleaseInfo' => __DIR__ . '/..' . '/drush/drush/lib/Drush/UpdateService/ReleaseInfo.php', 'Drush\\UpdateService\\StatusInfoDrupal6' => __DIR__ . '/..' . '/drush/drush/lib/Drush/UpdateService/StatusInfoDrupal6.php', @@ -3320,9 +3358,9 @@ class ComposerStaticInit5c689ffcd54b9e495ed983fdce09b530 'JaimePerez\\TwigConfigurableI18n\\Twig\\Extensions\\Extension\\I18n' => __DIR__ . '/..' . '/jaimeperez/twig-configurable-i18n/src/Twig/Extensions/Extension/I18n.php', 'JaimePerez\\TwigConfigurableI18n\\Twig\\Extensions\\Node\\Trans' => __DIR__ . '/..' . '/jaimeperez/twig-configurable-i18n/src/Twig/Extensions/Node/Trans.php', 'JaimePerez\\TwigConfigurableI18n\\Twig\\Extensions\\TokenParser\\Trans' => __DIR__ . '/..' . '/jaimeperez/twig-configurable-i18n/src/Twig/Extensions/TokenParser/Trans.php', - 'JakubOnderka\\PhpConsoleColor\\ConsoleColor' => __DIR__ . '/..' . '/jakub-onderka/php-console-color/src/JakubOnderka/PhpConsoleColor/ConsoleColor.php', - 'JakubOnderka\\PhpConsoleColor\\InvalidStyleException' => __DIR__ . '/..' . '/jakub-onderka/php-console-color/src/JakubOnderka/PhpConsoleColor/InvalidStyleException.php', - 'JakubOnderka\\PhpConsoleHighlighter\\Highlighter' => __DIR__ . '/..' . '/jakub-onderka/php-console-highlighter/src/JakubOnderka/PhpConsoleHighlighter/Highlighter.php', + 'JakubOnderka\\PhpConsoleColor\\ConsoleColor' => __DIR__ . '/..' . '/jakub-onderka/php-console-color/src/ConsoleColor.php', + 'JakubOnderka\\PhpConsoleColor\\InvalidStyleException' => __DIR__ . '/..' . '/jakub-onderka/php-console-color/src/InvalidStyleException.php', + 'JakubOnderka\\PhpConsoleHighlighter\\Highlighter' => __DIR__ . '/..' . '/jakub-onderka/php-console-highlighter/src/Highlighter.php', 'Masterminds\\HTML5' => __DIR__ . '/..' . '/masterminds/html5/src/HTML5.php', 'Masterminds\\HTML5\\Elements' => __DIR__ . '/..' . '/masterminds/html5/src/HTML5/Elements.php', 'Masterminds\\HTML5\\Entities' => __DIR__ . '/..' . '/masterminds/html5/src/HTML5/Entities.php', @@ -3362,6 +3400,8 @@ class ComposerStaticInit5c689ffcd54b9e495ed983fdce09b530 'PhpParser\\Builder\\Namespace_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Builder/Namespace_.php', 'PhpParser\\Builder\\Param' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Builder/Param.php', 'PhpParser\\Builder\\Property' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Builder/Property.php', + 'PhpParser\\Builder\\TraitUse' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Builder/TraitUse.php', + 'PhpParser\\Builder\\TraitUseAdaptation' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Builder/TraitUseAdaptation.php', 'PhpParser\\Builder\\Trait_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Builder/Trait_.php', 'PhpParser\\Builder\\Use_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Builder/Use_.php', 'PhpParser\\Comment' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Comment.php', @@ -3379,6 +3419,9 @@ class ComposerStaticInit5c689ffcd54b9e495ed983fdce09b530 'PhpParser\\JsonDecoder' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/JsonDecoder.php', 'PhpParser\\Lexer' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Lexer.php', 'PhpParser\\Lexer\\Emulative' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Lexer/Emulative.php', + 'PhpParser\\Lexer\\TokenEmulator\\CoaleseEqualTokenEmulator' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/CoaleseEqualTokenEmulator.php', + 'PhpParser\\Lexer\\TokenEmulator\\FnTokenEmulator' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/FnTokenEmulator.php', + 'PhpParser\\Lexer\\TokenEmulator\\TokenEmulatorInterface' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/TokenEmulatorInterface.php', 'PhpParser\\NameContext' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/NameContext.php', 'PhpParser\\Node' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node.php', 'PhpParser\\NodeAbstract' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/NodeAbstract.php', @@ -3398,11 +3441,13 @@ class ComposerStaticInit5c689ffcd54b9e495ed983fdce09b530 'PhpParser\\Node\\Expr\\ArrayDimFetch' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/ArrayDimFetch.php', 'PhpParser\\Node\\Expr\\ArrayItem' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/ArrayItem.php', 'PhpParser\\Node\\Expr\\Array_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/Array_.php', + 'PhpParser\\Node\\Expr\\ArrowFunction' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/ArrowFunction.php', 'PhpParser\\Node\\Expr\\Assign' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/Assign.php', 'PhpParser\\Node\\Expr\\AssignOp' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp.php', 'PhpParser\\Node\\Expr\\AssignOp\\BitwiseAnd' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/BitwiseAnd.php', 'PhpParser\\Node\\Expr\\AssignOp\\BitwiseOr' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/BitwiseOr.php', 'PhpParser\\Node\\Expr\\AssignOp\\BitwiseXor' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/BitwiseXor.php', + 'PhpParser\\Node\\Expr\\AssignOp\\Coalesce' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Coalesce.php', 'PhpParser\\Node\\Expr\\AssignOp\\Concat' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Concat.php', 'PhpParser\\Node\\Expr\\AssignOp\\Div' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Div.php', 'PhpParser\\Node\\Expr\\AssignOp\\Minus' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Minus.php', diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json index b5c5b7faf97eeafd83f21cbf258af2d4d73be4bf..180ab31b548167ef6db5f7f49b58424151f72a3f 100644 --- a/vendor/composer/installed.json +++ b/vendor/composer/installed.json @@ -175,7 +175,9 @@ "version_normalized": "4.8.0.0", "dist": { "type": "zip", - "url": "https://download.ckeditor.com/indentblock/releases/indentblock_4.8.0.zip" + "url": "https://download.ckeditor.com/indentblock/releases/indentblock_4.8.0.zip", + "reference": null, + "shasum": null }, "require": { "composer/installers": "~1.0" @@ -481,36 +483,80 @@ }, { "name": "consolidation/annotated-command", - "version": "2.8.4", - "version_normalized": "2.8.4.0", + "version": "2.12.0", + "version_normalized": "2.12.0.0", "source": { "type": "git", "url": "https://github.com/consolidation/annotated-command.git", - "reference": "651541a0b68318a2a202bda558a676e5ad92223c" + "reference": "512a2e54c98f3af377589de76c43b24652bcb789" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/consolidation/annotated-command/zipball/651541a0b68318a2a202bda558a676e5ad92223c", - "reference": "651541a0b68318a2a202bda558a676e5ad92223c", + "url": "https://api.github.com/repos/consolidation/annotated-command/zipball/512a2e54c98f3af377589de76c43b24652bcb789", + "reference": "512a2e54c98f3af377589de76c43b24652bcb789", "shasum": "" }, "require": { - "consolidation/output-formatters": "^3.1.12", - "php": ">=5.4.0", + "consolidation/output-formatters": "^3.4", + "php": ">=5.4.5", "psr/log": "^1", "symfony/console": "^2.8|^3|^4", "symfony/event-dispatcher": "^2.5|^3|^4", "symfony/finder": "^2.5|^3|^4" }, "require-dev": { - "g1a/composer-test-scenarios": "^2", + "g1a/composer-test-scenarios": "^3", + "php-coveralls/php-coveralls": "^1", "phpunit/phpunit": "^6", - "satooshi/php-coveralls": "^2", "squizlabs/php_codesniffer": "^2.7" }, - "time": "2018-05-25T18:04:25+00:00", + "time": "2019-03-08T16:55:03+00:00", "type": "library", "extra": { + "scenarios": { + "symfony4": { + "require": { + "symfony/console": "^4.0" + }, + "config": { + "platform": { + "php": "7.1.3" + } + } + }, + "symfony2": { + "require": { + "symfony/console": "^2.8" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.36" + }, + "remove": [ + "php-coveralls/php-coveralls" + ], + "config": { + "platform": { + "php": "5.4.8" + } + }, + "scenario-options": { + "create-lockfile": "false" + } + }, + "phpunit4": { + "require-dev": { + "phpunit/phpunit": "^4.8.36" + }, + "remove": [ + "php-coveralls/php-coveralls" + ], + "config": { + "platform": { + "php": "5.4.8" + } + } + } + }, "branch-alias": { "dev-master": "2.x-dev" } @@ -535,39 +581,85 @@ }, { "name": "consolidation/output-formatters", - "version": "3.2.1", - "version_normalized": "3.2.1.0", + "version": "3.5.0", + "version_normalized": "3.5.0.0", "source": { "type": "git", "url": "https://github.com/consolidation/output-formatters.git", - "reference": "d78ef59aea19d3e2e5a23f90a055155ee78a0ad5" + "reference": "99ec998ffb697e0eada5aacf81feebfb13023605" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/consolidation/output-formatters/zipball/d78ef59aea19d3e2e5a23f90a055155ee78a0ad5", - "reference": "d78ef59aea19d3e2e5a23f90a055155ee78a0ad5", + "url": "https://api.github.com/repos/consolidation/output-formatters/zipball/99ec998ffb697e0eada5aacf81feebfb13023605", + "reference": "99ec998ffb697e0eada5aacf81feebfb13023605", "shasum": "" }, "require": { + "dflydev/dot-access-data": "^1.1.0", "php": ">=5.4.0", "symfony/console": "^2.8|^3|^4", "symfony/finder": "^2.5|^3|^4" }, "require-dev": { - "g1a/composer-test-scenarios": "^2", + "g1a/composer-test-scenarios": "^3", + "php-coveralls/php-coveralls": "^1", "phpunit/phpunit": "^5.7.27", - "satooshi/php-coveralls": "^2", "squizlabs/php_codesniffer": "^2.7", - "symfony/console": "3.2.3", "symfony/var-dumper": "^2.8|^3|^4", "victorjonsson/markdowndocs": "^1.3" }, "suggest": { "symfony/var-dumper": "For using the var_dump formatter" }, - "time": "2018-05-25T18:02:34+00:00", + "time": "2019-05-30T23:16:01+00:00", "type": "library", "extra": { + "scenarios": { + "symfony4": { + "require": { + "symfony/console": "^4.0" + }, + "require-dev": { + "phpunit/phpunit": "^6" + }, + "config": { + "platform": { + "php": "7.1.3" + } + } + }, + "symfony3": { + "require": { + "symfony/console": "^3.4", + "symfony/finder": "^3.4", + "symfony/var-dumper": "^3.4" + }, + "config": { + "platform": { + "php": "5.6.32" + } + } + }, + "symfony2": { + "require": { + "symfony/console": "^2.8" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.36" + }, + "remove": [ + "php-coveralls/php-coveralls" + ], + "config": { + "platform": { + "php": "5.4.8" + } + }, + "scenario-options": { + "create-lockfile": "false" + } + } + }, "branch-alias": { "dev-master": "3.x-dev" } @@ -654,7 +746,9 @@ "version_normalized": "4.2.0.0", "dist": { "type": "zip", - "url": "https://github.com/desandro/masonry/archive/v4.2.0.zip" + "url": "https://github.com/desandro/masonry/archive/v4.2.0.zip", + "reference": null, + "shasum": null }, "type": "drupal-library", "installation-source": "dist" @@ -7792,21 +7886,21 @@ }, { "name": "drush/drush", - "version": "8.1.17", - "version_normalized": "8.1.17.0", + "version": "8.2.3", + "version_normalized": "8.2.3.0", "source": { "type": "git", "url": "https://github.com/drush-ops/drush.git", - "reference": "7ea681dc7e639f6ddab906e78611d3558f88d9b0" + "reference": "bf2b2471b9410e0ff4adc23aee020ee1aff28610" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/drush-ops/drush/zipball/7ea681dc7e639f6ddab906e78611d3558f88d9b0", - "reference": "7ea681dc7e639f6ddab906e78611d3558f88d9b0", + "url": "https://api.github.com/repos/drush-ops/drush/zipball/bf2b2471b9410e0ff4adc23aee020ee1aff28610", + "reference": "bf2b2471b9410e0ff4adc23aee020ee1aff28610", "shasum": "" }, "require": { - "consolidation/annotated-command": "^2.8.1", + "consolidation/annotated-command": "^2.12.0", "consolidation/output-formatters": "~3", "pear/console_table": "~1.3.1", "php": ">=5.4.5", @@ -7817,6 +7911,7 @@ "symfony/finder": "~2.7|^3", "symfony/var-dumper": "~2.7|^3", "symfony/yaml": "~2.3|^3", + "webflo/drupal-finder": "^1.1.0", "webmozart/path-util": "~2" }, "require-dev": { @@ -7832,7 +7927,7 @@ "drush/config-extra": "Provides configuration workflow commands, such as config-merge.", "ext-pcntl": "*" }, - "time": "2018-05-23T16:58:54+00:00", + "time": "2019-04-03T04:20:26+00:00", "bin": [ "drush", "drush.launcher", @@ -7850,6 +7945,9 @@ "psr-0": { "Drush": "lib/", "Consolidation": "lib/" + }, + "psr-4": { + "Drush\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -8483,35 +8581,35 @@ }, { "name": "jakub-onderka/php-console-color", - "version": "0.1", - "version_normalized": "0.1.0.0", + "version": "v0.2", + "version_normalized": "0.2.0.0", "source": { "type": "git", "url": "https://github.com/JakubOnderka/PHP-Console-Color.git", - "reference": "e0b393dacf7703fc36a4efc3df1435485197e6c1" + "reference": "d5deaecff52a0d61ccb613bb3804088da0307191" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/JakubOnderka/PHP-Console-Color/zipball/e0b393dacf7703fc36a4efc3df1435485197e6c1", - "reference": "e0b393dacf7703fc36a4efc3df1435485197e6c1", + "url": "https://api.github.com/repos/JakubOnderka/PHP-Console-Color/zipball/d5deaecff52a0d61ccb613bb3804088da0307191", + "reference": "d5deaecff52a0d61ccb613bb3804088da0307191", "shasum": "" }, "require": { - "php": ">=5.3.2" + "php": ">=5.4.0" }, "require-dev": { "jakub-onderka/php-code-style": "1.0", - "jakub-onderka/php-parallel-lint": "0.*", + "jakub-onderka/php-parallel-lint": "1.0", "jakub-onderka/php-var-dump-check": "0.*", - "phpunit/phpunit": "3.7.*", + "phpunit/phpunit": "~4.3", "squizlabs/php_codesniffer": "1.*" }, - "time": "2014-04-08T15:00:19+00:00", + "time": "2018-09-29T17:23:10+00:00", "type": "library", "installation-source": "dist", "autoload": { - "psr-0": { - "JakubOnderka\\PhpConsoleColor": "src/" + "psr-4": { + "JakubOnderka\\PhpConsoleColor\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -8521,43 +8619,43 @@ "authors": [ { "name": "Jakub Onderka", - "email": "jakub.onderka@gmail.com", - "homepage": "http://www.acci.cz" + "email": "jakub.onderka@gmail.com" } ] }, { "name": "jakub-onderka/php-console-highlighter", - "version": "v0.3.2", - "version_normalized": "0.3.2.0", + "version": "v0.4", + "version_normalized": "0.4.0.0", "source": { "type": "git", "url": "https://github.com/JakubOnderka/PHP-Console-Highlighter.git", - "reference": "7daa75df45242c8d5b75a22c00a201e7954e4fb5" + "reference": "9f7a229a69d52506914b4bc61bfdb199d90c5547" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/JakubOnderka/PHP-Console-Highlighter/zipball/7daa75df45242c8d5b75a22c00a201e7954e4fb5", - "reference": "7daa75df45242c8d5b75a22c00a201e7954e4fb5", + "url": "https://api.github.com/repos/JakubOnderka/PHP-Console-Highlighter/zipball/9f7a229a69d52506914b4bc61bfdb199d90c5547", + "reference": "9f7a229a69d52506914b4bc61bfdb199d90c5547", "shasum": "" }, "require": { - "jakub-onderka/php-console-color": "~0.1", - "php": ">=5.3.0" + "ext-tokenizer": "*", + "jakub-onderka/php-console-color": "~0.2", + "php": ">=5.4.0" }, "require-dev": { "jakub-onderka/php-code-style": "~1.0", - "jakub-onderka/php-parallel-lint": "~0.5", + "jakub-onderka/php-parallel-lint": "~1.0", "jakub-onderka/php-var-dump-check": "~0.1", "phpunit/phpunit": "~4.0", "squizlabs/php_codesniffer": "~1.5" }, - "time": "2015-04-20T18:58:01+00:00", + "time": "2018-09-29T18:48:56+00:00", "type": "library", "installation-source": "dist", "autoload": { - "psr-0": { - "JakubOnderka\\PhpConsoleHighlighter": "src/" + "psr-4": { + "JakubOnderka\\PhpConsoleHighlighter\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -8570,7 +8668,8 @@ "email": "acci@acci.cz", "homepage": "http://www.acci.cz/" } - ] + ], + "description": "Highlight PHP code in terminal" }, { "name": "masterminds/html5", @@ -8677,17 +8776,17 @@ }, { "name": "nikic/php-parser", - "version": "v4.0.3", - "version_normalized": "4.0.3.0", + "version": "v4.2.2", + "version_normalized": "4.2.2.0", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "bd088dc940a418f09cda079a9b5c7c478890fb8d" + "reference": "1bd73cc04c3843ad8d6b0bfc0956026a151fc420" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/bd088dc940a418f09cda079a9b5c7c478890fb8d", - "reference": "bd088dc940a418f09cda079a9b5c7c478890fb8d", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/1bd73cc04c3843ad8d6b0bfc0956026a151fc420", + "reference": "1bd73cc04c3843ad8d6b0bfc0956026a151fc420", "shasum": "" }, "require": { @@ -8697,14 +8796,14 @@ "require-dev": { "phpunit/phpunit": "^6.5 || ^7.0" }, - "time": "2018-07-15T17:25:16+00:00", + "time": "2019-05-25T20:07:01+00:00", "bin": [ "bin/php-parse" ], "type": "library", "extra": { "branch-alias": { - "dev-master": "4.0-dev" + "dev-master": "4.2-dev" } }, "installation-source": "dist", @@ -9061,24 +9160,24 @@ }, { "name": "psy/psysh", - "version": "v0.9.7", - "version_normalized": "0.9.7.0", + "version": "v0.9.9", + "version_normalized": "0.9.9.0", "source": { "type": "git", "url": "https://github.com/bobthecow/psysh.git", - "reference": "4f5b6c090948773a8bfeea6a0f07ab7d0b24e932" + "reference": "9aaf29575bb8293206bb0420c1e1c87ff2ffa94e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/bobthecow/psysh/zipball/4f5b6c090948773a8bfeea6a0f07ab7d0b24e932", - "reference": "4f5b6c090948773a8bfeea6a0f07ab7d0b24e932", + "url": "https://api.github.com/repos/bobthecow/psysh/zipball/9aaf29575bb8293206bb0420c1e1c87ff2ffa94e", + "reference": "9aaf29575bb8293206bb0420c1e1c87ff2ffa94e", "shasum": "" }, "require": { "dnoegel/php-xdg-base-dir": "0.1", "ext-json": "*", "ext-tokenizer": "*", - "jakub-onderka/php-console-highlighter": "0.3.*", + "jakub-onderka/php-console-highlighter": "0.3.*|0.4.*", "nikic/php-parser": "~1.3|~2.0|~3.0|~4.0", "php": ">=5.4.0", "symfony/console": "~2.3.10|^2.4.2|~3.0|~4.0", @@ -9096,7 +9195,7 @@ "ext-readline": "Enables support for arrow-key history navigation, and showing and manipulating command history.", "hoa/console": "A pure PHP readline implementation. You'll want this if your PHP install doesn't already support readline or libedit." }, - "time": "2018-08-11T15:54:43+00:00", + "time": "2018-10-13T15:16:03+00:00", "bin": [ "bin/psysh" ], @@ -9681,17 +9780,17 @@ }, { "name": "symfony/console", - "version": "v3.4.27", - "version_normalized": "3.4.27.0", + "version": "v3.4.28", + "version_normalized": "3.4.28.0", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "15a9104356436cb26e08adab97706654799d31d8" + "reference": "8e1d1e406dd31727fa70cd5a99cda202e9d6a5c6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/15a9104356436cb26e08adab97706654799d31d8", - "reference": "15a9104356436cb26e08adab97706654799d31d8", + "url": "https://api.github.com/repos/symfony/console/zipball/8e1d1e406dd31727fa70cd5a99cda202e9d6a5c6", + "reference": "8e1d1e406dd31727fa70cd5a99cda202e9d6a5c6", "shasum": "" }, "require": { @@ -9720,7 +9819,7 @@ "symfony/lock": "", "symfony/process": "" }, - "time": "2019-04-08T09:29:13+00:00", + "time": "2019-05-09T08:42:51+00:00", "type": "library", "extra": { "branch-alias": { @@ -9810,17 +9909,17 @@ }, { "name": "symfony/debug", - "version": "v3.4.27", - "version_normalized": "3.4.27.0", + "version": "v3.4.28", + "version_normalized": "3.4.28.0", "source": { "type": "git", "url": "https://github.com/symfony/debug.git", - "reference": "681afbb26488903c5ac15e63734f1d8ac430c9b9" + "reference": "671fc55bd14800668b1d0a3708c3714940e30a8c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/debug/zipball/681afbb26488903c5ac15e63734f1d8ac430c9b9", - "reference": "681afbb26488903c5ac15e63734f1d8ac430c9b9", + "url": "https://api.github.com/repos/symfony/debug/zipball/671fc55bd14800668b1d0a3708c3714940e30a8c", + "reference": "671fc55bd14800668b1d0a3708c3714940e30a8c", "shasum": "" }, "require": { @@ -9833,7 +9932,7 @@ "require-dev": { "symfony/http-kernel": "~2.8|~3.0|~4.0" }, - "time": "2019-04-11T09:48:14+00:00", + "time": "2019-05-18T13:32:47+00:00", "type": "library", "extra": { "branch-alias": { @@ -10000,8 +10099,8 @@ }, { "name": "symfony/event-dispatcher", - "version": "v3.4.27", - "version_normalized": "3.4.27.0", + "version": "v3.4.28", + "version_normalized": "3.4.28.0", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", @@ -10117,23 +10216,23 @@ }, { "name": "symfony/finder", - "version": "v3.4.14", - "version_normalized": "3.4.14.0", + "version": "v3.4.28", + "version_normalized": "3.4.28.0", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "8a84fcb207451df0013b2c74cbbf1b62d47b999a" + "reference": "fa5d962a71f2169dfe1cbae217fa5a2799859f6c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/8a84fcb207451df0013b2c74cbbf1b62d47b999a", - "reference": "8a84fcb207451df0013b2c74cbbf1b62d47b999a", + "url": "https://api.github.com/repos/symfony/finder/zipball/fa5d962a71f2169dfe1cbae217fa5a2799859f6c", + "reference": "fa5d962a71f2169dfe1cbae217fa5a2799859f6c", "shasum": "" }, "require": { "php": "^5.5.9|>=7.0.8" }, - "time": "2018-07-26T11:19:56+00:00", + "time": "2019-05-24T12:25:55+00:00", "type": "library", "extra": { "branch-alias": { @@ -10992,17 +11091,17 @@ }, { "name": "symfony/var-dumper", - "version": "v3.4.14", - "version_normalized": "3.4.14.0", + "version": "v3.4.28", + "version_normalized": "3.4.28.0", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "f62a394bd3de96f2f5e8f4c7d685035897fb3cb3" + "reference": "ca5fef348a0440411bbca0f9ec14e9a11625bd6a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/f62a394bd3de96f2f5e8f4c7d685035897fb3cb3", - "reference": "f62a394bd3de96f2f5e8f4c7d685035897fb3cb3", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/ca5fef348a0440411bbca0f9ec14e9a11625bd6a", + "reference": "ca5fef348a0440411bbca0f9ec14e9a11625bd6a", "shasum": "" }, "require": { @@ -11021,7 +11120,7 @@ "ext-intl": "To show region name in time zone dump", "ext-symfony_debug": "" }, - "time": "2018-07-26T11:19:56+00:00", + "time": "2019-05-01T09:52:10+00:00", "type": "library", "extra": { "branch-alias": { @@ -11063,8 +11162,8 @@ }, { "name": "symfony/yaml", - "version": "v3.4.27", - "version_normalized": "3.4.27.0", + "version": "v3.4.28", + "version_normalized": "3.4.28.0", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", @@ -11334,27 +11433,28 @@ }, { "name": "webmozart/assert", - "version": "1.3.0", - "version_normalized": "1.3.0.0", + "version": "1.4.0", + "version_normalized": "1.4.0.0", "source": { "type": "git", "url": "https://github.com/webmozart/assert.git", - "reference": "0df1908962e7a3071564e857d86874dad1ef204a" + "reference": "83e253c8e0be5b0257b881e1827274667c5c17a9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/webmozart/assert/zipball/0df1908962e7a3071564e857d86874dad1ef204a", - "reference": "0df1908962e7a3071564e857d86874dad1ef204a", + "url": "https://api.github.com/repos/webmozart/assert/zipball/83e253c8e0be5b0257b881e1827274667c5c17a9", + "reference": "83e253c8e0be5b0257b881e1827274667c5c17a9", "shasum": "" }, "require": { - "php": "^5.3.3 || ^7.0" + "php": "^5.3.3 || ^7.0", + "symfony/polyfill-ctype": "^1.8" }, "require-dev": { "phpunit/phpunit": "^4.6", "sebastian/version": "^1.0.1" }, - "time": "2018-01-29T19:49:41+00:00", + "time": "2018-12-25T11:19:39+00:00", "type": "library", "extra": { "branch-alias": { diff --git a/vendor/consolidation/annotated-command/.scenarios.lock/install b/vendor/consolidation/annotated-command/.scenarios.lock/install new file mode 100644 index 0000000000000000000000000000000000000000..16c69e107cce7f71e33e04207254d005200f9fd4 --- /dev/null +++ b/vendor/consolidation/annotated-command/.scenarios.lock/install @@ -0,0 +1,57 @@ +#!/bin/bash + +SCENARIO=$1 +DEPENDENCIES=${2-install} + +# Convert the aliases 'highest', 'lowest' and 'lock' to +# the corresponding composer command to run. +case $DEPENDENCIES in + highest) + DEPENDENCIES=update + ;; + lowest) + DEPENDENCIES='update --prefer-lowest' + ;; + lock|default|"") + DEPENDENCIES=install + ;; +esac + +original_name=scenarios +recommended_name=".scenarios.lock" + +base="$original_name" +if [ -d "$recommended_name" ] ; then + base="$recommended_name" +fi + +# If scenario is not specified, install the lockfile at +# the root of the project. +dir="$base/${SCENARIO}" +if [ -z "$SCENARIO" ] || [ "$SCENARIO" == "default" ] ; then + SCENARIO=default + dir=. +fi + +# Test to make sure that the selected scenario exists. +if [ ! -d "$dir" ] ; then + echo "Requested scenario '${SCENARIO}' does not exist." + exit 1 +fi + +echo +echo "::" +echo ":: Switch to ${SCENARIO} scenario" +echo "::" +echo + +set -ex + +composer -n validate --working-dir=$dir --no-check-all --ansi +composer -n --working-dir=$dir ${DEPENDENCIES} --prefer-dist --no-scripts + +# If called from a CI context, print out some extra information about +# what we just installed. +if [[ -n "$CI" ]] ; then + composer -n --working-dir=$dir info +fi diff --git a/vendor/consolidation/annotated-command/.scenarios.lock/phpunit4/.gitignore b/vendor/consolidation/annotated-command/.scenarios.lock/phpunit4/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..5657f6ea7d574e423dc2c297e2e19a9dbd7a7170 --- /dev/null +++ b/vendor/consolidation/annotated-command/.scenarios.lock/phpunit4/.gitignore @@ -0,0 +1 @@ +vendor \ No newline at end of file diff --git a/vendor/consolidation/annotated-command/.scenarios.lock/phpunit4/composer.json b/vendor/consolidation/annotated-command/.scenarios.lock/phpunit4/composer.json new file mode 100644 index 0000000000000000000000000000000000000000..13a0f7a03ab0f012b2f828dc9ae49705f4e62708 --- /dev/null +++ b/vendor/consolidation/annotated-command/.scenarios.lock/phpunit4/composer.json @@ -0,0 +1,61 @@ +{ + "name": "consolidation/annotated-command", + "description": "Initialize Symfony Console commands from annotated command class methods.", + "license": "MIT", + "authors": [ + { + "name": "Greg Anderson", + "email": "greg.1.anderson@greenknowe.org" + } + ], + "autoload": { + "psr-4": { + "Consolidation\\AnnotatedCommand\\": "../../src" + } + }, + "autoload-dev": { + "psr-4": { + "Consolidation\\TestUtils\\": "../../tests/src" + } + }, + "require": { + "php": ">=5.4.5", + "consolidation/output-formatters": "^3.4", + "psr/log": "^1", + "symfony/console": "^2.8|^3|^4", + "symfony/event-dispatcher": "^2.5|^3|^4", + "symfony/finder": "^2.5|^3|^4" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.36", + "g1a/composer-test-scenarios": "^3", + "squizlabs/php_codesniffer": "^2.7" + }, + "config": { + "platform": { + "php": "5.4.8" + }, + "optimize-autoloader": true, + "sort-packages": true, + "vendor-dir": "../../vendor" + }, + "scripts": { + "cs": "phpcs --standard=PSR2 -n src", + "cbf": "phpcbf --standard=PSR2 -n src", + "unit": "SHELL_INTERACTIVE=true phpunit --colors=always", + "lint": [ + "find src -name '*.php' -print0 | xargs -0 -n1 php -l", + "find tests/src -name '*.php' -print0 | xargs -0 -n1 php -l" + ], + "test": [ + "@lint", + "@unit", + "@cs" + ] + }, + "extra": { + "branch-alias": { + "dev-master": "2.x-dev" + } + } +} diff --git a/vendor/consolidation/annotated-command/.scenarios.lock/phpunit4/composer.lock b/vendor/consolidation/annotated-command/.scenarios.lock/phpunit4/composer.lock new file mode 100644 index 0000000000000000000000000000000000000000..b4dfe0de3710e632b0f448b040ddf2cc835b1052 --- /dev/null +++ b/vendor/consolidation/annotated-command/.scenarios.lock/phpunit4/composer.lock @@ -0,0 +1,1624 @@ +{ + "_readme": [ + "This file locks the dependencies of your project to a known state", + "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", + "This file is @generated automatically" + ], + "content-hash": "3bc1df70645d80d8cf1dc2fce04595ed", + "packages": [ + { + "name": "consolidation/output-formatters", + "version": "3.4.0", + "source": { + "type": "git", + "url": "https://github.com/consolidation/output-formatters.git", + "reference": "a942680232094c4a5b21c0b7e54c20cce623ae19" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/consolidation/output-formatters/zipball/a942680232094c4a5b21c0b7e54c20cce623ae19", + "reference": "a942680232094c4a5b21c0b7e54c20cce623ae19", + "shasum": "" + }, + "require": { + "dflydev/dot-access-data": "^1.1.0", + "php": ">=5.4.0", + "symfony/console": "^2.8|^3|^4", + "symfony/finder": "^2.5|^3|^4" + }, + "require-dev": { + "g1a/composer-test-scenarios": "^2", + "phpunit/phpunit": "^5.7.27", + "satooshi/php-coveralls": "^2", + "squizlabs/php_codesniffer": "^2.7", + "symfony/console": "3.2.3", + "symfony/var-dumper": "^2.8|^3|^4", + "victorjonsson/markdowndocs": "^1.3" + }, + "suggest": { + "symfony/var-dumper": "For using the var_dump formatter" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Consolidation\\OutputFormatters\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Greg Anderson", + "email": "greg.1.anderson@greenknowe.org" + } + ], + "description": "Format text by applying transformations provided by plug-in formatters.", + "time": "2018-10-19T22:35:38+00:00" + }, + { + "name": "dflydev/dot-access-data", + "version": "v1.1.0", + "source": { + "type": "git", + "url": "https://github.com/dflydev/dflydev-dot-access-data.git", + "reference": "3fbd874921ab2c041e899d044585a2ab9795df8a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/dflydev/dflydev-dot-access-data/zipball/3fbd874921ab2c041e899d044585a2ab9795df8a", + "reference": "3fbd874921ab2c041e899d044585a2ab9795df8a", + "shasum": "" + }, + "require": { + "php": ">=5.3.2" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "psr-0": { + "Dflydev\\DotAccessData": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Dragonfly Development Inc.", + "email": "info@dflydev.com", + "homepage": "http://dflydev.com" + }, + { + "name": "Beau Simensen", + "email": "beau@dflydev.com", + "homepage": "http://beausimensen.com" + }, + { + "name": "Carlos Frutos", + "email": "carlos@kiwing.it", + "homepage": "https://github.com/cfrutos" + } + ], + "description": "Given a deep data structure, access data by dot notation.", + "homepage": "https://github.com/dflydev/dflydev-dot-access-data", + "keywords": [ + "access", + "data", + "dot", + "notation" + ], + "time": "2017-01-20T21:14:22+00:00" + }, + { + "name": "psr/log", + "version": "1.1.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/log.git", + "reference": "6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/log/zipball/6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd", + "reference": "6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Log\\": "Psr/Log/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common interface for logging libraries", + "homepage": "https://github.com/php-fig/log", + "keywords": [ + "log", + "psr", + "psr-3" + ], + "time": "2018-11-20T15:27:04+00:00" + }, + { + "name": "symfony/console", + "version": "v2.8.49", + "source": { + "type": "git", + "url": "https://github.com/symfony/console.git", + "reference": "cbcf4b5e233af15cd2bbd50dee1ccc9b7927dc12" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/console/zipball/cbcf4b5e233af15cd2bbd50dee1ccc9b7927dc12", + "reference": "cbcf4b5e233af15cd2bbd50dee1ccc9b7927dc12", + "shasum": "" + }, + "require": { + "php": ">=5.3.9", + "symfony/debug": "^2.7.2|~3.0.0", + "symfony/polyfill-mbstring": "~1.0" + }, + "require-dev": { + "psr/log": "~1.0", + "symfony/event-dispatcher": "~2.1|~3.0.0", + "symfony/process": "~2.1|~3.0.0" + }, + "suggest": { + "psr/log-implementation": "For using the console logger", + "symfony/event-dispatcher": "", + "symfony/process": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.8-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Console\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Console Component", + "homepage": "https://symfony.com", + "time": "2018-11-20T15:55:20+00:00" + }, + { + "name": "symfony/debug", + "version": "v2.8.49", + "source": { + "type": "git", + "url": "https://github.com/symfony/debug.git", + "reference": "74251c8d50dd3be7c4ce0c7b862497cdc641a5d0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/debug/zipball/74251c8d50dd3be7c4ce0c7b862497cdc641a5d0", + "reference": "74251c8d50dd3be7c4ce0c7b862497cdc641a5d0", + "shasum": "" + }, + "require": { + "php": ">=5.3.9", + "psr/log": "~1.0" + }, + "conflict": { + "symfony/http-kernel": ">=2.3,<2.3.24|~2.4.0|>=2.5,<2.5.9|>=2.6,<2.6.2" + }, + "require-dev": { + "symfony/class-loader": "~2.2|~3.0.0", + "symfony/http-kernel": "~2.3.24|~2.5.9|^2.6.2|~3.0.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.8-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Debug\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Debug Component", + "homepage": "https://symfony.com", + "time": "2018-11-11T11:18:13+00:00" + }, + { + "name": "symfony/event-dispatcher", + "version": "v2.8.49", + "source": { + "type": "git", + "url": "https://github.com/symfony/event-dispatcher.git", + "reference": "a77e974a5fecb4398833b0709210e3d5e334ffb0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/a77e974a5fecb4398833b0709210e3d5e334ffb0", + "reference": "a77e974a5fecb4398833b0709210e3d5e334ffb0", + "shasum": "" + }, + "require": { + "php": ">=5.3.9" + }, + "require-dev": { + "psr/log": "~1.0", + "symfony/config": "^2.0.5|~3.0.0", + "symfony/dependency-injection": "~2.6|~3.0.0", + "symfony/expression-language": "~2.6|~3.0.0", + "symfony/stopwatch": "~2.3|~3.0.0" + }, + "suggest": { + "symfony/dependency-injection": "", + "symfony/http-kernel": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.8-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\EventDispatcher\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony EventDispatcher Component", + "homepage": "https://symfony.com", + "time": "2018-11-21T14:20:20+00:00" + }, + { + "name": "symfony/finder", + "version": "v2.8.49", + "source": { + "type": "git", + "url": "https://github.com/symfony/finder.git", + "reference": "1444eac52273e345d9b95129bf914639305a9ba4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/finder/zipball/1444eac52273e345d9b95129bf914639305a9ba4", + "reference": "1444eac52273e345d9b95129bf914639305a9ba4", + "shasum": "" + }, + "require": { + "php": ">=5.3.9" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.8-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Finder\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Finder Component", + "homepage": "https://symfony.com", + "time": "2018-11-11T11:18:13+00:00" + }, + { + "name": "symfony/polyfill-mbstring", + "version": "v1.10.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-mbstring.git", + "reference": "c79c051f5b3a46be09205c73b80b346e4153e494" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/c79c051f5b3a46be09205c73b80b346e4153e494", + "reference": "c79c051f5b3a46be09205c73b80b346e4153e494", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "suggest": { + "ext-mbstring": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.9-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Mbstring\\": "" + }, + "files": [ + "bootstrap.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for the Mbstring extension", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "mbstring", + "polyfill", + "portable", + "shim" + ], + "time": "2018-09-21T13:07:52+00:00" + } + ], + "packages-dev": [ + { + "name": "doctrine/instantiator", + "version": "1.0.5", + "source": { + "type": "git", + "url": "https://github.com/doctrine/instantiator.git", + "reference": "8e884e78f9f0eb1329e445619e04456e64d8051d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/instantiator/zipball/8e884e78f9f0eb1329e445619e04456e64d8051d", + "reference": "8e884e78f9f0eb1329e445619e04456e64d8051d", + "shasum": "" + }, + "require": { + "php": ">=5.3,<8.0-DEV" + }, + "require-dev": { + "athletic/athletic": "~0.1.8", + "ext-pdo": "*", + "ext-phar": "*", + "phpunit/phpunit": "~4.0", + "squizlabs/php_codesniffer": "~2.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com", + "homepage": "http://ocramius.github.com/" + } + ], + "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", + "homepage": "https://github.com/doctrine/instantiator", + "keywords": [ + "constructor", + "instantiate" + ], + "time": "2015-06-14T21:17:01+00:00" + }, + { + "name": "g1a/composer-test-scenarios", + "version": "3.0.1", + "source": { + "type": "git", + "url": "https://github.com/g1a/composer-test-scenarios.git", + "reference": "224531e20d13a07942a989a70759f726cd2df9a1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/g1a/composer-test-scenarios/zipball/224531e20d13a07942a989a70759f726cd2df9a1", + "reference": "224531e20d13a07942a989a70759f726cd2df9a1", + "shasum": "" + }, + "require": { + "composer-plugin-api": "^1.0.0", + "php": ">=5.4" + }, + "require-dev": { + "composer/composer": "^1.7", + "php-coveralls/php-coveralls": "^1.0", + "phpunit/phpunit": "^4.8.36|^6", + "squizlabs/php_codesniffer": "^2.8" + }, + "bin": [ + "scripts/dependency-licenses" + ], + "type": "composer-plugin", + "extra": { + "class": "ComposerTestScenarios\\Plugin", + "branch-alias": { + "dev-master": "3.x-dev" + } + }, + "autoload": { + "psr-4": { + "ComposerTestScenarios\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Greg Anderson", + "email": "greg.1.anderson@greenknowe.org" + } + ], + "description": "Useful scripts for testing multiple sets of Composer dependencies.", + "time": "2018-11-27T05:58:39+00:00" + }, + { + "name": "phpdocumentor/reflection-docblock", + "version": "2.0.5", + "source": { + "type": "git", + "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", + "reference": "e6a969a640b00d8daa3c66518b0405fb41ae0c4b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/e6a969a640b00d8daa3c66518b0405fb41ae0c4b", + "reference": "e6a969a640b00d8daa3c66518b0405fb41ae0c4b", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "require-dev": { + "phpunit/phpunit": "~4.0" + }, + "suggest": { + "dflydev/markdown": "~1.0", + "erusev/parsedown": "~1.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "psr-0": { + "phpDocumentor": [ + "src/" + ] + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Mike van Riel", + "email": "mike.vanriel@naenius.com" + } + ], + "time": "2016-01-25T08:17:30+00:00" + }, + { + "name": "phpspec/prophecy", + "version": "1.8.0", + "source": { + "type": "git", + "url": "https://github.com/phpspec/prophecy.git", + "reference": "4ba436b55987b4bf311cb7c6ba82aa528aac0a06" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpspec/prophecy/zipball/4ba436b55987b4bf311cb7c6ba82aa528aac0a06", + "reference": "4ba436b55987b4bf311cb7c6ba82aa528aac0a06", + "shasum": "" + }, + "require": { + "doctrine/instantiator": "^1.0.2", + "php": "^5.3|^7.0", + "phpdocumentor/reflection-docblock": "^2.0|^3.0.2|^4.0", + "sebastian/comparator": "^1.1|^2.0|^3.0", + "sebastian/recursion-context": "^1.0|^2.0|^3.0" + }, + "require-dev": { + "phpspec/phpspec": "^2.5|^3.2", + "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5 || ^7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.8.x-dev" + } + }, + "autoload": { + "psr-0": { + "Prophecy\\": "src/" + } + }, + "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" + ], + "time": "2018-08-05T17:53:17+00:00" + }, + { + "name": "phpunit/php-code-coverage", + "version": "2.2.4", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-code-coverage.git", + "reference": "eabf68b476ac7d0f73793aada060f1c1a9bf8979" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/eabf68b476ac7d0f73793aada060f1c1a9bf8979", + "reference": "eabf68b476ac7d0f73793aada060f1c1a9bf8979", + "shasum": "" + }, + "require": { + "php": ">=5.3.3", + "phpunit/php-file-iterator": "~1.3", + "phpunit/php-text-template": "~1.2", + "phpunit/php-token-stream": "~1.3", + "sebastian/environment": "^1.3.2", + "sebastian/version": "~1.0" + }, + "require-dev": { + "ext-xdebug": ">=2.1.4", + "phpunit/phpunit": "~4" + }, + "suggest": { + "ext-dom": "*", + "ext-xdebug": ">=2.2.1", + "ext-xmlwriter": "*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.2.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sb@sebastian-bergmann.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" + ], + "time": "2015-10-06T15:47:00+00:00" + }, + { + "name": "phpunit/php-file-iterator", + "version": "1.4.5", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-file-iterator.git", + "reference": "730b01bc3e867237eaac355e06a36b85dd93a8b4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/730b01bc3e867237eaac355e06a36b85dd93a8b4", + "reference": "730b01bc3e867237eaac355e06a36b85dd93a8b4", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.4.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sb@sebastian-bergmann.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" + ], + "time": "2017-11-27T13:52:08+00:00" + }, + { + "name": "phpunit/php-text-template", + "version": "1.2.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-text-template.git", + "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686", + "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "type": "library", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Simple template engine.", + "homepage": "https://github.com/sebastianbergmann/php-text-template/", + "keywords": [ + "template" + ], + "time": "2015-06-21T13:50:34+00:00" + }, + { + "name": "phpunit/php-timer", + "version": "1.0.9", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-timer.git", + "reference": "3dcf38ca72b158baf0bc245e9184d3fdffa9c46f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/3dcf38ca72b158baf0bc245e9184d3fdffa9c46f", + "reference": "3dcf38ca72b158baf0bc245e9184d3fdffa9c46f", + "shasum": "" + }, + "require": { + "php": "^5.3.3 || ^7.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0" + }, + "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": "sb@sebastian-bergmann.de", + "role": "lead" + } + ], + "description": "Utility class for timing", + "homepage": "https://github.com/sebastianbergmann/php-timer/", + "keywords": [ + "timer" + ], + "time": "2017-02-26T11:10:40+00:00" + }, + { + "name": "phpunit/php-token-stream", + "version": "1.4.12", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-token-stream.git", + "reference": "1ce90ba27c42e4e44e6d8458241466380b51fa16" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/1ce90ba27c42e4e44e6d8458241466380b51fa16", + "reference": "1ce90ba27c42e4e44e6d8458241466380b51fa16", + "shasum": "" + }, + "require": { + "ext-tokenizer": "*", + "php": ">=5.3.3" + }, + "require-dev": { + "phpunit/phpunit": "~4.2" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.4-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Wrapper around PHP's tokenizer extension.", + "homepage": "https://github.com/sebastianbergmann/php-token-stream/", + "keywords": [ + "tokenizer" + ], + "time": "2017-12-04T08:55:13+00:00" + }, + { + "name": "phpunit/phpunit", + "version": "4.8.36", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/phpunit.git", + "reference": "46023de9a91eec7dfb06cc56cb4e260017298517" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/46023de9a91eec7dfb06cc56cb4e260017298517", + "reference": "46023de9a91eec7dfb06cc56cb4e260017298517", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-json": "*", + "ext-pcre": "*", + "ext-reflection": "*", + "ext-spl": "*", + "php": ">=5.3.3", + "phpspec/prophecy": "^1.3.1", + "phpunit/php-code-coverage": "~2.1", + "phpunit/php-file-iterator": "~1.4", + "phpunit/php-text-template": "~1.2", + "phpunit/php-timer": "^1.0.6", + "phpunit/phpunit-mock-objects": "~2.3", + "sebastian/comparator": "~1.2.2", + "sebastian/diff": "~1.2", + "sebastian/environment": "~1.3", + "sebastian/exporter": "~1.2", + "sebastian/global-state": "~1.0", + "sebastian/version": "~1.0", + "symfony/yaml": "~2.1|~3.0" + }, + "suggest": { + "phpunit/php-invoker": "~1.1" + }, + "bin": [ + "phpunit" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.8.x-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": "The PHP Unit Testing framework.", + "homepage": "https://phpunit.de/", + "keywords": [ + "phpunit", + "testing", + "xunit" + ], + "time": "2017-06-21T08:07:12+00:00" + }, + { + "name": "phpunit/phpunit-mock-objects", + "version": "2.3.8", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git", + "reference": "ac8e7a3db35738d56ee9a76e78a4e03d97628983" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/ac8e7a3db35738d56ee9a76e78a4e03d97628983", + "reference": "ac8e7a3db35738d56ee9a76e78a4e03d97628983", + "shasum": "" + }, + "require": { + "doctrine/instantiator": "^1.0.2", + "php": ">=5.3.3", + "phpunit/php-text-template": "~1.2", + "sebastian/exporter": "~1.2" + }, + "require-dev": { + "phpunit/phpunit": "~4.4" + }, + "suggest": { + "ext-soap": "*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.3.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sb@sebastian-bergmann.de", + "role": "lead" + } + ], + "description": "Mock Object library for PHPUnit", + "homepage": "https://github.com/sebastianbergmann/phpunit-mock-objects/", + "keywords": [ + "mock", + "xunit" + ], + "time": "2015-10-02T06:51:40+00:00" + }, + { + "name": "sebastian/comparator", + "version": "1.2.4", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/comparator.git", + "reference": "2b7424b55f5047b47ac6e5ccb20b2aea4011d9be" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/2b7424b55f5047b47ac6e5ccb20b2aea4011d9be", + "reference": "2b7424b55f5047b47ac6e5ccb20b2aea4011d9be", + "shasum": "" + }, + "require": { + "php": ">=5.3.3", + "sebastian/diff": "~1.2", + "sebastian/exporter": "~1.2 || ~2.0" + }, + "require-dev": { + "phpunit/phpunit": "~4.4" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.2.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Volker Dusch", + "email": "github@wallbash.com" + }, + { + "name": "Bernhard Schussek", + "email": "bschussek@2bepublished.at" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Provides the functionality to compare PHP values for equality", + "homepage": "http://www.github.com/sebastianbergmann/comparator", + "keywords": [ + "comparator", + "compare", + "equality" + ], + "time": "2017-01-29T09:50:25+00:00" + }, + { + "name": "sebastian/diff", + "version": "1.4.3", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/diff.git", + "reference": "7f066a26a962dbe58ddea9f72a4e82874a3975a4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/7f066a26a962dbe58ddea9f72a4e82874a3975a4", + "reference": "7f066a26a962dbe58ddea9f72a4e82874a3975a4", + "shasum": "" + }, + "require": { + "php": "^5.3.3 || ^7.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.4-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Kore Nordmann", + "email": "mail@kore-nordmann.de" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Diff implementation", + "homepage": "https://github.com/sebastianbergmann/diff", + "keywords": [ + "diff" + ], + "time": "2017-05-22T07:24:03+00:00" + }, + { + "name": "sebastian/environment", + "version": "1.3.8", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/environment.git", + "reference": "be2c607e43ce4c89ecd60e75c6a85c126e754aea" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/be2c607e43ce4c89ecd60e75c6a85c126e754aea", + "reference": "be2c607e43ce4c89ecd60e75c6a85c126e754aea", + "shasum": "" + }, + "require": { + "php": "^5.3.3 || ^7.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.8 || ^5.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.3.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Provides functionality to handle HHVM/PHP environments", + "homepage": "http://www.github.com/sebastianbergmann/environment", + "keywords": [ + "Xdebug", + "environment", + "hhvm" + ], + "time": "2016-08-18T05:49:44+00:00" + }, + { + "name": "sebastian/exporter", + "version": "1.2.2", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/exporter.git", + "reference": "42c4c2eec485ee3e159ec9884f95b431287edde4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/42c4c2eec485ee3e159ec9884f95b431287edde4", + "reference": "42c4c2eec485ee3e159ec9884f95b431287edde4", + "shasum": "" + }, + "require": { + "php": ">=5.3.3", + "sebastian/recursion-context": "~1.0" + }, + "require-dev": { + "ext-mbstring": "*", + "phpunit/phpunit": "~4.4" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.3.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Volker Dusch", + "email": "github@wallbash.com" + }, + { + "name": "Bernhard Schussek", + "email": "bschussek@2bepublished.at" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Adam Harvey", + "email": "aharvey@php.net" + } + ], + "description": "Provides the functionality to export PHP variables for visualization", + "homepage": "http://www.github.com/sebastianbergmann/exporter", + "keywords": [ + "export", + "exporter" + ], + "time": "2016-06-17T09:04:28+00:00" + }, + { + "name": "sebastian/global-state", + "version": "1.1.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/global-state.git", + "reference": "bc37d50fea7d017d3d340f230811c9f1d7280af4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/bc37d50fea7d017d3d340f230811c9f1d7280af4", + "reference": "bc37d50fea7d017d3d340f230811c9f1d7280af4", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "require-dev": { + "phpunit/phpunit": "~4.2" + }, + "suggest": { + "ext-uopz": "*" + }, + "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" + } + ], + "description": "Snapshotting of global state", + "homepage": "http://www.github.com/sebastianbergmann/global-state", + "keywords": [ + "global state" + ], + "time": "2015-10-12T03:26:01+00:00" + }, + { + "name": "sebastian/recursion-context", + "version": "1.0.5", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/recursion-context.git", + "reference": "b19cc3298482a335a95f3016d2f8a6950f0fbcd7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/b19cc3298482a335a95f3016d2f8a6950f0fbcd7", + "reference": "b19cc3298482a335a95f3016d2f8a6950f0fbcd7", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "require-dev": { + "phpunit/phpunit": "~4.4" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Adam Harvey", + "email": "aharvey@php.net" + } + ], + "description": "Provides functionality to recursively process PHP variables", + "homepage": "http://www.github.com/sebastianbergmann/recursion-context", + "time": "2016-10-03T07:41:43+00:00" + }, + { + "name": "sebastian/version", + "version": "1.0.6", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/version.git", + "reference": "58b3a85e7999757d6ad81c787a1fbf5ff6c628c6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/58b3a85e7999757d6ad81c787a1fbf5ff6c628c6", + "reference": "58b3a85e7999757d6ad81c787a1fbf5ff6c628c6", + "shasum": "" + }, + "type": "library", + "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 helps with managing the version number of Git-hosted PHP projects", + "homepage": "https://github.com/sebastianbergmann/version", + "time": "2015-06-21T13:59:46+00:00" + }, + { + "name": "squizlabs/php_codesniffer", + "version": "2.9.2", + "source": { + "type": "git", + "url": "https://github.com/squizlabs/PHP_CodeSniffer.git", + "reference": "2acf168de78487db620ab4bc524135a13cfe6745" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/2acf168de78487db620ab4bc524135a13cfe6745", + "reference": "2acf168de78487db620ab4bc524135a13cfe6745", + "shasum": "" + }, + "require": { + "ext-simplexml": "*", + "ext-tokenizer": "*", + "ext-xmlwriter": "*", + "php": ">=5.1.2" + }, + "require-dev": { + "phpunit/phpunit": "~4.0" + }, + "bin": [ + "scripts/phpcs", + "scripts/phpcbf" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.x-dev" + } + }, + "autoload": { + "classmap": [ + "CodeSniffer.php", + "CodeSniffer/CLI.php", + "CodeSniffer/Exception.php", + "CodeSniffer/File.php", + "CodeSniffer/Fixer.php", + "CodeSniffer/Report.php", + "CodeSniffer/Reporting.php", + "CodeSniffer/Sniff.php", + "CodeSniffer/Tokens.php", + "CodeSniffer/Reports/", + "CodeSniffer/Tokenizers/", + "CodeSniffer/DocGenerators/", + "CodeSniffer/Standards/AbstractPatternSniff.php", + "CodeSniffer/Standards/AbstractScopeSniff.php", + "CodeSniffer/Standards/AbstractVariableSniff.php", + "CodeSniffer/Standards/IncorrectPatternException.php", + "CodeSniffer/Standards/Generic/Sniffs/", + "CodeSniffer/Standards/MySource/Sniffs/", + "CodeSniffer/Standards/PEAR/Sniffs/", + "CodeSniffer/Standards/PSR1/Sniffs/", + "CodeSniffer/Standards/PSR2/Sniffs/", + "CodeSniffer/Standards/Squiz/Sniffs/", + "CodeSniffer/Standards/Zend/Sniffs/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Greg Sherwood", + "role": "lead" + } + ], + "description": "PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.", + "homepage": "http://www.squizlabs.com/php-codesniffer", + "keywords": [ + "phpcs", + "standards" + ], + "time": "2018-11-07T22:31:41+00:00" + }, + { + "name": "symfony/polyfill-ctype", + "version": "v1.10.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-ctype.git", + "reference": "e3d826245268269cd66f8326bd8bc066687b4a19" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/e3d826245268269cd66f8326bd8bc066687b4a19", + "reference": "e3d826245268269cd66f8326bd8bc066687b4a19", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "suggest": { + "ext-ctype": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.9-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Ctype\\": "" + }, + "files": [ + "bootstrap.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + }, + { + "name": "Gert de Pagter", + "email": "BackEndTea@gmail.com" + } + ], + "description": "Symfony polyfill for ctype functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "ctype", + "polyfill", + "portable" + ], + "time": "2018-08-06T14:22:27+00:00" + }, + { + "name": "symfony/yaml", + "version": "v2.8.49", + "source": { + "type": "git", + "url": "https://github.com/symfony/yaml.git", + "reference": "02c1859112aa779d9ab394ae4f3381911d84052b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/yaml/zipball/02c1859112aa779d9ab394ae4f3381911d84052b", + "reference": "02c1859112aa779d9ab394ae4f3381911d84052b", + "shasum": "" + }, + "require": { + "php": ">=5.3.9", + "symfony/polyfill-ctype": "~1.8" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.8-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Yaml\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Yaml Component", + "homepage": "https://symfony.com", + "time": "2018-11-11T11:18:13+00:00" + } + ], + "aliases": [], + "minimum-stability": "stable", + "stability-flags": [], + "prefer-stable": false, + "prefer-lowest": false, + "platform": { + "php": ">=5.4.5" + }, + "platform-dev": [], + "platform-overrides": { + "php": "5.4.8" + } +} diff --git a/vendor/consolidation/annotated-command/.scenarios.lock/symfony2/.gitignore b/vendor/consolidation/annotated-command/.scenarios.lock/symfony2/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..88e99d50df0e92a0e79a150231f75a363c9f1baf --- /dev/null +++ b/vendor/consolidation/annotated-command/.scenarios.lock/symfony2/.gitignore @@ -0,0 +1,2 @@ +vendor +composer.lock \ No newline at end of file diff --git a/vendor/consolidation/annotated-command/.scenarios.lock/symfony2/composer.json b/vendor/consolidation/annotated-command/.scenarios.lock/symfony2/composer.json new file mode 100644 index 0000000000000000000000000000000000000000..17e581d9158d4fd8996614e8fa874ecc6654c470 --- /dev/null +++ b/vendor/consolidation/annotated-command/.scenarios.lock/symfony2/composer.json @@ -0,0 +1,61 @@ +{ + "name": "consolidation/annotated-command", + "description": "Initialize Symfony Console commands from annotated command class methods.", + "license": "MIT", + "authors": [ + { + "name": "Greg Anderson", + "email": "greg.1.anderson@greenknowe.org" + } + ], + "autoload": { + "psr-4": { + "Consolidation\\AnnotatedCommand\\": "../../src" + } + }, + "autoload-dev": { + "psr-4": { + "Consolidation\\TestUtils\\": "../../tests/src" + } + }, + "require": { + "symfony/console": "^2.8", + "php": ">=5.4.5", + "consolidation/output-formatters": "^3.4", + "psr/log": "^1", + "symfony/event-dispatcher": "^2.5|^3|^4", + "symfony/finder": "^2.5|^3|^4" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.36", + "g1a/composer-test-scenarios": "^3", + "squizlabs/php_codesniffer": "^2.7" + }, + "config": { + "platform": { + "php": "5.4.8" + }, + "optimize-autoloader": true, + "sort-packages": true, + "vendor-dir": "../../vendor" + }, + "scripts": { + "cs": "phpcs --standard=PSR2 -n src", + "cbf": "phpcbf --standard=PSR2 -n src", + "unit": "SHELL_INTERACTIVE=true phpunit --colors=always", + "lint": [ + "find src -name '*.php' -print0 | xargs -0 -n1 php -l", + "find tests/src -name '*.php' -print0 | xargs -0 -n1 php -l" + ], + "test": [ + "@lint", + "@unit", + "@cs" + ] + }, + "extra": { + "branch-alias": { + "dev-master": "2.x-dev" + } + } +} diff --git a/vendor/consolidation/annotated-command/.scenarios.lock/symfony4/.gitignore b/vendor/consolidation/annotated-command/.scenarios.lock/symfony4/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..5657f6ea7d574e423dc2c297e2e19a9dbd7a7170 --- /dev/null +++ b/vendor/consolidation/annotated-command/.scenarios.lock/symfony4/.gitignore @@ -0,0 +1 @@ +vendor \ No newline at end of file diff --git a/vendor/consolidation/annotated-command/.scenarios.lock/symfony4/composer.json b/vendor/consolidation/annotated-command/.scenarios.lock/symfony4/composer.json new file mode 100644 index 0000000000000000000000000000000000000000..80f0baaf38dc15a54e9efca37be136a422d93e39 --- /dev/null +++ b/vendor/consolidation/annotated-command/.scenarios.lock/symfony4/composer.json @@ -0,0 +1,62 @@ +{ + "name": "consolidation/annotated-command", + "description": "Initialize Symfony Console commands from annotated command class methods.", + "license": "MIT", + "authors": [ + { + "name": "Greg Anderson", + "email": "greg.1.anderson@greenknowe.org" + } + ], + "autoload": { + "psr-4": { + "Consolidation\\AnnotatedCommand\\": "../../src" + } + }, + "autoload-dev": { + "psr-4": { + "Consolidation\\TestUtils\\": "../../tests/src" + } + }, + "require": { + "symfony/console": "^4.0", + "php": ">=5.4.5", + "consolidation/output-formatters": "^3.4", + "psr/log": "^1", + "symfony/event-dispatcher": "^2.5|^3|^4", + "symfony/finder": "^2.5|^3|^4" + }, + "require-dev": { + "phpunit/phpunit": "^6", + "php-coveralls/php-coveralls": "^1", + "g1a/composer-test-scenarios": "^3", + "squizlabs/php_codesniffer": "^2.7" + }, + "config": { + "platform": { + "php": "7.1.3" + }, + "optimize-autoloader": true, + "sort-packages": true, + "vendor-dir": "../../vendor" + }, + "scripts": { + "cs": "phpcs --standard=PSR2 -n src", + "cbf": "phpcbf --standard=PSR2 -n src", + "unit": "SHELL_INTERACTIVE=true phpunit --colors=always", + "lint": [ + "find src -name '*.php' -print0 | xargs -0 -n1 php -l", + "find tests/src -name '*.php' -print0 | xargs -0 -n1 php -l" + ], + "test": [ + "@lint", + "@unit", + "@cs" + ] + }, + "extra": { + "branch-alias": { + "dev-master": "2.x-dev" + } + } +} diff --git a/vendor/consolidation/annotated-command/.scenarios.lock/symfony4/composer.lock b/vendor/consolidation/annotated-command/.scenarios.lock/symfony4/composer.lock new file mode 100644 index 0000000000000000000000000000000000000000..605f4d0d0fbfbfe1cddd90e7e59a7ad98f10f04f --- /dev/null +++ b/vendor/consolidation/annotated-command/.scenarios.lock/symfony4/composer.lock @@ -0,0 +1,2520 @@ +{ + "_readme": [ + "This file locks the dependencies of your project to a known state", + "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", + "This file is @generated automatically" + ], + "content-hash": "c6c8cae7d200f377fc58fdc4d46be678", + "packages": [ + { + "name": "consolidation/output-formatters", + "version": "3.4.0", + "source": { + "type": "git", + "url": "https://github.com/consolidation/output-formatters.git", + "reference": "a942680232094c4a5b21c0b7e54c20cce623ae19" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/consolidation/output-formatters/zipball/a942680232094c4a5b21c0b7e54c20cce623ae19", + "reference": "a942680232094c4a5b21c0b7e54c20cce623ae19", + "shasum": "" + }, + "require": { + "dflydev/dot-access-data": "^1.1.0", + "php": ">=5.4.0", + "symfony/console": "^2.8|^3|^4", + "symfony/finder": "^2.5|^3|^4" + }, + "require-dev": { + "g1a/composer-test-scenarios": "^2", + "phpunit/phpunit": "^5.7.27", + "satooshi/php-coveralls": "^2", + "squizlabs/php_codesniffer": "^2.7", + "symfony/console": "3.2.3", + "symfony/var-dumper": "^2.8|^3|^4", + "victorjonsson/markdowndocs": "^1.3" + }, + "suggest": { + "symfony/var-dumper": "For using the var_dump formatter" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Consolidation\\OutputFormatters\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Greg Anderson", + "email": "greg.1.anderson@greenknowe.org" + } + ], + "description": "Format text by applying transformations provided by plug-in formatters.", + "time": "2018-10-19T22:35:38+00:00" + }, + { + "name": "dflydev/dot-access-data", + "version": "v1.1.0", + "source": { + "type": "git", + "url": "https://github.com/dflydev/dflydev-dot-access-data.git", + "reference": "3fbd874921ab2c041e899d044585a2ab9795df8a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/dflydev/dflydev-dot-access-data/zipball/3fbd874921ab2c041e899d044585a2ab9795df8a", + "reference": "3fbd874921ab2c041e899d044585a2ab9795df8a", + "shasum": "" + }, + "require": { + "php": ">=5.3.2" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "psr-0": { + "Dflydev\\DotAccessData": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Dragonfly Development Inc.", + "email": "info@dflydev.com", + "homepage": "http://dflydev.com" + }, + { + "name": "Beau Simensen", + "email": "beau@dflydev.com", + "homepage": "http://beausimensen.com" + }, + { + "name": "Carlos Frutos", + "email": "carlos@kiwing.it", + "homepage": "https://github.com/cfrutos" + } + ], + "description": "Given a deep data structure, access data by dot notation.", + "homepage": "https://github.com/dflydev/dflydev-dot-access-data", + "keywords": [ + "access", + "data", + "dot", + "notation" + ], + "time": "2017-01-20T21:14:22+00:00" + }, + { + "name": "psr/log", + "version": "1.1.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/log.git", + "reference": "6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/log/zipball/6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd", + "reference": "6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Log\\": "Psr/Log/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common interface for logging libraries", + "homepage": "https://github.com/php-fig/log", + "keywords": [ + "log", + "psr", + "psr-3" + ], + "time": "2018-11-20T15:27:04+00:00" + }, + { + "name": "symfony/console", + "version": "v4.2.2", + "source": { + "type": "git", + "url": "https://github.com/symfony/console.git", + "reference": "b0a03c1bb0fcbe288629956cf2f1dd3f1dc97522" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/console/zipball/b0a03c1bb0fcbe288629956cf2f1dd3f1dc97522", + "reference": "b0a03c1bb0fcbe288629956cf2f1dd3f1dc97522", + "shasum": "" + }, + "require": { + "php": "^7.1.3", + "symfony/contracts": "^1.0", + "symfony/polyfill-mbstring": "~1.0" + }, + "conflict": { + "symfony/dependency-injection": "<3.4", + "symfony/process": "<3.3" + }, + "require-dev": { + "psr/log": "~1.0", + "symfony/config": "~3.4|~4.0", + "symfony/dependency-injection": "~3.4|~4.0", + "symfony/event-dispatcher": "~3.4|~4.0", + "symfony/lock": "~3.4|~4.0", + "symfony/process": "~3.4|~4.0" + }, + "suggest": { + "psr/log-implementation": "For using the console logger", + "symfony/event-dispatcher": "", + "symfony/lock": "", + "symfony/process": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.2-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Console\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Console Component", + "homepage": "https://symfony.com", + "time": "2019-01-04T15:13:53+00:00" + }, + { + "name": "symfony/contracts", + "version": "v1.0.2", + "source": { + "type": "git", + "url": "https://github.com/symfony/contracts.git", + "reference": "1aa7ab2429c3d594dd70689604b5cf7421254cdf" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/contracts/zipball/1aa7ab2429c3d594dd70689604b5cf7421254cdf", + "reference": "1aa7ab2429c3d594dd70689604b5cf7421254cdf", + "shasum": "" + }, + "require": { + "php": "^7.1.3" + }, + "require-dev": { + "psr/cache": "^1.0", + "psr/container": "^1.0" + }, + "suggest": { + "psr/cache": "When using the Cache contracts", + "psr/container": "When using the Service contracts", + "symfony/cache-contracts-implementation": "", + "symfony/service-contracts-implementation": "", + "symfony/translation-contracts-implementation": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\": "" + }, + "exclude-from-classmap": [ + "**/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "A set of abstractions extracted out of the Symfony components", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "time": "2018-12-05T08:06:11+00:00" + }, + { + "name": "symfony/event-dispatcher", + "version": "v4.2.2", + "source": { + "type": "git", + "url": "https://github.com/symfony/event-dispatcher.git", + "reference": "887de6d34c86cf0cb6cbf910afb170cdb743cb5e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/887de6d34c86cf0cb6cbf910afb170cdb743cb5e", + "reference": "887de6d34c86cf0cb6cbf910afb170cdb743cb5e", + "shasum": "" + }, + "require": { + "php": "^7.1.3", + "symfony/contracts": "^1.0" + }, + "conflict": { + "symfony/dependency-injection": "<3.4" + }, + "require-dev": { + "psr/log": "~1.0", + "symfony/config": "~3.4|~4.0", + "symfony/dependency-injection": "~3.4|~4.0", + "symfony/expression-language": "~3.4|~4.0", + "symfony/stopwatch": "~3.4|~4.0" + }, + "suggest": { + "symfony/dependency-injection": "", + "symfony/http-kernel": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.2-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\EventDispatcher\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony EventDispatcher Component", + "homepage": "https://symfony.com", + "time": "2019-01-05T16:37:49+00:00" + }, + { + "name": "symfony/finder", + "version": "v4.2.2", + "source": { + "type": "git", + "url": "https://github.com/symfony/finder.git", + "reference": "9094d69e8c6ee3fe186a0ec5a4f1401e506071ce" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/finder/zipball/9094d69e8c6ee3fe186a0ec5a4f1401e506071ce", + "reference": "9094d69e8c6ee3fe186a0ec5a4f1401e506071ce", + "shasum": "" + }, + "require": { + "php": "^7.1.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.2-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Finder\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Finder Component", + "homepage": "https://symfony.com", + "time": "2019-01-03T09:07:35+00:00" + }, + { + "name": "symfony/polyfill-mbstring", + "version": "v1.10.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-mbstring.git", + "reference": "c79c051f5b3a46be09205c73b80b346e4153e494" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/c79c051f5b3a46be09205c73b80b346e4153e494", + "reference": "c79c051f5b3a46be09205c73b80b346e4153e494", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "suggest": { + "ext-mbstring": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.9-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Mbstring\\": "" + }, + "files": [ + "bootstrap.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for the Mbstring extension", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "mbstring", + "polyfill", + "portable", + "shim" + ], + "time": "2018-09-21T13:07:52+00:00" + } + ], + "packages-dev": [ + { + "name": "doctrine/instantiator", + "version": "1.1.0", + "source": { + "type": "git", + "url": "https://github.com/doctrine/instantiator.git", + "reference": "185b8868aa9bf7159f5f953ed5afb2d7fcdc3bda" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/instantiator/zipball/185b8868aa9bf7159f5f953ed5afb2d7fcdc3bda", + "reference": "185b8868aa9bf7159f5f953ed5afb2d7fcdc3bda", + "shasum": "" + }, + "require": { + "php": "^7.1" + }, + "require-dev": { + "athletic/athletic": "~0.1.8", + "ext-pdo": "*", + "ext-phar": "*", + "phpunit/phpunit": "^6.2.3", + "squizlabs/php_codesniffer": "^3.0.2" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.2.x-dev" + } + }, + "autoload": { + "psr-4": { + "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com", + "homepage": "http://ocramius.github.com/" + } + ], + "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", + "homepage": "https://github.com/doctrine/instantiator", + "keywords": [ + "constructor", + "instantiate" + ], + "time": "2017-07-22T11:58:36+00:00" + }, + { + "name": "g1a/composer-test-scenarios", + "version": "3.0.1", + "source": { + "type": "git", + "url": "https://github.com/g1a/composer-test-scenarios.git", + "reference": "224531e20d13a07942a989a70759f726cd2df9a1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/g1a/composer-test-scenarios/zipball/224531e20d13a07942a989a70759f726cd2df9a1", + "reference": "224531e20d13a07942a989a70759f726cd2df9a1", + "shasum": "" + }, + "require": { + "composer-plugin-api": "^1.0.0", + "php": ">=5.4" + }, + "require-dev": { + "composer/composer": "^1.7", + "php-coveralls/php-coveralls": "^1.0", + "phpunit/phpunit": "^4.8.36|^6", + "squizlabs/php_codesniffer": "^2.8" + }, + "bin": [ + "scripts/dependency-licenses" + ], + "type": "composer-plugin", + "extra": { + "class": "ComposerTestScenarios\\Plugin", + "branch-alias": { + "dev-master": "3.x-dev" + } + }, + "autoload": { + "psr-4": { + "ComposerTestScenarios\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Greg Anderson", + "email": "greg.1.anderson@greenknowe.org" + } + ], + "description": "Useful scripts for testing multiple sets of Composer dependencies.", + "time": "2018-11-27T05:58:39+00:00" + }, + { + "name": "guzzle/guzzle", + "version": "v3.8.1", + "source": { + "type": "git", + "url": "https://github.com/guzzle/guzzle.git", + "reference": "4de0618a01b34aa1c8c33a3f13f396dcd3882eba" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/4de0618a01b34aa1c8c33a3f13f396dcd3882eba", + "reference": "4de0618a01b34aa1c8c33a3f13f396dcd3882eba", + "shasum": "" + }, + "require": { + "ext-curl": "*", + "php": ">=5.3.3", + "symfony/event-dispatcher": ">=2.1" + }, + "replace": { + "guzzle/batch": "self.version", + "guzzle/cache": "self.version", + "guzzle/common": "self.version", + "guzzle/http": "self.version", + "guzzle/inflection": "self.version", + "guzzle/iterator": "self.version", + "guzzle/log": "self.version", + "guzzle/parser": "self.version", + "guzzle/plugin": "self.version", + "guzzle/plugin-async": "self.version", + "guzzle/plugin-backoff": "self.version", + "guzzle/plugin-cache": "self.version", + "guzzle/plugin-cookie": "self.version", + "guzzle/plugin-curlauth": "self.version", + "guzzle/plugin-error-response": "self.version", + "guzzle/plugin-history": "self.version", + "guzzle/plugin-log": "self.version", + "guzzle/plugin-md5": "self.version", + "guzzle/plugin-mock": "self.version", + "guzzle/plugin-oauth": "self.version", + "guzzle/service": "self.version", + "guzzle/stream": "self.version" + }, + "require-dev": { + "doctrine/cache": "*", + "monolog/monolog": "1.*", + "phpunit/phpunit": "3.7.*", + "psr/log": "1.0.*", + "symfony/class-loader": "*", + "zendframework/zend-cache": "<2.3", + "zendframework/zend-log": "<2.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.8-dev" + } + }, + "autoload": { + "psr-0": { + "Guzzle": "src/", + "Guzzle\\Tests": "tests/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "Guzzle Community", + "homepage": "https://github.com/guzzle/guzzle/contributors" + } + ], + "description": "Guzzle is a PHP HTTP client library and framework for building RESTful web service clients", + "homepage": "http://guzzlephp.org/", + "keywords": [ + "client", + "curl", + "framework", + "http", + "http client", + "rest", + "web service" + ], + "abandoned": "guzzlehttp/guzzle", + "time": "2014-01-28T22:29:15+00:00" + }, + { + "name": "myclabs/deep-copy", + "version": "1.8.1", + "source": { + "type": "git", + "url": "https://github.com/myclabs/DeepCopy.git", + "reference": "3e01bdad3e18354c3dce54466b7fbe33a9f9f7f8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/3e01bdad3e18354c3dce54466b7fbe33a9f9f7f8", + "reference": "3e01bdad3e18354c3dce54466b7fbe33a9f9f7f8", + "shasum": "" + }, + "require": { + "php": "^7.1" + }, + "replace": { + "myclabs/deep-copy": "self.version" + }, + "require-dev": { + "doctrine/collections": "^1.0", + "doctrine/common": "^2.6", + "phpunit/phpunit": "^7.1" + }, + "type": "library", + "autoload": { + "psr-4": { + "DeepCopy\\": "src/DeepCopy/" + }, + "files": [ + "src/DeepCopy/deep_copy.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Create deep copies (clones) of your objects", + "keywords": [ + "clone", + "copy", + "duplicate", + "object", + "object graph" + ], + "time": "2018-06-11T23:09:50+00:00" + }, + { + "name": "phar-io/manifest", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/phar-io/manifest.git", + "reference": "2df402786ab5368a0169091f61a7c1e0eb6852d0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phar-io/manifest/zipball/2df402786ab5368a0169091f61a7c1e0eb6852d0", + "reference": "2df402786ab5368a0169091f61a7c1e0eb6852d0", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-phar": "*", + "phar-io/version": "^1.0.1", + "php": "^5.6 || ^7.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "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": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", + "time": "2017-03-05T18:14:27+00:00" + }, + { + "name": "phar-io/version", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/phar-io/version.git", + "reference": "a70c0ced4be299a63d32fa96d9281d03e94041df" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phar-io/version/zipball/a70c0ced4be299a63d32fa96d9281d03e94041df", + "reference": "a70c0ced4be299a63d32fa96d9281d03e94041df", + "shasum": "" + }, + "require": { + "php": "^5.6 || ^7.0" + }, + "type": "library", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "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": "Library for handling version information and constraints", + "time": "2017-03-05T17:38:23+00:00" + }, + { + "name": "php-coveralls/php-coveralls", + "version": "v1.1.0", + "source": { + "type": "git", + "url": "https://github.com/php-coveralls/php-coveralls.git", + "reference": "37f8f83fe22224eb9d9c6d593cdeb33eedd2a9ad" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-coveralls/php-coveralls/zipball/37f8f83fe22224eb9d9c6d593cdeb33eedd2a9ad", + "reference": "37f8f83fe22224eb9d9c6d593cdeb33eedd2a9ad", + "shasum": "" + }, + "require": { + "ext-json": "*", + "ext-simplexml": "*", + "guzzle/guzzle": "^2.8 || ^3.0", + "php": "^5.3.3 || ^7.0", + "psr/log": "^1.0", + "symfony/config": "^2.1 || ^3.0 || ^4.0", + "symfony/console": "^2.1 || ^3.0 || ^4.0", + "symfony/stopwatch": "^2.0 || ^3.0 || ^4.0", + "symfony/yaml": "^2.0 || ^3.0 || ^4.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.35 || ^5.4.3 || ^6.0" + }, + "suggest": { + "symfony/http-kernel": "Allows Symfony integration" + }, + "bin": [ + "bin/coveralls" + ], + "type": "library", + "autoload": { + "psr-4": { + "Satooshi\\": "src/Satooshi/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Kitamura Satoshi", + "email": "with.no.parachute@gmail.com", + "homepage": "https://www.facebook.com/satooshi.jp" + } + ], + "description": "PHP client library for Coveralls API", + "homepage": "https://github.com/php-coveralls/php-coveralls", + "keywords": [ + "ci", + "coverage", + "github", + "test" + ], + "time": "2017-12-06T23:17:56+00:00" + }, + { + "name": "phpdocumentor/reflection-common", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/phpDocumentor/ReflectionCommon.git", + "reference": "21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6", + "reference": "21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6", + "shasum": "" + }, + "require": { + "php": ">=5.5" + }, + "require-dev": { + "phpunit/phpunit": "^4.6" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.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": "2017-09-11T18:02:19+00:00" + }, + { + "name": "phpdocumentor/reflection-docblock", + "version": "4.3.0", + "source": { + "type": "git", + "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", + "reference": "94fd0001232e47129dd3504189fa1c7225010d08" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/94fd0001232e47129dd3504189fa1c7225010d08", + "reference": "94fd0001232e47129dd3504189fa1c7225010d08", + "shasum": "" + }, + "require": { + "php": "^7.0", + "phpdocumentor/reflection-common": "^1.0.0", + "phpdocumentor/type-resolver": "^0.4.0", + "webmozart/assert": "^1.0" + }, + "require-dev": { + "doctrine/instantiator": "~1.0.5", + "mockery/mockery": "^1.0", + "phpunit/phpunit": "^6.4" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.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": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", + "time": "2017-11-30T07:14:17+00:00" + }, + { + "name": "phpdocumentor/type-resolver", + "version": "0.4.0", + "source": { + "type": "git", + "url": "https://github.com/phpDocumentor/TypeResolver.git", + "reference": "9c977708995954784726e25d0cd1dddf4e65b0f7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/9c977708995954784726e25d0cd1dddf4e65b0f7", + "reference": "9c977708995954784726e25d0cd1dddf4e65b0f7", + "shasum": "" + }, + "require": { + "php": "^5.5 || ^7.0", + "phpdocumentor/reflection-common": "^1.0" + }, + "require-dev": { + "mockery/mockery": "^0.9.4", + "phpunit/phpunit": "^5.2||^4.8.24" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.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" + } + ], + "time": "2017-07-14T14:27:02+00:00" + }, + { + "name": "phpspec/prophecy", + "version": "1.8.0", + "source": { + "type": "git", + "url": "https://github.com/phpspec/prophecy.git", + "reference": "4ba436b55987b4bf311cb7c6ba82aa528aac0a06" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpspec/prophecy/zipball/4ba436b55987b4bf311cb7c6ba82aa528aac0a06", + "reference": "4ba436b55987b4bf311cb7c6ba82aa528aac0a06", + "shasum": "" + }, + "require": { + "doctrine/instantiator": "^1.0.2", + "php": "^5.3|^7.0", + "phpdocumentor/reflection-docblock": "^2.0|^3.0.2|^4.0", + "sebastian/comparator": "^1.1|^2.0|^3.0", + "sebastian/recursion-context": "^1.0|^2.0|^3.0" + }, + "require-dev": { + "phpspec/phpspec": "^2.5|^3.2", + "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5 || ^7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.8.x-dev" + } + }, + "autoload": { + "psr-0": { + "Prophecy\\": "src/" + } + }, + "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" + ], + "time": "2018-08-05T17:53:17+00:00" + }, + { + "name": "phpunit/php-code-coverage", + "version": "5.3.2", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-code-coverage.git", + "reference": "c89677919c5dd6d3b3852f230a663118762218ac" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/c89677919c5dd6d3b3852f230a663118762218ac", + "reference": "c89677919c5dd6d3b3852f230a663118762218ac", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-xmlwriter": "*", + "php": "^7.0", + "phpunit/php-file-iterator": "^1.4.2", + "phpunit/php-text-template": "^1.2.1", + "phpunit/php-token-stream": "^2.0.1", + "sebastian/code-unit-reverse-lookup": "^1.0.1", + "sebastian/environment": "^3.0", + "sebastian/version": "^2.0.1", + "theseer/tokenizer": "^1.1" + }, + "require-dev": { + "phpunit/phpunit": "^6.0" + }, + "suggest": { + "ext-xdebug": "^2.5.5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.3.x-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" + ], + "time": "2018-04-06T15:36:58+00:00" + }, + { + "name": "phpunit/php-file-iterator", + "version": "1.4.5", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-file-iterator.git", + "reference": "730b01bc3e867237eaac355e06a36b85dd93a8b4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/730b01bc3e867237eaac355e06a36b85dd93a8b4", + "reference": "730b01bc3e867237eaac355e06a36b85dd93a8b4", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.4.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sb@sebastian-bergmann.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" + ], + "time": "2017-11-27T13:52:08+00:00" + }, + { + "name": "phpunit/php-text-template", + "version": "1.2.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-text-template.git", + "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686", + "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "type": "library", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Simple template engine.", + "homepage": "https://github.com/sebastianbergmann/php-text-template/", + "keywords": [ + "template" + ], + "time": "2015-06-21T13:50:34+00:00" + }, + { + "name": "phpunit/php-timer", + "version": "1.0.9", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-timer.git", + "reference": "3dcf38ca72b158baf0bc245e9184d3fdffa9c46f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/3dcf38ca72b158baf0bc245e9184d3fdffa9c46f", + "reference": "3dcf38ca72b158baf0bc245e9184d3fdffa9c46f", + "shasum": "" + }, + "require": { + "php": "^5.3.3 || ^7.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0" + }, + "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": "sb@sebastian-bergmann.de", + "role": "lead" + } + ], + "description": "Utility class for timing", + "homepage": "https://github.com/sebastianbergmann/php-timer/", + "keywords": [ + "timer" + ], + "time": "2017-02-26T11:10:40+00:00" + }, + { + "name": "phpunit/php-token-stream", + "version": "2.0.2", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-token-stream.git", + "reference": "791198a2c6254db10131eecfe8c06670700904db" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/791198a2c6254db10131eecfe8c06670700904db", + "reference": "791198a2c6254db10131eecfe8c06670700904db", + "shasum": "" + }, + "require": { + "ext-tokenizer": "*", + "php": "^7.0" + }, + "require-dev": { + "phpunit/phpunit": "^6.2.4" + }, + "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": "Wrapper around PHP's tokenizer extension.", + "homepage": "https://github.com/sebastianbergmann/php-token-stream/", + "keywords": [ + "tokenizer" + ], + "time": "2017-11-27T05:48:46+00:00" + }, + { + "name": "phpunit/phpunit", + "version": "6.5.13", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/phpunit.git", + "reference": "0973426fb012359b2f18d3bd1e90ef1172839693" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/0973426fb012359b2f18d3bd1e90ef1172839693", + "reference": "0973426fb012359b2f18d3bd1e90ef1172839693", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-json": "*", + "ext-libxml": "*", + "ext-mbstring": "*", + "ext-xml": "*", + "myclabs/deep-copy": "^1.6.1", + "phar-io/manifest": "^1.0.1", + "phar-io/version": "^1.0", + "php": "^7.0", + "phpspec/prophecy": "^1.7", + "phpunit/php-code-coverage": "^5.3", + "phpunit/php-file-iterator": "^1.4.3", + "phpunit/php-text-template": "^1.2.1", + "phpunit/php-timer": "^1.0.9", + "phpunit/phpunit-mock-objects": "^5.0.9", + "sebastian/comparator": "^2.1", + "sebastian/diff": "^2.0", + "sebastian/environment": "^3.1", + "sebastian/exporter": "^3.1", + "sebastian/global-state": "^2.0", + "sebastian/object-enumerator": "^3.0.3", + "sebastian/resource-operations": "^1.0", + "sebastian/version": "^2.0.1" + }, + "conflict": { + "phpdocumentor/reflection-docblock": "3.0.2", + "phpunit/dbunit": "<3.0" + }, + "require-dev": { + "ext-pdo": "*" + }, + "suggest": { + "ext-xdebug": "*", + "phpunit/php-invoker": "^1.1" + }, + "bin": [ + "phpunit" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "6.5.x-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": "The PHP Unit Testing framework.", + "homepage": "https://phpunit.de/", + "keywords": [ + "phpunit", + "testing", + "xunit" + ], + "time": "2018-09-08T15:10:43+00:00" + }, + { + "name": "phpunit/phpunit-mock-objects", + "version": "5.0.10", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git", + "reference": "cd1cf05c553ecfec36b170070573e540b67d3f1f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/cd1cf05c553ecfec36b170070573e540b67d3f1f", + "reference": "cd1cf05c553ecfec36b170070573e540b67d3f1f", + "shasum": "" + }, + "require": { + "doctrine/instantiator": "^1.0.5", + "php": "^7.0", + "phpunit/php-text-template": "^1.2.1", + "sebastian/exporter": "^3.1" + }, + "conflict": { + "phpunit/phpunit": "<6.0" + }, + "require-dev": { + "phpunit/phpunit": "^6.5.11" + }, + "suggest": { + "ext-soap": "*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.0.x-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": "Mock Object library for PHPUnit", + "homepage": "https://github.com/sebastianbergmann/phpunit-mock-objects/", + "keywords": [ + "mock", + "xunit" + ], + "time": "2018-08-09T05:50:03+00:00" + }, + { + "name": "sebastian/code-unit-reverse-lookup", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", + "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/4419fcdb5eabb9caa61a27c7a1db532a6b55dd18", + "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18", + "shasum": "" + }, + "require": { + "php": "^5.6 || ^7.0" + }, + "require-dev": { + "phpunit/phpunit": "^5.7 || ^6.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-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/", + "time": "2017-03-04T06:30:41+00:00" + }, + { + "name": "sebastian/comparator", + "version": "2.1.3", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/comparator.git", + "reference": "34369daee48eafb2651bea869b4b15d75ccc35f9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/34369daee48eafb2651bea869b4b15d75ccc35f9", + "reference": "34369daee48eafb2651bea869b4b15d75ccc35f9", + "shasum": "" + }, + "require": { + "php": "^7.0", + "sebastian/diff": "^2.0 || ^3.0", + "sebastian/exporter": "^3.1" + }, + "require-dev": { + "phpunit/phpunit": "^6.4" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.1.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Volker Dusch", + "email": "github@wallbash.com" + }, + { + "name": "Bernhard Schussek", + "email": "bschussek@2bepublished.at" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Provides the functionality to compare PHP values for equality", + "homepage": "https://github.com/sebastianbergmann/comparator", + "keywords": [ + "comparator", + "compare", + "equality" + ], + "time": "2018-02-01T13:46:46+00:00" + }, + { + "name": "sebastian/diff", + "version": "2.0.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/diff.git", + "reference": "347c1d8b49c5c3ee30c7040ea6fc446790e6bddd" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/347c1d8b49c5c3ee30c7040ea6fc446790e6bddd", + "reference": "347c1d8b49c5c3ee30c7040ea6fc446790e6bddd", + "shasum": "" + }, + "require": { + "php": "^7.0" + }, + "require-dev": { + "phpunit/phpunit": "^6.2" + }, + "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": "Kore Nordmann", + "email": "mail@kore-nordmann.de" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Diff implementation", + "homepage": "https://github.com/sebastianbergmann/diff", + "keywords": [ + "diff" + ], + "time": "2017-08-03T08:09:46+00:00" + }, + { + "name": "sebastian/environment", + "version": "3.1.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/environment.git", + "reference": "cd0871b3975fb7fc44d11314fd1ee20925fce4f5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/cd0871b3975fb7fc44d11314fd1ee20925fce4f5", + "reference": "cd0871b3975fb7fc44d11314fd1ee20925fce4f5", + "shasum": "" + }, + "require": { + "php": "^7.0" + }, + "require-dev": { + "phpunit/phpunit": "^6.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.1.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Provides functionality to handle HHVM/PHP environments", + "homepage": "http://www.github.com/sebastianbergmann/environment", + "keywords": [ + "Xdebug", + "environment", + "hhvm" + ], + "time": "2017-07-01T08:51:00+00:00" + }, + { + "name": "sebastian/exporter", + "version": "3.1.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/exporter.git", + "reference": "234199f4528de6d12aaa58b612e98f7d36adb937" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/234199f4528de6d12aaa58b612e98f7d36adb937", + "reference": "234199f4528de6d12aaa58b612e98f7d36adb937", + "shasum": "" + }, + "require": { + "php": "^7.0", + "sebastian/recursion-context": "^3.0" + }, + "require-dev": { + "ext-mbstring": "*", + "phpunit/phpunit": "^6.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.1.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Volker Dusch", + "email": "github@wallbash.com" + }, + { + "name": "Bernhard Schussek", + "email": "bschussek@2bepublished.at" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Adam Harvey", + "email": "aharvey@php.net" + } + ], + "description": "Provides the functionality to export PHP variables for visualization", + "homepage": "http://www.github.com/sebastianbergmann/exporter", + "keywords": [ + "export", + "exporter" + ], + "time": "2017-04-03T13:19:02+00:00" + }, + { + "name": "sebastian/global-state", + "version": "2.0.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/global-state.git", + "reference": "e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4", + "reference": "e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4", + "shasum": "" + }, + "require": { + "php": "^7.0" + }, + "require-dev": { + "phpunit/phpunit": "^6.0" + }, + "suggest": { + "ext-uopz": "*" + }, + "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": "Snapshotting of global state", + "homepage": "http://www.github.com/sebastianbergmann/global-state", + "keywords": [ + "global state" + ], + "time": "2017-04-27T15:39:26+00:00" + }, + { + "name": "sebastian/object-enumerator", + "version": "3.0.3", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/object-enumerator.git", + "reference": "7cfd9e65d11ffb5af41198476395774d4c8a84c5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/7cfd9e65d11ffb5af41198476395774d4c8a84c5", + "reference": "7cfd9e65d11ffb5af41198476395774d4c8a84c5", + "shasum": "" + }, + "require": { + "php": "^7.0", + "sebastian/object-reflector": "^1.1.1", + "sebastian/recursion-context": "^3.0" + }, + "require-dev": { + "phpunit/phpunit": "^6.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Traverses array structures and object graphs to enumerate all referenced objects", + "homepage": "https://github.com/sebastianbergmann/object-enumerator/", + "time": "2017-08-03T12:35:26+00:00" + }, + { + "name": "sebastian/object-reflector", + "version": "1.1.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/object-reflector.git", + "reference": "773f97c67f28de00d397be301821b06708fca0be" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/773f97c67f28de00d397be301821b06708fca0be", + "reference": "773f97c67f28de00d397be301821b06708fca0be", + "shasum": "" + }, + "require": { + "php": "^7.0" + }, + "require-dev": { + "phpunit/phpunit": "^6.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.1-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Allows reflection of object attributes, including inherited and non-public ones", + "homepage": "https://github.com/sebastianbergmann/object-reflector/", + "time": "2017-03-29T09:07:27+00:00" + }, + { + "name": "sebastian/recursion-context", + "version": "3.0.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/recursion-context.git", + "reference": "5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8", + "reference": "5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8", + "shasum": "" + }, + "require": { + "php": "^7.0" + }, + "require-dev": { + "phpunit/phpunit": "^6.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Adam Harvey", + "email": "aharvey@php.net" + } + ], + "description": "Provides functionality to recursively process PHP variables", + "homepage": "http://www.github.com/sebastianbergmann/recursion-context", + "time": "2017-03-03T06:23:57+00:00" + }, + { + "name": "sebastian/resource-operations", + "version": "1.0.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/resource-operations.git", + "reference": "ce990bb21759f94aeafd30209e8cfcdfa8bc3f52" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/ce990bb21759f94aeafd30209e8cfcdfa8bc3f52", + "reference": "ce990bb21759f94aeafd30209e8cfcdfa8bc3f52", + "shasum": "" + }, + "require": { + "php": ">=5.6.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Provides a list of PHP built-in functions that operate on resources", + "homepage": "https://www.github.com/sebastianbergmann/resource-operations", + "time": "2015-07-28T20:34:47+00:00" + }, + { + "name": "sebastian/version", + "version": "2.0.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/version.git", + "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/99732be0ddb3361e16ad77b68ba41efc8e979019", + "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019", + "shasum": "" + }, + "require": { + "php": ">=5.6" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-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 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" + }, + { + "name": "squizlabs/php_codesniffer", + "version": "2.9.2", + "source": { + "type": "git", + "url": "https://github.com/squizlabs/PHP_CodeSniffer.git", + "reference": "2acf168de78487db620ab4bc524135a13cfe6745" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/2acf168de78487db620ab4bc524135a13cfe6745", + "reference": "2acf168de78487db620ab4bc524135a13cfe6745", + "shasum": "" + }, + "require": { + "ext-simplexml": "*", + "ext-tokenizer": "*", + "ext-xmlwriter": "*", + "php": ">=5.1.2" + }, + "require-dev": { + "phpunit/phpunit": "~4.0" + }, + "bin": [ + "scripts/phpcs", + "scripts/phpcbf" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.x-dev" + } + }, + "autoload": { + "classmap": [ + "CodeSniffer.php", + "CodeSniffer/CLI.php", + "CodeSniffer/Exception.php", + "CodeSniffer/File.php", + "CodeSniffer/Fixer.php", + "CodeSniffer/Report.php", + "CodeSniffer/Reporting.php", + "CodeSniffer/Sniff.php", + "CodeSniffer/Tokens.php", + "CodeSniffer/Reports/", + "CodeSniffer/Tokenizers/", + "CodeSniffer/DocGenerators/", + "CodeSniffer/Standards/AbstractPatternSniff.php", + "CodeSniffer/Standards/AbstractScopeSniff.php", + "CodeSniffer/Standards/AbstractVariableSniff.php", + "CodeSniffer/Standards/IncorrectPatternException.php", + "CodeSniffer/Standards/Generic/Sniffs/", + "CodeSniffer/Standards/MySource/Sniffs/", + "CodeSniffer/Standards/PEAR/Sniffs/", + "CodeSniffer/Standards/PSR1/Sniffs/", + "CodeSniffer/Standards/PSR2/Sniffs/", + "CodeSniffer/Standards/Squiz/Sniffs/", + "CodeSniffer/Standards/Zend/Sniffs/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Greg Sherwood", + "role": "lead" + } + ], + "description": "PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.", + "homepage": "http://www.squizlabs.com/php-codesniffer", + "keywords": [ + "phpcs", + "standards" + ], + "time": "2018-11-07T22:31:41+00:00" + }, + { + "name": "symfony/config", + "version": "v4.2.2", + "source": { + "type": "git", + "url": "https://github.com/symfony/config.git", + "reference": "a7a7d0a0244cfc82f040729ccf769e6cf55a78fb" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/config/zipball/a7a7d0a0244cfc82f040729ccf769e6cf55a78fb", + "reference": "a7a7d0a0244cfc82f040729ccf769e6cf55a78fb", + "shasum": "" + }, + "require": { + "php": "^7.1.3", + "symfony/filesystem": "~3.4|~4.0", + "symfony/polyfill-ctype": "~1.8" + }, + "conflict": { + "symfony/finder": "<3.4" + }, + "require-dev": { + "symfony/dependency-injection": "~3.4|~4.0", + "symfony/event-dispatcher": "~3.4|~4.0", + "symfony/finder": "~3.4|~4.0", + "symfony/yaml": "~3.4|~4.0" + }, + "suggest": { + "symfony/yaml": "To use the yaml reference dumper" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.2-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Config\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Config Component", + "homepage": "https://symfony.com", + "time": "2019-01-03T09:07:35+00:00" + }, + { + "name": "symfony/filesystem", + "version": "v4.2.2", + "source": { + "type": "git", + "url": "https://github.com/symfony/filesystem.git", + "reference": "c2ffd9a93f2d6c5be2f68a0aa7953cc229f871f8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/c2ffd9a93f2d6c5be2f68a0aa7953cc229f871f8", + "reference": "c2ffd9a93f2d6c5be2f68a0aa7953cc229f871f8", + "shasum": "" + }, + "require": { + "php": "^7.1.3", + "symfony/polyfill-ctype": "~1.8" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.2-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Filesystem\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Filesystem Component", + "homepage": "https://symfony.com", + "time": "2019-01-03T09:07:35+00:00" + }, + { + "name": "symfony/polyfill-ctype", + "version": "v1.10.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-ctype.git", + "reference": "e3d826245268269cd66f8326bd8bc066687b4a19" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/e3d826245268269cd66f8326bd8bc066687b4a19", + "reference": "e3d826245268269cd66f8326bd8bc066687b4a19", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "suggest": { + "ext-ctype": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.9-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Ctype\\": "" + }, + "files": [ + "bootstrap.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + }, + { + "name": "Gert de Pagter", + "email": "BackEndTea@gmail.com" + } + ], + "description": "Symfony polyfill for ctype functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "ctype", + "polyfill", + "portable" + ], + "time": "2018-08-06T14:22:27+00:00" + }, + { + "name": "symfony/stopwatch", + "version": "v4.2.2", + "source": { + "type": "git", + "url": "https://github.com/symfony/stopwatch.git", + "reference": "af62b35760fc92c8dbdce659b4eebdfe0e6a0472" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/stopwatch/zipball/af62b35760fc92c8dbdce659b4eebdfe0e6a0472", + "reference": "af62b35760fc92c8dbdce659b4eebdfe0e6a0472", + "shasum": "" + }, + "require": { + "php": "^7.1.3", + "symfony/contracts": "^1.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.2-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Stopwatch\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Stopwatch Component", + "homepage": "https://symfony.com", + "time": "2019-01-03T09:07:35+00:00" + }, + { + "name": "symfony/yaml", + "version": "v4.2.2", + "source": { + "type": "git", + "url": "https://github.com/symfony/yaml.git", + "reference": "d0aa6c0ea484087927b49fd513383a7d36190ca6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/yaml/zipball/d0aa6c0ea484087927b49fd513383a7d36190ca6", + "reference": "d0aa6c0ea484087927b49fd513383a7d36190ca6", + "shasum": "" + }, + "require": { + "php": "^7.1.3", + "symfony/polyfill-ctype": "~1.8" + }, + "conflict": { + "symfony/console": "<3.4" + }, + "require-dev": { + "symfony/console": "~3.4|~4.0" + }, + "suggest": { + "symfony/console": "For validating YAML files using the lint command" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.2-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Yaml\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Yaml Component", + "homepage": "https://symfony.com", + "time": "2019-01-03T09:07:35+00:00" + }, + { + "name": "theseer/tokenizer", + "version": "1.1.0", + "source": { + "type": "git", + "url": "https://github.com/theseer/tokenizer.git", + "reference": "cb2f008f3f05af2893a87208fe6a6c4985483f8b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/theseer/tokenizer/zipball/cb2f008f3f05af2893a87208fe6a6c4985483f8b", + "reference": "cb2f008f3f05af2893a87208fe6a6c4985483f8b", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-tokenizer": "*", + "ext-xmlwriter": "*", + "php": "^7.0" + }, + "type": "library", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" + } + ], + "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", + "time": "2017-04-07T12:08:54+00:00" + }, + { + "name": "webmozart/assert", + "version": "1.4.0", + "source": { + "type": "git", + "url": "https://github.com/webmozart/assert.git", + "reference": "83e253c8e0be5b0257b881e1827274667c5c17a9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/webmozart/assert/zipball/83e253c8e0be5b0257b881e1827274667c5c17a9", + "reference": "83e253c8e0be5b0257b881e1827274667c5c17a9", + "shasum": "" + }, + "require": { + "php": "^5.3.3 || ^7.0", + "symfony/polyfill-ctype": "^1.8" + }, + "require-dev": { + "phpunit/phpunit": "^4.6", + "sebastian/version": "^1.0.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.3-dev" + } + }, + "autoload": { + "psr-4": { + "Webmozart\\Assert\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" + } + ], + "description": "Assertions to validate method input/output with nice error messages.", + "keywords": [ + "assert", + "check", + "validate" + ], + "time": "2018-12-25T11:19:39+00:00" + } + ], + "aliases": [], + "minimum-stability": "stable", + "stability-flags": [], + "prefer-stable": false, + "prefer-lowest": false, + "platform": { + "php": ">=5.4.5" + }, + "platform-dev": [], + "platform-overrides": { + "php": "7.1.3" + } +} diff --git a/vendor/consolidation/annotated-command/CHANGELOG.md b/vendor/consolidation/annotated-command/CHANGELOG.md index 662dbb4fa42de207a008717077cdb5e0b2a1d077..d7dbfdd59e030acae0400fcd596f8600a5806a0a 100644 --- a/vendor/consolidation/annotated-command/CHANGELOG.md +++ b/vendor/consolidation/annotated-command/CHANGELOG.md @@ -1,5 +1,48 @@ # Change Log +### 2.12.0 - 8 Mar 2019 + +- Allow annotated args and options to specify their default values in their descriptions. (#186) + +### 2.11.2 - 1 Feb 2019 + +- Fix handling of old caches from 2.11.1 that introduced upgrade errors. + +### 2.11.1 - 31 Jan 2019 + +- Cache injected classes (#182) + +### 2.11.0 - 27 Jan 2019 + +- Make injection of InputInterface / OutputInterface general-purpose (#179) + +### 2.10.2 - 20 Dec 2018 + +- Fix commands that have a @param annotation for their InputInterface/OutputInterface params (#176) + +### 2.10.1 - 13 Dec 2018 + +- Add stdin handler convenience class +- Add setter to AnnotationData to suppliment existing array acces +- Update to Composer Test Scenarios 3 + +### 2.10.0 - 14 Nov 2018 + +- Add a new data type, CommandResult (#167) + +### 2.9.0 & 2.9.1 - 19 Sept 2018 + +- Improve commandfile discovery for extensions installed via Composer. (#156) + +### 2.8.5 - 18 Aug 2018 + +- Add dependencies.yml for dependencies.io +- Fix warning in AnnotatedCommandFactory when getCommandInfoListFromCache called with null. + +### 2.8.4 - 25 May 2018 + +- Use g1a/composer-test-scenarios for better PHP version matrix testing. + ### 2.8.3 - 23 Feb 2018 - BUGFIX: Do not shift off the command name unless it is there. (#139) diff --git a/vendor/consolidation/annotated-command/LICENSE b/vendor/consolidation/annotated-command/LICENSE index b283237da5eb27b0765c2eff280d5e7e30e0b123..7c4d73fd8f27cd9ad9fc210a915cb1caba6abf2c 100644 --- a/vendor/consolidation/annotated-command/LICENSE +++ b/vendor/consolidation/annotated-command/LICENSE @@ -1,6 +1,6 @@ The MIT License (MIT) -Copyright (c) 2016-2018 Consolidation Org Developers +Copyright (c) 2016-2019 Consolidation Org Developers Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: @@ -11,11 +11,12 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI DEPENDENCY LICENSES: -Name Version License -consolidation/output-formatters 3.2.0 MIT -psr/log 1.0.2 MIT -symfony/console v3.4.11 MIT -symfony/debug v3.4.11 MIT -symfony/event-dispatcher v3.4.11 MIT -symfony/finder v3.4.11 MIT -symfony/polyfill-mbstring v1.8.0 MIT +Name Version License +consolidation/output-formatters 3.4.0 MIT +dflydev/dot-access-data v1.1.0 MIT +psr/log 1.1.0 MIT +symfony/console v2.8.49 MIT +symfony/debug v2.8.49 MIT +symfony/event-dispatcher v2.8.49 MIT +symfony/finder v2.8.49 MIT +symfony/polyfill-mbstring v1.10.0 MIT \ No newline at end of file diff --git a/vendor/consolidation/annotated-command/README.md b/vendor/consolidation/annotated-command/README.md index 72227e3cd0f4910b823a1d8d4545f644c2bcff4a..efcba14b4480d35c2453a2cf9d319b72d31c145b 100644 --- a/vendor/consolidation/annotated-command/README.md +++ b/vendor/consolidation/annotated-command/README.md @@ -5,7 +5,7 @@ Initialize Symfony Console commands from annotated command class methods. [](https://travis-ci.org/consolidation/annotated-command) [](https://ci.appveyor.com/project/greg-1-anderson/annotated-command) [](https://scrutinizer-ci.com/g/consolidation/annotated-command/?branch=master) -[](https://coveralls.io/github/consolidation/annotated-command?branch=master) +[](https://coveralls.io/github/consolidation/annotated-command?branch=master) [](https://packagist.org/packages/consolidation/annotated-command) ## Component Status @@ -24,14 +24,14 @@ Extant commandline tools that utilize this technique include: This library provides routines to produce the Symfony\Component\Console\Command\Command from all public methods defined in the provided class. -**Note** If you are looking for a very fast way to write a Symfony Console-base command-line tool, you should consider using [Robo](https://github.com/consolidation/Robo), which is built on top of this library, and adds additional conveniences to get you going quickly. See [Using Robo as a Framework](http://robo.li/framework/). It is possible to use this project without Robo if desired, of course. +**Note** If you are looking for a very fast way to write a Symfony Console-base command-line tool, you should consider using [Robo](https://github.com/consolidation/Robo), which is built on top of this library, and adds additional conveniences to get you going quickly. Use [g1a/starter](https://github.com/g1a/starter) to quickly scaffold a new commandline tool. See [Using Robo as a Framework](http://robo.li/framework/). It is possible to use this project without Robo if desired, of course. ## Library Usage This is a library intended to be used in some other project. Require from your composer.json file: ``` "require": { - "consolidation/annotated-command": "~2" + "consolidation/annotated-command": "^2" }, ``` @@ -43,12 +43,12 @@ The rest of the parameters are arguments. Parameters with a default value are op class MyCommandClass { /** - * This is the my:cat command + * This is the my:echo command * * This command will concatenate two parameters. If the --flip flag * is provided, then the result is the concatenation of two and one. * - * @command my:cat + * @command my:echo * @param integer $one The first parameter. * @param integer $two The other parameter. * @option arr An option that takes multiple values. @@ -57,7 +57,7 @@ class MyCommandClass * @usage bet alpha --flip * Concatenate "alpha" and "bet". */ - public function myCat($one, $two, $options = ['flip' => false]) + public function myEcho($one, $two, $options = ['flip' => false]) { if ($options['flip']) { return "{$two}{$one}"; @@ -65,7 +65,7 @@ class MyCommandClass return "{$one}{$two}"; } } -``` +``` ## Option Default Values The `$options` array must be an associative array whose key is the name of the option, and whose value is one of: @@ -103,6 +103,7 @@ The hook **target** specifies which command or commands the hook will be attache - The command's primary name (e.g. `my:command`) or the command's method name (e.g. myCommand) will attach the hook to only that command. - An annotation (e.g. `@foo`) will attach the hook to any command that is annotated with the given label. +- If the target is specified as `*`, then the hook will be attached to all commands. - If the target is omitted, then the hook will be attached to every command defined in the same class as the hook implementation. There are ten types of hooks in the command processing request flow: @@ -143,7 +144,7 @@ There are ten types of hooks in the command processing request flow: - @status - [Extract](#extract-hook) - @extract - + In addition to these, there are two more hooks available: - [On-event](#on-event-hook) @@ -201,6 +202,42 @@ public function initSomeCommand(InputInterface $input, AnnotationData $annotatio } ``` +You may alter the AnnotationData here by using simple array syntax. Below, we +add an additional display field label for a Property List. + +``` +use Consolidation\AnnotatedCommand\AnnotationData; +use Symfony\Component\Console\Input\InputInterface; + +/** + * @hook init some:command + */ +public function initSomeCommand(InputInterface $input, AnnotationData $annotationData) +{ + $annotationData['field-labels'] .= "\n" . "new_field: My new field"; +} +``` + +Alternately, you may use the `set()` or `append()` methods on the AnnotationData +class. + +``` +use Consolidation\AnnotatedCommand\AnnotationData; +use Symfony\Component\Console\Input\InputInterface; + +/** + * @hook init some:command + */ +public function initSomeCommand(InputInterface $input, AnnotationData $annotationData) +{ + // Add a line to the field labels. + $annotationData->append('field-labels', "\n" . "new_field: My new field"); + // Replace all field labels. + $annotationData->set('field-labels', "one_field: My only field"); + +} +``` + ### Interact Hook The interact hook ([InteractorInterface](src/Hooks/InteractorInterface.php)) runs prior to argument and option validation. Required arguments and options not supplied on the command line may be provided during this phase by prompting the user. Note that the interact hook is not called if the --no-interaction flag is supplied, whereas the command-event hook and the init hook are. @@ -345,12 +382,20 @@ public function nameSomeCommand($result, CommandData $commandData) ### Status Hook +**DEPRECATED** + +Instead of using a Status Determiner hook, commands should simply return their exit code and result data separately using a CommandResult object. + The status hook ([StatusDeterminerInterface](src/Hooks/StatusDeterminerInterface.php)) is responsible for determing whether a command succeeded (status code 0) or failed (status code > 0). The result object returned by a command may be a compound object that contains multiple bits of information about the command result. If the result object implements [ExitCodeInterface](ExitCodeInterface.php), then the `getExitCode()` method of the result object is called to determine what the status result code for the command should be. If ExitCodeInterface is not implemented, then all of the status hooks attached to this command are executed; the first one that successfully returns a result will stop further execution of status hooks, and the result it returned will be used as the status result code for this operation. If no status hook returns any result, then success is presumed. ### Extract Hook +**DEPRECATED** + +See [RowsOfFieldsWithMetadata in output-formatters](https://github.com/consolidation/output-formatters/blob/master/src/StructuredData/RowsOfFieldsWithMetadata.php) for an alternative that is more flexible for most use cases. + The extract hook ([ExtractOutputInterface](src/Hooks/ExtractOutputInterface.php)) is responsible for determining what the actual rendered output for the command should be. The result object returned by a command may be a compound object that contains multiple bits of information about the command result. If the result object implements [OutputDataInterface](OutputDataInterface.php), then the `getOutputData()` method of the result object is called to determine what information should be displayed to the user as a result of the command's execution. If OutputDataInterface is not implemented, then all of the extract hooks attached to this command are executed; the first one that successfully returns output data will stop further execution of extract hooks. If no extract hook returns any data, then the result object itself is printed if it is a string; otherwise, no output is emitted (other than any produced by the command itself). @@ -399,8 +444,8 @@ class MyReplaceCommandHook { /** * @hook replace-command foo:bar - * - * Parameters must match original command method. + * + * Parameters must match original command method. */ public function myFooBarReplacement($value) { print "Hello $value!"; @@ -424,6 +469,46 @@ If you want to use annotations, but still want access to the Symfony Command, e. It is also possible to add InputInterface and/or OutputInterface parameters to any annotated method of a command file (the parameters must go before command arguments). +## Parameter Injection + +Just as this library will by default inject $input and/or $output at the head of the parameter list of any command function, it is also possible to add a handler to inject other objects as well. + +Given an implementation of SymfonyStyleInjector similar to the example below: +``` +use Consolidation\AnnotatedCommand\ParameterInjector + +class SymfonyStyleInjector implements ParameterInjector +{ + public function get(CommandData $commandData, $interfaceName) + { + return new MySymfonyStyle($commandData->input(), $commandData->output()); + } +} +``` +Then, an instance of 'MySymfonyStyle' will be provided to any command handler method that takes a SymfonyStyle parameter if the SymfonyStyleInjector is registered in your application's initialization code like so: +``` +$commandProcessor->parameterInjection()->register('Symfony\Component\Console\Style\SymfonyStyle', new SymfonyStyleInjector); +``` + +## Handling Standard Input + +Any Symfony command may use the provides StdinHandler to imlement commands that read from standard input. + +```php + /** + * @command example + * @option string $file + * @default $file - + */ + public function example(InputInterface $input) + { + $data = StdinHandler::selectStream($input, 'file')->contents(); + } +``` +This example will read all of the data available from the stdin stream into $data, or, alternately, will read the entire contents of the file specified via the `--file=/path` option. + +For more details, including examples of using the StdinHandle with a DI container, see the comments in [StdinHandler.php](src/Input/StdinHandler.php). + ## API Usage If you would like to use Annotated Commands to build a commandline tool, it is recommended that you use [Robo as a framework](http://robo.li/framework), as it will set up all of the various command classes for you. If you would like to integrate Annotated Commands into some other framework, see the sections below. @@ -496,7 +581,7 @@ Listeners can be used to construct command file instances as they are provided t ### Option Providers -An option provider is given an opportunity to add options to a command as it is being constructed. +An option provider is given an opportunity to add options to a command as it is being constructed. ``` public function AnnotatedCommandFactory::addAutomaticOptionProvider(AutomaticOptionsProviderInterface $listener); ``` @@ -508,7 +593,3 @@ CommandInfo alterers can adjust information about a command immediately before i ``` public function alterCommandInfo(CommandInfo $commandInfo, $commandFileInstance); ``` - -## Comparison to Existing Solutions - -The existing solutions used their own hand-rolled regex-based parsers to process the contents of the DocBlock comments. consolidation/annotated-command uses the [phpdocumentor/reflection-docblock](https://github.com/phpDocumentor/ReflectionDocBlock) project (which is itself a regex-based parser) to interpret DocBlock contents. diff --git a/vendor/consolidation/annotated-command/composer.json b/vendor/consolidation/annotated-command/composer.json index 8bce73685448b47fc35f5b275cb66c9863f3dc70..27e7f7e6cf8922896da26fc2d43a3501140c04e9 100644 --- a/vendor/consolidation/annotated-command/composer.json +++ b/vendor/consolidation/annotated-command/composer.json @@ -19,8 +19,8 @@ } }, "require": { - "php": ">=5.4.0", - "consolidation/output-formatters": "^3.1.12", + "php": ">=5.4.5", + "consolidation/output-formatters": "^3.4", "psr/log": "^1", "symfony/console": "^2.8|^3|^4", "symfony/event-dispatcher": "^2.5|^3|^4", @@ -28,8 +28,8 @@ }, "require-dev": { "phpunit/phpunit": "^6", - "satooshi/php-coveralls": "^2", - "g1a/composer-test-scenarios": "^2", + "php-coveralls/php-coveralls": "^1", + "g1a/composer-test-scenarios": "^3", "squizlabs/php_codesniffer": "^2.7" }, "config": { @@ -51,16 +51,53 @@ "@lint", "@unit", "@cs" - ], - "scenario": "scenarios/install", - "post-update-cmd": [ - "create-scenario symfony4 'symfony/console:^4.0' --platform-php '7.1.3'", - "create-scenario symfony2 'symfony/console:^2.8' 'phpunit/phpunit:^4.8.36' --remove 'satooshi/php-coveralls' --platform-php '5.4' --no-lockfile", - "create-scenario phpunit4 'phpunit/phpunit:^4.8.36' --remove 'satooshi/php-coveralls' --platform-php '5.4'", - "dependency-licenses" ] }, "extra": { + "scenarios": { + "symfony4": { + "require": { + "symfony/console": "^4.0" + }, + "config": { + "platform": { + "php": "7.1.3" + } + } + }, + "symfony2": { + "require": { + "symfony/console": "^2.8" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.36" + }, + "remove": [ + "php-coveralls/php-coveralls" + ], + "config": { + "platform": { + "php": "5.4.8" + } + }, + "scenario-options": { + "create-lockfile": "false" + } + }, + "phpunit4": { + "require-dev": { + "phpunit/phpunit": "^4.8.36" + }, + "remove": [ + "php-coveralls/php-coveralls" + ], + "config": { + "platform": { + "php": "5.4.8" + } + } + } + }, "branch-alias": { "dev-master": "2.x-dev" } diff --git a/vendor/consolidation/annotated-command/composer.lock b/vendor/consolidation/annotated-command/composer.lock index 0a102e5a65103ccea68db1b46c0d67854f4a38ac..6cac1772cd0139f5f260cca235ecf72a0021f3b7 100644 --- a/vendor/consolidation/annotated-command/composer.lock +++ b/vendor/consolidation/annotated-command/composer.lock @@ -4,29 +4,30 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "180dd9d3779b6c35cdb29faac7f66db3", + "content-hash": "24232be7f7d45a8b43acde7b26f7f144", "packages": [ { "name": "consolidation/output-formatters", - "version": "3.2.0", + "version": "3.4.0", "source": { "type": "git", "url": "https://github.com/consolidation/output-formatters.git", - "reference": "da889e4bce19f145ca4ec5b1725a946f4eb625a9" + "reference": "a942680232094c4a5b21c0b7e54c20cce623ae19" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/consolidation/output-formatters/zipball/da889e4bce19f145ca4ec5b1725a946f4eb625a9", - "reference": "da889e4bce19f145ca4ec5b1725a946f4eb625a9", + "url": "https://api.github.com/repos/consolidation/output-formatters/zipball/a942680232094c4a5b21c0b7e54c20cce623ae19", + "reference": "a942680232094c4a5b21c0b7e54c20cce623ae19", "shasum": "" }, "require": { + "dflydev/dot-access-data": "^1.1.0", "php": ">=5.4.0", "symfony/console": "^2.8|^3|^4", "symfony/finder": "^2.5|^3|^4" }, "require-dev": { - "g-1-a/composer-test-scenarios": "^2", + "g1a/composer-test-scenarios": "^2", "phpunit/phpunit": "^5.7.27", "satooshi/php-coveralls": "^2", "squizlabs/php_codesniffer": "^2.7", @@ -59,20 +60,79 @@ } ], "description": "Format text by applying transformations provided by plug-in formatters.", - "time": "2018-03-20T15:18:32+00:00" + "time": "2018-10-19T22:35:38+00:00" + }, + { + "name": "dflydev/dot-access-data", + "version": "v1.1.0", + "source": { + "type": "git", + "url": "https://github.com/dflydev/dflydev-dot-access-data.git", + "reference": "3fbd874921ab2c041e899d044585a2ab9795df8a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/dflydev/dflydev-dot-access-data/zipball/3fbd874921ab2c041e899d044585a2ab9795df8a", + "reference": "3fbd874921ab2c041e899d044585a2ab9795df8a", + "shasum": "" + }, + "require": { + "php": ">=5.3.2" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "psr-0": { + "Dflydev\\DotAccessData": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Dragonfly Development Inc.", + "email": "info@dflydev.com", + "homepage": "http://dflydev.com" + }, + { + "name": "Beau Simensen", + "email": "beau@dflydev.com", + "homepage": "http://beausimensen.com" + }, + { + "name": "Carlos Frutos", + "email": "carlos@kiwing.it", + "homepage": "https://github.com/cfrutos" + } + ], + "description": "Given a deep data structure, access data by dot notation.", + "homepage": "https://github.com/dflydev/dflydev-dot-access-data", + "keywords": [ + "access", + "data", + "dot", + "notation" + ], + "time": "2017-01-20T21:14:22+00:00" }, { "name": "psr/log", - "version": "1.0.2", + "version": "1.1.0", "source": { "type": "git", "url": "https://github.com/php-fig/log.git", - "reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d" + "reference": "6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/log/zipball/4ebe3a8bf773a19edfe0a84b6585ba3d401b724d", - "reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d", + "url": "https://api.github.com/repos/php-fig/log/zipball/6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd", + "reference": "6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd", "shasum": "" }, "require": { @@ -106,20 +166,20 @@ "psr", "psr-3" ], - "time": "2016-10-10T12:19:37+00:00" + "time": "2018-11-20T15:27:04+00:00" }, { "name": "symfony/console", - "version": "v3.4.11", + "version": "v3.4.21", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "36f83f642443c46f3cf751d4d2ee5d047d757a27" + "reference": "a700b874d3692bc8342199adfb6d3b99f62cc61a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/36f83f642443c46f3cf751d4d2ee5d047d757a27", - "reference": "36f83f642443c46f3cf751d4d2ee5d047d757a27", + "url": "https://api.github.com/repos/symfony/console/zipball/a700b874d3692bc8342199adfb6d3b99f62cc61a", + "reference": "a700b874d3692bc8342199adfb6d3b99f62cc61a", "shasum": "" }, "require": { @@ -175,20 +235,20 @@ ], "description": "Symfony Console Component", "homepage": "https://symfony.com", - "time": "2018-05-16T08:49:21+00:00" + "time": "2019-01-04T04:42:43+00:00" }, { "name": "symfony/debug", - "version": "v3.4.11", + "version": "v3.4.21", "source": { "type": "git", "url": "https://github.com/symfony/debug.git", - "reference": "b28fd73fefbac341f673f5efd707d539d6a19f68" + "reference": "26d7f23b9bd0b93bee5583e4d6ca5cb1ab31b186" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/debug/zipball/b28fd73fefbac341f673f5efd707d539d6a19f68", - "reference": "b28fd73fefbac341f673f5efd707d539d6a19f68", + "url": "https://api.github.com/repos/symfony/debug/zipball/26d7f23b9bd0b93bee5583e4d6ca5cb1ab31b186", + "reference": "26d7f23b9bd0b93bee5583e4d6ca5cb1ab31b186", "shasum": "" }, "require": { @@ -231,20 +291,20 @@ ], "description": "Symfony Debug Component", "homepage": "https://symfony.com", - "time": "2018-05-16T14:03:39+00:00" + "time": "2019-01-01T13:45:19+00:00" }, { "name": "symfony/event-dispatcher", - "version": "v3.4.11", + "version": "v3.4.21", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "fdd5abcebd1061ec647089c6c41a07ed60af09f8" + "reference": "d1cdd46c53c264a2bd42505bd0e8ce21423bd0e2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/fdd5abcebd1061ec647089c6c41a07ed60af09f8", - "reference": "fdd5abcebd1061ec647089c6c41a07ed60af09f8", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/d1cdd46c53c264a2bd42505bd0e8ce21423bd0e2", + "reference": "d1cdd46c53c264a2bd42505bd0e8ce21423bd0e2", "shasum": "" }, "require": { @@ -294,20 +354,20 @@ ], "description": "Symfony EventDispatcher Component", "homepage": "https://symfony.com", - "time": "2018-04-06T07:35:25+00:00" + "time": "2019-01-01T18:08:36+00:00" }, { "name": "symfony/finder", - "version": "v3.4.11", + "version": "v3.4.21", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "472a92f3df8b247b49ae364275fb32943b9656c6" + "reference": "3f2a2ab6315dd7682d4c16dcae1e7b95c8b8555e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/472a92f3df8b247b49ae364275fb32943b9656c6", - "reference": "472a92f3df8b247b49ae364275fb32943b9656c6", + "url": "https://api.github.com/repos/symfony/finder/zipball/3f2a2ab6315dd7682d4c16dcae1e7b95c8b8555e", + "reference": "3f2a2ab6315dd7682d4c16dcae1e7b95c8b8555e", "shasum": "" }, "require": { @@ -343,20 +403,20 @@ ], "description": "Symfony Finder Component", "homepage": "https://symfony.com", - "time": "2018-05-16T08:49:21+00:00" + "time": "2019-01-01T13:45:19+00:00" }, { "name": "symfony/polyfill-mbstring", - "version": "v1.8.0", + "version": "v1.10.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "3296adf6a6454a050679cde90f95350ad604b171" + "reference": "c79c051f5b3a46be09205c73b80b346e4153e494" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/3296adf6a6454a050679cde90f95350ad604b171", - "reference": "3296adf6a6454a050679cde90f95350ad604b171", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/c79c051f5b3a46be09205c73b80b346e4153e494", + "reference": "c79c051f5b3a46be09205c73b80b346e4153e494", "shasum": "" }, "require": { @@ -368,7 +428,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.8-dev" + "dev-master": "1.9-dev" } }, "autoload": { @@ -402,7 +462,7 @@ "portable", "shim" ], - "time": "2018-04-26T10:06:28+00:00" + "time": "2018-09-21T13:07:52+00:00" } ], "packages-dev": [ @@ -462,76 +522,41 @@ }, { "name": "g1a/composer-test-scenarios", - "version": "2.0.1", + "version": "3.0.1", "source": { "type": "git", "url": "https://github.com/g1a/composer-test-scenarios.git", - "reference": "d9a7619f6e1c01498fad19c34539bd5b0d2506ef" + "reference": "224531e20d13a07942a989a70759f726cd2df9a1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/g1a/composer-test-scenarios/zipball/d9a7619f6e1c01498fad19c34539bd5b0d2506ef", - "reference": "d9a7619f6e1c01498fad19c34539bd5b0d2506ef", - "shasum": "" - }, - "bin": [ - "scripts/create-scenario", - "scripts/dependency-licenses", - "scripts/install-scenario" - ], - "type": "library", - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Greg Anderson", - "email": "greg.1.anderson@greenknowe.org" - } - ], - "description": "Useful scripts for testing multiple sets of Composer dependencies.", - "time": "2018-05-25T16:45:48+00:00" - }, - { - "name": "guzzlehttp/guzzle", - "version": "6.3.3", - "source": { - "type": "git", - "url": "https://github.com/guzzle/guzzle.git", - "reference": "407b0cb880ace85c9b63c5f9551db498cb2d50ba" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/guzzle/guzzle/zipball/407b0cb880ace85c9b63c5f9551db498cb2d50ba", - "reference": "407b0cb880ace85c9b63c5f9551db498cb2d50ba", + "url": "https://api.github.com/repos/g1a/composer-test-scenarios/zipball/224531e20d13a07942a989a70759f726cd2df9a1", + "reference": "224531e20d13a07942a989a70759f726cd2df9a1", "shasum": "" }, "require": { - "guzzlehttp/promises": "^1.0", - "guzzlehttp/psr7": "^1.4", - "php": ">=5.5" + "composer-plugin-api": "^1.0.0", + "php": ">=5.4" }, "require-dev": { - "ext-curl": "*", - "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.4 || ^7.0", - "psr/log": "^1.0" - }, - "suggest": { - "psr/log": "Required for using the Log middleware" + "composer/composer": "^1.7", + "php-coveralls/php-coveralls": "^1.0", + "phpunit/phpunit": "^4.8.36|^6", + "squizlabs/php_codesniffer": "^2.8" }, - "type": "library", + "bin": [ + "scripts/dependency-licenses" + ], + "type": "composer-plugin", "extra": { + "class": "ComposerTestScenarios\\Plugin", "branch-alias": { - "dev-master": "6.3-dev" + "dev-master": "3.x-dev" } }, "autoload": { - "files": [ - "src/functions_include.php" - ], "psr-4": { - "GuzzleHttp\\": "src/" + "ComposerTestScenarios\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -540,113 +565,77 @@ ], "authors": [ { - "name": "Michael Dowling", - "email": "mtdowling@gmail.com", - "homepage": "https://github.com/mtdowling" + "name": "Greg Anderson", + "email": "greg.1.anderson@greenknowe.org" } ], - "description": "Guzzle is a PHP HTTP client library", - "homepage": "http://guzzlephp.org/", - "keywords": [ - "client", - "curl", - "framework", - "http", - "http client", - "rest", - "web service" - ], - "time": "2018-04-22T15:46:56+00:00" + "description": "Useful scripts for testing multiple sets of Composer dependencies.", + "time": "2018-11-27T05:58:39+00:00" }, { - "name": "guzzlehttp/promises", - "version": "v1.3.1", + "name": "guzzle/guzzle", + "version": "v3.8.1", "source": { "type": "git", - "url": "https://github.com/guzzle/promises.git", - "reference": "a59da6cf61d80060647ff4d3eb2c03a2bc694646" + "url": "https://github.com/guzzle/guzzle.git", + "reference": "4de0618a01b34aa1c8c33a3f13f396dcd3882eba" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/promises/zipball/a59da6cf61d80060647ff4d3eb2c03a2bc694646", - "reference": "a59da6cf61d80060647ff4d3eb2c03a2bc694646", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/4de0618a01b34aa1c8c33a3f13f396dcd3882eba", + "reference": "4de0618a01b34aa1c8c33a3f13f396dcd3882eba", "shasum": "" }, "require": { - "php": ">=5.5.0" + "ext-curl": "*", + "php": ">=5.3.3", + "symfony/event-dispatcher": ">=2.1" + }, + "replace": { + "guzzle/batch": "self.version", + "guzzle/cache": "self.version", + "guzzle/common": "self.version", + "guzzle/http": "self.version", + "guzzle/inflection": "self.version", + "guzzle/iterator": "self.version", + "guzzle/log": "self.version", + "guzzle/parser": "self.version", + "guzzle/plugin": "self.version", + "guzzle/plugin-async": "self.version", + "guzzle/plugin-backoff": "self.version", + "guzzle/plugin-cache": "self.version", + "guzzle/plugin-cookie": "self.version", + "guzzle/plugin-curlauth": "self.version", + "guzzle/plugin-error-response": "self.version", + "guzzle/plugin-history": "self.version", + "guzzle/plugin-log": "self.version", + "guzzle/plugin-md5": "self.version", + "guzzle/plugin-mock": "self.version", + "guzzle/plugin-oauth": "self.version", + "guzzle/service": "self.version", + "guzzle/stream": "self.version" }, "require-dev": { - "phpunit/phpunit": "^4.0" + "doctrine/cache": "*", + "monolog/monolog": "1.*", + "phpunit/phpunit": "3.7.*", + "psr/log": "1.0.*", + "symfony/class-loader": "*", + "zendframework/zend-cache": "<2.3", + "zendframework/zend-log": "<2.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.4-dev" + "dev-master": "3.8-dev" } }, "autoload": { - "psr-4": { - "GuzzleHttp\\Promise\\": "src/" - }, - "files": [ - "src/functions_include.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Michael Dowling", - "email": "mtdowling@gmail.com", - "homepage": "https://github.com/mtdowling" - } - ], - "description": "Guzzle promises library", - "keywords": [ - "promise" - ], - "time": "2016-12-20T10:07:11+00:00" - }, - { - "name": "guzzlehttp/psr7", - "version": "1.4.2", - "source": { - "type": "git", - "url": "https://github.com/guzzle/psr7.git", - "reference": "f5b8a8512e2b58b0071a7280e39f14f72e05d87c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/guzzle/psr7/zipball/f5b8a8512e2b58b0071a7280e39f14f72e05d87c", - "reference": "f5b8a8512e2b58b0071a7280e39f14f72e05d87c", - "shasum": "" - }, - "require": { - "php": ">=5.4.0", - "psr/http-message": "~1.0" - }, - "provide": { - "psr/http-message-implementation": "1.0" - }, - "require-dev": { - "phpunit/phpunit": "~4.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.4-dev" + "psr-0": { + "Guzzle": "src/", + "Guzzle\\Tests": "tests/" } }, - "autoload": { - "psr-4": { - "GuzzleHttp\\Psr7\\": "src/" - }, - "files": [ - "src/functions_include.php" - ] - }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" @@ -658,21 +647,23 @@ "homepage": "https://github.com/mtdowling" }, { - "name": "Tobias Schultze", - "homepage": "https://github.com/Tobion" + "name": "Guzzle Community", + "homepage": "https://github.com/guzzle/guzzle/contributors" } ], - "description": "PSR-7 message implementation that also provides common utility methods", + "description": "Guzzle is a PHP HTTP client library and framework for building RESTful web service clients", + "homepage": "http://guzzlephp.org/", "keywords": [ + "client", + "curl", + "framework", "http", - "message", - "request", - "response", - "stream", - "uri", - "url" - ], - "time": "2017-03-20T17:10:46+00:00" + "http client", + "rest", + "web service" + ], + "abandoned": "guzzlehttp/guzzle", + "time": "2014-01-28T22:29:15+00:00" }, { "name": "myclabs/deep-copy", @@ -821,6 +812,67 @@ "description": "Library for handling version information and constraints", "time": "2017-03-05T17:38:23+00:00" }, + { + "name": "php-coveralls/php-coveralls", + "version": "v1.1.0", + "source": { + "type": "git", + "url": "https://github.com/php-coveralls/php-coveralls.git", + "reference": "37f8f83fe22224eb9d9c6d593cdeb33eedd2a9ad" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-coveralls/php-coveralls/zipball/37f8f83fe22224eb9d9c6d593cdeb33eedd2a9ad", + "reference": "37f8f83fe22224eb9d9c6d593cdeb33eedd2a9ad", + "shasum": "" + }, + "require": { + "ext-json": "*", + "ext-simplexml": "*", + "guzzle/guzzle": "^2.8 || ^3.0", + "php": "^5.3.3 || ^7.0", + "psr/log": "^1.0", + "symfony/config": "^2.1 || ^3.0 || ^4.0", + "symfony/console": "^2.1 || ^3.0 || ^4.0", + "symfony/stopwatch": "^2.0 || ^3.0 || ^4.0", + "symfony/yaml": "^2.0 || ^3.0 || ^4.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.35 || ^5.4.3 || ^6.0" + }, + "suggest": { + "symfony/http-kernel": "Allows Symfony integration" + }, + "bin": [ + "bin/coveralls" + ], + "type": "library", + "autoload": { + "psr-4": { + "Satooshi\\": "src/Satooshi/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Kitamura Satoshi", + "email": "with.no.parachute@gmail.com", + "homepage": "https://www.facebook.com/satooshi.jp" + } + ], + "description": "PHP client library for Coveralls API", + "homepage": "https://github.com/php-coveralls/php-coveralls", + "keywords": [ + "ci", + "coverage", + "github", + "test" + ], + "time": "2017-12-06T23:17:56+00:00" + }, { "name": "phpdocumentor/reflection-common", "version": "1.0.1", @@ -975,16 +1027,16 @@ }, { "name": "phpspec/prophecy", - "version": "1.7.6", + "version": "1.8.0", "source": { "type": "git", "url": "https://github.com/phpspec/prophecy.git", - "reference": "33a7e3c4fda54e912ff6338c48823bd5c0f0b712" + "reference": "4ba436b55987b4bf311cb7c6ba82aa528aac0a06" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpspec/prophecy/zipball/33a7e3c4fda54e912ff6338c48823bd5c0f0b712", - "reference": "33a7e3c4fda54e912ff6338c48823bd5c0f0b712", + "url": "https://api.github.com/repos/phpspec/prophecy/zipball/4ba436b55987b4bf311cb7c6ba82aa528aac0a06", + "reference": "4ba436b55987b4bf311cb7c6ba82aa528aac0a06", "shasum": "" }, "require": { @@ -996,12 +1048,12 @@ }, "require-dev": { "phpspec/phpspec": "^2.5|^3.2", - "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5" + "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5 || ^7.1" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.7.x-dev" + "dev-master": "1.8.x-dev" } }, "autoload": { @@ -1034,7 +1086,7 @@ "spy", "stub" ], - "time": "2018-04-18T13:57:24+00:00" + "time": "2018-08-05T17:53:17+00:00" }, { "name": "phpunit/php-code-coverage", @@ -1287,16 +1339,16 @@ }, { "name": "phpunit/phpunit", - "version": "6.5.8", + "version": "6.5.13", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "4f21a3c6b97c42952fd5c2837bb354ec0199b97b" + "reference": "0973426fb012359b2f18d3bd1e90ef1172839693" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/4f21a3c6b97c42952fd5c2837bb354ec0199b97b", - "reference": "4f21a3c6b97c42952fd5c2837bb354ec0199b97b", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/0973426fb012359b2f18d3bd1e90ef1172839693", + "reference": "0973426fb012359b2f18d3bd1e90ef1172839693", "shasum": "" }, "require": { @@ -1314,7 +1366,7 @@ "phpunit/php-file-iterator": "^1.4.3", "phpunit/php-text-template": "^1.2.1", "phpunit/php-timer": "^1.0.9", - "phpunit/phpunit-mock-objects": "^5.0.5", + "phpunit/phpunit-mock-objects": "^5.0.9", "sebastian/comparator": "^2.1", "sebastian/diff": "^2.0", "sebastian/environment": "^3.1", @@ -1367,20 +1419,20 @@ "testing", "xunit" ], - "time": "2018-04-10T11:38:34+00:00" + "time": "2018-09-08T15:10:43+00:00" }, { "name": "phpunit/phpunit-mock-objects", - "version": "5.0.6", + "version": "5.0.10", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git", - "reference": "33fd41a76e746b8fa96d00b49a23dadfa8334cdf" + "reference": "cd1cf05c553ecfec36b170070573e540b67d3f1f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/33fd41a76e746b8fa96d00b49a23dadfa8334cdf", - "reference": "33fd41a76e746b8fa96d00b49a23dadfa8334cdf", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/cd1cf05c553ecfec36b170070573e540b67d3f1f", + "reference": "cd1cf05c553ecfec36b170070573e540b67d3f1f", "shasum": "" }, "require": { @@ -1393,7 +1445,7 @@ "phpunit/phpunit": "<6.0" }, "require-dev": { - "phpunit/phpunit": "^6.5" + "phpunit/phpunit": "^6.5.11" }, "suggest": { "ext-soap": "*" @@ -1426,140 +1478,7 @@ "mock", "xunit" ], - "time": "2018-01-06T05:45:45+00:00" - }, - { - "name": "psr/http-message", - "version": "1.0.1", - "source": { - "type": "git", - "url": "https://github.com/php-fig/http-message.git", - "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363", - "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363", - "shasum": "" - }, - "require": { - "php": ">=5.3.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "Psr\\Http\\Message\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" - } - ], - "description": "Common interface for HTTP messages", - "homepage": "https://github.com/php-fig/http-message", - "keywords": [ - "http", - "http-message", - "psr", - "psr-7", - "request", - "response" - ], - "time": "2016-08-06T14:39:51+00:00" - }, - { - "name": "satooshi/php-coveralls", - "version": "v2.0.0", - "source": { - "type": "git", - "url": "https://github.com/php-coveralls/php-coveralls.git", - "reference": "3eaf7eb689cdf6b86801a3843940d974dc657068" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-coveralls/php-coveralls/zipball/3eaf7eb689cdf6b86801a3843940d974dc657068", - "reference": "3eaf7eb689cdf6b86801a3843940d974dc657068", - "shasum": "" - }, - "require": { - "ext-json": "*", - "ext-simplexml": "*", - "guzzlehttp/guzzle": "^6.0", - "php": "^5.5 || ^7.0", - "psr/log": "^1.0", - "symfony/config": "^2.1 || ^3.0 || ^4.0", - "symfony/console": "^2.1 || ^3.0 || ^4.0", - "symfony/stopwatch": "^2.0 || ^3.0 || ^4.0", - "symfony/yaml": "^2.0 || ^3.0 || ^4.0" - }, - "require-dev": { - "phpunit/phpunit": "^4.8.35 || ^5.4.3 || ^6.0" - }, - "suggest": { - "symfony/http-kernel": "Allows Symfony integration" - }, - "bin": [ - "bin/php-coveralls" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0-dev" - } - }, - "autoload": { - "psr-4": { - "PhpCoveralls\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "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" - } - ], - "description": "PHP client library for Coveralls API", - "homepage": "https://github.com/php-coveralls/php-coveralls", - "keywords": [ - "ci", - "coverage", - "github", - "test" - ], - "time": "2017-12-08T14:28:16+00:00" + "time": "2018-08-09T05:50:03+00:00" }, { "name": "sebastian/code-unit-reverse-lookup", @@ -2122,16 +2041,16 @@ }, { "name": "squizlabs/php_codesniffer", - "version": "2.9.1", + "version": "2.9.2", "source": { "type": "git", "url": "https://github.com/squizlabs/PHP_CodeSniffer.git", - "reference": "dcbed1074f8244661eecddfc2a675430d8d33f62" + "reference": "2acf168de78487db620ab4bc524135a13cfe6745" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/dcbed1074f8244661eecddfc2a675430d8d33f62", - "reference": "dcbed1074f8244661eecddfc2a675430d8d33f62", + "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/2acf168de78487db620ab4bc524135a13cfe6745", + "reference": "2acf168de78487db620ab4bc524135a13cfe6745", "shasum": "" }, "require": { @@ -2196,20 +2115,20 @@ "phpcs", "standards" ], - "time": "2017-05-22T02:43:20+00:00" + "time": "2018-11-07T22:31:41+00:00" }, { "name": "symfony/config", - "version": "v3.4.11", + "version": "v3.4.21", "source": { "type": "git", "url": "https://github.com/symfony/config.git", - "reference": "73e055cf2e6467715f187724a0347ea32079967c" + "reference": "17c5d8941eb75a03d19bc76a43757738632d87b3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/config/zipball/73e055cf2e6467715f187724a0347ea32079967c", - "reference": "73e055cf2e6467715f187724a0347ea32079967c", + "url": "https://api.github.com/repos/symfony/config/zipball/17c5d8941eb75a03d19bc76a43757738632d87b3", + "reference": "17c5d8941eb75a03d19bc76a43757738632d87b3", "shasum": "" }, "require": { @@ -2260,20 +2179,20 @@ ], "description": "Symfony Config Component", "homepage": "https://symfony.com", - "time": "2018-05-14T16:49:53+00:00" + "time": "2019-01-01T13:45:19+00:00" }, { "name": "symfony/filesystem", - "version": "v3.4.11", + "version": "v3.4.21", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "8e03ca3fa52a0f56b87506f38cf7bd3f9442b3a0" + "reference": "c24ce3d18ccc9bb9d7e1d6ce9330fcc6061cafde" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/8e03ca3fa52a0f56b87506f38cf7bd3f9442b3a0", - "reference": "8e03ca3fa52a0f56b87506f38cf7bd3f9442b3a0", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/c24ce3d18ccc9bb9d7e1d6ce9330fcc6061cafde", + "reference": "c24ce3d18ccc9bb9d7e1d6ce9330fcc6061cafde", "shasum": "" }, "require": { @@ -2310,29 +2229,32 @@ ], "description": "Symfony Filesystem Component", "homepage": "https://symfony.com", - "time": "2018-05-16T08:49:21+00:00" + "time": "2019-01-01T13:45:19+00:00" }, { "name": "symfony/polyfill-ctype", - "version": "v1.8.0", + "version": "v1.10.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "7cc359f1b7b80fc25ed7796be7d96adc9b354bae" + "reference": "e3d826245268269cd66f8326bd8bc066687b4a19" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/7cc359f1b7b80fc25ed7796be7d96adc9b354bae", - "reference": "7cc359f1b7b80fc25ed7796be7d96adc9b354bae", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/e3d826245268269cd66f8326bd8bc066687b4a19", + "reference": "e3d826245268269cd66f8326bd8bc066687b4a19", "shasum": "" }, "require": { "php": ">=5.3.3" }, + "suggest": { + "ext-ctype": "For best performance" + }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.8-dev" + "dev-master": "1.9-dev" } }, "autoload": { @@ -2365,20 +2287,20 @@ "polyfill", "portable" ], - "time": "2018-04-30T19:57:29+00:00" + "time": "2018-08-06T14:22:27+00:00" }, { "name": "symfony/stopwatch", - "version": "v3.4.11", + "version": "v3.4.21", "source": { "type": "git", "url": "https://github.com/symfony/stopwatch.git", - "reference": "eb17cfa072cab26537ac37e9c4ece6c0361369af" + "reference": "af55d31cb58c5452d2c160655fa1968b872a8084" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/stopwatch/zipball/eb17cfa072cab26537ac37e9c4ece6c0361369af", - "reference": "eb17cfa072cab26537ac37e9c4ece6c0361369af", + "url": "https://api.github.com/repos/symfony/stopwatch/zipball/af55d31cb58c5452d2c160655fa1968b872a8084", + "reference": "af55d31cb58c5452d2c160655fa1968b872a8084", "shasum": "" }, "require": { @@ -2414,20 +2336,20 @@ ], "description": "Symfony Stopwatch Component", "homepage": "https://symfony.com", - "time": "2018-02-17T14:55:25+00:00" + "time": "2019-01-01T13:45:19+00:00" }, { "name": "symfony/yaml", - "version": "v3.4.11", + "version": "v3.4.21", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "c5010cc1692ce1fa328b1fb666961eb3d4a85bb0" + "reference": "554a59a1ccbaac238a89b19c8e551a556fd0e2ea" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/c5010cc1692ce1fa328b1fb666961eb3d4a85bb0", - "reference": "c5010cc1692ce1fa328b1fb666961eb3d4a85bb0", + "url": "https://api.github.com/repos/symfony/yaml/zipball/554a59a1ccbaac238a89b19c8e551a556fd0e2ea", + "reference": "554a59a1ccbaac238a89b19c8e551a556fd0e2ea", "shasum": "" }, "require": { @@ -2473,7 +2395,7 @@ ], "description": "Symfony Yaml Component", "homepage": "https://symfony.com", - "time": "2018-05-03T23:18:14+00:00" + "time": "2019-01-01T13:45:19+00:00" }, { "name": "theseer/tokenizer", @@ -2517,20 +2439,21 @@ }, { "name": "webmozart/assert", - "version": "1.3.0", + "version": "1.4.0", "source": { "type": "git", "url": "https://github.com/webmozart/assert.git", - "reference": "0df1908962e7a3071564e857d86874dad1ef204a" + "reference": "83e253c8e0be5b0257b881e1827274667c5c17a9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/webmozart/assert/zipball/0df1908962e7a3071564e857d86874dad1ef204a", - "reference": "0df1908962e7a3071564e857d86874dad1ef204a", + "url": "https://api.github.com/repos/webmozart/assert/zipball/83e253c8e0be5b0257b881e1827274667c5c17a9", + "reference": "83e253c8e0be5b0257b881e1827274667c5c17a9", "shasum": "" }, "require": { - "php": "^5.3.3 || ^7.0" + "php": "^5.3.3 || ^7.0", + "symfony/polyfill-ctype": "^1.8" }, "require-dev": { "phpunit/phpunit": "^4.6", @@ -2563,7 +2486,7 @@ "check", "validate" ], - "time": "2018-01-29T19:49:41+00:00" + "time": "2018-12-25T11:19:39+00:00" } ], "aliases": [], @@ -2572,7 +2495,7 @@ "prefer-stable": false, "prefer-lowest": false, "platform": { - "php": ">=5.4.0" + "php": ">=5.4.5" }, "platform-dev": [], "platform-overrides": { diff --git a/vendor/consolidation/annotated-command/dependencies.yml b/vendor/consolidation/annotated-command/dependencies.yml new file mode 100644 index 0000000000000000000000000000000000000000..e6bc6c7eef169bb4d0ccd0be2e2111d9eecd36f0 --- /dev/null +++ b/vendor/consolidation/annotated-command/dependencies.yml @@ -0,0 +1,10 @@ +version: 2 +dependencies: +- type: php + path: / + settings: + composer_options: "" + manifest_updates: + filters: + - name: ".*" + versions: "L.Y.Y" diff --git a/vendor/consolidation/annotated-command/phpunit.xml.dist b/vendor/consolidation/annotated-command/phpunit.xml.dist index a35a5042f51b7928b9ef0321e5540297943edcfa..e680109d1de86faeea175d5c5025a583f0c0f35b 100644 --- a/vendor/consolidation/annotated-command/phpunit.xml.dist +++ b/vendor/consolidation/annotated-command/phpunit.xml.dist @@ -1,7 +1,7 @@ <phpunit bootstrap="vendor/autoload.php" colors="true"> <testsuites> <testsuite name="annotation-command"> - <directory prefix="test" suffix=".php">tests</directory> + <directory prefix="" suffix="Test.php">tests</directory> </testsuite> </testsuites> <logging> diff --git a/vendor/consolidation/annotated-command/src/AnnotatedCommand.php b/vendor/consolidation/annotated-command/src/AnnotatedCommand.php index 41be53a96aca8f5f2ed29edaeef29dc2b42b92d6..40d26af5cee7b6d5900a4d63e39dcff52b6ad1c5 100644 --- a/vendor/consolidation/annotated-command/src/AnnotatedCommand.php +++ b/vendor/consolidation/annotated-command/src/AnnotatedCommand.php @@ -9,6 +9,7 @@ use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Input\InputOption; use Symfony\Component\Console\Output\OutputInterface; +use Consolidation\AnnotatedCommand\Help\HelpDocumentBuilder; /** * AnnotatedCommands are created automatically by the @@ -32,9 +33,8 @@ class AnnotatedCommand extends Command implements HelpDocumentAlter protected $annotationData; protected $examples = []; protected $topics = []; - protected $usesInputInterface; - protected $usesOutputInterface; protected $returnType; + protected $injectedClasses = []; public function __construct($name = null) { @@ -153,118 +153,16 @@ protected function addUsageOrExample($usage, $description) public function helpAlter(\DomDocument $originalDom) { - $dom = new \DOMDocument('1.0', 'UTF-8'); - $dom->appendChild($commandXML = $dom->createElement('command')); - $commandXML->setAttribute('id', $this->getName()); - $commandXML->setAttribute('name', $this->getName()); - - // Get the original <command> element and its top-level elements. - $originalCommandXML = $this->getSingleElementByTagName($dom, $originalDom, 'command'); - $originalUsagesXML = $this->getSingleElementByTagName($dom, $originalCommandXML, 'usages'); - $originalDescriptionXML = $this->getSingleElementByTagName($dom, $originalCommandXML, 'description'); - $originalHelpXML = $this->getSingleElementByTagName($dom, $originalCommandXML, 'help'); - $originalArgumentsXML = $this->getSingleElementByTagName($dom, $originalCommandXML, 'arguments'); - $originalOptionsXML = $this->getSingleElementByTagName($dom, $originalCommandXML, 'options'); - - // Keep only the first of the <usage> elements - $newUsagesXML = $dom->createElement('usages'); - $firstUsageXML = $this->getSingleElementByTagName($dom, $originalUsagesXML, 'usage'); - $newUsagesXML->appendChild($firstUsageXML); - - // Create our own <example> elements - $newExamplesXML = $dom->createElement('examples'); - foreach ($this->examples as $usage => $description) { - $newExamplesXML->appendChild($exampleXML = $dom->createElement('example')); - $exampleXML->appendChild($usageXML = $dom->createElement('usage', $usage)); - $exampleXML->appendChild($descriptionXML = $dom->createElement('description', $description)); - } - - // Create our own <alias> elements - $newAliasesXML = $dom->createElement('aliases'); - foreach ($this->getAliases() as $alias) { - $newAliasesXML->appendChild($dom->createElement('alias', $alias)); - } - - // Create our own <topic> elements - $newTopicsXML = $dom->createElement('topics'); - foreach ($this->getTopics() as $topic) { - $newTopicsXML->appendChild($topicXML = $dom->createElement('topic', $topic)); - } - - // Place the different elements into the <command> element in the desired order - $commandXML->appendChild($newUsagesXML); - $commandXML->appendChild($newExamplesXML); - $commandXML->appendChild($originalDescriptionXML); - $commandXML->appendChild($originalArgumentsXML); - $commandXML->appendChild($originalOptionsXML); - $commandXML->appendChild($originalHelpXML); - $commandXML->appendChild($newAliasesXML); - $commandXML->appendChild($newTopicsXML); - - return $dom; - } - - protected function getSingleElementByTagName($dom, $parent, $tagName) - { - // There should always be exactly one '<command>' element. - $elements = $parent->getElementsByTagName($tagName); - $result = $elements->item(0); - - $result = $dom->importNode($result, true); - - return $result; + return HelpDocumentBuilder::alter($originalDom, $this); } protected function setCommandArguments($commandInfo) { - $this->setUsesInputInterface($commandInfo); - $this->setUsesOutputInterface($commandInfo); + $this->injectedClasses = $commandInfo->getInjectedClasses(); $this->setCommandArgumentsFromParameters($commandInfo); return $this; } - /** - * Check whether the first parameter is an InputInterface. - */ - protected function checkUsesInputInterface($params) - { - /** @var \ReflectionParameter $firstParam */ - $firstParam = reset($params); - return $firstParam && $firstParam->getClass() && $firstParam->getClass()->implementsInterface( - '\\Symfony\\Component\\Console\\Input\\InputInterface' - ); - } - - /** - * Determine whether this command wants to get its inputs - * via an InputInterface or via its command parameters - */ - protected function setUsesInputInterface($commandInfo) - { - $params = $commandInfo->getParameters(); - $this->usesInputInterface = $this->checkUsesInputInterface($params); - return $this; - } - - /** - * Determine whether this command wants to send its output directly - * to the provided OutputInterface, or whether it will returned - * structured output to be processed by the command processor. - */ - protected function setUsesOutputInterface($commandInfo) - { - $params = $commandInfo->getParameters(); - $index = $this->checkUsesInputInterface($params) ? 1 : 0; - $this->usesOutputInterface = - (count($params) > $index) && - $params[$index]->getClass() && - $params[$index]->getClass()->implementsInterface( - '\\Symfony\\Component\\Console\\Output\\OutputInterface' - ) - ; - return $this; - } - protected function setCommandArgumentsFromParameters($commandInfo) { $args = $commandInfo->arguments()->getValues(); @@ -437,10 +335,10 @@ protected function createCommandData(InputInterface $input, OutputInterface $out $output ); - $commandData->setUseIOInterfaces( - $this->usesInputInterface, - $this->usesOutputInterface - ); + // Fetch any classes (e.g. InputInterface / OutputInterface) that + // this command's callback wants passed as a parameter and inject + // it into the command data. + $this->commandProcessor()->injectIntoCommandData($commandData, $this->injectedClasses); // Allow the commandData to cache the list of options with // special default values ('null' and 'true'), as these will diff --git a/vendor/consolidation/annotated-command/src/AnnotatedCommandFactory.php b/vendor/consolidation/annotated-command/src/AnnotatedCommandFactory.php index abdd97276f5fbd3736399e60c1f62119844ccf0a..9f67ef6480103941598c5842aa75142a32699420 100644 --- a/vendor/consolidation/annotated-command/src/AnnotatedCommandFactory.php +++ b/vendor/consolidation/annotated-command/src/AnnotatedCommandFactory.php @@ -184,6 +184,9 @@ protected function storeCommandInfoListInCache($commandFileInstance, $commandInf protected function getCommandInfoListFromCache($commandFileInstance) { $commandInfoList = []; + if (!is_object($commandFileInstance)) { + return []; + } $className = get_class($commandFileInstance); if (!$this->getDataStore()->has($className)) { return []; diff --git a/vendor/consolidation/annotated-command/src/AnnotationData.php b/vendor/consolidation/annotated-command/src/AnnotationData.php index 0bcc8b29bec4ced15c4fdc87293eb79cb6e6013d..ad7523aacf3fb74bb9512f5849c1a83a41eee9b8 100644 --- a/vendor/consolidation/annotated-command/src/AnnotationData.php +++ b/vendor/consolidation/annotated-command/src/AnnotationData.php @@ -24,4 +24,21 @@ public function keys() { return array_keys($this->getArrayCopy()); } + + public function set($key, $value = '') + { + $this->offsetSet($key, $value); + return $this; + } + + public function append($key, $value = '') + { + $data = $this->offsetGet($key); + if (is_array($data)) { + $this->offsetSet($key, array_merge($data, $value)); + } elseif (is_scalar($data)) { + $this->offsetSet($key, $data . $value); + } + return $this; + } } diff --git a/vendor/consolidation/annotated-command/src/CommandData.php b/vendor/consolidation/annotated-command/src/CommandData.php index 4bdb620f57d7f10f99b0d58f267193c32196ef8f..ab142f01b31d2f119c63325adac6d70be3ab7647 100644 --- a/vendor/consolidation/annotated-command/src/CommandData.php +++ b/vendor/consolidation/annotated-command/src/CommandData.php @@ -1,6 +1,7 @@ <?php namespace Consolidation\AnnotatedCommand; +use Consolidation\OutputFormatters\Options\FormatterOptions; use Symfony\Component\Console\Input\ArgvInput; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Output\OutputInterface; @@ -14,43 +15,44 @@ class CommandData /** var OutputInterface */ protected $output; /** var boolean */ - protected $usesInputInterface; - /** var boolean */ - protected $usesOutputInterface; - /** var boolean */ protected $includeOptionsInArgs; /** var array */ protected $specialDefaults = []; + /** @var string[] */ + protected $injectedInstances = []; + /** @var FormatterOptions */ + protected $formatterOptions; public function __construct( AnnotationData $annotationData, InputInterface $input, - OutputInterface $output, - $usesInputInterface = false, - $usesOutputInterface = false + OutputInterface $output ) { $this->annotationData = $annotationData; $this->input = $input; $this->output = $output; - $this->usesInputInterface = false; - $this->usesOutputInterface = false; $this->includeOptionsInArgs = true; } /** - * For internal use only; indicates that the function to be called - * should be passed an InputInterface &/or an OutputInterface. - * @param booean $usesInputInterface - * @param boolean $usesOutputInterface - * @return self + * For internal use only; inject an instance to be passed back + * to the command callback as a parameter. */ - public function setUseIOInterfaces($usesInputInterface, $usesOutputInterface) + public function injectInstance($injectedInstance) { - $this->usesInputInterface = $usesInputInterface; - $this->usesOutputInterface = $usesOutputInterface; + array_unshift($this->injectedInstances, $injectedInstance); return $this; } + /** + * Provide a reference to the instances that will be added to the + * beginning of the parameter list when the command callback is invoked. + */ + public function injectedInstances() + { + return $this->injectedInstances; + } + /** * For backwards-compatibility mode only: disable addition of * options on the end of the arguments list. @@ -66,6 +68,16 @@ public function annotationData() return $this->annotationData; } + public function formatterOptions() + { + return $this->formatterOptions; + } + + public function setFormatterOptions($formatterOptions) + { + $this->formatterOptions = $formatterOptions; + } + public function input() { return $this->input; @@ -174,14 +186,6 @@ public function getArgsWithoutAppName() array_shift($args); } - if ($this->usesOutputInterface) { - array_unshift($args, $this->output()); - } - - if ($this->usesInputInterface) { - array_unshift($args, $this->input()); - } - return $args; } diff --git a/vendor/consolidation/annotated-command/src/CommandFileDiscovery.php b/vendor/consolidation/annotated-command/src/CommandFileDiscovery.php index 06489fb08679a86e9837b6da4f114ff14e130385..bdcce7408f080c009ef017a5f14eea51e5c64dff 100644 --- a/vendor/consolidation/annotated-command/src/CommandFileDiscovery.php +++ b/vendor/consolidation/annotated-command/src/CommandFileDiscovery.php @@ -27,6 +27,15 @@ * To discover global commands: * * $commandFiles = $discovery->discover($drupalRoot, '\Drupal'); + * + * WARNING: + * + * This class is deprecated. Commandfile discovery is complicated, and does + * not work from within phar files. It is recommended to instead use a static + * list of command classes as shown in https://github.com/g1a/starter/blob/master/example + * + * For a better alternative when implementing a plugin mechanism, see + * https://robo.li/extending/#register-command-files-via-psr-4-autoloading */ class CommandFileDiscovery { @@ -42,6 +51,8 @@ class CommandFileDiscovery protected $searchDepth = 2; /** @var bool */ protected $followLinks = false; + /** @var string[] */ + protected $strippedNamespaces; public function __construct() { @@ -125,6 +136,32 @@ public function setSearchLocations($searchLocations) return $this; } + /** + * Set a particular namespace part to ignore. This is useful in plugin + * mechanisms where the plugin is placed by Composer. + * + * For example, Drush extensions are placed in `./drush/Commands`. + * If the Composer installer path is `"drush/Commands/contrib/{$name}": ["type:drupal-drush"]`, + * then Composer will place the command files in `drush/Commands/contrib`. + * The namespace should not be any different in this instance than if + * the extension were placed in `drush/Commands`, though, so Drush therefore + * calls `ignoreNamespacePart('contrib', 'Commands')`. This causes the + * `contrib` component to be removed from the namespace if it follows + * the namespace `Commands`. If the '$base' parameter is not specified, then + * the ignored portion of the namespace may appear anywhere in the path. + */ + public function ignoreNamespacePart($ignore, $base = '') + { + $replacementPart = '\\'; + if (!empty($base)) { + $replacementPart .= $base . '\\'; + } + $ignoredPart = $replacementPart . $ignore . '\\'; + $this->strippedNamespaces[$ignoredPart] = $replacementPart; + + return $this; + } + /** * Add one more location to the search location list. * @@ -205,7 +242,32 @@ public function discover($directoryList, $baseNamespace = '') $this->discoverCommandFiles("$directory/src", $itemsNamespace) ); } - return $commandFiles; + return $this->fixNamespaces($commandFiles); + } + + /** + * fixNamespaces will alter the namespaces in the commandFiles + * result to remove the Composer placement directory, if any. + */ + protected function fixNamespaces($commandFiles) + { + // Do nothing unless the client told us to remove some namespace components. + if (empty($this->strippedNamespaces)) { + return $commandFiles; + } + + // Strip out any part of the namespace the client did not want. + // @see CommandFileDiscovery::ignoreNamespacePart + return array_map( + function ($fqcn) { + return str_replace( + array_keys($this->strippedNamespaces), + array_values($this->strippedNamespaces), + $fqcn + ); + }, + $commandFiles + ); } /** @@ -304,8 +366,8 @@ protected function discoverCommandFilesInLocation($directory, $depth, $baseNames foreach ($finder as $file) { $relativePathName = $file->getRelativePathname(); $relativeNamespaceAndClassname = str_replace( - ['/', '.php'], - ['\\', ''], + ['/', '-', '.php'], + ['\\', '_', ''], $relativePathName ); $classname = $this->joinNamespace([$baseNamespace, $relativeNamespaceAndClassname]); diff --git a/vendor/consolidation/annotated-command/src/CommandProcessor.php b/vendor/consolidation/annotated-command/src/CommandProcessor.php index ab4ce45d1ca272ad1619926ca8f294ed7f79c545..1d1e92da21d5433108f9ecfd7a0de36b52280527 100644 --- a/vendor/consolidation/annotated-command/src/CommandProcessor.php +++ b/vendor/consolidation/annotated-command/src/CommandProcessor.php @@ -31,16 +31,18 @@ class CommandProcessor implements LoggerAwareInterface { use LoggerAwareTrait; - /** var HookManager */ + /** @var HookManager */ protected $hookManager; - /** var FormatterManager */ + /** @var FormatterManager */ protected $formatterManager; - /** var callable */ - protected $displayErrorFunction; - /** var PrepareFormatterOptions[] */ + /** @var PrepareFormatterOptions[] */ protected $prepareOptionsList = []; - /** var boolean */ + /** @var boolean */ protected $passExceptions; + /** @var ResultWriter */ + protected $resultWriter; + /** @var ParameterInjection */ + protected $parameterInjection; public function __construct(HookManager $hookManager) { @@ -56,6 +58,32 @@ public function hookManager() return $this->hookManager; } + public function resultWriter() + { + if (!$this->resultWriter) { + $this->setResultWriter(new ResultWriter()); + } + return $this->resultWriter; + } + + public function setResultWriter($resultWriter) + { + $this->resultWriter = $resultWriter; + } + + public function parameterInjection() + { + if (!$this->parameterInjection) { + $this->setParameterInjection(new ParameterInjection()); + } + return $this->parameterInjection; + } + + public function setParameterInjection($parameterInjection) + { + $this->parameterInjection = $parameterInjection; + } + public function addPrepareFormatter(PrepareFormatter $preparer) { $this->prepareOptionsList[] = $preparer; @@ -64,13 +92,13 @@ public function addPrepareFormatter(PrepareFormatter $preparer) public function setFormatterManager(FormatterManager $formatterManager) { $this->formatterManager = $formatterManager; + $this->resultWriter()->setFormatterManager($formatterManager); return $this; } public function setDisplayErrorFunction(callable $fn) { - $this->displayErrorFunction = $fn; - return $this; + $this->resultWriter()->setDisplayErrorFunction($fn); } /** @@ -169,6 +197,9 @@ public function validateRunAndAlter( return $validated; } + // Once we have validated the optins, create the formatter options. + $this->createFormatterOptions($commandData); + $replaceDispatcher = new ReplaceCommandHookDispatcher($this->hookManager(), $names); if ($this->logger) { $replaceDispatcher->setLogger($this->logger); @@ -188,119 +219,6 @@ public function processResults($names, $result, CommandData $commandData) return $processDispatcher->process($result, $commandData); } - /** - * Handle the result output and status code calculation. - */ - public function handleResults(OutputInterface $output, $names, $result, CommandData $commandData) - { - $statusCodeDispatcher = new StatusDeterminerHookDispatcher($this->hookManager(), $names); - $status = $statusCodeDispatcher->determineStatusCode($result); - // If the result is an integer and no separate status code was provided, then use the result as the status and do no output. - if (is_integer($result) && !isset($status)) { - return $result; - } - $status = $this->interpretStatusCode($status); - - // Get the structured output, the output stream and the formatter - $extractDispatcher = new ExtracterHookDispatcher($this->hookManager(), $names); - $structuredOutput = $extractDispatcher->extractOutput($result); - $output = $this->chooseOutputStream($output, $status); - if ($status != 0) { - return $this->writeErrorMessage($output, $status, $structuredOutput, $result); - } - if ($this->dataCanBeFormatted($structuredOutput) && isset($this->formatterManager)) { - return $this->writeUsingFormatter($output, $structuredOutput, $commandData); - } - return $this->writeCommandOutput($output, $structuredOutput); - } - - protected function dataCanBeFormatted($structuredOutput) - { - if (!isset($this->formatterManager)) { - return false; - } - return - is_object($structuredOutput) || - is_array($structuredOutput); - } - - /** - * Run the main command callback - */ - protected function runCommandCallback($commandCallback, CommandData $commandData) - { - $result = false; - try { - $args = $commandData->getArgsAndOptions(); - $result = call_user_func_array($commandCallback, $args); - } catch (\Exception $e) { - $result = $this->commandErrorForException($e); - } - return $result; - } - - /** - * Determine the formatter that should be used to render - * output. - * - * If the user specified a format via the --format option, - * then always return that. Otherwise, return the default - * format, unless --pipe was specified, in which case - * return the default pipe format, format-pipe. - * - * n.b. --pipe is a handy option introduced in Drush 2 - * (or perhaps even Drush 1) that indicates that the command - * should select the output format that is most appropriate - * for use in scripts (e.g. to pipe to another command). - * - * @return string - */ - protected function getFormat(FormatterOptions $options) - { - // In Symfony Console, there is no way for us to differentiate - // between the user specifying '--format=table', and the user - // not specifying --format when the default value is 'table'. - // Therefore, we must make --field always override --format; it - // cannot become the default value for --format. - if ($options->get('field')) { - return 'string'; - } - $defaults = []; - if ($options->get('pipe')) { - return $options->get('pipe-format', [], 'tsv'); - } - return $options->getFormat($defaults); - } - - /** - * Determine whether we should use stdout or stderr. - */ - protected function chooseOutputStream(OutputInterface $output, $status) - { - // If the status code indicates an error, then print the - // result to stderr rather than stdout - if ($status && ($output instanceof ConsoleOutputInterface)) { - return $output->getErrorOutput(); - } - return $output; - } - - /** - * Call the formatter to output the provided data. - */ - protected function writeUsingFormatter(OutputInterface $output, $structuredOutput, CommandData $commandData) - { - $formatterOptions = $this->createFormatterOptions($commandData); - $format = $this->getFormat($formatterOptions); - $this->formatterManager->write( - $output, - $format, - $structuredOutput, - $formatterOptions - ); - return 0; - } - /** * Create a FormatterOptions object for use in writing the formatted output. * @param CommandData $commandData @@ -313,51 +231,38 @@ protected function createFormatterOptions($commandData) foreach ($this->prepareOptionsList as $preparer) { $preparer->prepare($commandData, $formatterOptions); } + $commandData->setFormatterOptions($formatterOptions); return $formatterOptions; } /** - * Description - * @param OutputInterface $output - * @param int $status - * @param string $structuredOutput - * @param mixed $originalResult - * @return type + * Handle the result output and status code calculation. */ - protected function writeErrorMessage($output, $status, $structuredOutput, $originalResult) + public function handleResults(OutputInterface $output, $names, $result, CommandData $commandData) { - if (isset($this->displayErrorFunction)) { - call_user_func($this->displayErrorFunction, $output, $structuredOutput, $status, $originalResult); - } else { - $this->writeCommandOutput($output, $structuredOutput); - } - return $status; + $statusCodeDispatcher = new StatusDeterminerHookDispatcher($this->hookManager(), $names); + $extractDispatcher = new ExtracterHookDispatcher($this->hookManager(), $names); + + return $this->resultWriter()->handle($output, $result, $commandData, $statusCodeDispatcher, $extractDispatcher); } /** - * If the result object is a string, then print it. + * Run the main command callback */ - protected function writeCommandOutput( - OutputInterface $output, - $structuredOutput - ) { - // If there is no formatter, we will print strings, - // but can do no more than that. - if (is_string($structuredOutput)) { - $output->writeln($structuredOutput); + protected function runCommandCallback($commandCallback, CommandData $commandData) + { + $result = false; + try { + $args = $this->parameterInjection()->args($commandData); + $result = call_user_func_array($commandCallback, $args); + } catch (\Exception $e) { + $result = $this->commandErrorForException($e); } - return 0; + return $result; } - /** - * If a status code was set, then return it; otherwise, - * presume success. - */ - protected function interpretStatusCode($status) + public function injectIntoCommandData($commandData, $injectedClasses) { - if (isset($status)) { - return $status; - } - return 0; + $this->parameterInjection()->injectIntoCommandData($commandData, $injectedClasses); } } diff --git a/vendor/consolidation/annotated-command/src/CommandResult.php b/vendor/consolidation/annotated-command/src/CommandResult.php new file mode 100644 index 0000000000000000000000000000000000000000..6b1a3f80bc6ce854220eeebb91f53b874a058814 --- /dev/null +++ b/vendor/consolidation/annotated-command/src/CommandResult.php @@ -0,0 +1,71 @@ +<?php +namespace Consolidation\AnnotatedCommand; + +/** + * Return a CommandResult as the result of a command to pass both an exit + * code and result data from a command. + * + * Usage: + * + * return CommandResult::dataWithExitCode(new RowsOfFields($rows), 1); + * + * The CommandResult can also be used to unambiguously return just + * an exit code or just output data. + * + * Exit code only: + * + * return CommandResult::dataWithExitCode(1); + * + * Data only: + * + * return CommandResult::data(new RowsOfFields($rows)); + * + * Historically, it has always been possible to return an integer to indicate + * that the result is an exit code, and other return types (typically array + * / ArrayObjects) indicating actual data with an implicit exit code of 0. + * Using a CommandResult is preferred, though, as it allows the result of the + * function to be unambiguously specified without type-based interpretation. + * + * @package Consolidation\AnnotatedCommand + */ +class CommandResult implements ExitCodeInterface, OutputDataInterface +{ + protected $data; + protected $exitCode; + + protected function __construct($data = null, $exitCode = 0) + { + $this->data = $data; + $this->exitCode = $exitCode; + } + + public static function exitCode($exitCode) + { + return new self(null, $exitCode); + } + + public static function data($data) + { + return new self($data); + } + + public static function dataWithExitCode($data, $exitCode) + { + return new self($data, $exitCode); + } + + public function getExitCode() + { + return $this->exitCode; + } + + public function getOutputData() + { + return $this->data; + } + + public function setOutputData($data) + { + $this->data = $data; + } +} diff --git a/vendor/consolidation/annotated-command/src/Help/HelpDocumentBuilder.php b/vendor/consolidation/annotated-command/src/Help/HelpDocumentBuilder.php new file mode 100644 index 0000000000000000000000000000000000000000..1071670150e478e7079d0b54ed2f273a751261fd --- /dev/null +++ b/vendor/consolidation/annotated-command/src/Help/HelpDocumentBuilder.php @@ -0,0 +1,76 @@ +<?php +namespace Consolidation\AnnotatedCommand\Help; + +use Symfony\Component\Console\Application; +use Symfony\Component\Console\Descriptor\XmlDescriptor; +use Symfony\Component\Console\Input\InputInterface; +use Symfony\Component\Console\Output\OutputInterface; +use Consolidation\AnnotatedCommand\AnnotatedCommand; + +class HelpDocumentBuilder +{ + public static function alter(\DomDocument $originalDom, AnnotatedCommand $command) + { + $dom = new \DOMDocument('1.0', 'UTF-8'); + $dom->appendChild($commandXML = $dom->createElement('command')); + $commandXML->setAttribute('id', $command->getName()); + $commandXML->setAttribute('name', $command->getName()); + + // Get the original <command> element and its top-level elements. + $originalCommandXML = static::getSingleElementByTagName($dom, $originalDom, 'command'); + $originalUsagesXML = static::getSingleElementByTagName($dom, $originalCommandXML, 'usages'); + $originalDescriptionXML = static::getSingleElementByTagName($dom, $originalCommandXML, 'description'); + $originalHelpXML = static::getSingleElementByTagName($dom, $originalCommandXML, 'help'); + $originalArgumentsXML = static::getSingleElementByTagName($dom, $originalCommandXML, 'arguments'); + $originalOptionsXML = static::getSingleElementByTagName($dom, $originalCommandXML, 'options'); + + // Keep only the first of the <usage> elements + $newUsagesXML = $dom->createElement('usages'); + $firstUsageXML = static::getSingleElementByTagName($dom, $originalUsagesXML, 'usage'); + $newUsagesXML->appendChild($firstUsageXML); + + // Create our own <example> elements + $newExamplesXML = $dom->createElement('examples'); + foreach ($command->getExampleUsages() as $usage => $description) { + $newExamplesXML->appendChild($exampleXML = $dom->createElement('example')); + $exampleXML->appendChild($usageXML = $dom->createElement('usage', $usage)); + $exampleXML->appendChild($descriptionXML = $dom->createElement('description', $description)); + } + + // Create our own <alias> elements + $newAliasesXML = $dom->createElement('aliases'); + foreach ($command->getAliases() as $alias) { + $newAliasesXML->appendChild($dom->createElement('alias', $alias)); + } + + // Create our own <topic> elements + $newTopicsXML = $dom->createElement('topics'); + foreach ($command->getTopics() as $topic) { + $newTopicsXML->appendChild($topicXML = $dom->createElement('topic', $topic)); + } + + // Place the different elements into the <command> element in the desired order + $commandXML->appendChild($newUsagesXML); + $commandXML->appendChild($newExamplesXML); + $commandXML->appendChild($originalDescriptionXML); + $commandXML->appendChild($originalArgumentsXML); + $commandXML->appendChild($originalOptionsXML); + $commandXML->appendChild($originalHelpXML); + $commandXML->appendChild($newAliasesXML); + $commandXML->appendChild($newTopicsXML); + + return $dom; + } + + + protected static function getSingleElementByTagName($dom, $parent, $tagName) + { + // There should always be exactly one '<command>' element. + $elements = $parent->getElementsByTagName($tagName); + $result = $elements->item(0); + + $result = $dom->importNode($result, true); + + return $result; + } +} diff --git a/vendor/consolidation/annotated-command/src/Hooks/StatusDeterminerInterface.php b/vendor/consolidation/annotated-command/src/Hooks/StatusDeterminerInterface.php index 36436d1d71b52cdac0d647c5ec0e107c62834ced..f66ed0407254d860339287e0dcef5d4cb382ca94 100644 --- a/vendor/consolidation/annotated-command/src/Hooks/StatusDeterminerInterface.php +++ b/vendor/consolidation/annotated-command/src/Hooks/StatusDeterminerInterface.php @@ -4,6 +4,10 @@ /** * A StatusDeterminer maps from a result to a status exit code. * + * @deprecated. Instead of using a Status Determiner hook, commands + * should simply return their exit code and result data separately + * using a CommandResult object. + * * @see HookManager::addStatusDeterminer() */ interface StatusDeterminerInterface diff --git a/vendor/consolidation/annotated-command/src/Input/StdinAwareInterface.php b/vendor/consolidation/annotated-command/src/Input/StdinAwareInterface.php new file mode 100644 index 0000000000000000000000000000000000000000..55879866520309452371930c1775d35977b41634 --- /dev/null +++ b/vendor/consolidation/annotated-command/src/Input/StdinAwareInterface.php @@ -0,0 +1,34 @@ +<?php + +namespace Consolidation\AnnotatedCommand\Input; + +/** + * StdinAwareInterface should be implemented by classes that read from + * standard input. This class contains facilities to redirect stdin to + * instead read from a file, e.g. in response to an option or argument + * value. + * + * Using StdinAwareInterface is preferable to reading from php://stdin + * directly, as it provides a mechanism to instead inject an instance + * of StdinHandler that reads from a file, e.g. in tests. + * + * n.b. If the standard input handler is fetched prior to any code + * injecting an stdin handler, you will get an object that is configured + * to read from php://stdin. + */ +interface StdinAwareInterface +{ + /** + * Sets the standard input handler. + * + * @param StdinHandler + */ + public function setStdinHandler(StdinHandler $stdin); + + /** + * Returns the standard input handler. + * + * @return StdinHandler + */ + public function stdin(); +} diff --git a/vendor/consolidation/annotated-command/src/Input/StdinAwareTrait.php b/vendor/consolidation/annotated-command/src/Input/StdinAwareTrait.php new file mode 100644 index 0000000000000000000000000000000000000000..50f1c4df2f6d0180a4b6905efa494775f524ca94 --- /dev/null +++ b/vendor/consolidation/annotated-command/src/Input/StdinAwareTrait.php @@ -0,0 +1,30 @@ +<?php + +namespace Consolidation\AnnotatedCommand\Input; + +/** + * StdinAwareTrait provides the implementation for StdinAwareInterface. + */ +trait StdinAwareTrait +{ + protected $stdinHandler; + + /** + * @inheritdoc + */ + public function setStdinHandler(StdinHandler $stdin) + { + $this->stdinHandler = $stdin; + } + + /** + * @inheritdoc + */ + public function stdin() + { + if (!$this->stdinHandler) { + $this->stdinHandler = new StdinHandler(); + } + return $this->stdinHandler; + } +} diff --git a/vendor/consolidation/annotated-command/src/Input/StdinHandler.php b/vendor/consolidation/annotated-command/src/Input/StdinHandler.php new file mode 100644 index 0000000000000000000000000000000000000000..473458109fb383b2cf7660ed769d06872bb2258a --- /dev/null +++ b/vendor/consolidation/annotated-command/src/Input/StdinHandler.php @@ -0,0 +1,247 @@ +<?php + +namespace Consolidation\AnnotatedCommand\Input; + +use Symfony\Component\Console\Input\StreamableInputInterface; +use Symfony\Component\Console\Input\InputInterface; + +/** + * StdinHandler is a thin wrapper around php://stdin. It provides + * methods for redirecting input from a file, possibly conditionally + * under the control of an Input object. + * + * Example trivial usage (always reads from stdin): + * + * class Example implements StdinAwareInterface + * { + * /** + * * @command cat + * * @param string $file + * * @default $file - + * * / + * public function cat() + * { + * print($this->stdin()->contents()); + * } + * } + * + * Command that reads from stdin or file via an option: + * + * /** + * * @command cat + * * @param string $file + * * @default $file - + * * / + * public function cat(InputInterface $input) + * { + * $data = $this->stdin()->select($input, 'file')->contents(); + * } + * + * Command that reads from stdin or file via an option: + * + * /** + * * @command cat + * * @option string $file + * * @default $file - + * * / + * public function cat(InputInterface $input) + * { + * $data = $this->stdin()->select($input, 'file')->contents(); + * } + * + * It is also possible to inject the selected stream into the input object, + * e.g. if you want the contents of the source file to be fed to any Question + * helper et. al. that the $input object is used with. + * + * /** + * * @command example + * * @option string $file + * * @default $file - + * * / + * public function example(InputInterface $input) + * { + * $this->stdin()->setStream($input, 'file'); + * } + * + * + * Inject an alternate source for standard input in tests. Presumes that + * the object under test gets a reference to the StdinHandler via dependency + * injection from the container. + * + * $container->get('stdinHandler')->redirect($pathToTestStdinFileFixture); + * + * You may also inject your stdin file fixture stream into the $input object + * as usual, and then use it with 'select()' or 'setStream()' as shown above. + * + * Finally, this class may also be used in absence of a dependency injection + * container by using the static 'selectStream()' method: + * + * /** + * * @command example + * * @option string $file + * * @default $file - + * * / + * public function example(InputInterface $input) + * { + * $data = StdinHandler::selectStream($input, 'file')->contents(); + * } + * + * To test a method that uses this technique, simply inject your stdin + * fixture into the $input object in your test: + * + * $input->setStream(fopen($pathToFixture, 'r')); + */ +class StdinHandler +{ + protected $path; + protected $stream; + + public static function selectStream(InputInterface $input, $optionOrArg) + { + $handler = new Self(); + + return $handler->setStream($input, $optionOrArg); + } + + /** + * hasPath returns 'true' if the stdin handler has a path to a file. + * + * @return bool + */ + public function hasPath() + { + // Once the stream has been opened, we mask the existence of the path. + return !$this->hasStream() && !empty($this->path); + } + + /** + * hasStream returns 'true' if the stdin handler has opened a stream. + * + * @return bool + */ + public function hasStream() + { + return !empty($this->stream); + } + + /** + * path returns the path to any file that was set as a redirection + * source, or `php://stdin` if none have been. + * + * @return string + */ + public function path() + { + return $this->path ?: 'php://stdin'; + } + + /** + * close closes the input stream if it was opened. + */ + public function close() + { + if ($this->hasStream()) { + fclose($this->stream); + $this->stream = null; + } + return $this; + } + + /** + * redirect specifies a path to a file that should serve as the + * source to read from. If the input path is '-' or empty, + * then output will be taken from php://stdin (or whichever source + * was provided via the 'redirect' method). + * + * @return $this + */ + public function redirect($path) + { + if ($this->pathProvided($path)) { + $this->path = $path; + } + + return $this; + } + + /** + * select chooses the source of the input stream based on whether or + * not the user provided the specified option or argument on the commandline. + * Stdin is selected if there is no user selection. + * + * @param InputInterface $input + * @param string $optionOrArg + * @return $this + */ + public function select(InputInterface $input, $optionOrArg) + { + $this->redirect($this->getOptionOrArg($input, $optionOrArg)); + if (!$this->hasPath() && ($input instanceof StreamableInputInterface)) { + $this->stream = $input->getStream(); + } + + return $this; + } + + /** + * getStream opens and returns the stdin stream (or redirect file). + */ + public function getStream() + { + if (!$this->hasStream()) { + $this->stream = fopen($this->path(), 'r'); + } + return $this->stream; + } + + /** + * setStream functions like 'select', and also sets up the $input + * object to read from the selected input stream e.g. when used + * with a question helper. + */ + public function setStream(InputInterface $input, $optionOrArg) + { + $this->select($input, $optionOrArg); + if ($input instanceof StreamableInputInterface) { + $stream = $this->getStream(); + $input->setStream($stream); + } + return $this; + } + + /** + * contents reads the entire contents of the standard input stream. + * + * @return string + */ + public function contents() + { + // Optimization: use file_get_contents if we have a path to a file + // and the stream has not been opened yet. + if (!$this->hasStream()) { + return file_get_contents($this->path()); + } + $stream = $this->getStream(); + stream_set_blocking($stream, false); // TODO: We did this in backend invoke. Necessary here? + $contents = stream_get_contents($stream); + $this->close(); + + return $contents; + } + + /** + * Returns 'true' if a path was specfied, and that path was not '-'. + */ + protected function pathProvided($path) + { + return !empty($path) && ($path != '-'); + } + + protected function getOptionOrArg(InputInterface $input, $optionOrArg) + { + if ($input->hasOption($optionOrArg)) { + return $input->getOption($optionOrArg); + } + return $input->getArgument($optionOrArg); + } +} diff --git a/vendor/consolidation/annotated-command/src/ParameterInjection.php b/vendor/consolidation/annotated-command/src/ParameterInjection.php new file mode 100644 index 0000000000000000000000000000000000000000..630927c9d16435f110f9e7a1a5f0c805c6c344fc --- /dev/null +++ b/vendor/consolidation/annotated-command/src/ParameterInjection.php @@ -0,0 +1,57 @@ +<?php +namespace Consolidation\AnnotatedCommand; + +/** + * Prepare parameter list for execurion. Handle injection of any + * special values (e.g. $input and $output) into the parameter list. + */ +class ParameterInjection implements ParameterInjector +{ + public function __construct() + { + $this->register('Symfony\Component\Console\Input\InputInterface', $this); + $this->register('Symfony\Component\Console\Output\OutputInterface', $this); + } + + public function register($interfaceName, ParameterInjector $injector) + { + $this->injectors[$interfaceName] = $injector; + } + + public function args($commandData) + { + return array_merge( + $commandData->injectedInstances(), + $commandData->getArgsAndOptions() + ); + } + + public function injectIntoCommandData($commandData, $injectedClasses) + { + foreach ($injectedClasses as $injectedClass) { + $injectedInstance = $this->getInstanceToInject($commandData, $injectedClass); + $commandData->injectInstance($injectedInstance); + } + } + + protected function getInstanceToInject(CommandData $commandData, $interfaceName) + { + if (!isset($this->injectors[$interfaceName])) { + return null; + } + + return $this->injectors[$interfaceName]->get($commandData, $interfaceName); + } + + public function get(CommandData $commandData, $interfaceName) + { + switch ($interfaceName) { + case 'Symfony\Component\Console\Input\InputInterface': + return $commandData->input(); + case 'Symfony\Component\Console\Output\OutputInterface': + return $commandData->output(); + } + + return null; + } +} diff --git a/vendor/consolidation/annotated-command/src/ParameterInjector.php b/vendor/consolidation/annotated-command/src/ParameterInjector.php new file mode 100644 index 0000000000000000000000000000000000000000..2f2346f62f154bfb57dd3a52614365c2b05740bf --- /dev/null +++ b/vendor/consolidation/annotated-command/src/ParameterInjector.php @@ -0,0 +1,10 @@ +<?php +namespace Consolidation\AnnotatedCommand; + +/** + * Provide an object for the specified interface or class name. + */ +interface ParameterInjector +{ + public function get(CommandData $commandData, $interfaceName); +} diff --git a/vendor/consolidation/annotated-command/src/Parser/CommandInfo.php b/vendor/consolidation/annotated-command/src/Parser/CommandInfo.php index 8cb728f3a30d30898d737791b30d84c86b09237a..60df470e13691efa02aaef1c6e887fa8f3dae512 100644 --- a/vendor/consolidation/annotated-command/src/Parser/CommandInfo.php +++ b/vendor/consolidation/annotated-command/src/Parser/CommandInfo.php @@ -20,7 +20,7 @@ class CommandInfo /** * Serialization schema version. Incremented every time the serialization schema changes. */ - const SERIALIZATION_SCHEMA_VERSION = 3; + const SERIALIZATION_SCHEMA_VERSION = 4; /** * @var \ReflectionMethod @@ -88,6 +88,11 @@ class CommandInfo */ protected $returnType; + /** + * @var string[] + */ + protected $injectedClasses = []; + /** * Create a new CommandInfo class for a particular method of a class. * @@ -203,6 +208,18 @@ public function getReturnType() return $this->returnType; } + public function getInjectedClasses() + { + $this->parseDocBlock(); + return $this->injectedClasses; + } + + public function setInjectedClasses($injectedClasses) + { + $this->injectedClasses = $injectedClasses; + return $this; + } + public function setReturnType($returnType) { $this->returnType = $returnType; @@ -634,6 +651,11 @@ protected function determineAgumentClassifications() if ($this->lastParameterIsOptionsArray()) { array_pop($params); } + while (!empty($params) && ($params[0]->getClass() != null)) { + $param = array_shift($params); + $injectedClass = $param->getClass()->getName(); + array_unshift($this->injectedClasses, $injectedClass); + } foreach ($params as $param) { $this->addParameterToResult($result, $param); } diff --git a/vendor/consolidation/annotated-command/src/Parser/CommandInfoDeserializer.php b/vendor/consolidation/annotated-command/src/Parser/CommandInfoDeserializer.php index ed193cb5480e957b3e6972e54234a7bf0e192fe5..ae1b5dcd483d6c720b892e521dc4a0c20c23c5aa 100644 --- a/vendor/consolidation/annotated-command/src/Parser/CommandInfoDeserializer.php +++ b/vendor/consolidation/annotated-command/src/Parser/CommandInfoDeserializer.php @@ -29,7 +29,7 @@ public static function isValidSerializedData($cache) isset($cache['method_name']) && isset($cache['mtime']) && ($cache['schema'] > 0) && - ($cache['schema'] <= CommandInfo::SERIALIZATION_SCHEMA_VERSION) && + ($cache['schema'] == CommandInfo::SERIALIZATION_SCHEMA_VERSION) && self::cachedMethodExists($cache); } @@ -45,6 +45,7 @@ public function constructFromCache(CommandInfo $commandInfo, $info_array) ->setDescription($info_array['description']) ->replaceExampleUsages($info_array['example_usages']) ->setReturnType($info_array['return_type']) + ->setInjectedClasses($info_array['injected_classes']) ; $this->constructDefaultsWithDescriptions($commandInfo->arguments(), (array)$info_array['arguments']); @@ -81,6 +82,7 @@ protected function defaultSerializationData() 'parameters' => [], 'arguments' => [], 'options' => [], + 'injected_classes' => [], 'mtime' => 0, ]; } diff --git a/vendor/consolidation/annotated-command/src/Parser/CommandInfoSerializer.php b/vendor/consolidation/annotated-command/src/Parser/CommandInfoSerializer.php index cab6993d39a3fde9a0eae167c455f160be73ba2c..21562319c80f294375b3e6f028e1829d47432a01 100644 --- a/vendor/consolidation/annotated-command/src/Parser/CommandInfoSerializer.php +++ b/vendor/consolidation/annotated-command/src/Parser/CommandInfoSerializer.php @@ -23,6 +23,7 @@ public function serialize(CommandInfo $commandInfo) 'class' => $className, 'method_name' => $commandInfo->getMethodName(), 'mtime' => filemtime($path), + 'injected_classes' => [], ]; // If this is a valid method / hook, then add more information. @@ -38,6 +39,7 @@ public function serialize(CommandInfo $commandInfo) ]; $info['arguments'] = $this->serializeDefaultsWithDescriptions($commandInfo->arguments()); $info['options'] = $this->serializeDefaultsWithDescriptions($commandInfo->options()); + $info['injected_classes'] = $commandInfo->getInjectedClasses(); } return $info; diff --git a/vendor/consolidation/annotated-command/src/Parser/Internal/BespokeDocBlockParser.php b/vendor/consolidation/annotated-command/src/Parser/Internal/BespokeDocBlockParser.php index b53545c6216316a6bfd03adb952c7a24cf9a718a..4b73c967b10ebd46ca769e2276af8a9220818ad0 100644 --- a/vendor/consolidation/annotated-command/src/Parser/Internal/BespokeDocBlockParser.php +++ b/vendor/consolidation/annotated-command/src/Parser/Internal/BespokeDocBlockParser.php @@ -20,7 +20,7 @@ class BespokeDocBlockParser 'command' => 'processCommandTag', 'name' => 'processCommandTag', 'arg' => 'processArgumentTag', - 'param' => 'processArgumentTag', + 'param' => 'processParamTag', 'return' => 'processReturnTag', 'option' => 'processOptionTag', 'default' => 'processDefaultTag', @@ -83,6 +83,31 @@ protected function processAlternateDescriptionTag($tag) $this->commandInfo->setDescription($tag->getContent()); } + /** + * Store the data from a @param annotation in our argument descriptions. + */ + protected function processParamTag($tag) + { + if ($tag->hasTypeVariableAndDescription($matches)) { + if ($this->ignoredParamType($matches['type'])) { + return; + } + } + return $this->processArgumentTag($tag); + } + + protected function ignoredParamType($paramType) + { + // TODO: We should really only allow a couple of types here, + // e.g. 'string', 'array', 'bool'. Blacklist things we do not + // want for now to avoid breaking commands with weird types. + // Fix in the next major version. + // + // This works: + // return !in_array($paramType, ['string', 'array', 'integer', 'bool']); + return preg_match('#(InputInterface|OutputInterface)$#', $paramType); + } + /** * Store the data from a @arg annotation in our argument descriptions. */ @@ -112,7 +137,20 @@ protected function addOptionOrArgumentTag($tag, DefaultsWithDescriptions $set, $ { $variableName = $this->commandInfo->findMatchingOption($name); $description = static::removeLineBreaks($description); + list($description, $defaultValue) = $this->splitOutDefault($description); $set->add($variableName, $description); + if ($defaultValue !== null) { + $set->setDefaultValue($variableName, $defaultValue); + } + } + + protected function splitOutDefault($description) + { + if (!preg_match('#(.*)(Default: *)(.*)#', trim($description), $matches)) { + return [$description, null]; + } + + return [trim($matches[1]), $this->interpretDefaultValue(trim($matches[3]))]; } /** diff --git a/vendor/consolidation/annotated-command/src/Parser/Internal/FullyQualifiedClassCache.php b/vendor/consolidation/annotated-command/src/Parser/Internal/FullyQualifiedClassCache.php index 4daab65afc017507ad90aef3142160ab1843f95b..b247e9da0cb03b7ae051265b58f02f99b5056a60 100644 --- a/vendor/consolidation/annotated-command/src/Parser/Internal/FullyQualifiedClassCache.php +++ b/vendor/consolidation/annotated-command/src/Parser/Internal/FullyQualifiedClassCache.php @@ -88,7 +88,7 @@ protected function readUseStatements($handle) // If this is an aliased class, 'use \Foo\Bar as Baz', then adjust if (strpos($usedClass, ' as ')) { $unqualifiedClass = preg_replace('#.*\sas\s+#', '', $usedClass); - $usedClass = preg_replace('#\s+as\s+#', '', $usedClass); + $usedClass = preg_replace('#[a-zA-Z0-9]+\s+as\s+#', '', $usedClass); } $result[$unqualifiedClass] = $usedClass; } diff --git a/vendor/consolidation/annotated-command/src/ResultWriter.php b/vendor/consolidation/annotated-command/src/ResultWriter.php new file mode 100644 index 0000000000000000000000000000000000000000..a256384e8073c0896992db500baf91a440772ec0 --- /dev/null +++ b/vendor/consolidation/annotated-command/src/ResultWriter.php @@ -0,0 +1,210 @@ +<?php +namespace Consolidation\AnnotatedCommand; + +use Consolidation\AnnotatedCommand\Hooks\Dispatchers\ReplaceCommandHookDispatcher; +use Symfony\Component\Console\Input\InputInterface; +use Symfony\Component\Console\Output\OutputInterface; +use Symfony\Component\Console\Output\ConsoleOutputInterface; + +use Consolidation\OutputFormatters\FormatterManager; +use Consolidation\OutputFormatters\Options\FormatterOptions; +use Consolidation\AnnotatedCommand\Hooks\HookManager; +use Consolidation\AnnotatedCommand\Options\PrepareFormatter; + +use Consolidation\AnnotatedCommand\Hooks\Dispatchers\InitializeHookDispatcher; +use Consolidation\AnnotatedCommand\Hooks\Dispatchers\OptionsHookDispatcher; +use Consolidation\AnnotatedCommand\Hooks\Dispatchers\InteractHookDispatcher; +use Consolidation\AnnotatedCommand\Hooks\Dispatchers\ValidateHookDispatcher; +use Consolidation\AnnotatedCommand\Hooks\Dispatchers\ProcessResultHookDispatcher; +use Consolidation\AnnotatedCommand\Hooks\Dispatchers\StatusDeterminerHookDispatcher; +use Consolidation\AnnotatedCommand\Hooks\Dispatchers\ExtracterHookDispatcher; + +/** + * Write the results of a command. Inject your ResultWriter + * into the CommandProcessor. + */ +class ResultWriter +{ + /** var FormatterManager */ + protected $formatterManager; + /** @var callable */ + protected $displayErrorFunction; + + public function setFormatterManager(FormatterManager $formatterManager) + { + $this->formatterManager = $formatterManager; + return $this; + } + + /** + * Return the formatter manager + * @return FormatterManager + */ + public function formatterManager() + { + return $this->formatterManager; + } + + public function setDisplayErrorFunction(callable $fn) + { + $this->displayErrorFunction = $fn; + return $this; + } + + /** + * Handle the result output and status code calculation. + */ + public function handle(OutputInterface $output, $result, CommandData $commandData, $statusCodeDispatcher = null, $extractDispatcher = null) + { + // A little messy, for backwards compatibility: if the result implements + // ExitCodeInterface, then use that as the exit code. If a status code + // dispatcher returns a non-zero result, then we will never print a + // result. + $status = null; + if ($result instanceof ExitCodeInterface) { + $status = $result->getExitCode(); + } elseif (isset($statusCodeDispatcher)) { + $status = $statusCodeDispatcher->determineStatusCode($result); + if (isset($status) && ($status != 0)) { + return $status; + } + } + // If the result is an integer and no separate status code was provided, then use the result as the status and do no output. + if (is_integer($result) && !isset($status)) { + return $result; + } + $status = $this->interpretStatusCode($status); + + // Get the structured output, the output stream and the formatter + $structuredOutput = $result; + if (isset($extractDispatcher)) { + $structuredOutput = $extractDispatcher->extractOutput($result); + } + if (($status != 0) && is_string($structuredOutput)) { + $output = $this->chooseOutputStream($output, $status); + return $this->writeErrorMessage($output, $status, $structuredOutput, $result); + } + if ($this->dataCanBeFormatted($structuredOutput) && isset($this->formatterManager)) { + return $this->writeUsingFormatter($output, $structuredOutput, $commandData, $status); + } + return $this->writeCommandOutput($output, $structuredOutput, $status); + } + + protected function dataCanBeFormatted($structuredOutput) + { + if (!isset($this->formatterManager)) { + return false; + } + return + is_object($structuredOutput) || + is_array($structuredOutput); + } + + /** + * Determine the formatter that should be used to render + * output. + * + * If the user specified a format via the --format option, + * then always return that. Otherwise, return the default + * format, unless --pipe was specified, in which case + * return the default pipe format, format-pipe. + * + * n.b. --pipe is a handy option introduced in Drush 2 + * (or perhaps even Drush 1) that indicates that the command + * should select the output format that is most appropriate + * for use in scripts (e.g. to pipe to another command). + * + * @return string + */ + protected function getFormat(FormatterOptions $options) + { + // In Symfony Console, there is no way for us to differentiate + // between the user specifying '--format=table', and the user + // not specifying --format when the default value is 'table'. + // Therefore, we must make --field always override --format; it + // cannot become the default value for --format. + if ($options->get('field')) { + return 'string'; + } + $defaults = []; + if ($options->get('pipe')) { + return $options->get('pipe-format', [], 'tsv'); + } + return $options->getFormat($defaults); + } + + /** + * Determine whether we should use stdout or stderr. + */ + protected function chooseOutputStream(OutputInterface $output, $status) + { + // If the status code indicates an error, then print the + // result to stderr rather than stdout + if ($status && ($output instanceof ConsoleOutputInterface)) { + return $output->getErrorOutput(); + } + return $output; + } + + /** + * Call the formatter to output the provided data. + */ + protected function writeUsingFormatter(OutputInterface $output, $structuredOutput, CommandData $commandData, $status = 0) + { + $formatterOptions = $commandData->formatterOptions(); + $format = $this->getFormat($formatterOptions); + $this->formatterManager->write( + $output, + $format, + $structuredOutput, + $formatterOptions + ); + return $status; + } + + /** + * Description + * @param OutputInterface $output + * @param int $status + * @param string $structuredOutput + * @param mixed $originalResult + * @return type + */ + protected function writeErrorMessage($output, $status, $structuredOutput, $originalResult) + { + if (isset($this->displayErrorFunction)) { + call_user_func($this->displayErrorFunction, $output, $structuredOutput, $status, $originalResult); + } else { + $this->writeCommandOutput($output, $structuredOutput); + } + return $status; + } + + /** + * If the result object is a string, then print it. + */ + protected function writeCommandOutput( + OutputInterface $output, + $structuredOutput, + $status = 0 + ) { + // If there is no formatter, we will print strings, + // but can do no more than that. + if (is_string($structuredOutput)) { + $output->writeln($structuredOutput); + } + return $status; + } + + /** + * If a status code was set, then return it; otherwise, + * presume success. + */ + protected function interpretStatusCode($status) + { + if (isset($status)) { + return $status; + } + return 0; + } +} diff --git a/vendor/consolidation/output-formatters/.scenarios.lock/install b/vendor/consolidation/output-formatters/.scenarios.lock/install new file mode 100644 index 0000000000000000000000000000000000000000..16c69e107cce7f71e33e04207254d005200f9fd4 --- /dev/null +++ b/vendor/consolidation/output-formatters/.scenarios.lock/install @@ -0,0 +1,57 @@ +#!/bin/bash + +SCENARIO=$1 +DEPENDENCIES=${2-install} + +# Convert the aliases 'highest', 'lowest' and 'lock' to +# the corresponding composer command to run. +case $DEPENDENCIES in + highest) + DEPENDENCIES=update + ;; + lowest) + DEPENDENCIES='update --prefer-lowest' + ;; + lock|default|"") + DEPENDENCIES=install + ;; +esac + +original_name=scenarios +recommended_name=".scenarios.lock" + +base="$original_name" +if [ -d "$recommended_name" ] ; then + base="$recommended_name" +fi + +# If scenario is not specified, install the lockfile at +# the root of the project. +dir="$base/${SCENARIO}" +if [ -z "$SCENARIO" ] || [ "$SCENARIO" == "default" ] ; then + SCENARIO=default + dir=. +fi + +# Test to make sure that the selected scenario exists. +if [ ! -d "$dir" ] ; then + echo "Requested scenario '${SCENARIO}' does not exist." + exit 1 +fi + +echo +echo "::" +echo ":: Switch to ${SCENARIO} scenario" +echo "::" +echo + +set -ex + +composer -n validate --working-dir=$dir --no-check-all --ansi +composer -n --working-dir=$dir ${DEPENDENCIES} --prefer-dist --no-scripts + +# If called from a CI context, print out some extra information about +# what we just installed. +if [[ -n "$CI" ]] ; then + composer -n --working-dir=$dir info +fi diff --git a/vendor/consolidation/output-formatters/.scenarios.lock/symfony2/.gitignore b/vendor/consolidation/output-formatters/.scenarios.lock/symfony2/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..88e99d50df0e92a0e79a150231f75a363c9f1baf --- /dev/null +++ b/vendor/consolidation/output-formatters/.scenarios.lock/symfony2/.gitignore @@ -0,0 +1,2 @@ +vendor +composer.lock \ No newline at end of file diff --git a/vendor/consolidation/output-formatters/.scenarios.lock/symfony2/composer.json b/vendor/consolidation/output-formatters/.scenarios.lock/symfony2/composer.json new file mode 100644 index 0000000000000000000000000000000000000000..338f4265fc511ec0edc4a155d5d5ba7b69acf812 --- /dev/null +++ b/vendor/consolidation/output-formatters/.scenarios.lock/symfony2/composer.json @@ -0,0 +1,65 @@ +{ + "name": "consolidation/output-formatters", + "description": "Format text by applying transformations provided by plug-in formatters.", + "license": "MIT", + "authors": [ + { + "name": "Greg Anderson", + "email": "greg.1.anderson@greenknowe.org" + } + ], + "autoload": { + "psr-4": { + "Consolidation\\OutputFormatters\\": "../../src" + } + }, + "autoload-dev": { + "psr-4": { + "Consolidation\\TestUtils\\": "../../tests/src" + } + }, + "require": { + "symfony/console": "^2.8", + "php": ">=5.4.0", + "dflydev/dot-access-data": "^1.1.0", + "symfony/finder": "^2.5|^3|^4" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.36", + "g1a/composer-test-scenarios": "^3", + "squizlabs/php_codesniffer": "^2.7", + "symfony/var-dumper": "^2.8|^3|^4", + "victorjonsson/markdowndocs": "^1.3" + }, + "suggest": { + "symfony/var-dumper": "For using the var_dump formatter" + }, + "config": { + "platform": { + "php": "5.4.8" + }, + "optimize-autoloader": true, + "sort-packages": true, + "vendor-dir": "../../vendor" + }, + "scripts": { + "api": "phpdoc-md generate src > docs/api.md", + "cs": "phpcs --standard=PSR2 -n src", + "cbf": "phpcbf --standard=PSR2 -n src", + "unit": "phpunit --colors=always", + "lint": [ + "find src -name '*.php' -print0 | xargs -0 -n1 php -l", + "find tests/src -name '*.php' -print0 | xargs -0 -n1 php -l" + ], + "test": [ + "@lint", + "@unit", + "@cs" + ] + }, + "extra": { + "branch-alias": { + "dev-master": "3.x-dev" + } + } +} diff --git a/vendor/consolidation/output-formatters/.scenarios.lock/symfony3/.gitignore b/vendor/consolidation/output-formatters/.scenarios.lock/symfony3/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..5657f6ea7d574e423dc2c297e2e19a9dbd7a7170 --- /dev/null +++ b/vendor/consolidation/output-formatters/.scenarios.lock/symfony3/.gitignore @@ -0,0 +1 @@ +vendor \ No newline at end of file diff --git a/vendor/consolidation/output-formatters/.scenarios.lock/symfony3/composer.json b/vendor/consolidation/output-formatters/.scenarios.lock/symfony3/composer.json new file mode 100644 index 0000000000000000000000000000000000000000..a4d1f5e7844fc9f873492a0eede54717a175de9a --- /dev/null +++ b/vendor/consolidation/output-formatters/.scenarios.lock/symfony3/composer.json @@ -0,0 +1,67 @@ +{ + "name": "consolidation/output-formatters", + "description": "Format text by applying transformations provided by plug-in formatters.", + "license": "MIT", + "authors": [ + { + "name": "Greg Anderson", + "email": "greg.1.anderson@greenknowe.org" + } + ], + "autoload": { + "psr-4": { + "Consolidation\\OutputFormatters\\": "../../src" + } + }, + "autoload-dev": { + "psr-4": { + "Consolidation\\TestUtils\\": "../../tests/src" + } + }, + "require": { + "symfony/console": "^3.4", + "symfony/finder": "^3.4", + "symfony/var-dumper": "^3.4", + "php": ">=5.4.0", + "dflydev/dot-access-data": "^1.1.0" + }, + "require-dev": { + "g1a/composer-test-scenarios": "^3", + "php-coveralls/php-coveralls": "^1", + "phpunit/phpunit": "^5.7.27", + "squizlabs/php_codesniffer": "^2.7", + "symfony/var-dumper": "^2.8|^3|^4", + "victorjonsson/markdowndocs": "^1.3" + }, + "suggest": { + "symfony/var-dumper": "For using the var_dump formatter" + }, + "config": { + "platform": { + "php": "5.6.32" + }, + "optimize-autoloader": true, + "sort-packages": true, + "vendor-dir": "../../vendor" + }, + "scripts": { + "api": "phpdoc-md generate src > docs/api.md", + "cs": "phpcs --standard=PSR2 -n src", + "cbf": "phpcbf --standard=PSR2 -n src", + "unit": "phpunit --colors=always", + "lint": [ + "find src -name '*.php' -print0 | xargs -0 -n1 php -l", + "find tests/src -name '*.php' -print0 | xargs -0 -n1 php -l" + ], + "test": [ + "@lint", + "@unit", + "@cs" + ] + }, + "extra": { + "branch-alias": { + "dev-master": "3.x-dev" + } + } +} diff --git a/vendor/consolidation/output-formatters/.scenarios.lock/symfony3/composer.lock b/vendor/consolidation/output-formatters/.scenarios.lock/symfony3/composer.lock new file mode 100644 index 0000000000000000000000000000000000000000..1e190041722540d17d482e8c44c5f4eadc0690cd --- /dev/null +++ b/vendor/consolidation/output-formatters/.scenarios.lock/symfony3/composer.lock @@ -0,0 +1,2364 @@ +{ + "_readme": [ + "This file locks the dependencies of your project to a known state", + "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", + "This file is @generated automatically" + ], + "content-hash": "b93f5c37dbac1262cf9e9a1170b9e3ad", + "packages": [ + { + "name": "dflydev/dot-access-data", + "version": "v1.1.0", + "source": { + "type": "git", + "url": "https://github.com/dflydev/dflydev-dot-access-data.git", + "reference": "3fbd874921ab2c041e899d044585a2ab9795df8a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/dflydev/dflydev-dot-access-data/zipball/3fbd874921ab2c041e899d044585a2ab9795df8a", + "reference": "3fbd874921ab2c041e899d044585a2ab9795df8a", + "shasum": "" + }, + "require": { + "php": ">=5.3.2" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "psr-0": { + "Dflydev\\DotAccessData": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Dragonfly Development Inc.", + "email": "info@dflydev.com", + "homepage": "http://dflydev.com" + }, + { + "name": "Beau Simensen", + "email": "beau@dflydev.com", + "homepage": "http://beausimensen.com" + }, + { + "name": "Carlos Frutos", + "email": "carlos@kiwing.it", + "homepage": "https://github.com/cfrutos" + } + ], + "description": "Given a deep data structure, access data by dot notation.", + "homepage": "https://github.com/dflydev/dflydev-dot-access-data", + "keywords": [ + "access", + "data", + "dot", + "notation" + ], + "time": "2017-01-20T21:14:22+00:00" + }, + { + "name": "psr/log", + "version": "1.1.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/log.git", + "reference": "6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/log/zipball/6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd", + "reference": "6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Log\\": "Psr/Log/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common interface for logging libraries", + "homepage": "https://github.com/php-fig/log", + "keywords": [ + "log", + "psr", + "psr-3" + ], + "time": "2018-11-20T15:27:04+00:00" + }, + { + "name": "symfony/console", + "version": "v3.4.18", + "source": { + "type": "git", + "url": "https://github.com/symfony/console.git", + "reference": "1d228fb4602047d7b26a0554e0d3efd567da5803" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/console/zipball/1d228fb4602047d7b26a0554e0d3efd567da5803", + "reference": "1d228fb4602047d7b26a0554e0d3efd567da5803", + "shasum": "" + }, + "require": { + "php": "^5.5.9|>=7.0.8", + "symfony/debug": "~2.8|~3.0|~4.0", + "symfony/polyfill-mbstring": "~1.0" + }, + "conflict": { + "symfony/dependency-injection": "<3.4", + "symfony/process": "<3.3" + }, + "require-dev": { + "psr/log": "~1.0", + "symfony/config": "~3.3|~4.0", + "symfony/dependency-injection": "~3.4|~4.0", + "symfony/event-dispatcher": "~2.8|~3.0|~4.0", + "symfony/lock": "~3.4|~4.0", + "symfony/process": "~3.3|~4.0" + }, + "suggest": { + "psr/log-implementation": "For using the console logger", + "symfony/event-dispatcher": "", + "symfony/lock": "", + "symfony/process": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.4-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Console\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Console Component", + "homepage": "https://symfony.com", + "time": "2018-10-30T16:50:50+00:00" + }, + { + "name": "symfony/debug", + "version": "v3.4.18", + "source": { + "type": "git", + "url": "https://github.com/symfony/debug.git", + "reference": "fe9793af008b651c5441bdeab21ede8172dab097" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/debug/zipball/fe9793af008b651c5441bdeab21ede8172dab097", + "reference": "fe9793af008b651c5441bdeab21ede8172dab097", + "shasum": "" + }, + "require": { + "php": "^5.5.9|>=7.0.8", + "psr/log": "~1.0" + }, + "conflict": { + "symfony/http-kernel": ">=2.3,<2.3.24|~2.4.0|>=2.5,<2.5.9|>=2.6,<2.6.2" + }, + "require-dev": { + "symfony/http-kernel": "~2.8|~3.0|~4.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.4-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Debug\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Debug Component", + "homepage": "https://symfony.com", + "time": "2018-10-31T09:06:03+00:00" + }, + { + "name": "symfony/finder", + "version": "v3.4.18", + "source": { + "type": "git", + "url": "https://github.com/symfony/finder.git", + "reference": "54ba444dddc5bd5708a34bd095ea67c6eb54644d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/finder/zipball/54ba444dddc5bd5708a34bd095ea67c6eb54644d", + "reference": "54ba444dddc5bd5708a34bd095ea67c6eb54644d", + "shasum": "" + }, + "require": { + "php": "^5.5.9|>=7.0.8" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.4-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Finder\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Finder Component", + "homepage": "https://symfony.com", + "time": "2018-10-03T08:46:40+00:00" + }, + { + "name": "symfony/polyfill-mbstring", + "version": "v1.10.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-mbstring.git", + "reference": "c79c051f5b3a46be09205c73b80b346e4153e494" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/c79c051f5b3a46be09205c73b80b346e4153e494", + "reference": "c79c051f5b3a46be09205c73b80b346e4153e494", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "suggest": { + "ext-mbstring": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.9-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Mbstring\\": "" + }, + "files": [ + "bootstrap.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for the Mbstring extension", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "mbstring", + "polyfill", + "portable", + "shim" + ], + "time": "2018-09-21T13:07:52+00:00" + }, + { + "name": "symfony/var-dumper", + "version": "v3.4.18", + "source": { + "type": "git", + "url": "https://github.com/symfony/var-dumper.git", + "reference": "ff8ac19e97e5c7c3979236b584719a1190f84181" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/ff8ac19e97e5c7c3979236b584719a1190f84181", + "reference": "ff8ac19e97e5c7c3979236b584719a1190f84181", + "shasum": "" + }, + "require": { + "php": "^5.5.9|>=7.0.8", + "symfony/polyfill-mbstring": "~1.0" + }, + "conflict": { + "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0" + }, + "require-dev": { + "ext-iconv": "*", + "twig/twig": "~1.34|~2.4" + }, + "suggest": { + "ext-iconv": "To convert non-UTF-8 strings to UTF-8 (or symfony/polyfill-iconv in case ext-iconv cannot be used).", + "ext-intl": "To show region name in time zone dump", + "ext-symfony_debug": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.4-dev" + } + }, + "autoload": { + "files": [ + "Resources/functions/dump.php" + ], + "psr-4": { + "Symfony\\Component\\VarDumper\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony mechanism for exploring and dumping PHP variables", + "homepage": "https://symfony.com", + "keywords": [ + "debug", + "dump" + ], + "time": "2018-10-02T16:33:53+00:00" + } + ], + "packages-dev": [ + { + "name": "doctrine/instantiator", + "version": "1.0.5", + "source": { + "type": "git", + "url": "https://github.com/doctrine/instantiator.git", + "reference": "8e884e78f9f0eb1329e445619e04456e64d8051d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/instantiator/zipball/8e884e78f9f0eb1329e445619e04456e64d8051d", + "reference": "8e884e78f9f0eb1329e445619e04456e64d8051d", + "shasum": "" + }, + "require": { + "php": ">=5.3,<8.0-DEV" + }, + "require-dev": { + "athletic/athletic": "~0.1.8", + "ext-pdo": "*", + "ext-phar": "*", + "phpunit/phpunit": "~4.0", + "squizlabs/php_codesniffer": "~2.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com", + "homepage": "http://ocramius.github.com/" + } + ], + "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", + "homepage": "https://github.com/doctrine/instantiator", + "keywords": [ + "constructor", + "instantiate" + ], + "time": "2015-06-14T21:17:01+00:00" + }, + { + "name": "g1a/composer-test-scenarios", + "version": "3.0.0", + "source": { + "type": "git", + "url": "https://github.com/g1a/composer-test-scenarios.git", + "reference": "2a7156f1572898888ea50ad1d48a6b4d3f9fbf78" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/g1a/composer-test-scenarios/zipball/2a7156f1572898888ea50ad1d48a6b4d3f9fbf78", + "reference": "2a7156f1572898888ea50ad1d48a6b4d3f9fbf78", + "shasum": "" + }, + "require": { + "composer-plugin-api": "^1.0.0", + "php": ">=5.4" + }, + "require-dev": { + "composer/composer": "^1.7", + "php-coveralls/php-coveralls": "^1.0", + "phpunit/phpunit": "^4.8.36|^6", + "squizlabs/php_codesniffer": "^2.8" + }, + "bin": [ + "scripts/dependency-licenses" + ], + "type": "composer-plugin", + "extra": { + "class": "ComposerTestScenarios\\Plugin", + "branch-alias": { + "dev-master": "3.x-dev" + } + }, + "autoload": { + "psr-4": { + "ComposerTestScenarios\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Greg Anderson", + "email": "greg.1.anderson@greenknowe.org" + } + ], + "description": "Useful scripts for testing multiple sets of Composer dependencies.", + "time": "2018-11-22T05:10:20+00:00" + }, + { + "name": "guzzle/guzzle", + "version": "v3.9.3", + "source": { + "type": "git", + "url": "https://github.com/guzzle/guzzle3.git", + "reference": "0645b70d953bc1c067bbc8d5bc53194706b628d9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/guzzle3/zipball/0645b70d953bc1c067bbc8d5bc53194706b628d9", + "reference": "0645b70d953bc1c067bbc8d5bc53194706b628d9", + "shasum": "" + }, + "require": { + "ext-curl": "*", + "php": ">=5.3.3", + "symfony/event-dispatcher": "~2.1" + }, + "replace": { + "guzzle/batch": "self.version", + "guzzle/cache": "self.version", + "guzzle/common": "self.version", + "guzzle/http": "self.version", + "guzzle/inflection": "self.version", + "guzzle/iterator": "self.version", + "guzzle/log": "self.version", + "guzzle/parser": "self.version", + "guzzle/plugin": "self.version", + "guzzle/plugin-async": "self.version", + "guzzle/plugin-backoff": "self.version", + "guzzle/plugin-cache": "self.version", + "guzzle/plugin-cookie": "self.version", + "guzzle/plugin-curlauth": "self.version", + "guzzle/plugin-error-response": "self.version", + "guzzle/plugin-history": "self.version", + "guzzle/plugin-log": "self.version", + "guzzle/plugin-md5": "self.version", + "guzzle/plugin-mock": "self.version", + "guzzle/plugin-oauth": "self.version", + "guzzle/service": "self.version", + "guzzle/stream": "self.version" + }, + "require-dev": { + "doctrine/cache": "~1.3", + "monolog/monolog": "~1.0", + "phpunit/phpunit": "3.7.*", + "psr/log": "~1.0", + "symfony/class-loader": "~2.1", + "zendframework/zend-cache": "2.*,<2.3", + "zendframework/zend-log": "2.*,<2.3" + }, + "suggest": { + "guzzlehttp/guzzle": "Guzzle 5 has moved to a new package name. The package you have installed, Guzzle 3, is deprecated." + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.9-dev" + } + }, + "autoload": { + "psr-0": { + "Guzzle": "src/", + "Guzzle\\Tests": "tests/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "Guzzle Community", + "homepage": "https://github.com/guzzle/guzzle/contributors" + } + ], + "description": "PHP HTTP client. This library is deprecated in favor of https://packagist.org/packages/guzzlehttp/guzzle", + "homepage": "http://guzzlephp.org/", + "keywords": [ + "client", + "curl", + "framework", + "http", + "http client", + "rest", + "web service" + ], + "abandoned": "guzzlehttp/guzzle", + "time": "2015-03-18T18:23:50+00:00" + }, + { + "name": "myclabs/deep-copy", + "version": "1.7.0", + "source": { + "type": "git", + "url": "https://github.com/myclabs/DeepCopy.git", + "reference": "3b8a3a99ba1f6a3952ac2747d989303cbd6b7a3e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/3b8a3a99ba1f6a3952ac2747d989303cbd6b7a3e", + "reference": "3b8a3a99ba1f6a3952ac2747d989303cbd6b7a3e", + "shasum": "" + }, + "require": { + "php": "^5.6 || ^7.0" + }, + "require-dev": { + "doctrine/collections": "^1.0", + "doctrine/common": "^2.6", + "phpunit/phpunit": "^4.1" + }, + "type": "library", + "autoload": { + "psr-4": { + "DeepCopy\\": "src/DeepCopy/" + }, + "files": [ + "src/DeepCopy/deep_copy.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Create deep copies (clones) of your objects", + "keywords": [ + "clone", + "copy", + "duplicate", + "object", + "object graph" + ], + "time": "2017-10-19T19:58:43+00:00" + }, + { + "name": "php-coveralls/php-coveralls", + "version": "v1.1.0", + "source": { + "type": "git", + "url": "https://github.com/php-coveralls/php-coveralls.git", + "reference": "37f8f83fe22224eb9d9c6d593cdeb33eedd2a9ad" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-coveralls/php-coveralls/zipball/37f8f83fe22224eb9d9c6d593cdeb33eedd2a9ad", + "reference": "37f8f83fe22224eb9d9c6d593cdeb33eedd2a9ad", + "shasum": "" + }, + "require": { + "ext-json": "*", + "ext-simplexml": "*", + "guzzle/guzzle": "^2.8 || ^3.0", + "php": "^5.3.3 || ^7.0", + "psr/log": "^1.0", + "symfony/config": "^2.1 || ^3.0 || ^4.0", + "symfony/console": "^2.1 || ^3.0 || ^4.0", + "symfony/stopwatch": "^2.0 || ^3.0 || ^4.0", + "symfony/yaml": "^2.0 || ^3.0 || ^4.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.35 || ^5.4.3 || ^6.0" + }, + "suggest": { + "symfony/http-kernel": "Allows Symfony integration" + }, + "bin": [ + "bin/coveralls" + ], + "type": "library", + "autoload": { + "psr-4": { + "Satooshi\\": "src/Satooshi/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Kitamura Satoshi", + "email": "with.no.parachute@gmail.com", + "homepage": "https://www.facebook.com/satooshi.jp" + } + ], + "description": "PHP client library for Coveralls API", + "homepage": "https://github.com/php-coveralls/php-coveralls", + "keywords": [ + "ci", + "coverage", + "github", + "test" + ], + "time": "2017-12-06T23:17:56+00:00" + }, + { + "name": "phpdocumentor/reflection-common", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/phpDocumentor/ReflectionCommon.git", + "reference": "21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6", + "reference": "21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6", + "shasum": "" + }, + "require": { + "php": ">=5.5" + }, + "require-dev": { + "phpunit/phpunit": "^4.6" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.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": "2017-09-11T18:02:19+00:00" + }, + { + "name": "phpdocumentor/reflection-docblock", + "version": "3.3.2", + "source": { + "type": "git", + "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", + "reference": "bf329f6c1aadea3299f08ee804682b7c45b326a2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/bf329f6c1aadea3299f08ee804682b7c45b326a2", + "reference": "bf329f6c1aadea3299f08ee804682b7c45b326a2", + "shasum": "" + }, + "require": { + "php": "^5.6 || ^7.0", + "phpdocumentor/reflection-common": "^1.0.0", + "phpdocumentor/type-resolver": "^0.4.0", + "webmozart/assert": "^1.0" + }, + "require-dev": { + "mockery/mockery": "^0.9.4", + "phpunit/phpunit": "^4.4" + }, + "type": "library", + "autoload": { + "psr-4": { + "phpDocumentor\\Reflection\\": [ + "src/" + ] + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Mike van Riel", + "email": "me@mikevanriel.com" + } + ], + "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", + "time": "2017-11-10T14:09:06+00:00" + }, + { + "name": "phpdocumentor/type-resolver", + "version": "0.4.0", + "source": { + "type": "git", + "url": "https://github.com/phpDocumentor/TypeResolver.git", + "reference": "9c977708995954784726e25d0cd1dddf4e65b0f7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/9c977708995954784726e25d0cd1dddf4e65b0f7", + "reference": "9c977708995954784726e25d0cd1dddf4e65b0f7", + "shasum": "" + }, + "require": { + "php": "^5.5 || ^7.0", + "phpdocumentor/reflection-common": "^1.0" + }, + "require-dev": { + "mockery/mockery": "^0.9.4", + "phpunit/phpunit": "^5.2||^4.8.24" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.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" + } + ], + "time": "2017-07-14T14:27:02+00:00" + }, + { + "name": "phpspec/prophecy", + "version": "1.8.0", + "source": { + "type": "git", + "url": "https://github.com/phpspec/prophecy.git", + "reference": "4ba436b55987b4bf311cb7c6ba82aa528aac0a06" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpspec/prophecy/zipball/4ba436b55987b4bf311cb7c6ba82aa528aac0a06", + "reference": "4ba436b55987b4bf311cb7c6ba82aa528aac0a06", + "shasum": "" + }, + "require": { + "doctrine/instantiator": "^1.0.2", + "php": "^5.3|^7.0", + "phpdocumentor/reflection-docblock": "^2.0|^3.0.2|^4.0", + "sebastian/comparator": "^1.1|^2.0|^3.0", + "sebastian/recursion-context": "^1.0|^2.0|^3.0" + }, + "require-dev": { + "phpspec/phpspec": "^2.5|^3.2", + "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5 || ^7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.8.x-dev" + } + }, + "autoload": { + "psr-0": { + "Prophecy\\": "src/" + } + }, + "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" + ], + "time": "2018-08-05T17:53:17+00:00" + }, + { + "name": "phpunit/php-code-coverage", + "version": "4.0.8", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-code-coverage.git", + "reference": "ef7b2f56815df854e66ceaee8ebe9393ae36a40d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/ef7b2f56815df854e66ceaee8ebe9393ae36a40d", + "reference": "ef7b2f56815df854e66ceaee8ebe9393ae36a40d", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-xmlwriter": "*", + "php": "^5.6 || ^7.0", + "phpunit/php-file-iterator": "^1.3", + "phpunit/php-text-template": "^1.2", + "phpunit/php-token-stream": "^1.4.2 || ^2.0", + "sebastian/code-unit-reverse-lookup": "^1.0", + "sebastian/environment": "^1.3.2 || ^2.0", + "sebastian/version": "^1.0 || ^2.0" + }, + "require-dev": { + "ext-xdebug": "^2.1.4", + "phpunit/phpunit": "^5.7" + }, + "suggest": { + "ext-xdebug": "^2.5.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.0.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sb@sebastian-bergmann.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" + ], + "time": "2017-04-02T07:44:40+00:00" + }, + { + "name": "phpunit/php-file-iterator", + "version": "1.4.5", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-file-iterator.git", + "reference": "730b01bc3e867237eaac355e06a36b85dd93a8b4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/730b01bc3e867237eaac355e06a36b85dd93a8b4", + "reference": "730b01bc3e867237eaac355e06a36b85dd93a8b4", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.4.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sb@sebastian-bergmann.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" + ], + "time": "2017-11-27T13:52:08+00:00" + }, + { + "name": "phpunit/php-text-template", + "version": "1.2.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-text-template.git", + "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686", + "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "type": "library", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Simple template engine.", + "homepage": "https://github.com/sebastianbergmann/php-text-template/", + "keywords": [ + "template" + ], + "time": "2015-06-21T13:50:34+00:00" + }, + { + "name": "phpunit/php-timer", + "version": "1.0.9", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-timer.git", + "reference": "3dcf38ca72b158baf0bc245e9184d3fdffa9c46f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/3dcf38ca72b158baf0bc245e9184d3fdffa9c46f", + "reference": "3dcf38ca72b158baf0bc245e9184d3fdffa9c46f", + "shasum": "" + }, + "require": { + "php": "^5.3.3 || ^7.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0" + }, + "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": "sb@sebastian-bergmann.de", + "role": "lead" + } + ], + "description": "Utility class for timing", + "homepage": "https://github.com/sebastianbergmann/php-timer/", + "keywords": [ + "timer" + ], + "time": "2017-02-26T11:10:40+00:00" + }, + { + "name": "phpunit/php-token-stream", + "version": "1.4.12", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-token-stream.git", + "reference": "1ce90ba27c42e4e44e6d8458241466380b51fa16" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/1ce90ba27c42e4e44e6d8458241466380b51fa16", + "reference": "1ce90ba27c42e4e44e6d8458241466380b51fa16", + "shasum": "" + }, + "require": { + "ext-tokenizer": "*", + "php": ">=5.3.3" + }, + "require-dev": { + "phpunit/phpunit": "~4.2" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.4-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Wrapper around PHP's tokenizer extension.", + "homepage": "https://github.com/sebastianbergmann/php-token-stream/", + "keywords": [ + "tokenizer" + ], + "time": "2017-12-04T08:55:13+00:00" + }, + { + "name": "phpunit/phpunit", + "version": "5.7.27", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/phpunit.git", + "reference": "b7803aeca3ccb99ad0a506fa80b64cd6a56bbc0c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/b7803aeca3ccb99ad0a506fa80b64cd6a56bbc0c", + "reference": "b7803aeca3ccb99ad0a506fa80b64cd6a56bbc0c", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-json": "*", + "ext-libxml": "*", + "ext-mbstring": "*", + "ext-xml": "*", + "myclabs/deep-copy": "~1.3", + "php": "^5.6 || ^7.0", + "phpspec/prophecy": "^1.6.2", + "phpunit/php-code-coverage": "^4.0.4", + "phpunit/php-file-iterator": "~1.4", + "phpunit/php-text-template": "~1.2", + "phpunit/php-timer": "^1.0.6", + "phpunit/phpunit-mock-objects": "^3.2", + "sebastian/comparator": "^1.2.4", + "sebastian/diff": "^1.4.3", + "sebastian/environment": "^1.3.4 || ^2.0", + "sebastian/exporter": "~2.0", + "sebastian/global-state": "^1.1", + "sebastian/object-enumerator": "~2.0", + "sebastian/resource-operations": "~1.0", + "sebastian/version": "^1.0.6|^2.0.1", + "symfony/yaml": "~2.1|~3.0|~4.0" + }, + "conflict": { + "phpdocumentor/reflection-docblock": "3.0.2" + }, + "require-dev": { + "ext-pdo": "*" + }, + "suggest": { + "ext-xdebug": "*", + "phpunit/php-invoker": "~1.1" + }, + "bin": [ + "phpunit" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.7.x-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": "The PHP Unit Testing framework.", + "homepage": "https://phpunit.de/", + "keywords": [ + "phpunit", + "testing", + "xunit" + ], + "time": "2018-02-01T05:50:59+00:00" + }, + { + "name": "phpunit/phpunit-mock-objects", + "version": "3.4.4", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git", + "reference": "a23b761686d50a560cc56233b9ecf49597cc9118" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/a23b761686d50a560cc56233b9ecf49597cc9118", + "reference": "a23b761686d50a560cc56233b9ecf49597cc9118", + "shasum": "" + }, + "require": { + "doctrine/instantiator": "^1.0.2", + "php": "^5.6 || ^7.0", + "phpunit/php-text-template": "^1.2", + "sebastian/exporter": "^1.2 || ^2.0" + }, + "conflict": { + "phpunit/phpunit": "<5.4.0" + }, + "require-dev": { + "phpunit/phpunit": "^5.4" + }, + "suggest": { + "ext-soap": "*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.2.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sb@sebastian-bergmann.de", + "role": "lead" + } + ], + "description": "Mock Object library for PHPUnit", + "homepage": "https://github.com/sebastianbergmann/phpunit-mock-objects/", + "keywords": [ + "mock", + "xunit" + ], + "time": "2017-06-30T09:13:00+00:00" + }, + { + "name": "sebastian/code-unit-reverse-lookup", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", + "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/4419fcdb5eabb9caa61a27c7a1db532a6b55dd18", + "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18", + "shasum": "" + }, + "require": { + "php": "^5.6 || ^7.0" + }, + "require-dev": { + "phpunit/phpunit": "^5.7 || ^6.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-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/", + "time": "2017-03-04T06:30:41+00:00" + }, + { + "name": "sebastian/comparator", + "version": "1.2.4", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/comparator.git", + "reference": "2b7424b55f5047b47ac6e5ccb20b2aea4011d9be" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/2b7424b55f5047b47ac6e5ccb20b2aea4011d9be", + "reference": "2b7424b55f5047b47ac6e5ccb20b2aea4011d9be", + "shasum": "" + }, + "require": { + "php": ">=5.3.3", + "sebastian/diff": "~1.2", + "sebastian/exporter": "~1.2 || ~2.0" + }, + "require-dev": { + "phpunit/phpunit": "~4.4" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.2.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Volker Dusch", + "email": "github@wallbash.com" + }, + { + "name": "Bernhard Schussek", + "email": "bschussek@2bepublished.at" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Provides the functionality to compare PHP values for equality", + "homepage": "http://www.github.com/sebastianbergmann/comparator", + "keywords": [ + "comparator", + "compare", + "equality" + ], + "time": "2017-01-29T09:50:25+00:00" + }, + { + "name": "sebastian/diff", + "version": "1.4.3", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/diff.git", + "reference": "7f066a26a962dbe58ddea9f72a4e82874a3975a4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/7f066a26a962dbe58ddea9f72a4e82874a3975a4", + "reference": "7f066a26a962dbe58ddea9f72a4e82874a3975a4", + "shasum": "" + }, + "require": { + "php": "^5.3.3 || ^7.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.4-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Kore Nordmann", + "email": "mail@kore-nordmann.de" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Diff implementation", + "homepage": "https://github.com/sebastianbergmann/diff", + "keywords": [ + "diff" + ], + "time": "2017-05-22T07:24:03+00:00" + }, + { + "name": "sebastian/environment", + "version": "2.0.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/environment.git", + "reference": "5795ffe5dc5b02460c3e34222fee8cbe245d8fac" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/5795ffe5dc5b02460c3e34222fee8cbe245d8fac", + "reference": "5795ffe5dc5b02460c3e34222fee8cbe245d8fac", + "shasum": "" + }, + "require": { + "php": "^5.6 || ^7.0" + }, + "require-dev": { + "phpunit/phpunit": "^5.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Provides functionality to handle HHVM/PHP environments", + "homepage": "http://www.github.com/sebastianbergmann/environment", + "keywords": [ + "Xdebug", + "environment", + "hhvm" + ], + "time": "2016-11-26T07:53:53+00:00" + }, + { + "name": "sebastian/exporter", + "version": "2.0.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/exporter.git", + "reference": "ce474bdd1a34744d7ac5d6aad3a46d48d9bac4c4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/ce474bdd1a34744d7ac5d6aad3a46d48d9bac4c4", + "reference": "ce474bdd1a34744d7ac5d6aad3a46d48d9bac4c4", + "shasum": "" + }, + "require": { + "php": ">=5.3.3", + "sebastian/recursion-context": "~2.0" + }, + "require-dev": { + "ext-mbstring": "*", + "phpunit/phpunit": "~4.4" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Volker Dusch", + "email": "github@wallbash.com" + }, + { + "name": "Bernhard Schussek", + "email": "bschussek@2bepublished.at" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Adam Harvey", + "email": "aharvey@php.net" + } + ], + "description": "Provides the functionality to export PHP variables for visualization", + "homepage": "http://www.github.com/sebastianbergmann/exporter", + "keywords": [ + "export", + "exporter" + ], + "time": "2016-11-19T08:54:04+00:00" + }, + { + "name": "sebastian/global-state", + "version": "1.1.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/global-state.git", + "reference": "bc37d50fea7d017d3d340f230811c9f1d7280af4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/bc37d50fea7d017d3d340f230811c9f1d7280af4", + "reference": "bc37d50fea7d017d3d340f230811c9f1d7280af4", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "require-dev": { + "phpunit/phpunit": "~4.2" + }, + "suggest": { + "ext-uopz": "*" + }, + "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" + } + ], + "description": "Snapshotting of global state", + "homepage": "http://www.github.com/sebastianbergmann/global-state", + "keywords": [ + "global state" + ], + "time": "2015-10-12T03:26:01+00:00" + }, + { + "name": "sebastian/object-enumerator", + "version": "2.0.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/object-enumerator.git", + "reference": "1311872ac850040a79c3c058bea3e22d0f09cbb7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/1311872ac850040a79c3c058bea3e22d0f09cbb7", + "reference": "1311872ac850040a79c3c058bea3e22d0f09cbb7", + "shasum": "" + }, + "require": { + "php": ">=5.6", + "sebastian/recursion-context": "~2.0" + }, + "require-dev": { + "phpunit/phpunit": "~5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Traverses array structures and object graphs to enumerate all referenced objects", + "homepage": "https://github.com/sebastianbergmann/object-enumerator/", + "time": "2017-02-18T15:18:39+00:00" + }, + { + "name": "sebastian/recursion-context", + "version": "2.0.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/recursion-context.git", + "reference": "2c3ba150cbec723aa057506e73a8d33bdb286c9a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/2c3ba150cbec723aa057506e73a8d33bdb286c9a", + "reference": "2c3ba150cbec723aa057506e73a8d33bdb286c9a", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "require-dev": { + "phpunit/phpunit": "~4.4" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Adam Harvey", + "email": "aharvey@php.net" + } + ], + "description": "Provides functionality to recursively process PHP variables", + "homepage": "http://www.github.com/sebastianbergmann/recursion-context", + "time": "2016-11-19T07:33:16+00:00" + }, + { + "name": "sebastian/resource-operations", + "version": "1.0.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/resource-operations.git", + "reference": "ce990bb21759f94aeafd30209e8cfcdfa8bc3f52" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/ce990bb21759f94aeafd30209e8cfcdfa8bc3f52", + "reference": "ce990bb21759f94aeafd30209e8cfcdfa8bc3f52", + "shasum": "" + }, + "require": { + "php": ">=5.6.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Provides a list of PHP built-in functions that operate on resources", + "homepage": "https://www.github.com/sebastianbergmann/resource-operations", + "time": "2015-07-28T20:34:47+00:00" + }, + { + "name": "sebastian/version", + "version": "2.0.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/version.git", + "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/99732be0ddb3361e16ad77b68ba41efc8e979019", + "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019", + "shasum": "" + }, + "require": { + "php": ">=5.6" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-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 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" + }, + { + "name": "squizlabs/php_codesniffer", + "version": "2.9.2", + "source": { + "type": "git", + "url": "https://github.com/squizlabs/PHP_CodeSniffer.git", + "reference": "2acf168de78487db620ab4bc524135a13cfe6745" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/2acf168de78487db620ab4bc524135a13cfe6745", + "reference": "2acf168de78487db620ab4bc524135a13cfe6745", + "shasum": "" + }, + "require": { + "ext-simplexml": "*", + "ext-tokenizer": "*", + "ext-xmlwriter": "*", + "php": ">=5.1.2" + }, + "require-dev": { + "phpunit/phpunit": "~4.0" + }, + "bin": [ + "scripts/phpcs", + "scripts/phpcbf" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.x-dev" + } + }, + "autoload": { + "classmap": [ + "CodeSniffer.php", + "CodeSniffer/CLI.php", + "CodeSniffer/Exception.php", + "CodeSniffer/File.php", + "CodeSniffer/Fixer.php", + "CodeSniffer/Report.php", + "CodeSniffer/Reporting.php", + "CodeSniffer/Sniff.php", + "CodeSniffer/Tokens.php", + "CodeSniffer/Reports/", + "CodeSniffer/Tokenizers/", + "CodeSniffer/DocGenerators/", + "CodeSniffer/Standards/AbstractPatternSniff.php", + "CodeSniffer/Standards/AbstractScopeSniff.php", + "CodeSniffer/Standards/AbstractVariableSniff.php", + "CodeSniffer/Standards/IncorrectPatternException.php", + "CodeSniffer/Standards/Generic/Sniffs/", + "CodeSniffer/Standards/MySource/Sniffs/", + "CodeSniffer/Standards/PEAR/Sniffs/", + "CodeSniffer/Standards/PSR1/Sniffs/", + "CodeSniffer/Standards/PSR2/Sniffs/", + "CodeSniffer/Standards/Squiz/Sniffs/", + "CodeSniffer/Standards/Zend/Sniffs/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Greg Sherwood", + "role": "lead" + } + ], + "description": "PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.", + "homepage": "http://www.squizlabs.com/php-codesniffer", + "keywords": [ + "phpcs", + "standards" + ], + "time": "2018-11-07T22:31:41+00:00" + }, + { + "name": "symfony/config", + "version": "v3.4.18", + "source": { + "type": "git", + "url": "https://github.com/symfony/config.git", + "reference": "99b2fa8acc244e656cdf324ff419fbe6fd300a4d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/config/zipball/99b2fa8acc244e656cdf324ff419fbe6fd300a4d", + "reference": "99b2fa8acc244e656cdf324ff419fbe6fd300a4d", + "shasum": "" + }, + "require": { + "php": "^5.5.9|>=7.0.8", + "symfony/filesystem": "~2.8|~3.0|~4.0", + "symfony/polyfill-ctype": "~1.8" + }, + "conflict": { + "symfony/dependency-injection": "<3.3", + "symfony/finder": "<3.3" + }, + "require-dev": { + "symfony/dependency-injection": "~3.3|~4.0", + "symfony/event-dispatcher": "~3.3|~4.0", + "symfony/finder": "~3.3|~4.0", + "symfony/yaml": "~3.0|~4.0" + }, + "suggest": { + "symfony/yaml": "To use the yaml reference dumper" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.4-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Config\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Config Component", + "homepage": "https://symfony.com", + "time": "2018-10-31T09:06:03+00:00" + }, + { + "name": "symfony/event-dispatcher", + "version": "v2.8.47", + "source": { + "type": "git", + "url": "https://github.com/symfony/event-dispatcher.git", + "reference": "76494bc38ff38d90d01913d23b5271acd4d78dd3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/76494bc38ff38d90d01913d23b5271acd4d78dd3", + "reference": "76494bc38ff38d90d01913d23b5271acd4d78dd3", + "shasum": "" + }, + "require": { + "php": ">=5.3.9" + }, + "require-dev": { + "psr/log": "~1.0", + "symfony/config": "^2.0.5|~3.0.0", + "symfony/dependency-injection": "~2.6|~3.0.0", + "symfony/expression-language": "~2.6|~3.0.0", + "symfony/stopwatch": "~2.3|~3.0.0" + }, + "suggest": { + "symfony/dependency-injection": "", + "symfony/http-kernel": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.8-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\EventDispatcher\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony EventDispatcher Component", + "homepage": "https://symfony.com", + "time": "2018-10-20T23:16:31+00:00" + }, + { + "name": "symfony/filesystem", + "version": "v3.4.18", + "source": { + "type": "git", + "url": "https://github.com/symfony/filesystem.git", + "reference": "d69930fc337d767607267d57c20a7403d0a822a4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/d69930fc337d767607267d57c20a7403d0a822a4", + "reference": "d69930fc337d767607267d57c20a7403d0a822a4", + "shasum": "" + }, + "require": { + "php": "^5.5.9|>=7.0.8", + "symfony/polyfill-ctype": "~1.8" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.4-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Filesystem\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Filesystem Component", + "homepage": "https://symfony.com", + "time": "2018-10-02T12:28:39+00:00" + }, + { + "name": "symfony/polyfill-ctype", + "version": "v1.10.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-ctype.git", + "reference": "e3d826245268269cd66f8326bd8bc066687b4a19" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/e3d826245268269cd66f8326bd8bc066687b4a19", + "reference": "e3d826245268269cd66f8326bd8bc066687b4a19", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "suggest": { + "ext-ctype": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.9-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Ctype\\": "" + }, + "files": [ + "bootstrap.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + }, + { + "name": "Gert de Pagter", + "email": "BackEndTea@gmail.com" + } + ], + "description": "Symfony polyfill for ctype functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "ctype", + "polyfill", + "portable" + ], + "time": "2018-08-06T14:22:27+00:00" + }, + { + "name": "symfony/stopwatch", + "version": "v3.4.18", + "source": { + "type": "git", + "url": "https://github.com/symfony/stopwatch.git", + "reference": "05e52a39de52ba690aebaed462b2bc8a9649f0a4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/stopwatch/zipball/05e52a39de52ba690aebaed462b2bc8a9649f0a4", + "reference": "05e52a39de52ba690aebaed462b2bc8a9649f0a4", + "shasum": "" + }, + "require": { + "php": "^5.5.9|>=7.0.8" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.4-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Stopwatch\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Stopwatch Component", + "homepage": "https://symfony.com", + "time": "2018-10-02T12:28:39+00:00" + }, + { + "name": "symfony/yaml", + "version": "v3.4.18", + "source": { + "type": "git", + "url": "https://github.com/symfony/yaml.git", + "reference": "640b6c27fed4066d64b64d5903a86043f4a4de7f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/yaml/zipball/640b6c27fed4066d64b64d5903a86043f4a4de7f", + "reference": "640b6c27fed4066d64b64d5903a86043f4a4de7f", + "shasum": "" + }, + "require": { + "php": "^5.5.9|>=7.0.8", + "symfony/polyfill-ctype": "~1.8" + }, + "conflict": { + "symfony/console": "<3.4" + }, + "require-dev": { + "symfony/console": "~3.4|~4.0" + }, + "suggest": { + "symfony/console": "For validating YAML files using the lint command" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.4-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Yaml\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Yaml Component", + "homepage": "https://symfony.com", + "time": "2018-10-02T16:33:53+00:00" + }, + { + "name": "victorjonsson/markdowndocs", + "version": "1.3.8", + "source": { + "type": "git", + "url": "https://github.com/victorjonsson/PHP-Markdown-Documentation-Generator.git", + "reference": "c5eb16ff5bd15ee60223883ddacba0ab8797268d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/victorjonsson/PHP-Markdown-Documentation-Generator/zipball/c5eb16ff5bd15ee60223883ddacba0ab8797268d", + "reference": "c5eb16ff5bd15ee60223883ddacba0ab8797268d", + "shasum": "" + }, + "require": { + "php": ">=5.5.0", + "symfony/console": ">=2.6" + }, + "require-dev": { + "phpunit/phpunit": "3.7.23" + }, + "bin": [ + "bin/phpdoc-md" + ], + "type": "library", + "autoload": { + "psr-0": { + "PHPDocsMD": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Victor Jonsson", + "email": "kontakt@victorjonsson.se" + } + ], + "description": "Command line tool for generating markdown-formatted class documentation", + "homepage": "https://github.com/victorjonsson/PHP-Markdown-Documentation-Generator", + "time": "2017-04-20T09:52:47+00:00" + }, + { + "name": "webmozart/assert", + "version": "1.3.0", + "source": { + "type": "git", + "url": "https://github.com/webmozart/assert.git", + "reference": "0df1908962e7a3071564e857d86874dad1ef204a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/webmozart/assert/zipball/0df1908962e7a3071564e857d86874dad1ef204a", + "reference": "0df1908962e7a3071564e857d86874dad1ef204a", + "shasum": "" + }, + "require": { + "php": "^5.3.3 || ^7.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.6", + "sebastian/version": "^1.0.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.3-dev" + } + }, + "autoload": { + "psr-4": { + "Webmozart\\Assert\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" + } + ], + "description": "Assertions to validate method input/output with nice error messages.", + "keywords": [ + "assert", + "check", + "validate" + ], + "time": "2018-01-29T19:49:41+00:00" + } + ], + "aliases": [], + "minimum-stability": "stable", + "stability-flags": [], + "prefer-stable": false, + "prefer-lowest": false, + "platform": { + "php": ">=5.4.0" + }, + "platform-dev": [], + "platform-overrides": { + "php": "5.6.32" + } +} diff --git a/vendor/consolidation/output-formatters/.scenarios.lock/symfony4/.gitignore b/vendor/consolidation/output-formatters/.scenarios.lock/symfony4/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..5657f6ea7d574e423dc2c297e2e19a9dbd7a7170 --- /dev/null +++ b/vendor/consolidation/output-formatters/.scenarios.lock/symfony4/.gitignore @@ -0,0 +1 @@ +vendor \ No newline at end of file diff --git a/vendor/consolidation/output-formatters/.scenarios.lock/symfony4/composer.json b/vendor/consolidation/output-formatters/.scenarios.lock/symfony4/composer.json new file mode 100644 index 0000000000000000000000000000000000000000..176720571555b8f262c9e08d5bdf99388045faee --- /dev/null +++ b/vendor/consolidation/output-formatters/.scenarios.lock/symfony4/composer.json @@ -0,0 +1,66 @@ +{ + "name": "consolidation/output-formatters", + "description": "Format text by applying transformations provided by plug-in formatters.", + "license": "MIT", + "authors": [ + { + "name": "Greg Anderson", + "email": "greg.1.anderson@greenknowe.org" + } + ], + "autoload": { + "psr-4": { + "Consolidation\\OutputFormatters\\": "../../src" + } + }, + "autoload-dev": { + "psr-4": { + "Consolidation\\TestUtils\\": "../../tests/src" + } + }, + "require": { + "symfony/console": "^4.0", + "php": ">=5.4.0", + "dflydev/dot-access-data": "^1.1.0", + "symfony/finder": "^2.5|^3|^4" + }, + "require-dev": { + "phpunit/phpunit": "^6", + "g1a/composer-test-scenarios": "^3", + "php-coveralls/php-coveralls": "^1", + "squizlabs/php_codesniffer": "^2.7", + "symfony/var-dumper": "^2.8|^3|^4", + "victorjonsson/markdowndocs": "^1.3" + }, + "suggest": { + "symfony/var-dumper": "For using the var_dump formatter" + }, + "config": { + "platform": { + "php": "7.1.3" + }, + "optimize-autoloader": true, + "sort-packages": true, + "vendor-dir": "../../vendor" + }, + "scripts": { + "api": "phpdoc-md generate src > docs/api.md", + "cs": "phpcs --standard=PSR2 -n src", + "cbf": "phpcbf --standard=PSR2 -n src", + "unit": "phpunit --colors=always", + "lint": [ + "find src -name '*.php' -print0 | xargs -0 -n1 php -l", + "find tests/src -name '*.php' -print0 | xargs -0 -n1 php -l" + ], + "test": [ + "@lint", + "@unit", + "@cs" + ] + }, + "extra": { + "branch-alias": { + "dev-master": "3.x-dev" + } + } +} diff --git a/vendor/consolidation/output-formatters/.scenarios.lock/symfony4/composer.lock b/vendor/consolidation/output-formatters/.scenarios.lock/symfony4/composer.lock new file mode 100644 index 0000000000000000000000000000000000000000..c43421e24c52f0c4cecf625e0243f731cefd117b --- /dev/null +++ b/vendor/consolidation/output-formatters/.scenarios.lock/symfony4/composer.lock @@ -0,0 +1,2566 @@ +{ + "_readme": [ + "This file locks the dependencies of your project to a known state", + "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", + "This file is @generated automatically" + ], + "content-hash": "8be5eb98a4ffa6ddd6a6c8f27bf99e5a", + "packages": [ + { + "name": "dflydev/dot-access-data", + "version": "v1.1.0", + "source": { + "type": "git", + "url": "https://github.com/dflydev/dflydev-dot-access-data.git", + "reference": "3fbd874921ab2c041e899d044585a2ab9795df8a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/dflydev/dflydev-dot-access-data/zipball/3fbd874921ab2c041e899d044585a2ab9795df8a", + "reference": "3fbd874921ab2c041e899d044585a2ab9795df8a", + "shasum": "" + }, + "require": { + "php": ">=5.3.2" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "psr-0": { + "Dflydev\\DotAccessData": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Dragonfly Development Inc.", + "email": "info@dflydev.com", + "homepage": "http://dflydev.com" + }, + { + "name": "Beau Simensen", + "email": "beau@dflydev.com", + "homepage": "http://beausimensen.com" + }, + { + "name": "Carlos Frutos", + "email": "carlos@kiwing.it", + "homepage": "https://github.com/cfrutos" + } + ], + "description": "Given a deep data structure, access data by dot notation.", + "homepage": "https://github.com/dflydev/dflydev-dot-access-data", + "keywords": [ + "access", + "data", + "dot", + "notation" + ], + "time": "2017-01-20T21:14:22+00:00" + }, + { + "name": "symfony/console", + "version": "v4.1.7", + "source": { + "type": "git", + "url": "https://github.com/symfony/console.git", + "reference": "432122af37d8cd52fba1b294b11976e0d20df595" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/console/zipball/432122af37d8cd52fba1b294b11976e0d20df595", + "reference": "432122af37d8cd52fba1b294b11976e0d20df595", + "shasum": "" + }, + "require": { + "php": "^7.1.3", + "symfony/polyfill-mbstring": "~1.0" + }, + "conflict": { + "symfony/dependency-injection": "<3.4", + "symfony/process": "<3.3" + }, + "require-dev": { + "psr/log": "~1.0", + "symfony/config": "~3.4|~4.0", + "symfony/dependency-injection": "~3.4|~4.0", + "symfony/event-dispatcher": "~3.4|~4.0", + "symfony/lock": "~3.4|~4.0", + "symfony/process": "~3.4|~4.0" + }, + "suggest": { + "psr/log-implementation": "For using the console logger", + "symfony/event-dispatcher": "", + "symfony/lock": "", + "symfony/process": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.1-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Console\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Console Component", + "homepage": "https://symfony.com", + "time": "2018-10-31T09:30:44+00:00" + }, + { + "name": "symfony/finder", + "version": "v4.1.7", + "source": { + "type": "git", + "url": "https://github.com/symfony/finder.git", + "reference": "1f17195b44543017a9c9b2d437c670627e96ad06" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/finder/zipball/1f17195b44543017a9c9b2d437c670627e96ad06", + "reference": "1f17195b44543017a9c9b2d437c670627e96ad06", + "shasum": "" + }, + "require": { + "php": "^7.1.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.1-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Finder\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Finder Component", + "homepage": "https://symfony.com", + "time": "2018-10-03T08:47:56+00:00" + }, + { + "name": "symfony/polyfill-mbstring", + "version": "v1.10.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-mbstring.git", + "reference": "c79c051f5b3a46be09205c73b80b346e4153e494" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/c79c051f5b3a46be09205c73b80b346e4153e494", + "reference": "c79c051f5b3a46be09205c73b80b346e4153e494", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "suggest": { + "ext-mbstring": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.9-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Mbstring\\": "" + }, + "files": [ + "bootstrap.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for the Mbstring extension", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "mbstring", + "polyfill", + "portable", + "shim" + ], + "time": "2018-09-21T13:07:52+00:00" + } + ], + "packages-dev": [ + { + "name": "doctrine/instantiator", + "version": "1.1.0", + "source": { + "type": "git", + "url": "https://github.com/doctrine/instantiator.git", + "reference": "185b8868aa9bf7159f5f953ed5afb2d7fcdc3bda" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/instantiator/zipball/185b8868aa9bf7159f5f953ed5afb2d7fcdc3bda", + "reference": "185b8868aa9bf7159f5f953ed5afb2d7fcdc3bda", + "shasum": "" + }, + "require": { + "php": "^7.1" + }, + "require-dev": { + "athletic/athletic": "~0.1.8", + "ext-pdo": "*", + "ext-phar": "*", + "phpunit/phpunit": "^6.2.3", + "squizlabs/php_codesniffer": "^3.0.2" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.2.x-dev" + } + }, + "autoload": { + "psr-4": { + "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com", + "homepage": "http://ocramius.github.com/" + } + ], + "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", + "homepage": "https://github.com/doctrine/instantiator", + "keywords": [ + "constructor", + "instantiate" + ], + "time": "2017-07-22T11:58:36+00:00" + }, + { + "name": "g1a/composer-test-scenarios", + "version": "3.0.0", + "source": { + "type": "git", + "url": "https://github.com/g1a/composer-test-scenarios.git", + "reference": "2a7156f1572898888ea50ad1d48a6b4d3f9fbf78" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/g1a/composer-test-scenarios/zipball/2a7156f1572898888ea50ad1d48a6b4d3f9fbf78", + "reference": "2a7156f1572898888ea50ad1d48a6b4d3f9fbf78", + "shasum": "" + }, + "require": { + "composer-plugin-api": "^1.0.0", + "php": ">=5.4" + }, + "require-dev": { + "composer/composer": "^1.7", + "php-coveralls/php-coveralls": "^1.0", + "phpunit/phpunit": "^4.8.36|^6", + "squizlabs/php_codesniffer": "^2.8" + }, + "bin": [ + "scripts/dependency-licenses" + ], + "type": "composer-plugin", + "extra": { + "class": "ComposerTestScenarios\\Plugin", + "branch-alias": { + "dev-master": "3.x-dev" + } + }, + "autoload": { + "psr-4": { + "ComposerTestScenarios\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Greg Anderson", + "email": "greg.1.anderson@greenknowe.org" + } + ], + "description": "Useful scripts for testing multiple sets of Composer dependencies.", + "time": "2018-11-22T05:10:20+00:00" + }, + { + "name": "guzzle/guzzle", + "version": "v3.9.3", + "source": { + "type": "git", + "url": "https://github.com/guzzle/guzzle3.git", + "reference": "0645b70d953bc1c067bbc8d5bc53194706b628d9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/guzzle3/zipball/0645b70d953bc1c067bbc8d5bc53194706b628d9", + "reference": "0645b70d953bc1c067bbc8d5bc53194706b628d9", + "shasum": "" + }, + "require": { + "ext-curl": "*", + "php": ">=5.3.3", + "symfony/event-dispatcher": "~2.1" + }, + "replace": { + "guzzle/batch": "self.version", + "guzzle/cache": "self.version", + "guzzle/common": "self.version", + "guzzle/http": "self.version", + "guzzle/inflection": "self.version", + "guzzle/iterator": "self.version", + "guzzle/log": "self.version", + "guzzle/parser": "self.version", + "guzzle/plugin": "self.version", + "guzzle/plugin-async": "self.version", + "guzzle/plugin-backoff": "self.version", + "guzzle/plugin-cache": "self.version", + "guzzle/plugin-cookie": "self.version", + "guzzle/plugin-curlauth": "self.version", + "guzzle/plugin-error-response": "self.version", + "guzzle/plugin-history": "self.version", + "guzzle/plugin-log": "self.version", + "guzzle/plugin-md5": "self.version", + "guzzle/plugin-mock": "self.version", + "guzzle/plugin-oauth": "self.version", + "guzzle/service": "self.version", + "guzzle/stream": "self.version" + }, + "require-dev": { + "doctrine/cache": "~1.3", + "monolog/monolog": "~1.0", + "phpunit/phpunit": "3.7.*", + "psr/log": "~1.0", + "symfony/class-loader": "~2.1", + "zendframework/zend-cache": "2.*,<2.3", + "zendframework/zend-log": "2.*,<2.3" + }, + "suggest": { + "guzzlehttp/guzzle": "Guzzle 5 has moved to a new package name. The package you have installed, Guzzle 3, is deprecated." + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.9-dev" + } + }, + "autoload": { + "psr-0": { + "Guzzle": "src/", + "Guzzle\\Tests": "tests/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "Guzzle Community", + "homepage": "https://github.com/guzzle/guzzle/contributors" + } + ], + "description": "PHP HTTP client. This library is deprecated in favor of https://packagist.org/packages/guzzlehttp/guzzle", + "homepage": "http://guzzlephp.org/", + "keywords": [ + "client", + "curl", + "framework", + "http", + "http client", + "rest", + "web service" + ], + "abandoned": "guzzlehttp/guzzle", + "time": "2015-03-18T18:23:50+00:00" + }, + { + "name": "myclabs/deep-copy", + "version": "1.8.1", + "source": { + "type": "git", + "url": "https://github.com/myclabs/DeepCopy.git", + "reference": "3e01bdad3e18354c3dce54466b7fbe33a9f9f7f8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/3e01bdad3e18354c3dce54466b7fbe33a9f9f7f8", + "reference": "3e01bdad3e18354c3dce54466b7fbe33a9f9f7f8", + "shasum": "" + }, + "require": { + "php": "^7.1" + }, + "replace": { + "myclabs/deep-copy": "self.version" + }, + "require-dev": { + "doctrine/collections": "^1.0", + "doctrine/common": "^2.6", + "phpunit/phpunit": "^7.1" + }, + "type": "library", + "autoload": { + "psr-4": { + "DeepCopy\\": "src/DeepCopy/" + }, + "files": [ + "src/DeepCopy/deep_copy.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Create deep copies (clones) of your objects", + "keywords": [ + "clone", + "copy", + "duplicate", + "object", + "object graph" + ], + "time": "2018-06-11T23:09:50+00:00" + }, + { + "name": "phar-io/manifest", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/phar-io/manifest.git", + "reference": "2df402786ab5368a0169091f61a7c1e0eb6852d0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phar-io/manifest/zipball/2df402786ab5368a0169091f61a7c1e0eb6852d0", + "reference": "2df402786ab5368a0169091f61a7c1e0eb6852d0", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-phar": "*", + "phar-io/version": "^1.0.1", + "php": "^5.6 || ^7.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "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": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", + "time": "2017-03-05T18:14:27+00:00" + }, + { + "name": "phar-io/version", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/phar-io/version.git", + "reference": "a70c0ced4be299a63d32fa96d9281d03e94041df" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phar-io/version/zipball/a70c0ced4be299a63d32fa96d9281d03e94041df", + "reference": "a70c0ced4be299a63d32fa96d9281d03e94041df", + "shasum": "" + }, + "require": { + "php": "^5.6 || ^7.0" + }, + "type": "library", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "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": "Library for handling version information and constraints", + "time": "2017-03-05T17:38:23+00:00" + }, + { + "name": "php-coveralls/php-coveralls", + "version": "v1.1.0", + "source": { + "type": "git", + "url": "https://github.com/php-coveralls/php-coveralls.git", + "reference": "37f8f83fe22224eb9d9c6d593cdeb33eedd2a9ad" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-coveralls/php-coveralls/zipball/37f8f83fe22224eb9d9c6d593cdeb33eedd2a9ad", + "reference": "37f8f83fe22224eb9d9c6d593cdeb33eedd2a9ad", + "shasum": "" + }, + "require": { + "ext-json": "*", + "ext-simplexml": "*", + "guzzle/guzzle": "^2.8 || ^3.0", + "php": "^5.3.3 || ^7.0", + "psr/log": "^1.0", + "symfony/config": "^2.1 || ^3.0 || ^4.0", + "symfony/console": "^2.1 || ^3.0 || ^4.0", + "symfony/stopwatch": "^2.0 || ^3.0 || ^4.0", + "symfony/yaml": "^2.0 || ^3.0 || ^4.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.35 || ^5.4.3 || ^6.0" + }, + "suggest": { + "symfony/http-kernel": "Allows Symfony integration" + }, + "bin": [ + "bin/coveralls" + ], + "type": "library", + "autoload": { + "psr-4": { + "Satooshi\\": "src/Satooshi/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Kitamura Satoshi", + "email": "with.no.parachute@gmail.com", + "homepage": "https://www.facebook.com/satooshi.jp" + } + ], + "description": "PHP client library for Coveralls API", + "homepage": "https://github.com/php-coveralls/php-coveralls", + "keywords": [ + "ci", + "coverage", + "github", + "test" + ], + "time": "2017-12-06T23:17:56+00:00" + }, + { + "name": "phpdocumentor/reflection-common", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/phpDocumentor/ReflectionCommon.git", + "reference": "21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6", + "reference": "21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6", + "shasum": "" + }, + "require": { + "php": ">=5.5" + }, + "require-dev": { + "phpunit/phpunit": "^4.6" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.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": "2017-09-11T18:02:19+00:00" + }, + { + "name": "phpdocumentor/reflection-docblock", + "version": "4.3.0", + "source": { + "type": "git", + "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", + "reference": "94fd0001232e47129dd3504189fa1c7225010d08" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/94fd0001232e47129dd3504189fa1c7225010d08", + "reference": "94fd0001232e47129dd3504189fa1c7225010d08", + "shasum": "" + }, + "require": { + "php": "^7.0", + "phpdocumentor/reflection-common": "^1.0.0", + "phpdocumentor/type-resolver": "^0.4.0", + "webmozart/assert": "^1.0" + }, + "require-dev": { + "doctrine/instantiator": "~1.0.5", + "mockery/mockery": "^1.0", + "phpunit/phpunit": "^6.4" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.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": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", + "time": "2017-11-30T07:14:17+00:00" + }, + { + "name": "phpdocumentor/type-resolver", + "version": "0.4.0", + "source": { + "type": "git", + "url": "https://github.com/phpDocumentor/TypeResolver.git", + "reference": "9c977708995954784726e25d0cd1dddf4e65b0f7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/9c977708995954784726e25d0cd1dddf4e65b0f7", + "reference": "9c977708995954784726e25d0cd1dddf4e65b0f7", + "shasum": "" + }, + "require": { + "php": "^5.5 || ^7.0", + "phpdocumentor/reflection-common": "^1.0" + }, + "require-dev": { + "mockery/mockery": "^0.9.4", + "phpunit/phpunit": "^5.2||^4.8.24" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.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" + } + ], + "time": "2017-07-14T14:27:02+00:00" + }, + { + "name": "phpspec/prophecy", + "version": "1.8.0", + "source": { + "type": "git", + "url": "https://github.com/phpspec/prophecy.git", + "reference": "4ba436b55987b4bf311cb7c6ba82aa528aac0a06" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpspec/prophecy/zipball/4ba436b55987b4bf311cb7c6ba82aa528aac0a06", + "reference": "4ba436b55987b4bf311cb7c6ba82aa528aac0a06", + "shasum": "" + }, + "require": { + "doctrine/instantiator": "^1.0.2", + "php": "^5.3|^7.0", + "phpdocumentor/reflection-docblock": "^2.0|^3.0.2|^4.0", + "sebastian/comparator": "^1.1|^2.0|^3.0", + "sebastian/recursion-context": "^1.0|^2.0|^3.0" + }, + "require-dev": { + "phpspec/phpspec": "^2.5|^3.2", + "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5 || ^7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.8.x-dev" + } + }, + "autoload": { + "psr-0": { + "Prophecy\\": "src/" + } + }, + "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" + ], + "time": "2018-08-05T17:53:17+00:00" + }, + { + "name": "phpunit/php-code-coverage", + "version": "5.3.2", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-code-coverage.git", + "reference": "c89677919c5dd6d3b3852f230a663118762218ac" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/c89677919c5dd6d3b3852f230a663118762218ac", + "reference": "c89677919c5dd6d3b3852f230a663118762218ac", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-xmlwriter": "*", + "php": "^7.0", + "phpunit/php-file-iterator": "^1.4.2", + "phpunit/php-text-template": "^1.2.1", + "phpunit/php-token-stream": "^2.0.1", + "sebastian/code-unit-reverse-lookup": "^1.0.1", + "sebastian/environment": "^3.0", + "sebastian/version": "^2.0.1", + "theseer/tokenizer": "^1.1" + }, + "require-dev": { + "phpunit/phpunit": "^6.0" + }, + "suggest": { + "ext-xdebug": "^2.5.5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.3.x-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" + ], + "time": "2018-04-06T15:36:58+00:00" + }, + { + "name": "phpunit/php-file-iterator", + "version": "1.4.5", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-file-iterator.git", + "reference": "730b01bc3e867237eaac355e06a36b85dd93a8b4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/730b01bc3e867237eaac355e06a36b85dd93a8b4", + "reference": "730b01bc3e867237eaac355e06a36b85dd93a8b4", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.4.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sb@sebastian-bergmann.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" + ], + "time": "2017-11-27T13:52:08+00:00" + }, + { + "name": "phpunit/php-text-template", + "version": "1.2.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-text-template.git", + "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686", + "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "type": "library", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Simple template engine.", + "homepage": "https://github.com/sebastianbergmann/php-text-template/", + "keywords": [ + "template" + ], + "time": "2015-06-21T13:50:34+00:00" + }, + { + "name": "phpunit/php-timer", + "version": "1.0.9", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-timer.git", + "reference": "3dcf38ca72b158baf0bc245e9184d3fdffa9c46f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/3dcf38ca72b158baf0bc245e9184d3fdffa9c46f", + "reference": "3dcf38ca72b158baf0bc245e9184d3fdffa9c46f", + "shasum": "" + }, + "require": { + "php": "^5.3.3 || ^7.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0" + }, + "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": "sb@sebastian-bergmann.de", + "role": "lead" + } + ], + "description": "Utility class for timing", + "homepage": "https://github.com/sebastianbergmann/php-timer/", + "keywords": [ + "timer" + ], + "time": "2017-02-26T11:10:40+00:00" + }, + { + "name": "phpunit/php-token-stream", + "version": "2.0.2", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-token-stream.git", + "reference": "791198a2c6254db10131eecfe8c06670700904db" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/791198a2c6254db10131eecfe8c06670700904db", + "reference": "791198a2c6254db10131eecfe8c06670700904db", + "shasum": "" + }, + "require": { + "ext-tokenizer": "*", + "php": "^7.0" + }, + "require-dev": { + "phpunit/phpunit": "^6.2.4" + }, + "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": "Wrapper around PHP's tokenizer extension.", + "homepage": "https://github.com/sebastianbergmann/php-token-stream/", + "keywords": [ + "tokenizer" + ], + "time": "2017-11-27T05:48:46+00:00" + }, + { + "name": "phpunit/phpunit", + "version": "6.5.13", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/phpunit.git", + "reference": "0973426fb012359b2f18d3bd1e90ef1172839693" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/0973426fb012359b2f18d3bd1e90ef1172839693", + "reference": "0973426fb012359b2f18d3bd1e90ef1172839693", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-json": "*", + "ext-libxml": "*", + "ext-mbstring": "*", + "ext-xml": "*", + "myclabs/deep-copy": "^1.6.1", + "phar-io/manifest": "^1.0.1", + "phar-io/version": "^1.0", + "php": "^7.0", + "phpspec/prophecy": "^1.7", + "phpunit/php-code-coverage": "^5.3", + "phpunit/php-file-iterator": "^1.4.3", + "phpunit/php-text-template": "^1.2.1", + "phpunit/php-timer": "^1.0.9", + "phpunit/phpunit-mock-objects": "^5.0.9", + "sebastian/comparator": "^2.1", + "sebastian/diff": "^2.0", + "sebastian/environment": "^3.1", + "sebastian/exporter": "^3.1", + "sebastian/global-state": "^2.0", + "sebastian/object-enumerator": "^3.0.3", + "sebastian/resource-operations": "^1.0", + "sebastian/version": "^2.0.1" + }, + "conflict": { + "phpdocumentor/reflection-docblock": "3.0.2", + "phpunit/dbunit": "<3.0" + }, + "require-dev": { + "ext-pdo": "*" + }, + "suggest": { + "ext-xdebug": "*", + "phpunit/php-invoker": "^1.1" + }, + "bin": [ + "phpunit" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "6.5.x-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": "The PHP Unit Testing framework.", + "homepage": "https://phpunit.de/", + "keywords": [ + "phpunit", + "testing", + "xunit" + ], + "time": "2018-09-08T15:10:43+00:00" + }, + { + "name": "phpunit/phpunit-mock-objects", + "version": "5.0.10", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git", + "reference": "cd1cf05c553ecfec36b170070573e540b67d3f1f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/cd1cf05c553ecfec36b170070573e540b67d3f1f", + "reference": "cd1cf05c553ecfec36b170070573e540b67d3f1f", + "shasum": "" + }, + "require": { + "doctrine/instantiator": "^1.0.5", + "php": "^7.0", + "phpunit/php-text-template": "^1.2.1", + "sebastian/exporter": "^3.1" + }, + "conflict": { + "phpunit/phpunit": "<6.0" + }, + "require-dev": { + "phpunit/phpunit": "^6.5.11" + }, + "suggest": { + "ext-soap": "*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.0.x-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": "Mock Object library for PHPUnit", + "homepage": "https://github.com/sebastianbergmann/phpunit-mock-objects/", + "keywords": [ + "mock", + "xunit" + ], + "time": "2018-08-09T05:50:03+00:00" + }, + { + "name": "psr/log", + "version": "1.1.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/log.git", + "reference": "6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/log/zipball/6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd", + "reference": "6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Log\\": "Psr/Log/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common interface for logging libraries", + "homepage": "https://github.com/php-fig/log", + "keywords": [ + "log", + "psr", + "psr-3" + ], + "time": "2018-11-20T15:27:04+00:00" + }, + { + "name": "sebastian/code-unit-reverse-lookup", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", + "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/4419fcdb5eabb9caa61a27c7a1db532a6b55dd18", + "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18", + "shasum": "" + }, + "require": { + "php": "^5.6 || ^7.0" + }, + "require-dev": { + "phpunit/phpunit": "^5.7 || ^6.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-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/", + "time": "2017-03-04T06:30:41+00:00" + }, + { + "name": "sebastian/comparator", + "version": "2.1.3", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/comparator.git", + "reference": "34369daee48eafb2651bea869b4b15d75ccc35f9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/34369daee48eafb2651bea869b4b15d75ccc35f9", + "reference": "34369daee48eafb2651bea869b4b15d75ccc35f9", + "shasum": "" + }, + "require": { + "php": "^7.0", + "sebastian/diff": "^2.0 || ^3.0", + "sebastian/exporter": "^3.1" + }, + "require-dev": { + "phpunit/phpunit": "^6.4" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.1.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Volker Dusch", + "email": "github@wallbash.com" + }, + { + "name": "Bernhard Schussek", + "email": "bschussek@2bepublished.at" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Provides the functionality to compare PHP values for equality", + "homepage": "https://github.com/sebastianbergmann/comparator", + "keywords": [ + "comparator", + "compare", + "equality" + ], + "time": "2018-02-01T13:46:46+00:00" + }, + { + "name": "sebastian/diff", + "version": "2.0.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/diff.git", + "reference": "347c1d8b49c5c3ee30c7040ea6fc446790e6bddd" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/347c1d8b49c5c3ee30c7040ea6fc446790e6bddd", + "reference": "347c1d8b49c5c3ee30c7040ea6fc446790e6bddd", + "shasum": "" + }, + "require": { + "php": "^7.0" + }, + "require-dev": { + "phpunit/phpunit": "^6.2" + }, + "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": "Kore Nordmann", + "email": "mail@kore-nordmann.de" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Diff implementation", + "homepage": "https://github.com/sebastianbergmann/diff", + "keywords": [ + "diff" + ], + "time": "2017-08-03T08:09:46+00:00" + }, + { + "name": "sebastian/environment", + "version": "3.1.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/environment.git", + "reference": "cd0871b3975fb7fc44d11314fd1ee20925fce4f5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/cd0871b3975fb7fc44d11314fd1ee20925fce4f5", + "reference": "cd0871b3975fb7fc44d11314fd1ee20925fce4f5", + "shasum": "" + }, + "require": { + "php": "^7.0" + }, + "require-dev": { + "phpunit/phpunit": "^6.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.1.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Provides functionality to handle HHVM/PHP environments", + "homepage": "http://www.github.com/sebastianbergmann/environment", + "keywords": [ + "Xdebug", + "environment", + "hhvm" + ], + "time": "2017-07-01T08:51:00+00:00" + }, + { + "name": "sebastian/exporter", + "version": "3.1.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/exporter.git", + "reference": "234199f4528de6d12aaa58b612e98f7d36adb937" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/234199f4528de6d12aaa58b612e98f7d36adb937", + "reference": "234199f4528de6d12aaa58b612e98f7d36adb937", + "shasum": "" + }, + "require": { + "php": "^7.0", + "sebastian/recursion-context": "^3.0" + }, + "require-dev": { + "ext-mbstring": "*", + "phpunit/phpunit": "^6.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.1.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Volker Dusch", + "email": "github@wallbash.com" + }, + { + "name": "Bernhard Schussek", + "email": "bschussek@2bepublished.at" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Adam Harvey", + "email": "aharvey@php.net" + } + ], + "description": "Provides the functionality to export PHP variables for visualization", + "homepage": "http://www.github.com/sebastianbergmann/exporter", + "keywords": [ + "export", + "exporter" + ], + "time": "2017-04-03T13:19:02+00:00" + }, + { + "name": "sebastian/global-state", + "version": "2.0.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/global-state.git", + "reference": "e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4", + "reference": "e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4", + "shasum": "" + }, + "require": { + "php": "^7.0" + }, + "require-dev": { + "phpunit/phpunit": "^6.0" + }, + "suggest": { + "ext-uopz": "*" + }, + "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": "Snapshotting of global state", + "homepage": "http://www.github.com/sebastianbergmann/global-state", + "keywords": [ + "global state" + ], + "time": "2017-04-27T15:39:26+00:00" + }, + { + "name": "sebastian/object-enumerator", + "version": "3.0.3", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/object-enumerator.git", + "reference": "7cfd9e65d11ffb5af41198476395774d4c8a84c5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/7cfd9e65d11ffb5af41198476395774d4c8a84c5", + "reference": "7cfd9e65d11ffb5af41198476395774d4c8a84c5", + "shasum": "" + }, + "require": { + "php": "^7.0", + "sebastian/object-reflector": "^1.1.1", + "sebastian/recursion-context": "^3.0" + }, + "require-dev": { + "phpunit/phpunit": "^6.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Traverses array structures and object graphs to enumerate all referenced objects", + "homepage": "https://github.com/sebastianbergmann/object-enumerator/", + "time": "2017-08-03T12:35:26+00:00" + }, + { + "name": "sebastian/object-reflector", + "version": "1.1.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/object-reflector.git", + "reference": "773f97c67f28de00d397be301821b06708fca0be" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/773f97c67f28de00d397be301821b06708fca0be", + "reference": "773f97c67f28de00d397be301821b06708fca0be", + "shasum": "" + }, + "require": { + "php": "^7.0" + }, + "require-dev": { + "phpunit/phpunit": "^6.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.1-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Allows reflection of object attributes, including inherited and non-public ones", + "homepage": "https://github.com/sebastianbergmann/object-reflector/", + "time": "2017-03-29T09:07:27+00:00" + }, + { + "name": "sebastian/recursion-context", + "version": "3.0.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/recursion-context.git", + "reference": "5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8", + "reference": "5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8", + "shasum": "" + }, + "require": { + "php": "^7.0" + }, + "require-dev": { + "phpunit/phpunit": "^6.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Adam Harvey", + "email": "aharvey@php.net" + } + ], + "description": "Provides functionality to recursively process PHP variables", + "homepage": "http://www.github.com/sebastianbergmann/recursion-context", + "time": "2017-03-03T06:23:57+00:00" + }, + { + "name": "sebastian/resource-operations", + "version": "1.0.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/resource-operations.git", + "reference": "ce990bb21759f94aeafd30209e8cfcdfa8bc3f52" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/ce990bb21759f94aeafd30209e8cfcdfa8bc3f52", + "reference": "ce990bb21759f94aeafd30209e8cfcdfa8bc3f52", + "shasum": "" + }, + "require": { + "php": ">=5.6.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Provides a list of PHP built-in functions that operate on resources", + "homepage": "https://www.github.com/sebastianbergmann/resource-operations", + "time": "2015-07-28T20:34:47+00:00" + }, + { + "name": "sebastian/version", + "version": "2.0.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/version.git", + "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/99732be0ddb3361e16ad77b68ba41efc8e979019", + "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019", + "shasum": "" + }, + "require": { + "php": ">=5.6" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-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 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" + }, + { + "name": "squizlabs/php_codesniffer", + "version": "2.9.2", + "source": { + "type": "git", + "url": "https://github.com/squizlabs/PHP_CodeSniffer.git", + "reference": "2acf168de78487db620ab4bc524135a13cfe6745" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/2acf168de78487db620ab4bc524135a13cfe6745", + "reference": "2acf168de78487db620ab4bc524135a13cfe6745", + "shasum": "" + }, + "require": { + "ext-simplexml": "*", + "ext-tokenizer": "*", + "ext-xmlwriter": "*", + "php": ">=5.1.2" + }, + "require-dev": { + "phpunit/phpunit": "~4.0" + }, + "bin": [ + "scripts/phpcs", + "scripts/phpcbf" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.x-dev" + } + }, + "autoload": { + "classmap": [ + "CodeSniffer.php", + "CodeSniffer/CLI.php", + "CodeSniffer/Exception.php", + "CodeSniffer/File.php", + "CodeSniffer/Fixer.php", + "CodeSniffer/Report.php", + "CodeSniffer/Reporting.php", + "CodeSniffer/Sniff.php", + "CodeSniffer/Tokens.php", + "CodeSniffer/Reports/", + "CodeSniffer/Tokenizers/", + "CodeSniffer/DocGenerators/", + "CodeSniffer/Standards/AbstractPatternSniff.php", + "CodeSniffer/Standards/AbstractScopeSniff.php", + "CodeSniffer/Standards/AbstractVariableSniff.php", + "CodeSniffer/Standards/IncorrectPatternException.php", + "CodeSniffer/Standards/Generic/Sniffs/", + "CodeSniffer/Standards/MySource/Sniffs/", + "CodeSniffer/Standards/PEAR/Sniffs/", + "CodeSniffer/Standards/PSR1/Sniffs/", + "CodeSniffer/Standards/PSR2/Sniffs/", + "CodeSniffer/Standards/Squiz/Sniffs/", + "CodeSniffer/Standards/Zend/Sniffs/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Greg Sherwood", + "role": "lead" + } + ], + "description": "PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.", + "homepage": "http://www.squizlabs.com/php-codesniffer", + "keywords": [ + "phpcs", + "standards" + ], + "time": "2018-11-07T22:31:41+00:00" + }, + { + "name": "symfony/config", + "version": "v4.1.7", + "source": { + "type": "git", + "url": "https://github.com/symfony/config.git", + "reference": "991fec8bbe77367fc8b48ecbaa8a4bd6e905a238" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/config/zipball/991fec8bbe77367fc8b48ecbaa8a4bd6e905a238", + "reference": "991fec8bbe77367fc8b48ecbaa8a4bd6e905a238", + "shasum": "" + }, + "require": { + "php": "^7.1.3", + "symfony/filesystem": "~3.4|~4.0", + "symfony/polyfill-ctype": "~1.8" + }, + "conflict": { + "symfony/finder": "<3.4" + }, + "require-dev": { + "symfony/dependency-injection": "~3.4|~4.0", + "symfony/event-dispatcher": "~3.4|~4.0", + "symfony/finder": "~3.4|~4.0", + "symfony/yaml": "~3.4|~4.0" + }, + "suggest": { + "symfony/yaml": "To use the yaml reference dumper" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.1-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Config\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Config Component", + "homepage": "https://symfony.com", + "time": "2018-10-31T09:09:42+00:00" + }, + { + "name": "symfony/event-dispatcher", + "version": "v2.8.47", + "source": { + "type": "git", + "url": "https://github.com/symfony/event-dispatcher.git", + "reference": "76494bc38ff38d90d01913d23b5271acd4d78dd3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/76494bc38ff38d90d01913d23b5271acd4d78dd3", + "reference": "76494bc38ff38d90d01913d23b5271acd4d78dd3", + "shasum": "" + }, + "require": { + "php": ">=5.3.9" + }, + "require-dev": { + "psr/log": "~1.0", + "symfony/config": "^2.0.5|~3.0.0", + "symfony/dependency-injection": "~2.6|~3.0.0", + "symfony/expression-language": "~2.6|~3.0.0", + "symfony/stopwatch": "~2.3|~3.0.0" + }, + "suggest": { + "symfony/dependency-injection": "", + "symfony/http-kernel": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.8-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\EventDispatcher\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony EventDispatcher Component", + "homepage": "https://symfony.com", + "time": "2018-10-20T23:16:31+00:00" + }, + { + "name": "symfony/filesystem", + "version": "v4.1.7", + "source": { + "type": "git", + "url": "https://github.com/symfony/filesystem.git", + "reference": "fd7bd6535beb1f0a0a9e3ee960666d0598546981" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/fd7bd6535beb1f0a0a9e3ee960666d0598546981", + "reference": "fd7bd6535beb1f0a0a9e3ee960666d0598546981", + "shasum": "" + }, + "require": { + "php": "^7.1.3", + "symfony/polyfill-ctype": "~1.8" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.1-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Filesystem\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Filesystem Component", + "homepage": "https://symfony.com", + "time": "2018-10-30T13:18:25+00:00" + }, + { + "name": "symfony/polyfill-ctype", + "version": "v1.10.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-ctype.git", + "reference": "e3d826245268269cd66f8326bd8bc066687b4a19" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/e3d826245268269cd66f8326bd8bc066687b4a19", + "reference": "e3d826245268269cd66f8326bd8bc066687b4a19", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "suggest": { + "ext-ctype": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.9-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Ctype\\": "" + }, + "files": [ + "bootstrap.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + }, + { + "name": "Gert de Pagter", + "email": "BackEndTea@gmail.com" + } + ], + "description": "Symfony polyfill for ctype functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "ctype", + "polyfill", + "portable" + ], + "time": "2018-08-06T14:22:27+00:00" + }, + { + "name": "symfony/polyfill-php72", + "version": "v1.10.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php72.git", + "reference": "9050816e2ca34a8e916c3a0ae8b9c2fccf68b631" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/9050816e2ca34a8e916c3a0ae8b9c2fccf68b631", + "reference": "9050816e2ca34a8e916c3a0ae8b9c2fccf68b631", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.9-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Php72\\": "" + }, + "files": [ + "bootstrap.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 7.2+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "time": "2018-09-21T13:07:52+00:00" + }, + { + "name": "symfony/stopwatch", + "version": "v4.1.7", + "source": { + "type": "git", + "url": "https://github.com/symfony/stopwatch.git", + "reference": "5bfc064125b73ff81229e19381ce1c34d3416f4b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/stopwatch/zipball/5bfc064125b73ff81229e19381ce1c34d3416f4b", + "reference": "5bfc064125b73ff81229e19381ce1c34d3416f4b", + "shasum": "" + }, + "require": { + "php": "^7.1.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.1-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Stopwatch\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Stopwatch Component", + "homepage": "https://symfony.com", + "time": "2018-10-02T12:40:59+00:00" + }, + { + "name": "symfony/var-dumper", + "version": "v4.1.7", + "source": { + "type": "git", + "url": "https://github.com/symfony/var-dumper.git", + "reference": "60319b45653580b0cdacca499344577d87732f16" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/60319b45653580b0cdacca499344577d87732f16", + "reference": "60319b45653580b0cdacca499344577d87732f16", + "shasum": "" + }, + "require": { + "php": "^7.1.3", + "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-php72": "~1.5" + }, + "conflict": { + "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0", + "symfony/console": "<3.4" + }, + "require-dev": { + "ext-iconv": "*", + "symfony/process": "~3.4|~4.0", + "twig/twig": "~1.34|~2.4" + }, + "suggest": { + "ext-iconv": "To convert non-UTF-8 strings to UTF-8 (or symfony/polyfill-iconv in case ext-iconv cannot be used).", + "ext-intl": "To show region name in time zone dump", + "symfony/console": "To use the ServerDumpCommand and/or the bin/var-dump-server script" + }, + "bin": [ + "Resources/bin/var-dump-server" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.1-dev" + } + }, + "autoload": { + "files": [ + "Resources/functions/dump.php" + ], + "psr-4": { + "Symfony\\Component\\VarDumper\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony mechanism for exploring and dumping PHP variables", + "homepage": "https://symfony.com", + "keywords": [ + "debug", + "dump" + ], + "time": "2018-10-02T16:36:10+00:00" + }, + { + "name": "symfony/yaml", + "version": "v4.1.7", + "source": { + "type": "git", + "url": "https://github.com/symfony/yaml.git", + "reference": "367e689b2fdc19965be435337b50bc8adf2746c9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/yaml/zipball/367e689b2fdc19965be435337b50bc8adf2746c9", + "reference": "367e689b2fdc19965be435337b50bc8adf2746c9", + "shasum": "" + }, + "require": { + "php": "^7.1.3", + "symfony/polyfill-ctype": "~1.8" + }, + "conflict": { + "symfony/console": "<3.4" + }, + "require-dev": { + "symfony/console": "~3.4|~4.0" + }, + "suggest": { + "symfony/console": "For validating YAML files using the lint command" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.1-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Yaml\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Yaml Component", + "homepage": "https://symfony.com", + "time": "2018-10-02T16:36:10+00:00" + }, + { + "name": "theseer/tokenizer", + "version": "1.1.0", + "source": { + "type": "git", + "url": "https://github.com/theseer/tokenizer.git", + "reference": "cb2f008f3f05af2893a87208fe6a6c4985483f8b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/theseer/tokenizer/zipball/cb2f008f3f05af2893a87208fe6a6c4985483f8b", + "reference": "cb2f008f3f05af2893a87208fe6a6c4985483f8b", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-tokenizer": "*", + "ext-xmlwriter": "*", + "php": "^7.0" + }, + "type": "library", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" + } + ], + "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", + "time": "2017-04-07T12:08:54+00:00" + }, + { + "name": "victorjonsson/markdowndocs", + "version": "1.3.8", + "source": { + "type": "git", + "url": "https://github.com/victorjonsson/PHP-Markdown-Documentation-Generator.git", + "reference": "c5eb16ff5bd15ee60223883ddacba0ab8797268d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/victorjonsson/PHP-Markdown-Documentation-Generator/zipball/c5eb16ff5bd15ee60223883ddacba0ab8797268d", + "reference": "c5eb16ff5bd15ee60223883ddacba0ab8797268d", + "shasum": "" + }, + "require": { + "php": ">=5.5.0", + "symfony/console": ">=2.6" + }, + "require-dev": { + "phpunit/phpunit": "3.7.23" + }, + "bin": [ + "bin/phpdoc-md" + ], + "type": "library", + "autoload": { + "psr-0": { + "PHPDocsMD": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Victor Jonsson", + "email": "kontakt@victorjonsson.se" + } + ], + "description": "Command line tool for generating markdown-formatted class documentation", + "homepage": "https://github.com/victorjonsson/PHP-Markdown-Documentation-Generator", + "time": "2017-04-20T09:52:47+00:00" + }, + { + "name": "webmozart/assert", + "version": "1.3.0", + "source": { + "type": "git", + "url": "https://github.com/webmozart/assert.git", + "reference": "0df1908962e7a3071564e857d86874dad1ef204a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/webmozart/assert/zipball/0df1908962e7a3071564e857d86874dad1ef204a", + "reference": "0df1908962e7a3071564e857d86874dad1ef204a", + "shasum": "" + }, + "require": { + "php": "^5.3.3 || ^7.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.6", + "sebastian/version": "^1.0.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.3-dev" + } + }, + "autoload": { + "psr-4": { + "Webmozart\\Assert\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" + } + ], + "description": "Assertions to validate method input/output with nice error messages.", + "keywords": [ + "assert", + "check", + "validate" + ], + "time": "2018-01-29T19:49:41+00:00" + } + ], + "aliases": [], + "minimum-stability": "stable", + "stability-flags": [], + "prefer-stable": false, + "prefer-lowest": false, + "platform": { + "php": ">=5.4.0" + }, + "platform-dev": [], + "platform-overrides": { + "php": "7.1.3" + } +} diff --git a/vendor/consolidation/output-formatters/CHANGELOG.md b/vendor/consolidation/output-formatters/CHANGELOG.md index 8e245f7a4af07d4de8e0afd262978b8676ef80f3..c7dfff53f059976b598a852fd0a0d7a0fb3a4fcb 100644 --- a/vendor/consolidation/output-formatters/CHANGELOG.md +++ b/vendor/consolidation/output-formatters/CHANGELOG.md @@ -1,5 +1,33 @@ # Change Log +### 3.5.0 - 30 May 2019 + +- Add `@default-table-fields` to specify the fields to use with the table formatter and other "human readable" output formats. + +### 3.4.1 - 13 March 2019 + +- Add enclosure and escape character options for CsvFormatter. (#79) + +### 3.4.0 - 19 October 2018 + +- Add an UnstucturedInterface marker interface, and update the 'string' format to not accept data types that implement this interface unless they also implement StringTransformationInterface. + +### 3.3.2 - 18 October 2018 + +- Add a 'null' output formatter that accepts all data types and never produces output + +### 3.3.0 & 3.3.1 - 15 October 2018 + +- Add UnstructuredListData and UnstructuredData to replace deprecated ListDataFromKeys +- Support --field and --fields in commands that return UnstructuredData / UnstructuredListData +- Support field remapping, e.g. `--fields=original as remapped` +- Support field addressing, e.g. `--fields=a.b.c` +- Automatically convert from RowsOfFields to UnstruturedListData and from PropertyList to UnstructuredData when user utilizes field remapping or field addressing features. + +### 3.2.1 - 25 May 2018 + +- Rename g1a/composer-test-scenarios + ### 3.2.0 - 20 March 2018 - Add RowsOfFieldsWithMetadata: allows commands to return an object with metadata that shows up in yaml/json (& etc.) formats, but is not shown in table/csv (& etc.). diff --git a/vendor/consolidation/output-formatters/LICENSE b/vendor/consolidation/output-formatters/LICENSE index 2f6addec0732e9c6528053b6620720fc40b94c50..5f6b7d1744b0c98ac715a8c429df230f665d588c 100644 --- a/vendor/consolidation/output-formatters/LICENSE +++ b/vendor/consolidation/output-formatters/LICENSE @@ -9,9 +9,10 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI DEPENDENCY LICENSES: -Name Version License -psr/log 1.0.2 MIT -symfony/console v3.2.3 MIT -symfony/debug v3.4.11 MIT -symfony/finder v3.4.11 MIT -symfony/polyfill-mbstring v1.8.0 MIT +Name Version License +dflydev/dot-access-data v1.1.0 MIT +psr/log 1.1.0 MIT +symfony/console v3.4.18 MIT +symfony/debug v3.4.18 MIT +symfony/finder v3.4.18 MIT +symfony/polyfill-mbstring v1.10.0 MIT \ No newline at end of file diff --git a/vendor/consolidation/output-formatters/README.md b/vendor/consolidation/output-formatters/README.md index 6fbe718a065ead2f6fa7daf03bda0ab282d73611..59bcc7d40b2f36300761f695a43f510fbb5eb430 100644 --- a/vendor/consolidation/output-formatters/README.md +++ b/vendor/consolidation/output-formatters/README.md @@ -26,7 +26,7 @@ This is a library intended to be used in some other project. Require from your "consolidation/output-formatters": "~3" }, ``` -If you require the feature that allows a data table to be automatically reduced to a single element when the `string` format is selected, then you should require version "~2" instead. In most other respects, the 1.x and 2.x versions are compatible. See the [CHANGELOG](CHANGELOG.md) for details. +If you require the feature that allows a data table to be automatically reduced to a single element when the `string` format is selected, then you should require version ^2 instead. In most other respects, the 1.x and 2.x versions are compatible. See the [CHANGELOG](CHANGELOG.md) for details. ## Example Formatter @@ -47,20 +47,54 @@ Formatters may also implement different interfaces to alter the behavior of the - `ValidationInterface`: A formatter should implement this interface to test to see if the provided data type can be processed. Any formatter that does **not** implement this interface is presumed to operate exclusively on php arrays. The formatter manager will always convert any provided data into an array before passing it to a formatter that does not implement ValidationInterface. These formatters will not be made available when the returned data type cannot be converted into an array. - `OverrideRestructureInterface`: A formatter that implements this interface will be given the option to act on the provided structured data object before it restructures itself. See the section below on structured data for details on data restructuring. +- `UnstructuredInterface`: A formatter that implements this interface will not be able to be formatted by the `string` formatter by default. Data structures that do not implement this interface will be automatically converted to a string when applicable; if this conversion fails, then no output is produced. +- `StringTransformationInterface`: Implementing this interface allows a data type to provide a specific implementation for the conversion of the data to a string. Data types that implement both `UnstructuredInterface` and `StringTransformationInterface` may be used with the `string` format. -## Structured Data +## Configuring Formats for a Command + +Commands declare what type of data they return using a `@return` annotation, as usual: +```php + /** + * Demonstrate formatters. Default format is 'table'. + * + * @field-labels + * first: I + * second: II + * third: III + * @default-string-field second + * @usage try:formatters --format=yaml + * @usage try:formatters --format=csv + * @usage try:formatters --fields=first,third + * @usage try:formatters --fields=III,II + * + * @return \Consolidation\OutputFormatters\StructuredData\RowsOfFields + */ + public function tryFormatters($somthing = 'default', $options = ['format' => 'table', 'fields' => '']) + { + $outputData = [ + 'en' => [ 'first' => 'One', 'second' => 'Two', 'third' => 'Three' ], + 'de' => [ 'first' => 'Eins', 'second' => 'Zwei', 'third' => 'Drei' ], + 'jp' => [ 'first' => 'Ichi', 'second' => 'Ni', 'third' => 'San' ], + 'es' => [ 'first' => 'Uno', 'second' => 'Dos', 'third' => 'Tres' ], + ]; + return new RowsOfFields($outputData); + } +``` +The output-formatters library determines which output formats are applicable to the command by querying all available formats, and selecting any that are able to process the data type that is returned. Thus, if a new format is added to a program, it will automatically be available via any command that it works with. It is not necessary to hand-select the available formats on every command individually. + +### Structured Data Most formatters will operate on any array or ArrayObject data. Some formatters require that specific data types be used. The following data types, all of which are subclasses of ArrayObject, are available for use: - `RowsOfFields`: Each row contains an associative array of field:value pairs. It is also assumed that the fields of each row are the same for every row. This format is ideal for displaying in a table, with labels in the top row. -- `RowsOfFieldsWithMetadata`: Equivalent to `RowsOfFields`, but allows the data to be nested inside of an element, with other elements being used as metadata, or, alternately, allows the metadata to be nested inside of an element, with all other elements being used as data. +- `RowsOfFieldsWithMetadata`: Equivalent to `RowsOfFields`, but allows for metadata to be attached to the result. The metadata is not displayed in table format, but is evident if the data is converted to another format (e.g. `yaml` or `json`). The table data may either be nested inside of a specially-designated element, with other elements being used as metadata, or, alternately, the metadata may be nested inside of an element, with all other elements being used as data. - `PropertyList`: Each row contains a field:value pair. Each field is unique. This format is ideal for displaying in a table, with labels in the first column and values in the second common. -- `ListDataFromKeys`: The result may be structured or unstructured data. When formatted with the --format=list formatter, the result will come from the array keys instead of the array values. +- `UnstructuredListData`: The result is assumed to be a list of items, with the key of each row being used as the row id. The data elements may contain any sort of array data. The elements on each row do not need to be uniform, and the data may be nested to arbitrary depths. +- `UnstruturedData`: The result is an unstructured array nested to arbitrary levels. - `DOMDocument`: The standard PHP DOM document class may be used by functions that need to be able to presicely specify the exact attributes and children when the XML output format is used. +- `ListDataFromKeys`: This data structure is deprecated. Use `UnstructuredListData` instead. -Commands that return table structured data with fields can be filtered and/or re-ordered by using the --fields option. These structured data types can also be formatted into a more generic type such as yaml or json, even after being filtered. This capabilities are not available if the data is returned in a bare php array. - -The formatter manager will do its best to convert from an array to a DOMDocument, or from a DOMDocument to an array. It is important to note that a DOMDocument does not have a 1-to-1 mapping with a PHP array. DOM elements contain both attributes and elements; a simple string property 'foo' may be represented either as <element foo="value"/> or <element><foo>value</foo></element>. Also, there may be multiple XML elements with the same name, whereas php associative arrays must always have unique keys. When converting from an array to a DOM document, the XML formatter will default to representing the string properties of an array as attributes of the element. Sets of elements with the same name may be used only if they are wrapped in a containing parent element--e.g. <element><foos><foo>one</foo><foo>two</foo></foos></element>. The XMLSchema class may be used to provide control over whether a property is rendered as an attribute or an element; however, in instances where the schema of the XML output is important, it is best for a function to return its result as a DOMDocument rather than an array. +Commands that need to produce XML output should return a DOMDocument as its return type. The formatter manager will do its best to convert from an array to a DOMDocument, or from a DOMDocument to an array, as needed. It is important to note that a DOMDocument does not have a 1-to-1 mapping with a PHP array. DOM elements contain both attributes and elements; a simple string property 'foo' may be represented either as <element foo="value"/> or <element><foo>value</foo></element>. Also, there may be multiple XML elements with the same name, whereas php associative arrays must always have unique keys. When converting from an array to a DOM document, the XML formatter will default to representing the string properties of an array as attributes of the element. Sets of elements with the same name may be used only if they are wrapped in a containing parent element--e.g. <element><foos><foo>one</foo><foo>two</foo></foos></element>. The XMLSchema class may be used to provide control over whether a property is rendered as an attribute or an element; however, in instances where the schema of the XML output is important, it is best for a function to return its result as a DOMDocument rather than an array. A function may also define its own structured data type to return, usually by extending one of the types mentioned above. If a custom structured data class implements an appropriate interface, then it can provide its own conversion function to one of the other data types: @@ -72,6 +106,148 @@ A function may also define its own structured data type to return, usually by ex Additionally, structured data may be simplified to arrays via an array simplification object. To provide an array simplifier, implement `SimplifyToArrayInterface`, and register the simplifier via `FormatterManager::addSimplifier()`. +### Fields + +Some commands produce output that contain *fields*. A field may be either the key in a key/value pair, or it may be the label used in tabular output and so on. + +#### Declaring Default Fields + +If a command declares a very large number of fields, it is possible to display only a subset of the available options by way of the `@default-fields` annotation. The following example comes from Drush: +```php + /** + * @command cache:get + * @field-labels + * cid: Cache ID + * data: Data + * created: Created + * expire: Expire + * tags: Tags + * checksum: Checksum + * valid: Valid + * @default-fields cid,data,created,expire,tags + * @return \Consolidation\OutputFormatters\StructuredData\PropertyList + */ + public function get($cid, $bin = 'default', $options = ['format' => 'json']) + { + $result = ... + return new PropertyList($result); + } +``` +All of the available fields will be listed in the `help` output for the command, and may be selected by listing the desired fields explicitly via the `--fields` option. + +To include all avalable fields, use `--fields=*`. + +Note that using the `@default-fields` annotation will reduce the number of fields included in the output for all formats, including unstructured formats such as json and yaml. To specify a reduced set of fields to display only when using a human-readable output format (e.g. table), use the `@default-table-fields` annotation instead. + +#### Reordering Fields + +Commands that return table structured data with fields can be filtered and/or re-ordered by using the `--fields` option. These structured data types can also be formatted into a more generic type such as yaml or json, even after being filtered. This capabilities are not available if the data is returned in a bare php array. One of `RowsOfFields`, `PropertyList` or `UnstructuredListData` (or similar) must be used. + +When the `--fields` option is provided, the user may stipulate the exact fields to list on each row, and what order they should appear in. For example, if a command usually produces output using the `RowsOfFields` data type, as shown below: +``` +$ ./app try:formatters + ------ ------ ------- + I II III + ------ ------ ------- + One Two Three + Eins Zwei Drei + Ichi Ni San + Uno Dos Tres + ------ ------ ------- +``` +Then the third and first fields may be selected as follows: +``` + $ ./app try:formatters --fields=III,I + ------- ------ + III I + ------- ------ + Three One + Drei Eins + San Ichi + Tres Uno + ------- ------ +``` +To select a single column and strip away all formatting, use the `--field` option: +``` +$ ./app try:formatters --field=II +Two +Zwei +Ni +Dos +``` +Commands that produce deeply-nested data structures using the `UnstructuredData` and `UnstructuredListData` data type may also be manipulated using the `--fields` and `--field` options. It is possible to address items deep in the heirarchy using dot notation. + +The `UnstructuredData` type represents a single nested array with no requirements for uniform structure. The `UnstructuredListData` type is similar; it represents a list of `UnstructuredData` types. It is not required for the different elements in the list to have all of the same fields or structure, although it is expected that there will be a certain degree of similarity. + +In the example below, a command returns a list of stores of different kinds. Each store has common top-level elements such as `name`, `products` and `sale-items`. Each store might have different sorts of products with different attributes: +``` +$ ./app try:nested +bills-hardware: + name: 'Bill''s Hardware' + products: + tools: + electric-drill: + price: '79.98' + screwdriver: + price: '8.99' + sale-items: + screwdriver: '4.99' +alberts-supermarket: + name: 'Albert''s Supermarket' + products: + fruits: + strawberries: + price: '2' + units: lbs + watermellons: + price: '5' + units: each + sale-items: + watermellons: '4.50' +``` +Just as is the case with tabular output, it is possible to select only a certain set of fields to display with each output item: +``` +$ ./app try:nested --fields=sale-items +bills-hardware: + sale-items: + screwdriver: '4.99' +alberts-supermarket: + sale-items: + watermellons: '4.50' +``` +With unstructured data, it is also possible to remap the name of the field to something else: +``` +$ ./robo try:nested --fields='sale-items as items' +bills-hardware: + items: + screwdriver: '4.99' +alberts-supermarket: + items: + watermellons: '4.50' +``` +The field name `.` is special, though: it indicates that the named element should be omitted, and its value or children should be applied directly to the result row: +``` +$ ./app try:nested --fields='sale-items as .' +bills-hardware: + screwdriver: '4.99' +alberts-supermarket: + watermellons: '4.50' +``` +Finally, it is also possible to reach down into nested data structures and pull out information about an element or elements identified using "dot" notation: +``` +$ ./app try:nested --fields=products.fruits.strawberries +bills-hardware: { } +alberts-supermarket: + strawberries: + price: '2' + units: lbs +``` +Commands that use `RowsOfFields` or `PropertyList` return type will be automatically converted to `UnstructuredListData` or `UnstructuredData`, respectively, whenever any field remapping is done. This will only work for data types such as `yaml` or `json` that can render unstructured data types. It is not possible to render unstructured data in a table, even if the resulting data happens to be uniform. + +### Filtering Specific Rows + +A command may allow the user to filter specific rows of data using simple boolean logic and/or regular expressions. For details, see the external library [consolidation/filter-via-dot-access-data](https://github.com/consolidation/filter-via-dot-access-data) that provides this capability. + ## Rendering Table Cells By default, both the RowsOfFields and PropertyList data types presume that the contents of each cell is a simple string. To render more complicated cell contents, create a custom structured data class by extending either RowsOfFields or PropertyList, as desired, and implement RenderCellInterface. The `renderCell()` method of your class will then be called for each cell, and you may act on it as appropriate. diff --git a/vendor/consolidation/output-formatters/composer.json b/vendor/consolidation/output-formatters/composer.json index 853cf7731278bb3ba9e89d667a1284d04b14dea8..e8d9a044360a126beb02104d79e95ffa07a1e94c 100644 --- a/vendor/consolidation/output-formatters/composer.json +++ b/vendor/consolidation/output-formatters/composer.json @@ -20,15 +20,15 @@ }, "require": { "php": ">=5.4.0", + "dflydev/dot-access-data": "^1.1.0", "symfony/console": "^2.8|^3|^4", "symfony/finder": "^2.5|^3|^4" }, "require-dev": { - "g1a/composer-test-scenarios": "^2", - "satooshi/php-coveralls": "^2", + "g1a/composer-test-scenarios": "^3", + "php-coveralls/php-coveralls": "^1", "phpunit/phpunit": "^5.7.27", "squizlabs/php_codesniffer": "^2.7", - "symfony/console": "3.2.3", "symfony/var-dumper": "^2.8|^3|^4", "victorjonsson/markdowndocs": "^1.3" }, @@ -55,16 +55,55 @@ "@lint", "@unit", "@cs" - ], - "scenario": "scenarios/install", - "post-update-cmd": [ - "create-scenario symfony4 'symfony/console:^4.0' 'phpunit/phpunit:^6' --platform-php '7.1.3'", - "create-scenario symfony3 'symfony/console:^3.4' 'symfony/finder:^3.4' 'symfony/var-dumper:^3.4' --platform-php '5.6.32'", - "create-scenario symfony2 'symfony/console:^2.8' 'phpunit/phpunit:^4.8.36' --remove 'satooshi/php-coveralls' --platform-php '5.4' --no-lockfile", - "dependency-licenses" ] }, "extra": { + "scenarios": { + "symfony4": { + "require": { + "symfony/console": "^4.0" + }, + "require-dev": { + "phpunit/phpunit": "^6" + }, + "config": { + "platform": { + "php": "7.1.3" + } + } + }, + "symfony3": { + "require": { + "symfony/console": "^3.4", + "symfony/finder": "^3.4", + "symfony/var-dumper": "^3.4" + }, + "config": { + "platform": { + "php": "5.6.32" + } + } + }, + "symfony2": { + "require": { + "symfony/console": "^2.8" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.36" + }, + "remove": [ + "php-coveralls/php-coveralls" + ], + "config": { + "platform": { + "php": "5.4.8" + } + }, + "scenario-options": { + "create-lockfile": "false" + } + } + }, "branch-alias": { "dev-master": "3.x-dev" } diff --git a/vendor/consolidation/output-formatters/composer.lock b/vendor/consolidation/output-formatters/composer.lock index 5b569215335b98cf4ed44ad05ac00f349e99b5c5..2dfee91f875ea50d80673f3c4c6d5227d9009809 100644 --- a/vendor/consolidation/output-formatters/composer.lock +++ b/vendor/consolidation/output-formatters/composer.lock @@ -4,20 +4,79 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "e726e2302b89b56b1cf5c8148a65a648", + "content-hash": "ee70f32509f8c43ebd69a87705e29cad", "packages": [ + { + "name": "dflydev/dot-access-data", + "version": "v1.1.0", + "source": { + "type": "git", + "url": "https://github.com/dflydev/dflydev-dot-access-data.git", + "reference": "3fbd874921ab2c041e899d044585a2ab9795df8a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/dflydev/dflydev-dot-access-data/zipball/3fbd874921ab2c041e899d044585a2ab9795df8a", + "reference": "3fbd874921ab2c041e899d044585a2ab9795df8a", + "shasum": "" + }, + "require": { + "php": ">=5.3.2" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "psr-0": { + "Dflydev\\DotAccessData": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Dragonfly Development Inc.", + "email": "info@dflydev.com", + "homepage": "http://dflydev.com" + }, + { + "name": "Beau Simensen", + "email": "beau@dflydev.com", + "homepage": "http://beausimensen.com" + }, + { + "name": "Carlos Frutos", + "email": "carlos@kiwing.it", + "homepage": "https://github.com/cfrutos" + } + ], + "description": "Given a deep data structure, access data by dot notation.", + "homepage": "https://github.com/dflydev/dflydev-dot-access-data", + "keywords": [ + "access", + "data", + "dot", + "notation" + ], + "time": "2017-01-20T21:14:22+00:00" + }, { "name": "psr/log", - "version": "1.0.2", + "version": "1.1.0", "source": { "type": "git", "url": "https://github.com/php-fig/log.git", - "reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d" + "reference": "6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/log/zipball/4ebe3a8bf773a19edfe0a84b6585ba3d401b724d", - "reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d", + "url": "https://api.github.com/repos/php-fig/log/zipball/6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd", + "reference": "6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd", "shasum": "" }, "require": { @@ -51,43 +110,49 @@ "psr", "psr-3" ], - "time": "2016-10-10T12:19:37+00:00" + "time": "2018-11-20T15:27:04+00:00" }, { "name": "symfony/console", - "version": "v3.2.3", + "version": "v3.4.18", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "7a8405a9fc175f87fed8a3c40856b0d866d61936" + "reference": "1d228fb4602047d7b26a0554e0d3efd567da5803" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/7a8405a9fc175f87fed8a3c40856b0d866d61936", - "reference": "7a8405a9fc175f87fed8a3c40856b0d866d61936", + "url": "https://api.github.com/repos/symfony/console/zipball/1d228fb4602047d7b26a0554e0d3efd567da5803", + "reference": "1d228fb4602047d7b26a0554e0d3efd567da5803", "shasum": "" }, "require": { - "php": ">=5.5.9", - "symfony/debug": "~2.8|~3.0", + "php": "^5.5.9|>=7.0.8", + "symfony/debug": "~2.8|~3.0|~4.0", "symfony/polyfill-mbstring": "~1.0" }, + "conflict": { + "symfony/dependency-injection": "<3.4", + "symfony/process": "<3.3" + }, "require-dev": { "psr/log": "~1.0", - "symfony/event-dispatcher": "~2.8|~3.0", - "symfony/filesystem": "~2.8|~3.0", - "symfony/process": "~2.8|~3.0" + "symfony/config": "~3.3|~4.0", + "symfony/dependency-injection": "~3.4|~4.0", + "symfony/event-dispatcher": "~2.8|~3.0|~4.0", + "symfony/lock": "~3.4|~4.0", + "symfony/process": "~3.3|~4.0" }, "suggest": { - "psr/log": "For using the console logger", + "psr/log-implementation": "For using the console logger", "symfony/event-dispatcher": "", - "symfony/filesystem": "", + "symfony/lock": "", "symfony/process": "" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.2-dev" + "dev-master": "3.4-dev" } }, "autoload": { @@ -114,20 +179,20 @@ ], "description": "Symfony Console Component", "homepage": "https://symfony.com", - "time": "2017-02-06T12:04:21+00:00" + "time": "2018-10-30T16:50:50+00:00" }, { "name": "symfony/debug", - "version": "v3.4.11", + "version": "v3.4.18", "source": { "type": "git", "url": "https://github.com/symfony/debug.git", - "reference": "b28fd73fefbac341f673f5efd707d539d6a19f68" + "reference": "fe9793af008b651c5441bdeab21ede8172dab097" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/debug/zipball/b28fd73fefbac341f673f5efd707d539d6a19f68", - "reference": "b28fd73fefbac341f673f5efd707d539d6a19f68", + "url": "https://api.github.com/repos/symfony/debug/zipball/fe9793af008b651c5441bdeab21ede8172dab097", + "reference": "fe9793af008b651c5441bdeab21ede8172dab097", "shasum": "" }, "require": { @@ -170,20 +235,20 @@ ], "description": "Symfony Debug Component", "homepage": "https://symfony.com", - "time": "2018-05-16T14:03:39+00:00" + "time": "2018-10-31T09:06:03+00:00" }, { "name": "symfony/finder", - "version": "v3.4.11", + "version": "v3.4.18", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "472a92f3df8b247b49ae364275fb32943b9656c6" + "reference": "54ba444dddc5bd5708a34bd095ea67c6eb54644d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/472a92f3df8b247b49ae364275fb32943b9656c6", - "reference": "472a92f3df8b247b49ae364275fb32943b9656c6", + "url": "https://api.github.com/repos/symfony/finder/zipball/54ba444dddc5bd5708a34bd095ea67c6eb54644d", + "reference": "54ba444dddc5bd5708a34bd095ea67c6eb54644d", "shasum": "" }, "require": { @@ -219,20 +284,20 @@ ], "description": "Symfony Finder Component", "homepage": "https://symfony.com", - "time": "2018-05-16T08:49:21+00:00" + "time": "2018-10-03T08:46:40+00:00" }, { "name": "symfony/polyfill-mbstring", - "version": "v1.8.0", + "version": "v1.10.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "3296adf6a6454a050679cde90f95350ad604b171" + "reference": "c79c051f5b3a46be09205c73b80b346e4153e494" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/3296adf6a6454a050679cde90f95350ad604b171", - "reference": "3296adf6a6454a050679cde90f95350ad604b171", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/c79c051f5b3a46be09205c73b80b346e4153e494", + "reference": "c79c051f5b3a46be09205c73b80b346e4153e494", "shasum": "" }, "require": { @@ -244,7 +309,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.8-dev" + "dev-master": "1.9-dev" } }, "autoload": { @@ -278,7 +343,7 @@ "portable", "shim" ], - "time": "2018-04-26T10:06:28+00:00" + "time": "2018-09-21T13:07:52+00:00" } ], "packages-dev": [ @@ -338,24 +403,43 @@ }, { "name": "g1a/composer-test-scenarios", - "version": "2.0.1", + "version": "3.0.0", "source": { "type": "git", "url": "https://github.com/g1a/composer-test-scenarios.git", - "reference": "d9a7619f6e1c01498fad19c34539bd5b0d2506ef" + "reference": "2a7156f1572898888ea50ad1d48a6b4d3f9fbf78" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/g1a/composer-test-scenarios/zipball/d9a7619f6e1c01498fad19c34539bd5b0d2506ef", - "reference": "d9a7619f6e1c01498fad19c34539bd5b0d2506ef", + "url": "https://api.github.com/repos/g1a/composer-test-scenarios/zipball/2a7156f1572898888ea50ad1d48a6b4d3f9fbf78", + "reference": "2a7156f1572898888ea50ad1d48a6b4d3f9fbf78", "shasum": "" }, + "require": { + "composer-plugin-api": "^1.0.0", + "php": ">=5.4" + }, + "require-dev": { + "composer/composer": "^1.7", + "php-coveralls/php-coveralls": "^1.0", + "phpunit/phpunit": "^4.8.36|^6", + "squizlabs/php_codesniffer": "^2.8" + }, "bin": [ - "scripts/create-scenario", - "scripts/dependency-licenses", - "scripts/install-scenario" + "scripts/dependency-licenses" ], - "type": "library", + "type": "composer-plugin", + "extra": { + "class": "ComposerTestScenarios\\Plugin", + "branch-alias": { + "dev-master": "3.x-dev" + } + }, + "autoload": { + "psr-4": { + "ComposerTestScenarios\\": "src/" + } + }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" @@ -367,47 +451,73 @@ } ], "description": "Useful scripts for testing multiple sets of Composer dependencies.", - "time": "2018-05-25T16:45:48+00:00" + "time": "2018-11-22T05:10:20+00:00" }, { - "name": "guzzlehttp/guzzle", - "version": "6.3.3", + "name": "guzzle/guzzle", + "version": "v3.9.3", "source": { "type": "git", - "url": "https://github.com/guzzle/guzzle.git", - "reference": "407b0cb880ace85c9b63c5f9551db498cb2d50ba" + "url": "https://github.com/guzzle/guzzle3.git", + "reference": "0645b70d953bc1c067bbc8d5bc53194706b628d9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/guzzle/zipball/407b0cb880ace85c9b63c5f9551db498cb2d50ba", - "reference": "407b0cb880ace85c9b63c5f9551db498cb2d50ba", + "url": "https://api.github.com/repos/guzzle/guzzle3/zipball/0645b70d953bc1c067bbc8d5bc53194706b628d9", + "reference": "0645b70d953bc1c067bbc8d5bc53194706b628d9", "shasum": "" }, "require": { - "guzzlehttp/promises": "^1.0", - "guzzlehttp/psr7": "^1.4", - "php": ">=5.5" + "ext-curl": "*", + "php": ">=5.3.3", + "symfony/event-dispatcher": "~2.1" + }, + "replace": { + "guzzle/batch": "self.version", + "guzzle/cache": "self.version", + "guzzle/common": "self.version", + "guzzle/http": "self.version", + "guzzle/inflection": "self.version", + "guzzle/iterator": "self.version", + "guzzle/log": "self.version", + "guzzle/parser": "self.version", + "guzzle/plugin": "self.version", + "guzzle/plugin-async": "self.version", + "guzzle/plugin-backoff": "self.version", + "guzzle/plugin-cache": "self.version", + "guzzle/plugin-cookie": "self.version", + "guzzle/plugin-curlauth": "self.version", + "guzzle/plugin-error-response": "self.version", + "guzzle/plugin-history": "self.version", + "guzzle/plugin-log": "self.version", + "guzzle/plugin-md5": "self.version", + "guzzle/plugin-mock": "self.version", + "guzzle/plugin-oauth": "self.version", + "guzzle/service": "self.version", + "guzzle/stream": "self.version" }, "require-dev": { - "ext-curl": "*", - "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.4 || ^7.0", - "psr/log": "^1.0" + "doctrine/cache": "~1.3", + "monolog/monolog": "~1.0", + "phpunit/phpunit": "3.7.*", + "psr/log": "~1.0", + "symfony/class-loader": "~2.1", + "zendframework/zend-cache": "2.*,<2.3", + "zendframework/zend-log": "2.*,<2.3" }, "suggest": { - "psr/log": "Required for using the Log middleware" + "guzzlehttp/guzzle": "Guzzle 5 has moved to a new package name. The package you have installed, Guzzle 3, is deprecated." }, "type": "library", "extra": { "branch-alias": { - "dev-master": "6.3-dev" + "dev-master": "3.9-dev" } }, "autoload": { - "files": [ - "src/functions_include.php" - ], - "psr-4": { - "GuzzleHttp\\": "src/" + "psr-0": { + "Guzzle": "src/", + "Guzzle\\Tests": "tests/" } }, "notification-url": "https://packagist.org/downloads/", @@ -419,9 +529,13 @@ "name": "Michael Dowling", "email": "mtdowling@gmail.com", "homepage": "https://github.com/mtdowling" + }, + { + "name": "Guzzle Community", + "homepage": "https://github.com/guzzle/guzzle/contributors" } ], - "description": "Guzzle is a PHP HTTP client library", + "description": "PHP HTTP client. This library is deprecated in favor of https://packagist.org/packages/guzzlehttp/guzzle", "homepage": "http://guzzlephp.org/", "keywords": [ "client", @@ -432,96 +546,93 @@ "rest", "web service" ], - "time": "2018-04-22T15:46:56+00:00" + "abandoned": "guzzlehttp/guzzle", + "time": "2015-03-18T18:23:50+00:00" }, { - "name": "guzzlehttp/promises", - "version": "v1.3.1", + "name": "myclabs/deep-copy", + "version": "1.7.0", "source": { "type": "git", - "url": "https://github.com/guzzle/promises.git", - "reference": "a59da6cf61d80060647ff4d3eb2c03a2bc694646" + "url": "https://github.com/myclabs/DeepCopy.git", + "reference": "3b8a3a99ba1f6a3952ac2747d989303cbd6b7a3e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/promises/zipball/a59da6cf61d80060647ff4d3eb2c03a2bc694646", - "reference": "a59da6cf61d80060647ff4d3eb2c03a2bc694646", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/3b8a3a99ba1f6a3952ac2747d989303cbd6b7a3e", + "reference": "3b8a3a99ba1f6a3952ac2747d989303cbd6b7a3e", "shasum": "" }, "require": { - "php": ">=5.5.0" + "php": "^5.6 || ^7.0" }, "require-dev": { - "phpunit/phpunit": "^4.0" + "doctrine/collections": "^1.0", + "doctrine/common": "^2.6", + "phpunit/phpunit": "^4.1" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.4-dev" - } - }, "autoload": { "psr-4": { - "GuzzleHttp\\Promise\\": "src/" + "DeepCopy\\": "src/DeepCopy/" }, "files": [ - "src/functions_include.php" + "src/DeepCopy/deep_copy.php" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], - "authors": [ - { - "name": "Michael Dowling", - "email": "mtdowling@gmail.com", - "homepage": "https://github.com/mtdowling" - } - ], - "description": "Guzzle promises library", + "description": "Create deep copies (clones) of your objects", "keywords": [ - "promise" + "clone", + "copy", + "duplicate", + "object", + "object graph" ], - "time": "2016-12-20T10:07:11+00:00" + "time": "2017-10-19T19:58:43+00:00" }, { - "name": "guzzlehttp/psr7", - "version": "1.4.2", + "name": "php-coveralls/php-coveralls", + "version": "v1.1.0", "source": { "type": "git", - "url": "https://github.com/guzzle/psr7.git", - "reference": "f5b8a8512e2b58b0071a7280e39f14f72e05d87c" + "url": "https://github.com/php-coveralls/php-coveralls.git", + "reference": "37f8f83fe22224eb9d9c6d593cdeb33eedd2a9ad" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/psr7/zipball/f5b8a8512e2b58b0071a7280e39f14f72e05d87c", - "reference": "f5b8a8512e2b58b0071a7280e39f14f72e05d87c", + "url": "https://api.github.com/repos/php-coveralls/php-coveralls/zipball/37f8f83fe22224eb9d9c6d593cdeb33eedd2a9ad", + "reference": "37f8f83fe22224eb9d9c6d593cdeb33eedd2a9ad", "shasum": "" }, "require": { - "php": ">=5.4.0", - "psr/http-message": "~1.0" - }, - "provide": { - "psr/http-message-implementation": "1.0" + "ext-json": "*", + "ext-simplexml": "*", + "guzzle/guzzle": "^2.8 || ^3.0", + "php": "^5.3.3 || ^7.0", + "psr/log": "^1.0", + "symfony/config": "^2.1 || ^3.0 || ^4.0", + "symfony/console": "^2.1 || ^3.0 || ^4.0", + "symfony/stopwatch": "^2.0 || ^3.0 || ^4.0", + "symfony/yaml": "^2.0 || ^3.0 || ^4.0" }, "require-dev": { - "phpunit/phpunit": "~4.0" + "phpunit/phpunit": "^4.8.35 || ^5.4.3 || ^6.0" }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.4-dev" - } + "suggest": { + "symfony/http-kernel": "Allows Symfony integration" }, + "bin": [ + "bin/coveralls" + ], + "type": "library", "autoload": { "psr-4": { - "GuzzleHttp\\Psr7\\": "src/" - }, - "files": [ - "src/functions_include.php" - ] + "Satooshi\\": "src/Satooshi/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -529,71 +640,20 @@ ], "authors": [ { - "name": "Michael Dowling", - "email": "mtdowling@gmail.com", - "homepage": "https://github.com/mtdowling" - }, - { - "name": "Tobias Schultze", - "homepage": "https://github.com/Tobion" + "name": "Kitamura Satoshi", + "email": "with.no.parachute@gmail.com", + "homepage": "https://www.facebook.com/satooshi.jp" } ], - "description": "PSR-7 message implementation that also provides common utility methods", - "keywords": [ - "http", - "message", - "request", - "response", - "stream", - "uri", - "url" - ], - "time": "2017-03-20T17:10:46+00:00" - }, - { - "name": "myclabs/deep-copy", - "version": "1.7.0", - "source": { - "type": "git", - "url": "https://github.com/myclabs/DeepCopy.git", - "reference": "3b8a3a99ba1f6a3952ac2747d989303cbd6b7a3e" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/3b8a3a99ba1f6a3952ac2747d989303cbd6b7a3e", - "reference": "3b8a3a99ba1f6a3952ac2747d989303cbd6b7a3e", - "shasum": "" - }, - "require": { - "php": "^5.6 || ^7.0" - }, - "require-dev": { - "doctrine/collections": "^1.0", - "doctrine/common": "^2.6", - "phpunit/phpunit": "^4.1" - }, - "type": "library", - "autoload": { - "psr-4": { - "DeepCopy\\": "src/DeepCopy/" - }, - "files": [ - "src/DeepCopy/deep_copy.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "description": "Create deep copies (clones) of your objects", + "description": "PHP client library for Coveralls API", + "homepage": "https://github.com/php-coveralls/php-coveralls", "keywords": [ - "clone", - "copy", - "duplicate", - "object", - "object graph" + "ci", + "coverage", + "github", + "test" ], - "time": "2017-10-19T19:58:43+00:00" + "time": "2017-12-06T23:17:56+00:00" }, { "name": "phpdocumentor/reflection-common", @@ -743,16 +803,16 @@ }, { "name": "phpspec/prophecy", - "version": "1.7.6", + "version": "1.8.0", "source": { "type": "git", "url": "https://github.com/phpspec/prophecy.git", - "reference": "33a7e3c4fda54e912ff6338c48823bd5c0f0b712" + "reference": "4ba436b55987b4bf311cb7c6ba82aa528aac0a06" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpspec/prophecy/zipball/33a7e3c4fda54e912ff6338c48823bd5c0f0b712", - "reference": "33a7e3c4fda54e912ff6338c48823bd5c0f0b712", + "url": "https://api.github.com/repos/phpspec/prophecy/zipball/4ba436b55987b4bf311cb7c6ba82aa528aac0a06", + "reference": "4ba436b55987b4bf311cb7c6ba82aa528aac0a06", "shasum": "" }, "require": { @@ -764,12 +824,12 @@ }, "require-dev": { "phpspec/phpspec": "^2.5|^3.2", - "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5" + "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5 || ^7.1" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.7.x-dev" + "dev-master": "1.8.x-dev" } }, "autoload": { @@ -802,7 +862,7 @@ "spy", "stub" ], - "time": "2018-04-18T13:57:24+00:00" + "time": "2018-08-05T17:53:17+00:00" }, { "name": "phpunit/php-code-coverage", @@ -1194,140 +1254,6 @@ ], "time": "2017-06-30T09:13:00+00:00" }, - { - "name": "psr/http-message", - "version": "1.0.1", - "source": { - "type": "git", - "url": "https://github.com/php-fig/http-message.git", - "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363", - "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363", - "shasum": "" - }, - "require": { - "php": ">=5.3.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "Psr\\Http\\Message\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" - } - ], - "description": "Common interface for HTTP messages", - "homepage": "https://github.com/php-fig/http-message", - "keywords": [ - "http", - "http-message", - "psr", - "psr-7", - "request", - "response" - ], - "time": "2016-08-06T14:39:51+00:00" - }, - { - "name": "satooshi/php-coveralls", - "version": "v2.0.0", - "source": { - "type": "git", - "url": "https://github.com/php-coveralls/php-coveralls.git", - "reference": "3eaf7eb689cdf6b86801a3843940d974dc657068" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-coveralls/php-coveralls/zipball/3eaf7eb689cdf6b86801a3843940d974dc657068", - "reference": "3eaf7eb689cdf6b86801a3843940d974dc657068", - "shasum": "" - }, - "require": { - "ext-json": "*", - "ext-simplexml": "*", - "guzzlehttp/guzzle": "^6.0", - "php": "^5.5 || ^7.0", - "psr/log": "^1.0", - "symfony/config": "^2.1 || ^3.0 || ^4.0", - "symfony/console": "^2.1 || ^3.0 || ^4.0", - "symfony/stopwatch": "^2.0 || ^3.0 || ^4.0", - "symfony/yaml": "^2.0 || ^3.0 || ^4.0" - }, - "require-dev": { - "phpunit/phpunit": "^4.8.35 || ^5.4.3 || ^6.0" - }, - "suggest": { - "symfony/http-kernel": "Allows Symfony integration" - }, - "bin": [ - "bin/php-coveralls" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0-dev" - } - }, - "autoload": { - "psr-4": { - "PhpCoveralls\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "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" - } - ], - "description": "PHP client library for Coveralls API", - "homepage": "https://github.com/php-coveralls/php-coveralls", - "keywords": [ - "ci", - "coverage", - "github", - "test" - ], - "abandoned": "php-coveralls/php-coveralls", - "time": "2017-12-08T14:28:16+00:00" - }, { "name": "sebastian/code-unit-reverse-lookup", "version": "1.0.1", @@ -1843,16 +1769,16 @@ }, { "name": "squizlabs/php_codesniffer", - "version": "2.9.1", + "version": "2.9.2", "source": { "type": "git", "url": "https://github.com/squizlabs/PHP_CodeSniffer.git", - "reference": "dcbed1074f8244661eecddfc2a675430d8d33f62" + "reference": "2acf168de78487db620ab4bc524135a13cfe6745" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/dcbed1074f8244661eecddfc2a675430d8d33f62", - "reference": "dcbed1074f8244661eecddfc2a675430d8d33f62", + "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/2acf168de78487db620ab4bc524135a13cfe6745", + "reference": "2acf168de78487db620ab4bc524135a13cfe6745", "shasum": "" }, "require": { @@ -1917,20 +1843,20 @@ "phpcs", "standards" ], - "time": "2017-05-22T02:43:20+00:00" + "time": "2018-11-07T22:31:41+00:00" }, { "name": "symfony/config", - "version": "v3.4.11", + "version": "v3.4.18", "source": { "type": "git", "url": "https://github.com/symfony/config.git", - "reference": "73e055cf2e6467715f187724a0347ea32079967c" + "reference": "99b2fa8acc244e656cdf324ff419fbe6fd300a4d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/config/zipball/73e055cf2e6467715f187724a0347ea32079967c", - "reference": "73e055cf2e6467715f187724a0347ea32079967c", + "url": "https://api.github.com/repos/symfony/config/zipball/99b2fa8acc244e656cdf324ff419fbe6fd300a4d", + "reference": "99b2fa8acc244e656cdf324ff419fbe6fd300a4d", "shasum": "" }, "require": { @@ -1981,20 +1907,80 @@ ], "description": "Symfony Config Component", "homepage": "https://symfony.com", - "time": "2018-05-14T16:49:53+00:00" + "time": "2018-10-31T09:06:03+00:00" + }, + { + "name": "symfony/event-dispatcher", + "version": "v2.8.47", + "source": { + "type": "git", + "url": "https://github.com/symfony/event-dispatcher.git", + "reference": "76494bc38ff38d90d01913d23b5271acd4d78dd3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/76494bc38ff38d90d01913d23b5271acd4d78dd3", + "reference": "76494bc38ff38d90d01913d23b5271acd4d78dd3", + "shasum": "" + }, + "require": { + "php": ">=5.3.9" + }, + "require-dev": { + "psr/log": "~1.0", + "symfony/config": "^2.0.5|~3.0.0", + "symfony/dependency-injection": "~2.6|~3.0.0", + "symfony/expression-language": "~2.6|~3.0.0", + "symfony/stopwatch": "~2.3|~3.0.0" + }, + "suggest": { + "symfony/dependency-injection": "", + "symfony/http-kernel": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.8-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\EventDispatcher\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony EventDispatcher Component", + "homepage": "https://symfony.com", + "time": "2018-10-20T23:16:31+00:00" }, { "name": "symfony/filesystem", - "version": "v3.4.11", + "version": "v3.4.18", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "8e03ca3fa52a0f56b87506f38cf7bd3f9442b3a0" + "reference": "d69930fc337d767607267d57c20a7403d0a822a4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/8e03ca3fa52a0f56b87506f38cf7bd3f9442b3a0", - "reference": "8e03ca3fa52a0f56b87506f38cf7bd3f9442b3a0", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/d69930fc337d767607267d57c20a7403d0a822a4", + "reference": "d69930fc337d767607267d57c20a7403d0a822a4", "shasum": "" }, "require": { @@ -2031,29 +2017,32 @@ ], "description": "Symfony Filesystem Component", "homepage": "https://symfony.com", - "time": "2018-05-16T08:49:21+00:00" + "time": "2018-10-02T12:28:39+00:00" }, { "name": "symfony/polyfill-ctype", - "version": "v1.8.0", + "version": "v1.10.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "7cc359f1b7b80fc25ed7796be7d96adc9b354bae" + "reference": "e3d826245268269cd66f8326bd8bc066687b4a19" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/7cc359f1b7b80fc25ed7796be7d96adc9b354bae", - "reference": "7cc359f1b7b80fc25ed7796be7d96adc9b354bae", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/e3d826245268269cd66f8326bd8bc066687b4a19", + "reference": "e3d826245268269cd66f8326bd8bc066687b4a19", "shasum": "" }, "require": { "php": ">=5.3.3" }, + "suggest": { + "ext-ctype": "For best performance" + }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.8-dev" + "dev-master": "1.9-dev" } }, "autoload": { @@ -2086,20 +2075,20 @@ "polyfill", "portable" ], - "time": "2018-04-30T19:57:29+00:00" + "time": "2018-08-06T14:22:27+00:00" }, { "name": "symfony/stopwatch", - "version": "v3.4.11", + "version": "v3.4.18", "source": { "type": "git", "url": "https://github.com/symfony/stopwatch.git", - "reference": "eb17cfa072cab26537ac37e9c4ece6c0361369af" + "reference": "05e52a39de52ba690aebaed462b2bc8a9649f0a4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/stopwatch/zipball/eb17cfa072cab26537ac37e9c4ece6c0361369af", - "reference": "eb17cfa072cab26537ac37e9c4ece6c0361369af", + "url": "https://api.github.com/repos/symfony/stopwatch/zipball/05e52a39de52ba690aebaed462b2bc8a9649f0a4", + "reference": "05e52a39de52ba690aebaed462b2bc8a9649f0a4", "shasum": "" }, "require": { @@ -2135,20 +2124,20 @@ ], "description": "Symfony Stopwatch Component", "homepage": "https://symfony.com", - "time": "2018-02-17T14:55:25+00:00" + "time": "2018-10-02T12:28:39+00:00" }, { "name": "symfony/var-dumper", - "version": "v3.4.11", + "version": "v3.4.18", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "0e6545672d8c9ce70dd472adc2f8b03155a46f73" + "reference": "ff8ac19e97e5c7c3979236b584719a1190f84181" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/0e6545672d8c9ce70dd472adc2f8b03155a46f73", - "reference": "0e6545672d8c9ce70dd472adc2f8b03155a46f73", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/ff8ac19e97e5c7c3979236b584719a1190f84181", + "reference": "ff8ac19e97e5c7c3979236b584719a1190f84181", "shasum": "" }, "require": { @@ -2204,27 +2193,31 @@ "debug", "dump" ], - "time": "2018-04-26T12:42:15+00:00" + "time": "2018-10-02T16:33:53+00:00" }, { "name": "symfony/yaml", - "version": "v3.3.17", + "version": "v3.4.18", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "af615970e265543a26ee712c958404eb9b7ac93d" + "reference": "640b6c27fed4066d64b64d5903a86043f4a4de7f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/af615970e265543a26ee712c958404eb9b7ac93d", - "reference": "af615970e265543a26ee712c958404eb9b7ac93d", + "url": "https://api.github.com/repos/symfony/yaml/zipball/640b6c27fed4066d64b64d5903a86043f4a4de7f", + "reference": "640b6c27fed4066d64b64d5903a86043f4a4de7f", "shasum": "" }, "require": { - "php": "^5.5.9|>=7.0.8" + "php": "^5.5.9|>=7.0.8", + "symfony/polyfill-ctype": "~1.8" + }, + "conflict": { + "symfony/console": "<3.4" }, "require-dev": { - "symfony/console": "~2.8|~3.0" + "symfony/console": "~3.4|~4.0" }, "suggest": { "symfony/console": "For validating YAML files using the lint command" @@ -2232,7 +2225,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.3-dev" + "dev-master": "3.4-dev" } }, "autoload": { @@ -2259,7 +2252,7 @@ ], "description": "Symfony Yaml Component", "homepage": "https://symfony.com", - "time": "2018-01-20T15:04:53+00:00" + "time": "2018-10-02T16:33:53+00:00" }, { "name": "victorjonsson/markdowndocs", diff --git a/vendor/consolidation/output-formatters/phpunit.xml.dist b/vendor/consolidation/output-formatters/phpunit.xml.dist index 6f1cce7da734a555125867c7d2b5d3b2d90ed9b4..9a90fcecc64cf33b087453c57495b1c98276129d 100644 --- a/vendor/consolidation/output-formatters/phpunit.xml.dist +++ b/vendor/consolidation/output-formatters/phpunit.xml.dist @@ -1,7 +1,7 @@ <phpunit bootstrap="vendor/autoload.php" colors="true"> <testsuites> <testsuite name="formatters"> - <directory prefix="test" suffix=".php">tests</directory> + <directory prefix="" suffix="Test.php">tests</directory> </testsuite> </testsuites> <logging> diff --git a/vendor/consolidation/output-formatters/src/FormatterManager.php b/vendor/consolidation/output-formatters/src/FormatterManager.php index 02de79fff7ae40d7af8c64fe11b05166432b6bca..0049ae9293daa49801fc4954d6a5f9e3d8bba9e8 100644 --- a/vendor/consolidation/output-formatters/src/FormatterManager.php +++ b/vendor/consolidation/output-formatters/src/FormatterManager.php @@ -19,6 +19,9 @@ use Symfony\Component\Console\Input\InputOption; use Symfony\Component\Console\Output\OutputInterface; use Consolidation\OutputFormatters\StructuredData\OriginalDataInterface; +use Consolidation\OutputFormatters\StructuredData\ListDataFromKeys; +use Consolidation\OutputFormatters\StructuredData\ConversionInterface; +use Consolidation\OutputFormatters\Formatters\HumanReadableFormat; /** * Manage a collection of formatters; return one on request. @@ -37,6 +40,7 @@ public function __construct() public function addDefaultFormatters() { $defaultFormatters = [ + 'null' => '\Consolidation\OutputFormatters\Formatters\NoOutputFormatter', 'string' => '\Consolidation\OutputFormatters\Formatters\StringFormatter', 'yaml' => '\Consolidation\OutputFormatters\Formatters\YamlFormatter', 'xml' => '\Consolidation\OutputFormatters\Formatters\XmlFormatter', @@ -121,10 +125,17 @@ public function automaticOptions(FormatterOptions $options, $dataType) $automaticOptions[FormatterOptions::FORMAT] = new InputOption(FormatterOptions::FORMAT, '', InputOption::VALUE_REQUIRED, $description, $defaultFormat); } + $dataTypeClass = ($dataType instanceof \ReflectionClass) ? $dataType : new \ReflectionClass($dataType); + if ($availableFields) { $defaultFields = $options->get(FormatterOptions::DEFAULT_FIELDS, [], ''); $description = 'Available fields: ' . implode(', ', $this->availableFieldsList($availableFields)); $automaticOptions[FormatterOptions::FIELDS] = new InputOption(FormatterOptions::FIELDS, '', InputOption::VALUE_REQUIRED, $description, $defaultFields); + } elseif ($dataTypeClass->implementsInterface('Consolidation\OutputFormatters\StructuredData\RestructureInterface')) { + $automaticOptions[FormatterOptions::FIELDS] = new InputOption(FormatterOptions::FIELDS, '', InputOption::VALUE_REQUIRED, 'Limit output to only the listed elements. Name top-level elements by key, e.g. "--fields=name,date", or use dot notation to select a nested element, e.g. "--fields=a.b.c as example".', []); + } + + if (isset($automaticOptions[FormatterOptions::FIELDS])) { $automaticOptions[FormatterOptions::FIELD] = new InputOption(FormatterOptions::FIELD, '', InputOption::VALUE_REQUIRED, "Select just one field, and force format to 'string'.", ''); } @@ -203,7 +214,17 @@ public function isValidDataType(FormatterInterface $formatter, \ReflectionClass */ public function write(OutputInterface $output, $format, $structuredOutput, FormatterOptions $options) { + // Convert the data to another format (e.g. converting from RowsOfFields to + // UnstructuredListData when the fields indicate an unstructured transformation + // is requested). + $structuredOutput = $this->convertData($structuredOutput, $options); + + // TODO: If the $format is the default format (not selected by the user), and + // if `convertData` switched us to unstructured data, then select a new default + // format (e.g. yaml) if the selected format cannot render the converted data. $formatter = $this->getFormatter((string)$format); + + // If the data format is not applicable for the selected formatter, throw an error. if (!is_string($structuredOutput) && !$this->isValidFormat($formatter, $structuredOutput)) { $validFormats = $this->validFormats($structuredOutput); throw new InvalidFormatException((string)$format, $structuredOutput, $validFormats); @@ -355,6 +376,17 @@ protected function canSimplifyToArray(\ReflectionClass $structuredOutput) return false; } + /** + * Convert from one format to another if necessary prior to restructuring. + */ + public function convertData($structuredOutput, FormatterOptions $options) + { + if ($structuredOutput instanceof ConversionInterface) { + return $structuredOutput->convert($options); + } + return $structuredOutput; + } + /** * Restructure the data as necessary (e.g. to select or reorder fields). * @@ -399,6 +431,11 @@ public function overrideRestructure(FormatterInterface $formatter, $structuredOu */ public function overrideOptions(FormatterInterface $formatter, $structuredOutput, FormatterOptions $options) { + // Set the "Human Readable" option if the formatter has the HumanReadable marker interface + if ($formatter instanceof HumanReadableFormat) { + $options->setHumanReadable(); + } + // The formatter may also make dynamic adjustment to the options. if ($formatter instanceof OverrideOptionsInterface) { return $formatter->overrideOptions($structuredOutput, $options); } diff --git a/vendor/consolidation/output-formatters/src/Formatters/CsvFormatter.php b/vendor/consolidation/output-formatters/src/Formatters/CsvFormatter.php index d39c27b48934faeda6d04f94254f5b2044555443..df99d888885858b06ebdf310b71af488e452b5d6 100644 --- a/vendor/consolidation/output-formatters/src/Formatters/CsvFormatter.php +++ b/vendor/consolidation/output-formatters/src/Formatters/CsvFormatter.php @@ -66,6 +66,8 @@ protected function getDefaultFormatterOptions() return [ FormatterOptions::INCLUDE_FIELD_LABELS => true, FormatterOptions::DELIMITER => ',', + FormatterOptions::CSV_ENCLOSURE => '"', + FormatterOptions::CSV_ESCAPE_CHAR => "\\", ]; } @@ -87,18 +89,40 @@ public function write(OutputInterface $output, $data, FormatterOptions $options) } } + /** + * Writes a single a single line of formatted CSV data to the output stream. + * + * @param OutputInterface $output the output stream to write to. + * @param array $data an array of field data to convert to a CSV string. + * @param FormatterOptions $options the specified options for this formatter. + */ protected function writeOneLine(OutputInterface $output, $data, $options) { $defaults = $this->getDefaultFormatterOptions(); $delimiter = $options->get(FormatterOptions::DELIMITER, $defaults); - - $output->write($this->csvEscape($data, $delimiter)); + $enclosure = $options->get(FormatterOptions::CSV_ENCLOSURE, $defaults); + $escapeChar = $options->get(FormatterOptions::CSV_ESCAPE_CHAR, $defaults); + $output->write($this->csvEscape($data, $delimiter, $enclosure, $escapeChar)); } - protected function csvEscape($data, $delimiter = ',') + /** + * Generates a CSV-escaped string from an array of field data. + * + * @param array $data an array of field data to format as a CSV. + * @param string $delimiter the delimiter to use between fields. + * @param string $enclosure character to use when enclosing complex fields. + * @param string $escapeChar character to use when escaping special characters. + * + * @return string|bool the formatted CSV string, or FALSE if the formatting failed. + */ + protected function csvEscape($data, $delimiter = ',', $enclosure = '"', $escapeChar = "\\") { $buffer = fopen('php://temp', 'r+'); - fputcsv($buffer, $data, $delimiter); + if (version_compare(PHP_VERSION, '5.5.4', '>=')) { + fputcsv($buffer, $data, $delimiter, $enclosure, $escapeChar); + } else { + fputcsv($buffer, $data, $delimiter, $enclosure); + } rewind($buffer); $csv = fgets($buffer); fclose($buffer); diff --git a/vendor/consolidation/output-formatters/src/Formatters/NoOutputFormatter.php b/vendor/consolidation/output-formatters/src/Formatters/NoOutputFormatter.php new file mode 100644 index 0000000000000000000000000000000000000000..1439475557b7f3649f883d9ada26f4bde208464c --- /dev/null +++ b/vendor/consolidation/output-formatters/src/Formatters/NoOutputFormatter.php @@ -0,0 +1,40 @@ +<?php +namespace Consolidation\OutputFormatters\Formatters; + +use Consolidation\OutputFormatters\Validate\ValidationInterface; +use Consolidation\OutputFormatters\Options\FormatterOptions; +use Consolidation\OutputFormatters\Validate\ValidDataTypesTrait; +use Symfony\Component\Console\Output\OutputInterface; + +/** + * No output formatter + * + * This formatter never produces any output. It is useful in cases where + * a command should not produce any output by default, but may do so if + * the user explicitly includes a --format option. + */ +class NoOutputFormatter implements FormatterInterface, ValidationInterface +{ + /** + * All data types are acceptable. + */ + public function isValidDataType(\ReflectionClass $dataType) + { + return true; + } + + /** + * @inheritdoc + */ + public function validate($structuredData) + { + return $structuredData; + } + + /** + * @inheritdoc + */ + public function write(OutputInterface $output, $data, FormatterOptions $options) + { + } +} diff --git a/vendor/consolidation/output-formatters/src/Formatters/StringFormatter.php b/vendor/consolidation/output-formatters/src/Formatters/StringFormatter.php index 142bee4c38e14e2c9b4a494bf752133d176c5eaa..1a008d985c107cfcb38f63f765aa2175e60ffe21 100644 --- a/vendor/consolidation/output-formatters/src/Formatters/StringFormatter.php +++ b/vendor/consolidation/output-formatters/src/Formatters/StringFormatter.php @@ -1,12 +1,15 @@ <?php namespace Consolidation\OutputFormatters\Formatters; -use Consolidation\OutputFormatters\Validate\ValidationInterface; -use Consolidation\OutputFormatters\Options\OverrideOptionsInterface; use Consolidation\OutputFormatters\Options\FormatterOptions; +use Consolidation\OutputFormatters\Options\OverrideOptionsInterface; +use Consolidation\OutputFormatters\StructuredData\RestructureInterface; +use Consolidation\OutputFormatters\StructuredData\UnstructuredInterface; +use Consolidation\OutputFormatters\Transformations\SimplifiedFormatterInterface; +use Consolidation\OutputFormatters\Transformations\StringTransformationInterface; +use Consolidation\OutputFormatters\Validate\ValidationInterface; use Consolidation\OutputFormatters\Validate\ValidDataTypesTrait; use Symfony\Component\Console\Output\OutputInterface; -use Consolidation\OutputFormatters\StructuredData\RestructureInterface; /** * String formatter @@ -19,10 +22,16 @@ class StringFormatter implements FormatterInterface, ValidationInterface, OverrideOptionsInterface { /** - * All data types are acceptable. + * By default, we assume that we can convert any data type to `string`, + * unless it implements UnstructuredInterface, in which case we won't + * allow the `string` format unless the data type also implements + * StringTransformationInterface. */ public function isValidDataType(\ReflectionClass $dataType) { + if ($dataType->implementsInterface('\Consolidation\OutputFormatters\StructuredData\UnstructuredInterface') && !$dataType->implementsInterface('\Consolidation\OutputFormatters\Transformations\StringTransformationInterface')) { + return false; + } return true; } @@ -53,7 +62,7 @@ public function overrideOptions($structuredOutput, FormatterOptions $options) /** * If the data provided to a 'string' formatter is a table, then try - * to emit it as a TSV value. + * to emit it in a simplified form (by default, TSV). * * @param OutputInterface $output * @param mixed $data @@ -61,6 +70,11 @@ public function overrideOptions($structuredOutput, FormatterOptions $options) */ protected function reduceToSigleFieldAndWrite(OutputInterface $output, $data, FormatterOptions $options) { + if ($data instanceof StringTransformationInterface) { + $simplified = $data->simplifyToString($options); + return $output->write($simplified); + } + $alternateFormatter = new TsvFormatter(); try { $data = $alternateFormatter->validate($data); diff --git a/vendor/consolidation/output-formatters/src/Options/FormatterOptions.php b/vendor/consolidation/output-formatters/src/Options/FormatterOptions.php index 68dd13094ca1246ff3a8bcd9563764d248245511..306cc004745dec9e2b50f2c78b08fa14115929bd 100644 --- a/vendor/consolidation/output-formatters/src/Options/FormatterOptions.php +++ b/vendor/consolidation/output-formatters/src/Options/FormatterOptions.php @@ -44,11 +44,15 @@ class FormatterOptions const ROW_LABELS = 'row-labels'; const FIELD_LABELS = 'field-labels'; const DEFAULT_FIELDS = 'default-fields'; + const DEFAULT_TABLE_FIELDS = 'default-table-fields'; const DEFAULT_STRING_FIELD = 'default-string-field'; const DELIMITER = 'delimiter'; + const CSV_ENCLOSURE = 'csv-enclosure'; + const CSV_ESCAPE_CHAR = 'csv-escape-char'; const LIST_DELIMITER = 'list-delimiter'; const TERMINAL_WIDTH = 'width'; const METADATA_TEMPLATE = 'metadata-template'; + const HUMAN_READABLE = 'human-readable'; /** * Create a new FormatterOptions with the configuration data and the @@ -90,6 +94,16 @@ public function setDelimiter($delimiter) return $this->setConfigurationValue(self::DELIMITER, $delimiter); } + public function setCsvEnclosure($enclosure) + { + return $this->setConfigurationValue(self::CSV_ENCLOSURE, $enclosure); + } + + public function setCsvEscapeChar($escapeChar) + { + return $this->setConfigurationValue(self::CSV_ESCAPE_CHAR, $escapeChar); + } + public function setListDelimiter($listDelimiter) { return $this->setConfigurationValue(self::LIST_DELIMITER, $listDelimiter); @@ -132,6 +146,11 @@ public function setWidth($width) return $this->setConfigurationValue(self::TERMINAL_WIDTH, $width); } + public function setHumanReadable($isHumanReadable = true) + { + return $this->setConfigurationValue(self::HUMAN_READABLE, $isHumanReadable); + } + /** * Get a formatter option * diff --git a/vendor/consolidation/output-formatters/src/StructuredData/AbstractListData.php b/vendor/consolidation/output-formatters/src/StructuredData/AbstractListData.php new file mode 100644 index 0000000000000000000000000000000000000000..81382a418765cc6cee6ddad425800b2d6374b2d1 --- /dev/null +++ b/vendor/consolidation/output-formatters/src/StructuredData/AbstractListData.php @@ -0,0 +1,68 @@ +<?php +namespace Consolidation\OutputFormatters\StructuredData; + +use Consolidation\OutputFormatters\Options\FormatterOptions; +use Consolidation\OutputFormatters\Transformations\ReorderFields; + +/** + * Base class for all list data types. + */ +class AbstractListData extends \ArrayObject implements ListDataInterface +{ + public function __construct($data) + { + parent::__construct($data); + } + + public function getListData(FormatterOptions $options) + { + return array_keys($this->getArrayCopy()); + } + + protected function getReorderedFieldLabels($data, $options, $defaults) + { + $reorderer = new ReorderFields(); + $fieldLabels = $reorderer->reorder( + $this->getFields($options, $defaults), + $options->get(FormatterOptions::FIELD_LABELS, $defaults), + $data + ); + return $fieldLabels; + } + + protected function getFields($options, $defaults) + { + $fieldShortcut = $options->get(FormatterOptions::FIELD); + if (!empty($fieldShortcut)) { + return [$fieldShortcut]; + } + $result = $options->get(FormatterOptions::FIELDS); + if (!empty($result)) { + return $result; + } + $isHumanReadable = $options->get(FormatterOptions::HUMAN_READABLE); + if ($isHumanReadable) { + $result = $options->get(FormatterOptions::DEFAULT_TABLE_FIELDS); + if (!empty($result)) { + return $result; + } + } + return $options->get(FormatterOptions::DEFAULT_FIELDS, $defaults); + } + + /** + * A structured list may provide its own set of default options. These + * will be used in place of the command's default options (from the + * annotations) in instances where the user does not provide the options + * explicitly (on the commandline) or implicitly (via a configuration file). + * + * @return array + */ + protected function defaultOptions() + { + return [ + FormatterOptions::FIELDS => [], + FormatterOptions::FIELD_LABELS => [], + ]; + } +} diff --git a/vendor/consolidation/output-formatters/src/StructuredData/AbstractStructuredList.php b/vendor/consolidation/output-formatters/src/StructuredData/AbstractStructuredList.php index ee09a5a4ac9b4977fa5154f60e06bbb917cb599a..ee25af686c2d7d65714a7daf13a4bd11e50784ab 100644 --- a/vendor/consolidation/output-formatters/src/StructuredData/AbstractStructuredList.php +++ b/vendor/consolidation/output-formatters/src/StructuredData/AbstractStructuredList.php @@ -4,7 +4,6 @@ use Consolidation\OutputFormatters\StructuredData\RestructureInterface; use Consolidation\OutputFormatters\Options\FormatterOptions; use Consolidation\OutputFormatters\StructuredData\ListDataInterface; -use Consolidation\OutputFormatters\Transformations\ReorderFields; use Consolidation\OutputFormatters\Transformations\TableTransformation; /** @@ -14,7 +13,7 @@ * * It is presumed that every row contains the same keys. */ -abstract class AbstractStructuredList extends ListDataFromKeys implements RestructureInterface, RenderCellCollectionInterface +abstract class AbstractStructuredList extends AbstractListData implements RestructureInterface, RenderCellCollectionInterface { use RenderCellCollectionTrait; @@ -43,45 +42,11 @@ protected function instantiateTableTransformation($data, $fieldLabels, $rowLabel return new TableTransformation($data, $fieldLabels, $rowLabels); } - protected function getReorderedFieldLabels($data, $options, $defaults) - { - $reorderer = new ReorderFields(); - $fieldLabels = $reorderer->reorder( - $this->getFields($options, $defaults), - $options->get(FormatterOptions::FIELD_LABELS, $defaults), - $data - ); - return $fieldLabels; - } - - protected function getFields($options, $defaults) - { - $fieldShortcut = $options->get(FormatterOptions::FIELD); - if (!empty($fieldShortcut)) { - return [$fieldShortcut]; - } - $result = $options->get(FormatterOptions::FIELDS, $defaults); - if (!empty($result)) { - return $result; - } - return $options->get(FormatterOptions::DEFAULT_FIELDS, $defaults); - } - - /** - * A structured list may provide its own set of default options. These - * will be used in place of the command's default options (from the - * annotations) in instances where the user does not provide the options - * explicitly (on the commandline) or implicitly (via a configuration file). - * - * @return array - */ protected function defaultOptions() { return [ - FormatterOptions::FIELDS => [], - FormatterOptions::FIELD_LABELS => [], FormatterOptions::ROW_LABELS => [], FormatterOptions::DEFAULT_FIELDS => [], - ]; + ] + parent::defaultOptions(); } } diff --git a/vendor/consolidation/output-formatters/src/StructuredData/ConversionInterface.php b/vendor/consolidation/output-formatters/src/StructuredData/ConversionInterface.php new file mode 100644 index 0000000000000000000000000000000000000000..6f6447b337009047e27ecb3d78c2ae9de3c77cbd --- /dev/null +++ b/vendor/consolidation/output-formatters/src/StructuredData/ConversionInterface.php @@ -0,0 +1,15 @@ +<?php +namespace Consolidation\OutputFormatters\StructuredData; + +use Consolidation\OutputFormatters\Options\FormatterOptions; + +interface ConversionInterface +{ + /** + * Allow structured data to be converted -- i.e. from + * RowsOfFields to UnstructuredListData. + * + * @param FormatterOptions $options Formatting options + */ + public function convert(FormatterOptions $options); +} diff --git a/vendor/consolidation/output-formatters/src/StructuredData/FieldProcessor.php b/vendor/consolidation/output-formatters/src/StructuredData/FieldProcessor.php new file mode 100644 index 0000000000000000000000000000000000000000..e0cfd13689b9972f295c645fa24203e20c291a2b --- /dev/null +++ b/vendor/consolidation/output-formatters/src/StructuredData/FieldProcessor.php @@ -0,0 +1,39 @@ +<?php +namespace Consolidation\OutputFormatters\StructuredData; + +use Consolidation\OutputFormatters\Options\FormatterOptions; +use Consolidation\OutputFormatters\StructuredData\RestructureInterface; +use Consolidation\OutputFormatters\Transformations\UnstructuredDataListTransformation; + +/** + * FieldProcessor will do various alterations on field sets. + */ +class FieldProcessor +{ + public static function processFieldAliases($fields) + { + if (!is_array($fields)) { + $fields = array_filter(explode(',', $fields)); + } + $transformed_fields = []; + foreach ($fields as $field) { + list($machine_name,$label) = explode(' as ', $field) + [$field, preg_replace('#.*\.#', '', $field)]; + $transformed_fields[$machine_name] = $label; + } + return $transformed_fields; + } + + /** + * Determine whether the data structure has unstructured field access, + * e.g. `a.b.c` or `foo as bar`. + * @param type $fields + * @return type + */ + public static function hasUnstructuredFieldAccess($fields) + { + if (is_array($fields)) { + $fields = implode(',', $fields); + } + return (strpos($fields, ' as ') !== false) || (strpos($fields, '.') !== false); + } +} diff --git a/vendor/consolidation/output-formatters/src/StructuredData/ListDataFromKeys.php b/vendor/consolidation/output-formatters/src/StructuredData/ListDataFromKeys.php index 299fcfafc6445df1c894d0e3a2bd8846c78d8a41..8cf571465b9556fcfffe5ea3e3603d567d016c32 100644 --- a/vendor/consolidation/output-formatters/src/StructuredData/ListDataFromKeys.php +++ b/vendor/consolidation/output-formatters/src/StructuredData/ListDataFromKeys.php @@ -1,21 +1,9 @@ <?php namespace Consolidation\OutputFormatters\StructuredData; -use Consolidation\OutputFormatters\Options\FormatterOptions; - /** - * Represents aribtrary array data (structured or unstructured) where the - * data to display in --list format comes from the array keys. + * @deprecated Use UnstructuredListData */ -class ListDataFromKeys extends \ArrayObject implements ListDataInterface +class ListDataFromKeys extends AbstractListData { - public function __construct($data) - { - parent::__construct($data); - } - - public function getListData(FormatterOptions $options) - { - return array_keys($this->getArrayCopy()); - } } diff --git a/vendor/consolidation/output-formatters/src/StructuredData/PropertyList.php b/vendor/consolidation/output-formatters/src/StructuredData/PropertyList.php index 8a34225027e9a42e4db695dc6cb7b857c03d23b3..10b182cb3dd68ab436b2300e990eea01b35965cf 100644 --- a/vendor/consolidation/output-formatters/src/StructuredData/PropertyList.php +++ b/vendor/consolidation/output-formatters/src/StructuredData/PropertyList.php @@ -13,8 +13,21 @@ * key : value pair. The keys must be unique, as is typically * the case for associative arrays. */ -class PropertyList extends AbstractStructuredList +class PropertyList extends AbstractStructuredList implements ConversionInterface { + /** + * @inheritdoc + */ + public function convert(FormatterOptions $options) + { + $defaults = $this->defaultOptions(); + $fields = $this->getFields($options, $defaults); + if (FieldProcessor::hasUnstructuredFieldAccess($fields)) { + return new UnstructuredData($this->getArrayCopy()); + } + return $this; + } + /** * Restructure this data for output by converting it into a table * transformation object. diff --git a/vendor/consolidation/output-formatters/src/StructuredData/RowsOfFields.php b/vendor/consolidation/output-formatters/src/StructuredData/RowsOfFields.php index bc88e6d190ed7eec79daa36de0525687a9ef30eb..9ca1e38602eddf85a5c4282ad6c227979d747b79 100644 --- a/vendor/consolidation/output-formatters/src/StructuredData/RowsOfFields.php +++ b/vendor/consolidation/output-formatters/src/StructuredData/RowsOfFields.php @@ -10,8 +10,21 @@ * * It is presumed that every row contains the same keys. */ -class RowsOfFields extends AbstractStructuredList +class RowsOfFields extends AbstractStructuredList implements ConversionInterface { + /** + * @inheritdoc + */ + public function convert(FormatterOptions $options) + { + $defaults = $this->defaultOptions(); + $fields = $this->getFields($options, $defaults); + if (FieldProcessor::hasUnstructuredFieldAccess($fields)) { + return new UnstructuredListData($this->getArrayCopy()); + } + return $this; + } + /** * Restructure this data for output by converting it into a table * transformation object. diff --git a/vendor/consolidation/output-formatters/src/StructuredData/UnstructuredData.php b/vendor/consolidation/output-formatters/src/StructuredData/UnstructuredData.php new file mode 100644 index 0000000000000000000000000000000000000000..6de973e0478befdec86d0e2288727e6876cc8e48 --- /dev/null +++ b/vendor/consolidation/output-formatters/src/StructuredData/UnstructuredData.php @@ -0,0 +1,30 @@ +<?php +namespace Consolidation\OutputFormatters\StructuredData; + +use Consolidation\OutputFormatters\Options\FormatterOptions; +use Consolidation\OutputFormatters\StructuredData\RestructureInterface; +use Consolidation\OutputFormatters\Transformations\UnstructuredDataTransformation; + +/** + * Represents aribtrary unstructured array data where the + * data to display in --list format comes from the array keys. + * + * Unstructured list data can have variable keys in every rown (unlike + * RowsOfFields, which expects uniform rows), and the data elements may + * themselves be deep arrays. + */ +class UnstructuredData extends AbstractListData implements UnstructuredInterface, RestructureInterface +{ + public function __construct($data) + { + parent::__construct($data); + } + + public function restructure(FormatterOptions $options) + { + $defaults = $this->defaultOptions(); + $fields = $this->getFields($options, $defaults); + + return new UnstructuredDataTransformation($this->getArrayCopy(), FieldProcessor::processFieldAliases($fields)); + } +} diff --git a/vendor/consolidation/output-formatters/src/StructuredData/UnstructuredInterface.php b/vendor/consolidation/output-formatters/src/StructuredData/UnstructuredInterface.php new file mode 100644 index 0000000000000000000000000000000000000000..e064a66fc32a5f0f0aa4ff1213dbead4260b3d29 --- /dev/null +++ b/vendor/consolidation/output-formatters/src/StructuredData/UnstructuredInterface.php @@ -0,0 +1,14 @@ +<?php +namespace Consolidation\OutputFormatters\StructuredData; + +use Consolidation\OutputFormatters\Options\FormatterOptions; + +/** + * UnstructuredInterface is a marker interface that indicates that the + * data type is unstructured, and has no default conversion to a string. + * Unstructured data supports the `string` format only if it also implements + * StringTransformationInterface. + */ +interface UnstructuredInterface +{ +} diff --git a/vendor/consolidation/output-formatters/src/StructuredData/UnstructuredListData.php b/vendor/consolidation/output-formatters/src/StructuredData/UnstructuredListData.php new file mode 100644 index 0000000000000000000000000000000000000000..8cc9d19572bf6a66b74f500066e22604e7c591f4 --- /dev/null +++ b/vendor/consolidation/output-formatters/src/StructuredData/UnstructuredListData.php @@ -0,0 +1,30 @@ +<?php +namespace Consolidation\OutputFormatters\StructuredData; + +use Consolidation\OutputFormatters\Options\FormatterOptions; +use Consolidation\OutputFormatters\StructuredData\RestructureInterface; +use Consolidation\OutputFormatters\Transformations\UnstructuredDataListTransformation; + +/** + * Represents aribtrary unstructured array data where the + * data to display in --list format comes from the array keys. + * + * Unstructured list data can have variable keys in every rown (unlike + * RowsOfFields, which expects uniform rows), and the data elements may + * themselves be deep arrays. + */ +class UnstructuredListData extends AbstractListData implements UnstructuredInterface, RestructureInterface +{ + public function __construct($data) + { + parent::__construct($data); + } + + public function restructure(FormatterOptions $options) + { + $defaults = $this->defaultOptions(); + $fields = $this->getFields($options, $defaults); + + return new UnstructuredDataListTransformation($this->getArrayCopy(), FieldProcessor::processFieldAliases($fields)); + } +} diff --git a/vendor/consolidation/output-formatters/src/Transformations/ReorderFields.php b/vendor/consolidation/output-formatters/src/Transformations/ReorderFields.php index ca1ee7c31c84475f1e0bc833f17e6e0e3196c687..40d111d58f97b9c71cb98f6e7b7266d2f632f50c 100644 --- a/vendor/consolidation/output-formatters/src/Transformations/ReorderFields.php +++ b/vendor/consolidation/output-formatters/src/Transformations/ReorderFields.php @@ -57,6 +57,9 @@ protected function reorderFieldLabels($fields, $fieldLabels, $data) protected function getSelectedFieldKeys($fields, $fieldLabels) { + if (empty($fieldLabels)) { + return []; + } if (is_string($fields)) { $fields = explode(',', $fields); } diff --git a/vendor/consolidation/output-formatters/src/Transformations/StringTransformationInterface.php b/vendor/consolidation/output-formatters/src/Transformations/StringTransformationInterface.php new file mode 100644 index 0000000000000000000000000000000000000000..e303a12d3f43420c092334f0f06544aa01e25d4d --- /dev/null +++ b/vendor/consolidation/output-formatters/src/Transformations/StringTransformationInterface.php @@ -0,0 +1,13 @@ +<?php +namespace Consolidation\OutputFormatters\Transformations; + +use Consolidation\OutputFormatters\Options\FormatterOptions; + +interface StringTransformationInterface +{ + /** + * simplifyToString is called by the string formatter to convert + * structured data to a simple string. + */ + public function simplifyToString(FormatterOptions $options); +} diff --git a/vendor/consolidation/output-formatters/src/Transformations/TableTransformation.php b/vendor/consolidation/output-formatters/src/Transformations/TableTransformation.php index 52e9403b170606a0c898cc87460d0f3633532582..0922974513254313b67d416eb4355bc8ead9758f 100644 --- a/vendor/consolidation/output-formatters/src/Transformations/TableTransformation.php +++ b/vendor/consolidation/output-formatters/src/Transformations/TableTransformation.php @@ -4,8 +4,11 @@ use Consolidation\OutputFormatters\StructuredData\TableDataInterface; use Consolidation\OutputFormatters\StructuredData\OriginalDataInterface; use Consolidation\OutputFormatters\StructuredData\MetadataHolderInterface; +use Consolidation\OutputFormatters\Options\FormatterOptions; +use Consolidation\OutputFormatters\Formatters\TsvFormatter; +use Symfony\Component\Console\Output\BufferedOutput; -class TableTransformation extends \ArrayObject implements TableDataInterface, OriginalDataInterface +class TableTransformation extends \ArrayObject implements TableDataInterface, StringTransformationInterface, OriginalDataInterface { protected $headers; protected $rowLabels; @@ -40,6 +43,22 @@ public function isList() return $this->layout == self::LIST_LAYOUT; } + /** + * @inheritdoc + */ + public function simplifyToString(FormatterOptions $options) + { + $alternateFormatter = new TsvFormatter(); + $output = new BufferedOutput(); + + try { + $data = $alternateFormatter->validate($this->getArrayCopy()); + $alternateFormatter->write($output, $this->getArrayCopy(), $options); + } catch (\Exception $e) { + } + return $output->fetch(); + } + protected static function transformRows($data, $fieldLabels) { $rows = []; diff --git a/vendor/consolidation/output-formatters/src/Transformations/UnstructuredDataFieldAccessor.php b/vendor/consolidation/output-formatters/src/Transformations/UnstructuredDataFieldAccessor.php new file mode 100644 index 0000000000000000000000000000000000000000..8ef7f12b5b054ace55e4b1fb66364c7b9203bba7 --- /dev/null +++ b/vendor/consolidation/output-formatters/src/Transformations/UnstructuredDataFieldAccessor.php @@ -0,0 +1,36 @@ +<?php +namespace Consolidation\OutputFormatters\Transformations; + +use Dflydev\DotAccessData\Data; + +class UnstructuredDataFieldAccessor +{ + protected $data; + + public function __construct($data) + { + $this->data = $data; + } + + public function get($fields) + { + $data = new Data($this->data); + $result = new Data(); + foreach ($fields as $key => $label) { + $item = $data->get($key); + if (isset($item)) { + if ($label == '.') { + if (!is_array($item)) { + return $item; + } + foreach ($item as $key => $value) { + $result->set($key, $value); + } + } else { + $result->set($label, $data->get($key)); + } + } + } + return $result->export(); + } +} diff --git a/vendor/consolidation/output-formatters/src/Transformations/UnstructuredDataListTransformation.php b/vendor/consolidation/output-formatters/src/Transformations/UnstructuredDataListTransformation.php new file mode 100644 index 0000000000000000000000000000000000000000..b84a0ebf52c5fdf51a657eedc2c1399b7b9e5ae5 --- /dev/null +++ b/vendor/consolidation/output-formatters/src/Transformations/UnstructuredDataListTransformation.php @@ -0,0 +1,38 @@ +<?php +namespace Consolidation\OutputFormatters\Transformations; + +use Consolidation\OutputFormatters\Options\FormatterOptions; + +class UnstructuredDataListTransformation extends \ArrayObject implements StringTransformationInterface +{ + public function __construct($data, $fields) + { + $this->originalData = $data; + $rows = static::transformRows($data, $fields); + parent::__construct($rows); + } + + protected static function transformRows($data, $fields) + { + $rows = []; + foreach ($data as $rowid => $row) { + $rows[$rowid] = UnstructuredDataTransformation::transformRow($row, $fields); + } + return $rows; + } + + public function simplifyToString(FormatterOptions $options) + { + $result = ''; + $iterator = $this->getIterator(); + while ($iterator->valid()) { + $simplifiedRow = UnstructuredDataTransformation::simplifyRow($iterator->current()); + if (isset($simplifiedRow)) { + $result .= "$simplifiedRow\n"; + } + + $iterator->next(); + } + return $result; + } +} diff --git a/vendor/consolidation/output-formatters/src/Transformations/UnstructuredDataTransformation.php b/vendor/consolidation/output-formatters/src/Transformations/UnstructuredDataTransformation.php new file mode 100644 index 0000000000000000000000000000000000000000..c1bfd508e55ffabba9aebe14c2e8f0761bc87975 --- /dev/null +++ b/vendor/consolidation/output-formatters/src/Transformations/UnstructuredDataTransformation.php @@ -0,0 +1,52 @@ +<?php +namespace Consolidation\OutputFormatters\Transformations; + +use Consolidation\OutputFormatters\Options\FormatterOptions; + +class UnstructuredDataTransformation extends \ArrayObject implements StringTransformationInterface +{ + protected $originalData; + + public function __construct($data, $fields) + { + $this->originalData = $data; + $rows = static::transformRow($data, $fields); + parent::__construct($rows); + } + + public function simplifyToString(FormatterOptions $options) + { + return static::simplifyRow($this->getArrayCopy()); + } + + public static function transformRow($row, $fields) + { + if (empty($fields)) { + return $row; + } + $fieldAccessor = new UnstructuredDataFieldAccessor($row); + return $fieldAccessor->get($fields); + } + + public static function simplifyRow($row) + { + if (is_string($row)) { + return $row; + } + if (static::isSimpleArray($row)) { + return implode("\n", $row); + } + // No good way to simplify - just dump a json fragment + return json_encode($row); + } + + protected static function isSimpleArray($row) + { + foreach ($row as $item) { + if (!is_string($item)) { + return false; + } + } + return true; + } +} diff --git a/vendor/drush/drush/.circleci/config.yml b/vendor/drush/drush/.circleci/config.yml new file mode 100644 index 0000000000000000000000000000000000000000..d26009f0c12c32e4ee48e67bc0b64849fae01de1 --- /dev/null +++ b/vendor/drush/drush/.circleci/config.yml @@ -0,0 +1,24 @@ +# https://circleci.com/docs/2.0/workflows/#using-workspaces-to-share-data-among-jobs +defaults: &defaults + working_directory: ~/drush + environment: + TZ: "/usr/share/zoneinfo/America/Los_Angeles" + TERM: dumb + PHPUNIT_ARGS: "" + +version: 2 +jobs: + lint: + <<: *defaults + docker: + - image: circleci/php:7.1-apache-node + steps: + - checkout + - run: composer install --prefer-dist --no-interaction + - run: composer lint + +workflows: + version: 2 + build_test: + jobs: + - lint diff --git a/vendor/drush/drush/.travis.yml b/vendor/drush/drush/.travis.yml index e5b2ca376fc82a15ebeae2bddcb7550788d3b0b4..4939c0cef3846b34800bda1fe79e505b2e0216c9 100644 --- a/vendor/drush/drush/.travis.yml +++ b/vendor/drush/drush/.travis.yml @@ -27,33 +27,21 @@ env: matrix: include: - # D8.5.x - - php: 7.0 - env: 'UNISH_DRUPAL_MAJOR_VERSION=8 UNISH_DRUPAL_MINOR_VERSION=5.0-rc1 PHPUNIT_ARGS=--group=base' - - php: 7.0 - env: 'UNISH_DRUPAL_MAJOR_VERSION=8 UNISH_DRUPAL_MINOR_VERSION=5.0-rc1 PHPUNIT_ARGS=--group=commands' - - php: 7.0 - env: 'UNISH_DRUPAL_MAJOR_VERSION=8 UNISH_DRUPAL_MINOR_VERSION=5.0-rc1 PHPUNIT_ARGS=--group=pm' + # D8.7.x - php: 7.0 - env: 'UNISH_DRUPAL_MAJOR_VERSION=8 UNISH_DRUPAL_MINOR_VERSION=5.0-rc1 PHPUNIT_ARGS=--group=quick-drupal' + env: 'UNISH_DRUPAL_MAJOR_VERSION=8 UNISH_DRUPAL_MINOR_VERSION=7.0-alpha1' + + # D8.6.x - php: 7.0 - env: 'UNISH_DRUPAL_MAJOR_VERSION=8 UNISH_DRUPAL_MINOR_VERSION=5.0-rc1 PHPUNIT_ARGS=--group=make' + env: 'UNISH_DRUPAL_MAJOR_VERSION=8 UNISH_DRUPAL_MINOR_VERSION=6.12' + + # D8.5.x - php: 7.0 - env: 'UNISH_DRUPAL_MAJOR_VERSION=8 UNISH_DRUPAL_MINOR_VERSION=5.0-rc1 PHPUNIT_ARGS=--exclude-group=base,make,commands,pm,quick-drupal TEST_CHILDREN="drush-ops/config-extra"' + env: 'UNISH_DRUPAL_MAJOR_VERSION=8 UNISH_DRUPAL_MINOR_VERSION=5.13' # D8.4.x - php: 7.0 - env: 'UNISH_DRUPAL_MAJOR_VERSION=8 UNISH_DRUPAL_MINOR_VERSION=4.5 PHPUNIT_ARGS=--group=base' - - php: 7.0 - env: 'UNISH_DRUPAL_MAJOR_VERSION=8 UNISH_DRUPAL_MINOR_VERSION=4.5 PHPUNIT_ARGS=--group=commands' - - php: 7.0 - env: 'UNISH_DRUPAL_MAJOR_VERSION=8 UNISH_DRUPAL_MINOR_VERSION=4.5 PHPUNIT_ARGS=--group=pm' - - php: 7.0 - env: 'UNISH_DRUPAL_MAJOR_VERSION=8 UNISH_DRUPAL_MINOR_VERSION=4.5 PHPUNIT_ARGS=--group=quick-drupal' - - php: 7.0 - env: 'UNISH_DRUPAL_MAJOR_VERSION=8 UNISH_DRUPAL_MINOR_VERSION=4.5 PHPUNIT_ARGS=--group=make' - - php: 7.0 - env: 'UNISH_DRUPAL_MAJOR_VERSION=8 UNISH_DRUPAL_MINOR_VERSION=4.5 PHPUNIT_ARGS=--exclude-group=base,make,commands,pm,quick-drupal TEST_CHILDREN="drush-ops/config-extra"' + env: 'UNISH_DRUPAL_MAJOR_VERSION=8 UNISH_DRUPAL_MINOR_VERSION=4.8 PHPUNIT_ARGS=--group=commands' # D8.3.x - php: 7.0 @@ -65,42 +53,19 @@ matrix: # D7 - php: 7.0 - env: 'UNISH_DRUPAL_MAJOR_VERSION=7 PHPUNIT_ARGS=--group=base' - - php: 7.0 - env: 'UNISH_DRUPAL_MAJOR_VERSION=7 PHPUNIT_ARGS=--group=commands' - - php: 7.0 - env: 'UNISH_DRUPAL_MAJOR_VERSION=7 PHPUNIT_ARGS=--group=pm' - - php: 7.0 - env: 'UNISH_DRUPAL_MAJOR_VERSION=7 PHPUNIT_ARGS=--group=quick-drupal' - - php: 7.0 - env: 'UNISH_DRUPAL_MAJOR_VERSION=7 PHPUNIT_ARGS=--group=make' - - php: 7.0 - env: 'UNISH_DRUPAL_MAJOR_VERSION=7 PHPUNIT_ARGS=--exclude-group=base,make,commands,pm,quick-drupal TEST_CHILDREN="drush-ops/config-extra"' + env: 'UNISH_DRUPAL_MAJOR_VERSION=7' # D7 - php: 5.6 - env: 'UNISH_DRUPAL_MAJOR_VERSION=7 PHPUNIT_ARGS=--group=base' - - php: 5.6 - env: 'UNISH_DRUPAL_MAJOR_VERSION=7 PHPUNIT_ARGS=--group=commands' - - php: 5.6 - env: 'UNISH_DRUPAL_MAJOR_VERSION=7 PHPUNIT_ARGS=--group=pm' - - php: 5.6 - env: 'UNISH_DRUPAL_MAJOR_VERSION=7 PHPUNIT_ARGS=--group=quick-drupal' - - php: 5.6 - env: 'UNISH_DRUPAL_MAJOR_VERSION=7 PHPUNIT_ARGS=--group=make' - - php: 5.6 - env: 'UNISH_DRUPAL_MAJOR_VERSION=7 PHPUNIT_ARGS=--exclude-group=base,make,commands,pm,quick-drupal TEST_CHILDREN="drush-ops/config-extra"' + env: 'UNISH_DRUPAL_MAJOR_VERSION=7' + + # D6 + - php: 7.0 + env: 'UNISH_DRUPAL_MAJOR_VERSION=6' # D6 - # Note that Drupal 6 does not work with PHP 7 - - php: 5.4 - env: 'UNISH_DRUPAL_MAJOR_VERSION=7 PHPUNIT_ARGS=--group=base' - - php: 5.4 - env: 'UNISH_DRUPAL_MAJOR_VERSION=7 PHPUNIT_ARGS=--group=commands' - - php: 5.4 - env: 'UNISH_DRUPAL_MAJOR_VERSION=7 PHPUNIT_ARGS=--group=pm' - php: 5.4 - env: 'UNISH_DRUPAL_MAJOR_VERSION=7 PHPUNIT_ARGS=--exclude-group=base,make,commands,pm,quick-drupal TEST_CHILDREN="drush-ops/config-extra"' + env: 'UNISH_DRUPAL_MAJOR_VERSION=6' before_install: - echo 'mbstring.http_input = pass' >> ~/.phpenv/versions/$(phpenv version-name)/etc/conf.d/travis.ini diff --git a/vendor/drush/drush/circle.yml b/vendor/drush/drush/circle.yml deleted file mode 100644 index 9e057c23a6a738b90180eedb77693e3bccdd8adb..0000000000000000000000000000000000000000 --- a/vendor/drush/drush/circle.yml +++ /dev/null @@ -1,15 +0,0 @@ -machine: - timezone: - America/Chicago - php: - version: 7.0.11 - -dependencies: - cache_directories: - - ~/.composer/cache - override: - - composer install --prefer-dist --no-interaction - -test: - override: - - composer lint diff --git a/vendor/drush/drush/commands/core/archive.drush.inc b/vendor/drush/drush/commands/core/archive.drush.inc index 313cc36dfe17ac4e5c3764f943d41c3ec341aa7d..5361f37ebebc98c6ece802b23e874fd23c56ee9e 100644 --- a/vendor/drush/drush/commands/core/archive.drush.inc +++ b/vendor/drush/drush/commands/core/archive.drush.inc @@ -35,7 +35,7 @@ function archive_drush_command() { 'drush archive-dump --tar-options="--exclude=%files"' => 'Placeholder %files is replaced with the real path for the current site, and that path is excluded.', ), 'bootstrap' => DRUSH_BOOTSTRAP_DRUPAL_SITE, - 'aliases' => array('ard', 'archive-backup', 'arb'), + 'aliases' => array('ard', 'archive-backup', 'arb', 'archive:dump'), ); $items['archive-restore'] = array( 'description' => 'Expand a site archive into a Drupal web site.', @@ -63,7 +63,7 @@ function archive_drush_command() { 'drush archive-restore ./example.tar.gz --db-url=mysql://root:pass@127.0.0.1/dbname' => 'Restore archive to a new database (and customize settings.php to point there.).', ), 'bootstrap' => DRUSH_BOOTSTRAP_NONE, - 'aliases' => array('arr'), + 'aliases' => array('arr', 'archive:restore'), ); return $items; } diff --git a/vendor/drush/drush/commands/core/cache.drush.inc b/vendor/drush/drush/commands/core/cache.drush.inc index 990fc9f1a9b99a902cbcc9e92a6a77ebcc04a753..59cd97783bff78dba8843a8a1769b287fca561a5 100644 --- a/vendor/drush/drush/commands/core/cache.drush.inc +++ b/vendor/drush/drush/commands/core/cache.drush.inc @@ -42,7 +42,7 @@ function cache_drush_command() { 'pipe-format' => 'var_export', 'output-data-type' => TRUE, ), - 'aliases' => array('cg'), + 'aliases' => array('cg','cache:get'), ); $items['cache-clear'] = array( 'bootstrap' => DRUSH_BOOTSTRAP_MAX, @@ -51,7 +51,7 @@ function cache_drush_command() { 'type' => 'The particular cache to clear. Omit this argument to choose from available caches.', ), 'callback' => 'drush_cache_command_clear', - 'aliases' => array('cc'), + 'aliases' => array('cc','cache:clear'), ); $items['cache-set'] = array( 'description' => 'Cache an object expressed in JSON or var_export() format.', @@ -69,7 +69,7 @@ function cache_drush_command() { 'cache-get' => 'If the object is the result a previous fetch from the cache, only store the value in the "data" property of the object in the cache.', ), 'callback' => 'drush_cache_command_set', - 'aliases' => array('cs'), + 'aliases' => array('cs','cache:set'), ); $items['cache-rebuild'] = array( 'description' => 'Rebuild a Drupal 8 site and clear all its caches.', @@ -79,7 +79,7 @@ function cache_drush_command() { // Further bootstrap is done by the rebuild script. 'bootstrap' => DRUSH_BOOTSTRAP_DRUPAL_SITE, 'core' => array('8+'), - 'aliases' => array('cr', 'rebuild'), + 'aliases' => array('cr', 'rebuild', 'cache:rebuild'), ); return $items; diff --git a/vendor/drush/drush/commands/core/cli.drush.inc b/vendor/drush/drush/commands/core/cli.drush.inc index 9d9a2d1e3bd808f79634f1c0baf0ce71222c8288..3e99ca3a19884fc9bf54e3072e922675c2e4925e 100644 --- a/vendor/drush/drush/commands/core/cli.drush.inc +++ b/vendor/drush/drush/commands/core/cli.drush.inc @@ -14,11 +14,12 @@ function cli_drush_command() { $items['core-cli'] = array( 'description' => 'Open an interactive shell on a Drupal site.', 'remote-tty' => TRUE, - 'aliases' => array('php'), + 'aliases' => array('php', 'core:cli'), 'bootstrap' => DRUSH_BOOTSTRAP_MAX, 'topics' => array('docs-repl'), 'options' => array( 'version-history' => 'Use command history based on Drupal version (Default is per site).', + 'cwd' => 'Changes the working directory of the shell (Default is the project root directory)', ), ); $items['docs-repl'] = array( @@ -28,6 +29,7 @@ function cli_drush_command() { 'bootstrap' => DRUSH_BOOTSTRAP_NONE, 'callback' => 'drush_print_file', 'callback arguments' => array(drush_get_context('DOC_PREFIX', DRUSH_BASE_PATH) . '/docs/repl.md'), + 'aliases' => array('docs:repl'), ); return $items; } @@ -95,6 +97,12 @@ function drush_cli_core_cli() { Database::closeConnection(); } + // if the cwd option is passed, lets change the current working directory to wherever + // the user wants to go before we lift psysh. + if ($cwd = drush_get_option('cwd',FALSE)) { + chdir($cwd); + } + $shell->run(); } diff --git a/vendor/drush/drush/commands/core/config.drush.inc b/vendor/drush/drush/commands/core/config.drush.inc index ee2384afe1ecbdabf19b48b0672fa70327cc241e..254f5ce4ef79f3158f88e6370a34017e575b3e0a 100644 --- a/vendor/drush/drush/commands/core/config.drush.inc +++ b/vendor/drush/drush/commands/core/config.drush.inc @@ -58,7 +58,7 @@ function config_drush_command() { 'default' => 'yaml', 'pipe-format' => 'var_export', ), - 'aliases' => array('cget'), + 'aliases' => array('cget', 'config:get'), 'core' => array('8+'), ); @@ -84,14 +84,14 @@ function config_drush_command() { 'examples' => array( 'drush config-set system.site page.front node' => 'Sets system.site:page.front to "node".', ), - 'aliases' => array('cset'), + 'aliases' => array('cset', 'config:set'), 'core' => array('8+'), ); $items['config-export'] = array( 'description' => 'Export configuration to a directory.', 'core' => array('8+'), - 'aliases' => array('cex'), + 'aliases' => array('cex', 'config:export'), 'arguments' => array( 'label' => "A config directory label (i.e. a key in \$config_directories array in settings.php). Defaults to 'sync'", ), @@ -136,13 +136,13 @@ function config_drush_command() { 'examples' => array( 'drush config-import --partial' => 'Import configuration; do not remove missing configuration.', ), - 'aliases' => array('cim'), + 'aliases' => array('cim', 'config:import'), ); $items['config-list'] = array( 'description' => 'List config names by prefix.', 'core' => array('8+'), - 'aliases' => array('cli'), + 'aliases' => array('cli', 'config:list'), 'arguments' => array( 'prefix' => 'The config prefix. For example, "system". No prefix will return all names in the system.', ), @@ -161,7 +161,7 @@ function config_drush_command() { $items['config-edit'] = $deps + array( 'description' => 'Open a config file in a text editor. Edits are imported into active configuration after closing editor.', 'core' => array('8+'), - 'aliases' => array('cedit'), + 'aliases' => array('cedit', 'config:edit'), 'arguments' => array( 'config-name' => 'The config object name, for example "system.site".', ), @@ -178,7 +178,7 @@ function config_drush_command() { $items['config-delete'] = array( 'description' => 'Delete a configuration object.', 'core' => array('8+'), - 'aliases' => array('cdel'), + 'aliases' => array('cdel', 'config:delete'), 'arguments' => array( 'config-name' => 'The config object name, for example "system.site".', 'key' => 'A config key to clear, for example "page.front".', @@ -191,7 +191,7 @@ function config_drush_command() { // 'core' => array('8+'), Operates on remote sites so not possible to declare this locally. 'drush dependencies' => array('config', 'core'), // core-rsync, core-execute. 'bootstrap' => DRUSH_BOOTSTRAP_NONE, - 'aliases' => array('cpull'), + 'aliases' => array('cpull', 'config:pull'), 'arguments' => array( 'source' => 'A site-alias or the name of a subdirectory within /sites whose config you want to copy from.', 'target' => 'A site-alias or the name of a subdirectory within /sites whose config you want to replace.', @@ -800,7 +800,7 @@ function drush_config_pull($source, $destination) { ); drush_log(dt('Starting to export configuration on Target.'), LogLevel::OK); $return = drush_invoke_process($source, 'config-export', array(), $global_options + $export_options, $backend_options); - if ($return['error_status']) { + if ($return === FALSE || $return['error_status']) { return drush_set_error('DRUSH_CONFIG_PULL_EXPORT_FAILED', dt('Config-export failed.')); } else { diff --git a/vendor/drush/drush/commands/core/core.drush.inc b/vendor/drush/drush/commands/core/core.drush.inc index a715cc34f7df635805569ccde56caa0cbfc3b5e8..62caf5c5a736515f83287327119e397f078865ed 100644 --- a/vendor/drush/drush/commands/core/core.drush.inc +++ b/vendor/drush/drush/commands/core/core.drush.inc @@ -32,6 +32,7 @@ function core_drush_help($section) { $message .= dt("Hint: This may occur when Drush is trying to:\n"); $message .= dt(" * bootstrap a site that has not been installed or does not have a configured database. In this case you can select another site with a working database setup by specifying the URI to use with the --uri parameter on the command line. See `drush topic docs-aliases` for details.\n"); $message .= dt(" * connect the database through a socket. The socket file may be wrong or the php-cli may have no access to it in a jailed shell. See http://drupal.org/node/1428638 for details.\n"); + $message .= dt(" * connect to the database through a cli command using the --defaults-extra-file parameter to pass credentials through a tmp file. This method can break if other credentials are specified in a ~/.my.cnf file in your home directory. You may have to delete or rename the ~/.my.cnf file in your home directory.\n"); $message .= dt("\nDrush was attempting to connect to: \n!credentials\n", array('!credentials' => _core_site_credentials(12))); return $message; case 'error:DRUSH_DRUPAL_BOOTSTRAP_ERROR': @@ -86,7 +87,7 @@ function core_drush_command() { ); $items['core-cron'] = array( 'description' => 'Run all cron hooks in all active modules for specified site.', - 'aliases' => array('cron'), + 'aliases' => array('cron', 'core:cron'), 'topics' => array('docs-cron'), ); $items['updatedb'] = array( @@ -102,13 +103,13 @@ function core_drush_command() { ); $items['entity-updates'] = array( 'description' => 'Apply pending entity schema updates.', - 'aliases' => array('entup'), + 'aliases' => array('entup', 'entity:updates'), 'bootstrap' => DRUSH_BOOTSTRAP_DRUPAL_FULL, 'core' => array('8+'), ); $items['twig-compile'] = array( 'description' => 'Compile all Twig template(s).', - 'aliases' => array('twigc'), + 'aliases' => array('twigc', 'twig:compile'), 'core' => array('8+'), ); $items['updatedb-status'] = array( @@ -120,7 +121,7 @@ function core_drush_command() { 'fields-default' => array('module', 'update_id', 'description'), 'output-data-type' => 'format-table', ), - 'aliases' => array('updbst'), + 'aliases' => array('updbst', 'updatedb:status'), ); $items['core-config'] = array( 'description' => 'Edit drushrc, site alias, and Drupal settings.php files.', @@ -137,12 +138,12 @@ function core_drush_command() { 'drush core-config sett' => 'Edit settings.php for the current Drupal site.', 'drush core-config --choice=2' => 'Edit the second file in the choice list.', ), - 'aliases' => array('conf', 'config'), + 'aliases' => array('conf', 'config', 'core:config'), ); $items['core-status'] = array( 'description' => 'Provides a birds-eye view of the current Drupal installation, if any.', 'bootstrap' => DRUSH_BOOTSTRAP_MAX, - 'aliases' => array('status', 'st'), + 'aliases' => array('status', 'st', 'core:status'), 'examples' => array( 'drush core-status version' => 'Show all status lines that contain version information.', 'drush core-status --pipe' => 'A list key=value items separated by line breaks.', @@ -177,7 +178,7 @@ function core_drush_command() { $items['core-requirements'] = array( 'description' => 'Provides information about things that may be wrong in your Drupal installation, if any.', - 'aliases' => array('status-report','rq'), + 'aliases' => array('status-report','rq', 'core:requirements'), 'examples' => array( 'drush core-requirements' => 'Show all status lines from the Status Report admin page.', 'drush core-requirements --severity=2' => 'Show only the red lines from the Status Report admin page.', @@ -221,7 +222,7 @@ function core_drush_command() { 'required-arguments' => TRUE, 'allow-additional-options' => TRUE, 'bootstrap' => DRUSH_BOOTSTRAP_MAX, - 'aliases' => array('eval', 'ev'), + 'aliases' => array('eval', 'ev', 'php:eval'), 'outputformat' => array( 'default' => 'var_export', ), @@ -246,7 +247,7 @@ function core_drush_command() { ), 'allow-additional-options' => TRUE, 'bootstrap' => DRUSH_BOOTSTRAP_MAX, - 'aliases' => array('scr'), + 'aliases' => array('scr', 'php:script'), 'topics' => array('docs-examplescript', 'docs-scripts'), ); $items['core-execute'] = array( @@ -265,7 +266,7 @@ function core_drush_command() { 'examples' => array( 'drush core-execute git pull origin rebase' => 'Retrieve latest code from git', ), - 'aliases' => array('exec', 'execute'), + 'aliases' => array('exec', 'execute', 'core:execute'), 'topics' => array('docs-aliases'), ); $items['core-rsync'] = array( @@ -295,7 +296,7 @@ function core_drush_command() { 'drush rsync ./ @stage:%files/img' => 'Rsync all files in the current directory to the \'img\' directory in the file storage folder on the Drush alias stage.', 'drush -s rsync @dev @stage --exclude=*.sql --delete' => "Simulate Rsync Drupal root from the Drush alias dev to the alias stage (one of which must be local), excluding all files that match the filter '*.sql' and delete all files on the destination that are no longer on the source.", ), - 'aliases' => array('rsync'), + 'aliases' => array('rsync', 'core:rsync'), 'topics' => array('docs-aliases'), ); $items['drupal-directory'] = array( @@ -314,7 +315,7 @@ function core_drush_command() { 'drush dd @alias:%files' => 'Print the path to the files directory on the site @alias.', 'edit `drush dd devel`/devel.module' => "Open devel module in your editor (customize 'edit' for your editor)", ), - 'aliases' => array('dd'), + 'aliases' => array('dd', 'drupal:directory'), 'bootstrap' => DRUSH_BOOTSTRAP_NONE, ); @@ -326,6 +327,7 @@ function core_drush_command() { ), 'required-arguments' => TRUE, 'bootstrap' => DRUSH_BOOTSTRAP_DRUPAL_LOGIN, + 'aliases' => array('batch:process'), ); $items['updatedb-batch-process'] = array( @@ -338,6 +340,7 @@ function core_drush_command() { // Drupal 7 needs DRUSH_BOOTSTRAP_DRUPAL_CONFIGURATION, while Drupal 8 needs _FULL. // Therefore we bootstrap to _FULL in commands/core/drupal/update.inc. 'bootstrap' => DRUSH_BOOTSTRAP_DRUPAL_CONFIGURATION, + 'aliases' => array('updatedb:batch-process'), ); $items['core-global-options'] = array( 'description' => 'All global options', @@ -350,11 +353,12 @@ function core_drush_command() { 'field-labels' => array('label' => 'Label', 'description' => 'Description'), 'output-data-type' => 'format-table', ), + 'aliases' => array('core:global-options'), ); $items['core-quick-drupal'] = array( 'description' => 'Download, install, serve and login to Drupal with minimal configuration and dependencies.', 'bootstrap' => DRUSH_BOOTSTRAP_NONE, - 'aliases' => array('qd', 'cutie'), + 'aliases' => array('qd', 'cutie', 'core:quick:drupal'), 'arguments' => array( 'site' => 'Short name for the site to be created - used as a directory name and as sqlite file name. Optional - if omitted timestamped "quick-drupal" directory will be used instead.', 'projects' => 'A list of projects to download into the new site. If projects contain extensions (modules or themes) with the same name they will be enabled by default. See --enable option to control this behaviour further.', diff --git a/vendor/drush/drush/commands/core/docs.drush.inc b/vendor/drush/drush/commands/core/docs.drush.inc index 432f12b6e1a9ba0c56c31c198381c06b7f2258b6..eadeabb0bf8ad51eb5132e1e20283a99c186858e 100644 --- a/vendor/drush/drush/commands/core/docs.drush.inc +++ b/vendor/drush/drush/commands/core/docs.drush.inc @@ -40,6 +40,7 @@ function docs_drush_command() { 'bootstrap' => DRUSH_BOOTSTRAP_NONE, 'callback' => 'drush_print_file', 'callback arguments' => array($docs_dir . '/README.md'), + 'aliases' => array('docs:readme'), ); $items['docs-bisect'] = array( 'description' => 'git bisect and Drush may be used together to find the commit an error was introduced in.', @@ -48,6 +49,7 @@ function docs_drush_command() { 'bootstrap' => DRUSH_BOOTSTRAP_NONE, 'callback' => 'drush_print_file', 'callback arguments' => array($docs_dir . '/examples/git-bisect.example.sh'), + 'aliases' => array('docs:bisect'), ); $items['docs-bashrc'] = array( 'description' => 'Bashrc customization examples for Drush.', @@ -56,6 +58,7 @@ function docs_drush_command() { 'bootstrap' => DRUSH_BOOTSTRAP_NONE, 'callback' => 'drush_print_file', 'callback arguments' => array($docs_dir . '/examples/example.bashrc'), + 'aliases' => array('docs:bashrc'), ); $items['docs-configuration'] = array( 'description' => 'Configuration overview with examples from example.drushrc.php.', @@ -64,6 +67,7 @@ function docs_drush_command() { 'bootstrap' => DRUSH_BOOTSTRAP_NONE, 'callback' => 'drush_print_file', 'callback arguments' => array($docs_dir . '/examples/example.drushrc.php'), + 'aliases' => array('docs:configuration'), ); $items['docs-config-exporting'] = array( 'description' => 'Drupal configuration export instructions, including customizing configuration by environment.', @@ -72,6 +76,7 @@ function docs_drush_command() { 'bootstrap' => DRUSH_BOOTSTRAP_NONE, 'callback' => 'drush_print_file', 'callback arguments' => array($docs_dir . '/docs/config-exporting.md'), + 'aliases' => array('docs:config:exporting'), ); $items['docs-aliases'] = array( 'description' => 'Site aliases overview on creating your own aliases for commonly used Drupal sites with examples from example.aliases.drushrc.php.', @@ -80,6 +85,7 @@ function docs_drush_command() { 'bootstrap' => DRUSH_BOOTSTRAP_NONE, 'callback' => 'drush_print_file', 'callback arguments' => array($docs_dir . '/examples/example.aliases.drushrc.php'), + 'aliases' => array('docs:aliases'), ); $items['docs-ini-files'] = array( 'description' => 'php.ini or drush.ini configuration to set PHP values for use with Drush.', @@ -88,6 +94,7 @@ function docs_drush_command() { 'bootstrap' => DRUSH_BOOTSTRAP_NONE, 'callback' => 'drush_print_file', 'callback arguments' => array($docs_dir . '/examples/example.drush.ini'), + 'aliases' => array('docs:ini-files'), ); $items['docs-bastion'] = array( 'description' => 'Bastion server configuration: remotely operate on a Drupal sites behind a firewall.', @@ -96,6 +103,7 @@ function docs_drush_command() { 'bootstrap' => DRUSH_BOOTSTRAP_NONE, 'callback' => 'drush_print_file', 'callback arguments' => array($docs_dir . '/docs/bastion.md'), + 'aliases' => array('docs:bastion'), ); $items['docs-bootstrap'] = array( 'description' => 'Bootstrap explanation: how Drush starts up and prepares the Drupal environment for use with the command.', @@ -104,6 +112,7 @@ function docs_drush_command() { 'bootstrap' => DRUSH_BOOTSTRAP_NONE, 'callback' => 'drush_print_file', 'callback arguments' => array($docs_dir . '/docs/bootstrap.md'), + 'aliases' => array('docs:bootstrap'), ); $items['docs-cron'] = array( 'description' => 'Crontab instructions for running your Drupal cron tasks via `drush cron`.', @@ -112,6 +121,7 @@ function docs_drush_command() { 'bootstrap' => DRUSH_BOOTSTRAP_NONE, 'callback' => 'drush_print_file', 'callback arguments' => array($docs_dir . '/docs/cron.md'), + 'aliases' => array('docs:cron'), ); $items['docs-scripts'] = array( 'description' => 'Shell script overview on writing simple sequences of Drush statements.', @@ -120,6 +130,7 @@ function docs_drush_command() { 'bootstrap' => DRUSH_BOOTSTRAP_NONE, 'callback' => 'drush_print_file', 'callback arguments' => array($docs_dir . '/docs/shellscripts.md'), + 'aliases' => array('docs:scripts'), ); $items['docs-shell-aliases'] = array( 'description' => 'Shell alias overview on creating your own aliases for commonly used Drush commands.', @@ -128,6 +139,7 @@ function docs_drush_command() { 'bootstrap' => DRUSH_BOOTSTRAP_NONE, 'callback' => 'drush_print_file', 'callback arguments' => array($docs_dir . '/docs/shellaliases.md'), + 'aliases' => array('docs:shell-aliases'), ); $items['docs-commands'] = array( 'description' => 'Drush command instructions on creating your own Drush commands.', @@ -136,12 +148,14 @@ function docs_drush_command() { 'bootstrap' => DRUSH_BOOTSTRAP_NONE, 'callback' => 'drush_print_file', 'callback arguments' => array($docs_dir . '/docs/commands.md'), + 'aliases' => array('docs:commands'), ); $items['docs-errorcodes'] = array( 'description' => 'Error code list containing all identifiers used with drush_set_error.', 'hidden' => TRUE, 'topic' => TRUE, 'bootstrap' => DRUSH_BOOTSTRAP_NONE, + 'aliases' => array('docs:errorcodes'), ); $items['docs-api'] = array( 'description' => 'Drush API', @@ -150,6 +164,7 @@ function docs_drush_command() { 'bootstrap' => DRUSH_BOOTSTRAP_NONE, 'callback' => 'drush_print_file', 'callback arguments' => array($docs_dir . '/drush.api.php'), + 'aliases' => array('docs:api'), ); $items['docs-context'] = array( 'description' => 'Contexts overview explaining how Drush manages command line options and configuration file settings.', @@ -158,6 +173,7 @@ function docs_drush_command() { 'bootstrap' => DRUSH_BOOTSTRAP_NONE, 'callback' => 'drush_print_file', 'callback arguments' => array($docs_dir . '/docs/context.md'), + 'aliases' => array('docs:context'), ); $items['docs-examplescript'] = array( 'description' => 'Example Drush script.', @@ -166,6 +182,7 @@ function docs_drush_command() { 'bootstrap' => DRUSH_BOOTSTRAP_NONE, 'callback' => 'drush_print_file', 'callback arguments' => array($docs_dir . '/examples/helloworld.script'), + 'aliases' => array('docs:examplescript'), ); $items['docs-examplecommand'] = array( 'description' => 'Example Drush command file.', @@ -174,6 +191,7 @@ function docs_drush_command() { 'bootstrap' => DRUSH_BOOTSTRAP_NONE, 'callback' => 'drush_print_file', 'callback arguments' => array($docs_dir . '/examples/sandwich.drush.inc'), + 'aliases' => array('docs:examplecommand'), ); $items['docs-example-sync-extension'] = array( 'description' => 'Example Drush commandfile that extends sql-sync to enable development modules in the post-sync hook.', @@ -182,6 +200,7 @@ function docs_drush_command() { 'bootstrap' => DRUSH_BOOTSTRAP_NONE, 'callback' => 'drush_print_file', 'callback arguments' => array($docs_dir . '/examples/sync_enable.drush.inc'), + 'aliases' => array('docs:example-sync-extension'), ); $items['docs-example-sync-via-http'] = array( 'description' => 'Example Drush commandfile that extends sql-sync to allow transfer of the sql dump file via http rather than ssh and rsync.', @@ -190,6 +209,7 @@ function docs_drush_command() { 'bootstrap' => DRUSH_BOOTSTRAP_NONE, 'callback' => 'drush_print_file', 'callback arguments' => array($docs_dir . '/examples/sync_via_http.drush.inc'), + 'aliases' => array('docs:example-sync-via-http'), ); $items['docs-policy'] = array( 'description' => 'Example policy file.', @@ -198,6 +218,7 @@ function docs_drush_command() { 'bootstrap' => DRUSH_BOOTSTRAP_NONE, 'callback' => 'drush_print_file', 'callback arguments' => array($docs_dir . '/examples/policy.drush.inc'), + 'aliases' => array('docs:policy'), ); $items['docs-strict-options'] = array( 'description' => 'Strict option handling, and how commands that use it differ from regular Drush commands.', @@ -206,6 +227,7 @@ function docs_drush_command() { 'bootstrap' => DRUSH_BOOTSTRAP_NONE, 'callback' => 'drush_print_file', 'callback arguments' => array($docs_dir . '/docs/strict-options.md'), + 'aliases' => array('docs:strict-options'), ); return $items; } diff --git a/vendor/drush/drush/commands/core/drupal/update.inc b/vendor/drush/drush/commands/core/drupal/update.inc index c48dfd438e127b77e273b68b688f525f243f22c9..62cbb578bdb3d358169833a162b2c54fda491fa3 100644 --- a/vendor/drush/drush/commands/core/drupal/update.inc +++ b/vendor/drush/drush/commands/core/drupal/update.inc @@ -39,6 +39,11 @@ function drush_update_do_one($module, $number, $dependency_map, &$context) { $function = $module . '_update_' . $number; + // Disable config entity overrides. + if (!defined('MAINTENANCE_MODE')) { + define('MAINTENANCE_MODE', 'update'); + } + // If this update was aborted in a previous step, or has a dependency that // was aborted in a previous step, go no further. if (!empty($context['results']['#abort']) && array_intersect($context['results']['#abort'], array_merge($dependency_map, array($function)))) { diff --git a/vendor/drush/drush/commands/core/drupal/update_7.inc b/vendor/drush/drush/commands/core/drupal/update_7.inc index d18e046b77f16a1abdd5141baa0f99609c876948..9dd4803c25d944a72c37b6f9c4baf96c84e8016f 100644 --- a/vendor/drush/drush/commands/core/drupal/update_7.inc +++ b/vendor/drush/drush/commands/core/drupal/update_7.inc @@ -199,6 +199,11 @@ function update_main_prepare() { // @see https://github.com/drush-ops/drush/pull/399 module_implements('', FALSE, TRUE); + // Ensure we re-evaluate the stream wrappers on full bootstrap. + // update_check_requirements() invokes a writeable check and hence loads the + // stream wrappers while not all modules are available. + drupal_static_reset('file_get_stream_wrappers'); + // Now proceed with a full bootstrap. drush_bootstrap(DRUSH_BOOTSTRAP_DRUPAL_FULL); diff --git a/vendor/drush/drush/commands/core/field.drush.inc b/vendor/drush/drush/commands/core/field.drush.inc index 9e6e2d4c06e980a29c594ccfd8fd3baa750a736a..961e22e8eb6025e34fa6ed7b89cc0f57c8dff52f 100644 --- a/vendor/drush/drush/commands/core/field.drush.inc +++ b/vendor/drush/drush/commands/core/field.drush.inc @@ -37,6 +37,7 @@ function field_drush_command() { 'open `drush field-create article`' => 'Define new article fields and then open field edit form for refinement.', 'drush field-create article city,text,text_textfield subtitle,text,text_textfield' => 'Create two new fields.' ), + 'aliases' => array('field:create'), ); $items['field-update'] = array( 'description' => 'Return URL for field editing web page.', @@ -47,6 +48,7 @@ function field_drush_command() { 'examples' => array( 'field-update comment_body' => 'Quickly navigate to a field edit web page.', ), + 'aliases' => array('field:update'), ); $items['field-delete'] = array( 'description' => 'Delete a field and its instances.', @@ -62,6 +64,7 @@ function field_drush_command() { 'field-delete city' => 'Delete the city field and any instances it might have.', 'field-delete city --bundle=article' => 'Delete the city instance on the article bundle', ), + 'aliases' => array('field:delete'), ); $items['field-clone'] = array( 'description' => 'Clone a field and all its instances.', @@ -74,6 +77,7 @@ function field_drush_command() { 'field-clone tags labels' => 'Copy \'tags\' field into a new field \'labels\' field which has same instances.', 'open `field-clone tags labels`' => 'Clone field and then open field edit forms for refinement.', ), + 'aliases' => array('field:clone'), ); $items['field-info'] = array( 'description' => 'View information about fields, field_types, and widgets.', @@ -99,6 +103,7 @@ function field_drush_command() { 'process-cell' => '_drush_field_info_process_cell', ), 'output-data-type' => 'format-table', + 'aliases' => array('field:info'), ), ); return $items; diff --git a/vendor/drush/drush/commands/core/image.drush.inc b/vendor/drush/drush/commands/core/image.drush.inc index e4bb4f9916b20b34a6dbd1d3a010a898f6bc8833..ddfbf04bcdaf40529b569f7adcf84187bd9adbb7 100644 --- a/vendor/drush/drush/commands/core/image.drush.inc +++ b/vendor/drush/drush/commands/core/image.drush.inc @@ -27,7 +27,7 @@ function image_drush_command() { 'drush image-flush thumbnail' => 'Delete all thumbnail images.', 'drush image-flush --all' => 'Flush all derived images. They will be regenerated on the fly.', ), - 'aliases' => array('if'), + 'aliases' => array('if', 'image:flush'), ); $items['image-derive'] = array( 'description' => 'Create an image derivative.', @@ -42,7 +42,7 @@ function image_drush_command() { 'examples' => array( 'drush image-derive thumbnail themes/bartik/logo.png' => 'Save thumbnail sized derivative of logo image.', ), - 'aliases' => array('id'), + 'aliases' => array('id', 'image:derive'), ); return $items; } diff --git a/vendor/drush/drush/commands/core/init.drush.inc b/vendor/drush/drush/commands/core/init.drush.inc index 2ab26a0a7b64ead812676fdccb2e3e08f0a35b4f..d7c5da8d01dced29c829757d386fadc4558316bc 100644 --- a/vendor/drush/drush/commands/core/init.drush.inc +++ b/vendor/drush/drush/commands/core/init.drush.inc @@ -16,7 +16,7 @@ function init_drush_command() { $items['core-init'] = array( 'description' => 'Enrich the bash startup file with completion and aliases. Copy .drushrc file to ~/.drush', - 'aliases' => array('init'), + 'aliases' => array('init', 'core:init'), 'bootstrap' => DRUSH_BOOTSTRAP_NONE, 'package' => 'core', 'global-options' => array('editor', 'bg'), diff --git a/vendor/drush/drush/commands/core/locale.d8.drush.inc b/vendor/drush/drush/commands/core/locale.d8.drush.inc index 7e6a06829f78e7a1ba40ecf1281bc4db1fe440b1..2016daca63db980e206bd7ac8ef564918eef1e4f 100644 --- a/vendor/drush/drush/commands/core/locale.d8.drush.inc +++ b/vendor/drush/drush/commands/core/locale.d8.drush.inc @@ -31,6 +31,7 @@ function locale_drush_command() { 'langcodes' => 'A comma-separated list of language codes to update. If omitted, all translations will be updated.' ], 'bootstrap' => DRUSH_BOOTSTRAP_DRUPAL_FULL, + 'aliases' => array('locale:check'), ]; // @todo Implement proper export and import commands. return $items; diff --git a/vendor/drush/drush/commands/core/queue.drush.inc b/vendor/drush/drush/commands/core/queue.drush.inc index 7886e225bef31256c0e240b55d11fea06d800631..3dcae01526fd719cdd6e5f8267c79665feb5793f 100644 --- a/vendor/drush/drush/commands/core/queue.drush.inc +++ b/vendor/drush/drush/commands/core/queue.drush.inc @@ -25,6 +25,7 @@ function queue_drush_command() { 'options' => array( 'time-limit' => 'The maximum number of seconds allowed to run the queue', ), + 'aliases' => array('queue:run'), ); $items['queue-list'] = array( 'description' => 'Returns a list of all defined queues', @@ -41,6 +42,7 @@ function queue_drush_command() { 'key-value-item' => 'items', ), 'output-data-type' => 'format-table', + 'aliases' => array('queue:list'), ), ); diff --git a/vendor/drush/drush/commands/core/role.drush.inc b/vendor/drush/drush/commands/core/role.drush.inc index fb4f9e9d166994b8b92fdc54330db6a3351c81ff..8f6b71c0e1b19bce6c52cdbe58d9b21bc6dfec26 100644 --- a/vendor/drush/drush/commands/core/role.drush.inc +++ b/vendor/drush/drush/commands/core/role.drush.inc @@ -43,7 +43,7 @@ function role_drush_command() { 'machine name' => 'The symbolic machine name for the role. Required.', 'human-readable name' => 'A descriptive name for the role. Optional; Drupal 8 only. Ignored in D6 and D7.', ), - 'aliases' => array('rcrt'), + 'aliases' => array('rcrt', 'role:create'), ); $items['role-delete'] = array( 'description' => 'Delete a role.', @@ -53,7 +53,7 @@ function role_drush_command() { 'arguments' => array( 'machine name' => 'The symbolic machine name for the role. Required. In D6 and D7, this may also be a numeric role ID.', ), - 'aliases' => array('rdel'), + 'aliases' => array('rdel', 'role:delete'), ); $items['role-add-perm'] = array( 'description' => 'Grant specified permission(s) to a role.', @@ -73,7 +73,7 @@ function role_drush_command() { 'global-options' => array( 'cache-clear', ), - 'aliases' => array('rap'), + 'aliases' => array('rap', 'role:add:perm'), ); $items['role-remove-perm'] = array( @@ -92,7 +92,7 @@ function role_drush_command() { 'global-options' => array( 'cache-clear', ), - 'aliases' => array('rmp'), + 'aliases' => array('rmp', 'role:remove:perm'), ); $items['role-list'] = array( @@ -113,7 +113,7 @@ function role_drush_command() { 'field-labels' => array('rid' => 'ID', 'label' => 'Role Label', 'perm' => "Permission"), 'output-data-type' => 'format-table', ), - 'aliases' => array('rls'), + 'aliases' => array('rls', 'role:list'), ); return $items; diff --git a/vendor/drush/drush/commands/core/search.drush.inc b/vendor/drush/drush/commands/core/search.drush.inc index d0681d388d66c6bd29ca021358610ceb5c0f4298..d09a0d27bd9a710542e0067067c3a8e3b4407636 100644 --- a/vendor/drush/drush/commands/core/search.drush.inc +++ b/vendor/drush/drush/commands/core/search.drush.inc @@ -27,6 +27,7 @@ function search_drush_command() { 'message-template' => '!remaining/!total', ), 'output-data-type' => 'format-list', + 'aliases' => array('search:status'), ), ); $items['search-index'] = array( @@ -39,6 +40,7 @@ function search_drush_command() { 'options' => array( 'immediate' => 'Rebuild the index immediately, instead of waiting for cron.', ), + 'aliases' => array('search:index'), ); return $items; } diff --git a/vendor/drush/drush/commands/core/shellalias.drush.inc b/vendor/drush/drush/commands/core/shellalias.drush.inc index df61c1cb034459d9bc5015eba3d23b37141118d0..06c02e9bb881e0422691a5a03c0608bc40526dfc 100644 --- a/vendor/drush/drush/commands/core/shellalias.drush.inc +++ b/vendor/drush/drush/commands/core/shellalias.drush.inc @@ -39,7 +39,7 @@ function shellalias_drush_command() { 'simplify-single' => TRUE, 'output-data-type' => 'format-list', ), - 'aliases' => array('sha'), + 'aliases' => array('sha', 'shell:alias'), 'examples' => array( 'drush shell-alias' => 'List all alias records known to drush.', 'drush shell-alias pull' => 'Print the value of the shell alias \'pull\'.', diff --git a/vendor/drush/drush/commands/core/site_install.drush.inc b/vendor/drush/drush/commands/core/site_install.drush.inc index 6b9f404d201e2d38f20e0de744f7fac239dccafe..8366d7ae8cf96bd314d18033979bf11340f4fdf0 100644 --- a/vendor/drush/drush/commands/core/site_install.drush.inc +++ b/vendor/drush/drush/commands/core/site_install.drush.inc @@ -67,7 +67,7 @@ function site_install_drush_command() { 'drush site-install standard install_configure_form.enable_update_status_module=NULL install_configure_form.enable_update_status_emails=NULL' => 'Disable email notification during install and later (D8). If your server has no mail transfer agent, this gets rid of an error during install.', ), 'bootstrap' => DRUSH_BOOTSTRAP_DRUPAL_ROOT, - 'aliases' => array('si'), + 'aliases' => array('si', 'site:install'), ); return $items; } @@ -99,6 +99,7 @@ function drush_core_site_install_validate() { } // Make sure that we will bootstrap to the 'sites-subdir' site. drush_set_context('DRUSH_SELECTED_URI', 'http://' . $sites_subdir); + drush_sitealias_create_self_alias(); } if ($config = drush_get_option('config-dir')) { @@ -175,24 +176,11 @@ function drush_core_pre_site_install($profile = NULL) { if (!drush_op('copy', 'sites/default/default.settings.php', $settingsfile) && !drush_get_context('DRUSH_SIMULATE')) { return drush_set_error(dt('Failed to copy sites/default/default.settings.php to @settingsfile', array('@settingsfile' => $settingsfile))); } + } - if (drush_drupal_major_version() == 6) { - // On D6, we have to write $db_url ourselves. In D7+, the installer does it. - file_put_contents($settingsfile, "\n" . '$db_url = \'' . drush_get_option('db-url') . "';\n", FILE_APPEND); - // Instead of parsing and performing string replacement on the configuration file, - // the options are appended and override the defaults. - // Database table prefix - if (!empty($db_spec['db_prefix'])) { - if (is_array($db_spec['db_prefix'])) { - // Write db_prefix configuration as an array - $db_prefix_config = '$db_prefix = ' . var_export($db_spec['db_prefix'], TRUE) . ';'; - } - else { - // Write db_prefix configuration as a string - $db_prefix_config = '$db_prefix = \'' . $db_spec['db_prefix'] . '\';'; - } - file_put_contents($settingsfile, "\n" . $db_prefix_config . "\n", FILE_APPEND); - } + if (drush_drupal_major_version() == 6) { + if (!_drush_core_site_install_add_db_url_to_settings($settingsfile, $db_spec)) { + return drush_set_error(dt('Failed to write database settings to @settingsfile', array('@settingsfile' => $settingsfile))); } } @@ -220,6 +208,34 @@ function drush_core_pre_site_install($profile = NULL) { return TRUE; } +function _drush_core_site_install_add_db_url_to_settings($settingsfile, $db_spec) { + $settingsContents = file_get_contents($settingsfile); + if (preg_match('#^.db_url *=#', $settingsContents)) { + return true; + } + // On D6, we have to write $db_url ourselves. In D7+, the installer does it. + if (file_put_contents($settingsfile, "\n" . '$db_url = \'' . drush_convert_db_url(drush_get_option('db-url')) . "';\n", FILE_APPEND) === false) { + return false; + } + + // Instead of parsing and performing string replacement on the configuration file, + // the options are appended and override the defaults. + // Database table prefix + if (!empty($db_spec['db_prefix'])) { + if (is_array($db_spec['db_prefix'])) { + // Write db_prefix configuration as an array + $db_prefix_config = '$db_prefix = ' . var_export($db_spec['db_prefix'], TRUE) . ';'; + } + else { + // Write db_prefix configuration as a string + $db_prefix_config = '$db_prefix = \'' . $db_spec['db_prefix'] . '\';'; + } + file_put_contents($settingsfile, "\n" . $db_prefix_config . "\n", FILE_APPEND); + } + return true; +} + + /** * Command callback. */ diff --git a/vendor/drush/drush/commands/core/sitealias.drush.inc b/vendor/drush/drush/commands/core/sitealias.drush.inc index c550986b56849b18aecddd793c68785fd4d73bfd..3ac59a9a014ff1e762b23daa9e48cd10e1e932d5 100644 --- a/vendor/drush/drush/commands/core/sitealias.drush.inc +++ b/vendor/drush/drush/commands/core/sitealias.drush.inc @@ -42,7 +42,7 @@ function sitealias_drush_command() { 'field-mappings' => array('name' => '#name'), 'output-data-type' => 'format-table', ), - 'aliases' => array('sa'), + 'aliases' => array('sa', 'site:alias'), 'examples' => array( 'drush site-alias' => 'List all alias records known to drush.', 'drush site-alias @dev' => 'Print an alias record for the alias \'dev\'.', @@ -57,7 +57,7 @@ function sitealias_drush_command() { 'arguments' => array( 'site' => 'Site specification to use, or "-" for previous site. Omit this argument to "unset"', ), - 'aliases' => array('use'), + 'aliases' => array('use', 'site:set'), 'examples' => array( 'drush site-set @dev' => 'Set the current session to use the @dev alias.', 'drush site-set user@server/path/to/drupal#sitename' => 'Set the current session to use a remote site via site specification.', diff --git a/vendor/drush/drush/commands/core/ssh.drush.inc b/vendor/drush/drush/commands/core/ssh.drush.inc index 22b7bc18943ad65d9408c788e4daffb449f78f67..ceb4af87af27415b6e021ef64a571097a8336f14 100644 --- a/vendor/drush/drush/commands/core/ssh.drush.inc +++ b/vendor/drush/drush/commands/core/ssh.drush.inc @@ -22,7 +22,7 @@ function ssh_drush_command() { 'drush @prod ssh ls /tmp' => 'Run "ls /tmp" on @prod site. If @prod is a site list, then ls will be executed on each site.', 'drush @prod ssh git pull' => 'Run "git pull" on the Drupal root directory on the @prod site.', ), - 'aliases' => array('ssh'), + 'aliases' => array('ssh', 'site:ssh'), 'bootstrap' => DRUSH_BOOTSTRAP_NONE, 'topics' => array('docs-aliases'), ); diff --git a/vendor/drush/drush/commands/core/state.drush.inc b/vendor/drush/drush/commands/core/state.drush.inc index c4bc045c835e6d4008c04743c4c6bb18cb7ca51d..cd78014f56bbb6fac9778a90a05f0b23be5e783d 100644 --- a/vendor/drush/drush/commands/core/state.drush.inc +++ b/vendor/drush/drush/commands/core/state.drush.inc @@ -34,7 +34,7 @@ function state_drush_command() { 'default' => 'json', 'pipe-format' => 'json', ), - 'aliases' => array('sget'), + 'aliases' => array('sget', 'state:get'), 'core' => array('8+'), ); @@ -66,7 +66,7 @@ function state_drush_command() { 'drush state-set system.cron_last 1406682882 --format=integer' => 'Sets a timestamp for last cron run.', 'php -r "print json_encode(array(\'drupal\', \'simpletest\'));" | drush state-set --format=json foo.name -'=> 'Set a key to a complex value (e.g. array)', ), - 'aliases' => array('sset'), + 'aliases' => array('sset', 'state:set'), 'core' => array('8+'), ); @@ -79,7 +79,7 @@ function state_drush_command() { 'examples' => array( 'drush state-del system.cron_last' => 'Delete state entry for system.cron_last.', ), - 'aliases' => array('sdel'), + 'aliases' => array('sdel', 'state:delete'), 'core' => array('8+'), ); diff --git a/vendor/drush/drush/commands/core/topic.drush.inc b/vendor/drush/drush/commands/core/topic.drush.inc index 4f87f70301e4c43de1307018ae7cee17da2c6f57..3fa63ecf27acce81bf701e212595dc2c412a2399 100644 --- a/vendor/drush/drush/commands/core/topic.drush.inc +++ b/vendor/drush/drush/commands/core/topic.drush.inc @@ -24,7 +24,7 @@ function topic_drush_command() { ), 'bootstrap' => DRUSH_BOOTSTRAP_NONE, 'remote-tty' => TRUE, - 'aliases' => array('topic'), + 'aliases' => array('topic', 'core:topic'), 'topics' => array('docs-readme'), ); diff --git a/vendor/drush/drush/commands/core/usage.drush.inc b/vendor/drush/drush/commands/core/usage.drush.inc index 32ea6ed0929343fa14ef73bb74955b282d251bf5..b39d2be62e9a643314ac3b6d9e18041aaf987e06 100644 --- a/vendor/drush/drush/commands/core/usage.drush.inc +++ b/vendor/drush/drush/commands/core/usage.drush.inc @@ -25,7 +25,7 @@ function usage_drush_command() { 'drush usage-show' => 'Show cached usage statistics.', '$options[\'drush_usage_log\'] = TRUE;' => 'Specify in a .drushrc.php file that usage information should be logged locally in a usage statistics file.', ), - 'aliases' => array('ushow'), + 'aliases' => array('ushow', 'usage:show'), ); $items['usage-send'] = array( 'bootstrap' => DRUSH_BOOTSTRAP_NONE, @@ -36,7 +36,7 @@ function usage_drush_command() { '$options[\'drush_usage_send\'] = TRUE;' => 'Specify in a .drushrc.php file that usage information should be sent.', '$options[\'drush_usage_size\'] = 10240;' => 'Specify the frequency (file size) that usage information should be sent.', ), - 'aliases' => array('usend'), + 'aliases' => array('usend', 'usage:send'), ); return $items; } diff --git a/vendor/drush/drush/commands/core/variable.drush.inc b/vendor/drush/drush/commands/core/variable.drush.inc index d1687e1919be18241829ac94e0e49d7f9bf6150a..b9a1c4a2091f169a70cbcc94fd6d166bf46ab3e5 100644 --- a/vendor/drush/drush/commands/core/variable.drush.inc +++ b/vendor/drush/drush/commands/core/variable.drush.inc @@ -39,7 +39,7 @@ function variable_drush_command() { 'format' => 'var_export', ), ), - 'aliases' => array('vget'), + 'aliases' => array('vget', 'variable:get'), ); $items['variable-set'] = array( 'description' => "Set a variable.", @@ -64,7 +64,7 @@ function variable_drush_command() { 'drush vset pr TRUE' => 'Choose from a list of variables beginning with "pr" to set to (bool)true.', 'php -r "print json_encode(array(\'drupal\', \'simpletest\'));" | drush vset --format=json project_dependency_excluded_dependencies -'=> 'Set a variable to a complex value (e.g. array)', ), - 'aliases' => array('vset'), + 'aliases' => array('vset', 'variable:set'), ); $items['variable-delete'] = array( 'core' => array(6,7), @@ -82,7 +82,7 @@ function variable_drush_command() { 'drush vdel u' => 'Choose from a list of variables beginning with "u" to delete.', 'drush vdel -y --exact maintenance_mode' => 'Bring the site back online, skipping confirmation. Variable is rewritten to site_offline for Drupal 6.', ), - 'aliases' => array('vdel'), + 'aliases' => array('vdel', 'variable:delete'), ); return $items; diff --git a/vendor/drush/drush/commands/core/views.d8.drush.inc b/vendor/drush/drush/commands/core/views.d8.drush.inc index 6b95c3d41ce66155fb099fb9bfd703507568051d..4d8d8142a82eb331e8f3afaf903318a9b69cdc2f 100644 --- a/vendor/drush/drush/commands/core/views.d8.drush.inc +++ b/vendor/drush/drush/commands/core/views.d8.drush.inc @@ -36,12 +36,12 @@ function views_drush_command() { $items['views-dev'] = array( 'description' => 'Set the Views settings to more developer-oriented values.', - 'aliases' => array('vd'), + 'aliases' => array('vd', 'views:dev'), ) + $base; $items['views-list'] = array( 'description' => 'Get a list of all views in the system.', - 'aliases' => array('vl'), + 'aliases' => array('vl', 'views:list'), 'options' => array( 'name' => array( 'description' => 'A string contained in the view\'s name to filter the results with.', @@ -76,7 +76,7 @@ function views_drush_command() { $items['views-execute'] = array( 'description' => 'Execute a view and get the results.', - 'aliases' => array('vex'), + 'aliases' => array('vex', 'views:execute'), 'arguments' => array( 'view' => 'The name of the view to execute.', 'display' => 'The display ID to execute. If none specified, the default display will be used.', @@ -107,7 +107,7 @@ function views_drush_command() { $items['views-analyze'] = array( 'drupal dependencies' => array('views', 'views_ui'), 'description' => 'Get a list of all Views analyze warnings', - 'aliases' => array('va'), + 'aliases' => array('va', 'views:analyze'), 'options' => array( 'format' => array( 'description' => 'Define the output format. Known formats are: json, print_r, and export.', @@ -121,7 +121,7 @@ function views_drush_command() { 'views' => 'A space delimited list of view names.', ), 'required-arguments' => 1, - 'aliases' => array('ven'), + 'aliases' => array('ven', 'views:enable'), 'examples' => array( 'drush ven frontpage taxonomy_term' => 'Enable the frontpage and taxonomy_term views.', ), @@ -133,7 +133,7 @@ function views_drush_command() { 'views' => 'A space delimited list of view names.', ), 'required-arguments' => 1, - 'aliases' => array('vdis'), + 'aliases' => array('vdis', 'views:disable'), 'examples' => array( 'drush vdis frontpage taxonomy_term' => 'Disable the frontpage and taxonomy_term views.', ), diff --git a/vendor/drush/drush/commands/core/watchdog.drush.inc b/vendor/drush/drush/commands/core/watchdog.drush.inc index c9965a2f5df87844a7de9f47ca061d4318f1e435..923b095ac3f1fe158278355c34b144ff553fdb51 100644 --- a/vendor/drush/drush/commands/core/watchdog.drush.inc +++ b/vendor/drush/drush/commands/core/watchdog.drush.inc @@ -37,7 +37,7 @@ function watchdog_drush_command() { 'column-widths' => array('type' => 8, 'severity' => 8), 'output-data-type' => 'format-table', ), - 'aliases' => array('wd-list'), + 'aliases' => array('wd-list', 'watchdog:list'), ); $items['watchdog-show'] = array( 'description' => 'Show watchdog messages.', @@ -71,7 +71,7 @@ function watchdog_drush_command() { 'column-widths' => array('type' => 8, 'severity' => 8), 'output-data-type' => 'format-table', ), - 'aliases' => array('wd-show', 'ws'), + 'aliases' => array('wd-show', 'ws', 'watchdog:show'), ); $items['watchdog-delete'] = array( 'description' => 'Delete watchdog messages.', @@ -87,7 +87,7 @@ function watchdog_drush_command() { 'drush watchdog-delete --severity=notice' => 'Delete all messages with a severity of notice.', 'drush watchdog-delete --type=cron' => 'Delete all messages of type cron.', ), - 'aliases' => array('wd-del', 'wd-delete'), + 'aliases' => array('wd-del', 'wd-delete', 'watchdog:delete'), ); return $items; } diff --git a/vendor/drush/drush/commands/make/make.download.inc b/vendor/drush/drush/commands/make/make.download.inc index 29bf6b97072a46a0544907b91206a387fbbc50bc..13365d3c62d3cb114499a5f55f23dcb61cd39a5c 100644 --- a/vendor/drush/drush/commands/make/make.download.inc +++ b/vendor/drush/drush/commands/make/make.download.inc @@ -253,7 +253,7 @@ function make_download_git($name, $type, $download, $download_location) { $wc = _get_working_copy_option($download); $checkout_after_clone = TRUE; // If no download URL specified, assume anonymous clone from git.drupal.org. - $download['url'] = isset($download['url']) ? $download['url'] : "http://git.drupal.org/project/$name.git"; + $download['url'] = isset($download['url']) ? $download['url'] : "https://git.drupal.org/project/$name.git"; // If no working-copy download URL specified, assume it is the same. $download['wc_url'] = isset($download['wc_url']) ? $download['wc_url'] : $download['url']; diff --git a/vendor/drush/drush/commands/pm/package_handler/git_drupalorg.inc b/vendor/drush/drush/commands/pm/package_handler/git_drupalorg.inc index e418a77ae953780c44dc9174cb1ee8938043af5a..0203db7ff72079c1ef4db0275ad714b634bd31a5 100644 --- a/vendor/drush/drush/commands/pm/package_handler/git_drupalorg.inc +++ b/vendor/drush/drush/commands/pm/package_handler/git_drupalorg.inc @@ -49,10 +49,10 @@ function package_handler_validate() { function package_handler_download_project(&$request, $release) { if ($username = drush_get_option('gitusername')) { // Uses SSH, which enables pushing changes back to git.drupal.org. - $repository = $username . '@git.drupal.org:project/' . $request['name'] . '.git'; + $repository = 'git@git.drupal.org:project/' . $request['name'] . '.git'; } else { - $repository = 'git://git.drupal.org/project/' . $request['name'] . '.git'; + $repository = 'https://git.drupal.org/project/' . $request['name'] . '.git'; } $request['repository'] = $repository; $tag = $release['tag']; diff --git a/vendor/drush/drush/commands/pm/pm.drush.inc b/vendor/drush/drush/commands/pm/pm.drush.inc index 56463907b7233bf06c6d7d7946a49d9a65314aac..abdbf6a21594c1c29521d045ad2c86f4a2c8d75c 100644 --- a/vendor/drush/drush/commands/pm/pm.drush.inc +++ b/vendor/drush/drush/commands/pm/pm.drush.inc @@ -189,7 +189,7 @@ function pm_drush_command() { 'resolve-dependencies' => 'Attempt to download any missing dependencies. At the moment, only works when the module name is the same as the project name.', 'skip' => 'Skip automatic downloading of libraries (c.f. devel).', ), - 'aliases' => array('en'), + 'aliases' => array('en', 'pm:enable'), 'engines' => array( 'release_info' => array( 'add-options-to-command' => FALSE, @@ -201,7 +201,7 @@ function pm_drush_command() { 'arguments' => array( 'extensions' => 'A list of modules or themes. You can use the * wildcard at the end of extension names to disable multiple matches.', ), - 'aliases' => array('dis'), + 'aliases' => array('dis', 'pm:disable'), 'engines' => array( 'version_control', 'package_handler', @@ -215,7 +215,7 @@ function pm_drush_command() { 'arguments' => array( 'extensions' => 'A list of modules or themes. You can use the * wildcard at the end of extension names to show info for multiple matches. If no argument is provided it will show info for all available extensions.', ), - 'aliases' => array('pmi'), + 'aliases' => array('pmi', 'pm:info'), 'outputformat' => array( 'default' => 'key-value-list', 'pipe-format' => 'json', @@ -280,7 +280,7 @@ function pm_drush_command() { 'fields-pipe' => array('label'), 'output-data-type' => 'format-table', ), - 'aliases' => array('pmpi'), + 'aliases' => array('pmpi', 'pm:projectinfo'), ); // Install command is reserved for the download and enable of projects including dependencies. @@ -293,7 +293,7 @@ function pm_drush_command() { 'arguments' => array( 'modules' => 'A list of modules.', ), - 'aliases' => array('pmu'), + 'aliases' => array('pmu', 'pm:uninstall'), ); $items['pm-list'] = array( 'description' => 'Show a list of available extensions (modules and themes).', @@ -317,7 +317,7 @@ function pm_drush_command() { 'field-labels' => array('package' => 'Package', 'name' => 'Name', 'type' => 'Type', 'status' => 'Status', 'version' => 'Version'), 'output-data-type' => 'format-table', ), - 'aliases' => array('pml'), + 'aliases' => array('pml', 'pm:list'), ); $items['pm-refresh'] = array( 'description' => 'Refresh update status information.', @@ -326,7 +326,7 @@ function pm_drush_command() { 'add-options-to-command' => FALSE, ), ), - 'aliases' => array('rf'), + 'aliases' => array('rf', 'pm:refresh'), ); $items['pm-updatestatus'] = array( 'description' => 'Show a report of available minor updates to Drupal core and contrib projects.', @@ -348,7 +348,7 @@ function pm_drush_command() { 'fields-pipe' => array('name', 'existing_version', 'candidate_version', 'status_msg'), 'output-data-type' => 'format-table', ), - 'aliases' => array('ups'), + 'aliases' => array('ups', 'pm:updatestatus'), ); $items['pm-updatecode'] = array( 'description' => 'Update Drupal core and contrib projects to latest recommended releases.', @@ -365,7 +365,7 @@ function pm_drush_command() { 'check-updatedb' => 'Check to see if an updatedb is needed after updating the code. Default is on; use --check-updatedb=0 to disable.', ) + $update_options, 'sub-options' => $update_suboptions, - 'aliases' => array('upc'), + 'aliases' => array('upc', 'pm:updatecode'), 'topics' => array('docs-policy'), 'engines' => array( 'version_control', @@ -379,12 +379,13 @@ function pm_drush_command() { // Merge all items from above. $items['pm-update'] = array( 'description' => 'Update Drupal core and contrib projects and apply any pending database updates (Same as pm-updatecode + updatedb).', - 'aliases' => array('up'), + 'aliases' => array('up', 'pm:update'), 'allow-additional-options' => array('pm-updatecode', 'updatedb'), ); $items['pm-updatecode-postupdate'] = array( 'description' => 'Notify of pending db updates.', 'hidden' => TRUE, + 'aliases' => array('pm:updatecode:postupdate'), ); $items['pm-releasenotes'] = array( 'description' => 'Print release notes for given projects.', @@ -399,7 +400,7 @@ function pm_drush_command() { 'drush rln token-1.13' => 'View release notes of a specfic version of the Token project for my version of Drupal.', 'drush rln pathauto zen' => 'View release notes for the recommended version of Pathauto and Zen projects.', ), - 'aliases' => array('rln'), + 'aliases' => array('rln', 'pm:releasenotes'), 'bootstrap' => DRUSH_BOOTSTRAP_MAX, 'engines' => array( 'release_info', @@ -416,7 +417,7 @@ function pm_drush_command() { 'options' => array( 'default-major' => 'Show releases compatible with the specified major version of Drupal.', ), - 'aliases' => array('rl'), + 'aliases' => array('rl', 'pm:releases'), 'bootstrap' => DRUSH_BOOTSTRAP_MAX, 'outputformat' => array( 'default' => 'table', @@ -474,7 +475,7 @@ function pm_drush_command() { 'pipe' => 'Returns a list of the names of the extensions (modules and themes) contained in the downloaded projects.', ), 'bootstrap' => DRUSH_BOOTSTRAP_MAX, - 'aliases' => array('dl'), + 'aliases' => array('dl', 'pm:download'), 'engines' => array( 'version_control', 'package_handler', diff --git a/vendor/drush/drush/commands/sql/sql.drush.inc b/vendor/drush/drush/commands/sql/sql.drush.inc index b820ab0d2ad44356c0bc303358b3a8ae918cc4e2..7f59f5d4db9b1478ff491c75541af72945f07275 100644 --- a/vendor/drush/drush/commands/sql/sql.drush.inc +++ b/vendor/drush/drush/commands/sql/sql.drush.inc @@ -52,6 +52,7 @@ function sql_drush_command() { ), ) + $options + $db_url, 'topics' => array('docs-policy'), + 'aliases' => array('sql:drop'), ); $items['sql-conf'] = array( 'description' => 'Print database connection details using print_r().', @@ -66,6 +67,7 @@ function sql_drush_command() { 'pipe-format' => 'var_export', 'private-fields' => 'password', ), + 'aliases' => array('sql:conf'), ); $items['sql-connect'] = array( 'description' => 'A string for connecting to the DB.', @@ -80,6 +82,7 @@ function sql_drush_command() { '`drush sql-connect` < example.sql' => 'Bash: Import SQL statements from a file into the current database.', 'eval (drush sql-connect) < example.sql' => 'Fish: Import SQL statements from a file into the current database.', ), + 'aliases' => array('sql:connect'), ); $items['sql-create'] = array( 'description' => 'Create a database.', @@ -94,6 +97,7 @@ function sql_drush_command() { 'db-su' => 'Account to use when creating a new database. Optional.', 'db-su-pw' => 'Password for the "db-su" account. Optional.', ) + $options + $db_url, + 'aliases' => array('sql:create'), ); $items['sql-dump'] = array( 'description' => 'Exports the Drupal DB as SQL using mysqldump or equivalent.', @@ -115,6 +119,7 @@ function sql_drush_command() { 'gzip' => 'Compress the dump using the gzip program which must be in your $PATH.', 'extra' => 'Add custom options to the dump command.', ) + $options + $db_url, + 'aliases' => array('sql:dump'), ); $items['sql-query'] = array( 'bootstrap' => DRUSH_BOOTSTRAP_NONE, @@ -144,14 +149,14 @@ function sql_drush_command() { 'hidden' => TRUE, // Hide since this is only used with --backend calls. ) ) + $options + $db_url, - 'aliases' => array('sqlq'), + 'aliases' => array('sqlq', 'sql:query'), ); $items['sql-cli'] = array( 'description' => "Open a SQL command-line interface using Drupal's credentials.", 'bootstrap' => DRUSH_BOOTSTRAP_NONE, // 'options' => $options + $db_url, 'allow-additional-options' => array('sql-connect'), - 'aliases' => array('sqlc'), + 'aliases' => array('sqlc', 'sql:cli'), 'examples' => array( 'drush sql-cli' => "Open a SQL command-line interface using Drupal's credentials.", 'drush sql-cli --extra=-A' => "Open a SQL CLI and skip reading table information.", @@ -240,7 +245,11 @@ function drush_sql_create() { } } - return $sql->createdb(TRUE); + $result = $sql->createdb(TRUE); + if (!$result) { + drush_set_error('DRUSH_SQL_CREATE_ERROR', dt('SQL create database error occurred.')); + } + return $result; } diff --git a/vendor/drush/drush/commands/user/user.drush.inc b/vendor/drush/drush/commands/user/user.drush.inc index 7adad5272cda190f831c67f152ef351b3d11e952..cb6e77a674da8db5df90a80fd1581ce4b6057592 100644 --- a/vendor/drush/drush/commands/user/user.drush.inc +++ b/vendor/drush/drush/commands/user/user.drush.inc @@ -42,7 +42,7 @@ function user_drush_command() { $items['user-information'] = array( 'description' => 'Print information about the specified user(s).', - 'aliases' => array('uinf'), + 'aliases' => array('uinf', 'user:information'), 'examples' => array( 'drush user-information 2,3,someguy,somegal,billgates@microsoft.com' => 'Display information about the listed users.', @@ -87,7 +87,7 @@ function user_drush_command() { ); $items['user-block'] = array( 'description' => 'Block the specified user(s).', - 'aliases' => array('ublk'), + 'aliases' => array('ublk', 'user:block'), 'arguments' => array( 'users' => 'A comma delimited list of uids, user names, or email addresses.', ), @@ -99,7 +99,7 @@ function user_drush_command() { ); $items['user-unblock'] = array( 'description' => 'Unblock the specified user(s).', - 'aliases' => array('uublk'), + 'aliases' => array('uublk', 'user:unblock'), 'arguments' => array( 'users' => 'A comma delimited list of uids, user names, or email addresses.', ), @@ -111,7 +111,7 @@ function user_drush_command() { ); $items['user-add-role'] = array( 'description' => 'Add a role to the specified user accounts.', - 'aliases' => array('urol'), + 'aliases' => array('urol', 'user:add:role'), 'arguments' => array( 'role' => 'The name of the role to add', 'users' => '(optional) A comma delimited list of uids, user names, or email addresses.', @@ -125,7 +125,7 @@ function user_drush_command() { ); $items['user-remove-role'] = array( 'description' => 'Remove a role from the specified user accounts.', - 'aliases' => array('urrol'), + 'aliases' => array('urrol', 'user:remove:role'), 'arguments' => array( 'role' => 'The name of the role to remove', 'users' => '(optional) A comma delimited list of uids, user names, or email addresses.', @@ -139,7 +139,7 @@ function user_drush_command() { ); $items['user-create'] = array( 'description' => 'Create a user account with the specified name.', - 'aliases' => array('ucrt'), + 'aliases' => array('ucrt', 'user:create'), 'arguments' => array( 'name' => 'The name of the account to add' ), @@ -156,7 +156,7 @@ function user_drush_command() { ); $items['user-cancel'] = array( 'description' => 'Cancel a user account with the specified name.', - 'aliases' => array('ucan'), + 'aliases' => array('ucan', 'user:cancel'), 'arguments' => array( 'name' => 'The name of the account to cancel', ), @@ -171,7 +171,7 @@ function user_drush_command() { ); $items['user-password'] = array( 'description' => '(Re)Set the password for the user account with the specified name.', - 'aliases' => array('upwd'), + 'aliases' => array('upwd', 'user:password'), 'arguments' => array( 'name' => 'The name of the account to modify.' ), @@ -190,7 +190,7 @@ function user_drush_command() { ); $items['user-login'] = array( 'description' => 'Display a one time login link for the given user account (defaults to uid 1).', - 'aliases' => array('uli'), + 'aliases' => array('uli', 'user:login'), 'bootstrap' => DRUSH_BOOTSTRAP_NONE, 'handle-remote-commands' => TRUE, 'arguments' => array( diff --git a/vendor/drush/drush/composer.json b/vendor/drush/drush/composer.json index 5bc1952f4f6867013a90e187ae5ced5240c08e66..5f9d0843f66a5100e3d0bf6de8d8dba1e972a186 100644 --- a/vendor/drush/drush/composer.json +++ b/vendor/drush/drush/composer.json @@ -36,7 +36,7 @@ "php": ">=5.4.5", "psr/log": "~1.0", "psy/psysh": "~0.6", - "consolidation/annotated-command": "^2.8.1", + "consolidation/annotated-command": "^2.12.0", "consolidation/output-formatters": "~3", "symfony/yaml": "~2.3|^3", "symfony/var-dumper": "~2.7|^3", @@ -44,6 +44,7 @@ "symfony/event-dispatcher": "~2.7|^3", "symfony/finder": "~2.7|^3", "pear/console_table": "~1.3.1", + "webflo/drupal-finder": "^1.1.0", "webmozart/path-util": "~2" }, "require-dev": { @@ -63,6 +64,9 @@ "psr-0": { "Drush": "lib/", "Consolidation": "lib/" + }, + "psr-4": { + "Drush\\": "src/" } }, "autoload-dev": { @@ -72,7 +76,8 @@ }, "scripts": { "lint": [ - "find includes -name '*.inc' -print0 | xargs -0 -n1 php -l" + "find includes -name '*.inc' -print0 | xargs -0 -n1 php -l", + "find lib/Drush -name '*.php' -print0 | xargs -0 -n1 php -l" ] }, "extra": { diff --git a/vendor/drush/drush/composer.lock b/vendor/drush/drush/composer.lock index 486274e966b78efaa7aaf33479909dc26a0fc0be..294e40adc29cb7c3fe0c7dc234e51abbd210bdda 100644 --- a/vendor/drush/drush/composer.lock +++ b/vendor/drush/drush/composer.lock @@ -1,40 +1,85 @@ { "_readme": [ "This file locks the dependencies of your project to a known state", - "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", + "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "f964f597be5b57a32e5078444ed7d0f4", + "content-hash": "6350957e1c82365d6a7199dd8d1289b1", "packages": [ { "name": "consolidation/annotated-command", - "version": "2.8.1", + "version": "2.12.0", "source": { "type": "git", "url": "https://github.com/consolidation/annotated-command.git", - "reference": "7f94009d732922d61408536f9228aca8f22e9135" + "reference": "512a2e54c98f3af377589de76c43b24652bcb789" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/consolidation/annotated-command/zipball/7f94009d732922d61408536f9228aca8f22e9135", - "reference": "7f94009d732922d61408536f9228aca8f22e9135", + "url": "https://api.github.com/repos/consolidation/annotated-command/zipball/512a2e54c98f3af377589de76c43b24652bcb789", + "reference": "512a2e54c98f3af377589de76c43b24652bcb789", "shasum": "" }, "require": { - "consolidation/output-formatters": "^3.1.12", - "php": ">=5.4.0", + "consolidation/output-formatters": "^3.4", + "php": ">=5.4.5", "psr/log": "^1", - "symfony/console": "^2.8|~3", - "symfony/event-dispatcher": "^2.5|^3", - "symfony/finder": "^2.5|^3" + "symfony/console": "^2.8|^3|^4", + "symfony/event-dispatcher": "^2.5|^3|^4", + "symfony/finder": "^2.5|^3|^4" }, "require-dev": { - "phpunit/phpunit": "^4.8", - "satooshi/php-coveralls": "^1.0", + "g1a/composer-test-scenarios": "^3", + "php-coveralls/php-coveralls": "^1", + "phpunit/phpunit": "^6", "squizlabs/php_codesniffer": "^2.7" }, "type": "library", "extra": { + "scenarios": { + "symfony4": { + "require": { + "symfony/console": "^4.0" + }, + "config": { + "platform": { + "php": "7.1.3" + } + } + }, + "symfony2": { + "require": { + "symfony/console": "^2.8" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.36" + }, + "remove": [ + "php-coveralls/php-coveralls" + ], + "config": { + "platform": { + "php": "5.4.8" + } + }, + "scenario-options": { + "create-lockfile": "false" + } + }, + "phpunit4": { + "require-dev": { + "phpunit/phpunit": "^4.8.36" + }, + "remove": [ + "php-coveralls/php-coveralls" + ], + "config": { + "platform": { + "php": "5.4.8" + } + } + } + }, "branch-alias": { "dev-master": "2.x-dev" } @@ -55,33 +100,40 @@ } ], "description": "Initialize Symfony Console commands from annotated command class methods.", - "time": "2017-10-17T01:48:51+00:00" + "time": "2019-03-08T16:55:03+00:00" }, { "name": "consolidation/output-formatters", - "version": "3.1.12", + "version": "3.4.0", "source": { "type": "git", "url": "https://github.com/consolidation/output-formatters.git", - "reference": "88ef346a1cefb92aab8b57a3214a6d5fc63f5d2a" + "reference": "a942680232094c4a5b21c0b7e54c20cce623ae19" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/consolidation/output-formatters/zipball/88ef346a1cefb92aab8b57a3214a6d5fc63f5d2a", - "reference": "88ef346a1cefb92aab8b57a3214a6d5fc63f5d2a", + "url": "https://api.github.com/repos/consolidation/output-formatters/zipball/a942680232094c4a5b21c0b7e54c20cce623ae19", + "reference": "a942680232094c4a5b21c0b7e54c20cce623ae19", "shasum": "" }, "require": { + "dflydev/dot-access-data": "^1.1.0", "php": ">=5.4.0", - "symfony/console": "^2.8|~3", - "symfony/finder": "~2.5|~3.0" + "symfony/console": "^2.8|^3|^4", + "symfony/finder": "^2.5|^3|^4" }, "require-dev": { - "phpunit/phpunit": "^4.8", - "satooshi/php-coveralls": "^1.0", + "g1a/composer-test-scenarios": "^2", + "phpunit/phpunit": "^5.7.27", + "satooshi/php-coveralls": "^2", "squizlabs/php_codesniffer": "^2.7", + "symfony/console": "3.2.3", + "symfony/var-dumper": "^2.8|^3|^4", "victorjonsson/markdowndocs": "^1.3" }, + "suggest": { + "symfony/var-dumper": "For using the var_dump formatter" + }, "type": "library", "extra": { "branch-alias": { @@ -104,7 +156,66 @@ } ], "description": "Format text by applying transformations provided by plug-in formatters.", - "time": "2017-10-12T19:38:03+00:00" + "time": "2018-10-19T22:35:38+00:00" + }, + { + "name": "dflydev/dot-access-data", + "version": "v1.1.0", + "source": { + "type": "git", + "url": "https://github.com/dflydev/dflydev-dot-access-data.git", + "reference": "3fbd874921ab2c041e899d044585a2ab9795df8a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/dflydev/dflydev-dot-access-data/zipball/3fbd874921ab2c041e899d044585a2ab9795df8a", + "reference": "3fbd874921ab2c041e899d044585a2ab9795df8a", + "shasum": "" + }, + "require": { + "php": ">=5.3.2" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "psr-0": { + "Dflydev\\DotAccessData": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Dragonfly Development Inc.", + "email": "info@dflydev.com", + "homepage": "http://dflydev.com" + }, + { + "name": "Beau Simensen", + "email": "beau@dflydev.com", + "homepage": "http://beausimensen.com" + }, + { + "name": "Carlos Frutos", + "email": "carlos@kiwing.it", + "homepage": "https://github.com/cfrutos" + } + ], + "description": "Given a deep data structure, access data by dot notation.", + "homepage": "https://github.com/dflydev/dflydev-dot-access-data", + "keywords": [ + "access", + "data", + "dot", + "notation" + ], + "time": "2017-01-20T21:14:22+00:00" }, { "name": "dnoegel/php-xdg-base-dir", @@ -141,32 +252,32 @@ }, { "name": "jakub-onderka/php-console-color", - "version": "0.1", + "version": "v0.2", "source": { "type": "git", "url": "https://github.com/JakubOnderka/PHP-Console-Color.git", - "reference": "e0b393dacf7703fc36a4efc3df1435485197e6c1" + "reference": "d5deaecff52a0d61ccb613bb3804088da0307191" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/JakubOnderka/PHP-Console-Color/zipball/e0b393dacf7703fc36a4efc3df1435485197e6c1", - "reference": "e0b393dacf7703fc36a4efc3df1435485197e6c1", + "url": "https://api.github.com/repos/JakubOnderka/PHP-Console-Color/zipball/d5deaecff52a0d61ccb613bb3804088da0307191", + "reference": "d5deaecff52a0d61ccb613bb3804088da0307191", "shasum": "" }, "require": { - "php": ">=5.3.2" + "php": ">=5.4.0" }, "require-dev": { "jakub-onderka/php-code-style": "1.0", - "jakub-onderka/php-parallel-lint": "0.*", + "jakub-onderka/php-parallel-lint": "1.0", "jakub-onderka/php-var-dump-check": "0.*", - "phpunit/phpunit": "3.7.*", + "phpunit/phpunit": "~4.3", "squizlabs/php_codesniffer": "1.*" }, "type": "library", "autoload": { - "psr-0": { - "JakubOnderka\\PhpConsoleColor": "src/" + "psr-4": { + "JakubOnderka\\PhpConsoleColor\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -176,41 +287,41 @@ "authors": [ { "name": "Jakub Onderka", - "email": "jakub.onderka@gmail.com", - "homepage": "http://www.acci.cz" + "email": "jakub.onderka@gmail.com" } ], - "time": "2014-04-08T15:00:19+00:00" + "time": "2018-09-29T17:23:10+00:00" }, { "name": "jakub-onderka/php-console-highlighter", - "version": "v0.3.2", + "version": "v0.4", "source": { "type": "git", "url": "https://github.com/JakubOnderka/PHP-Console-Highlighter.git", - "reference": "7daa75df45242c8d5b75a22c00a201e7954e4fb5" + "reference": "9f7a229a69d52506914b4bc61bfdb199d90c5547" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/JakubOnderka/PHP-Console-Highlighter/zipball/7daa75df45242c8d5b75a22c00a201e7954e4fb5", - "reference": "7daa75df45242c8d5b75a22c00a201e7954e4fb5", + "url": "https://api.github.com/repos/JakubOnderka/PHP-Console-Highlighter/zipball/9f7a229a69d52506914b4bc61bfdb199d90c5547", + "reference": "9f7a229a69d52506914b4bc61bfdb199d90c5547", "shasum": "" }, "require": { - "jakub-onderka/php-console-color": "~0.1", - "php": ">=5.3.0" + "ext-tokenizer": "*", + "jakub-onderka/php-console-color": "~0.2", + "php": ">=5.4.0" }, "require-dev": { "jakub-onderka/php-code-style": "~1.0", - "jakub-onderka/php-parallel-lint": "~0.5", + "jakub-onderka/php-parallel-lint": "~1.0", "jakub-onderka/php-var-dump-check": "~0.1", "phpunit/phpunit": "~4.0", "squizlabs/php_codesniffer": "~1.5" }, "type": "library", "autoload": { - "psr-0": { - "JakubOnderka\\PhpConsoleHighlighter": "src/" + "psr-4": { + "JakubOnderka\\PhpConsoleHighlighter\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -224,7 +335,8 @@ "homepage": "http://www.acci.cz/" } ], - "time": "2015-04-20T18:58:01+00:00" + "description": "Highlight PHP code in terminal", + "time": "2018-09-29T18:48:56+00:00" }, { "name": "nikic/php-parser", @@ -334,16 +446,16 @@ }, { "name": "psr/log", - "version": "1.0.2", + "version": "1.1.0", "source": { "type": "git", "url": "https://github.com/php-fig/log.git", - "reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d" + "reference": "6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/log/zipball/4ebe3a8bf773a19edfe0a84b6585ba3d401b724d", - "reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d", + "url": "https://api.github.com/repos/php-fig/log/zipball/6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd", + "reference": "6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd", "shasum": "" }, "require": { @@ -377,35 +489,36 @@ "psr", "psr-3" ], - "time": "2016-10-10T12:19:37+00:00" + "time": "2018-11-20T15:27:04+00:00" }, { "name": "psy/psysh", - "version": "v0.8.14", + "version": "v0.9.9", "source": { "type": "git", "url": "https://github.com/bobthecow/psysh.git", - "reference": "91e53c16560bdb8b9592544bb38429ae00d6baee" + "reference": "9aaf29575bb8293206bb0420c1e1c87ff2ffa94e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/bobthecow/psysh/zipball/91e53c16560bdb8b9592544bb38429ae00d6baee", - "reference": "91e53c16560bdb8b9592544bb38429ae00d6baee", + "url": "https://api.github.com/repos/bobthecow/psysh/zipball/9aaf29575bb8293206bb0420c1e1c87ff2ffa94e", + "reference": "9aaf29575bb8293206bb0420c1e1c87ff2ffa94e", "shasum": "" }, "require": { "dnoegel/php-xdg-base-dir": "0.1", - "jakub-onderka/php-console-highlighter": "0.3.*", - "nikic/php-parser": "~1.3|~2.0|~3.0", - "php": ">=5.3.9", - "symfony/console": "~2.3.10|^2.4.2|~3.0", - "symfony/var-dumper": "~2.7|~3.0" + "ext-json": "*", + "ext-tokenizer": "*", + "jakub-onderka/php-console-highlighter": "0.3.*|0.4.*", + "nikic/php-parser": "~1.3|~2.0|~3.0|~4.0", + "php": ">=5.4.0", + "symfony/console": "~2.3.10|^2.4.2|~3.0|~4.0", + "symfony/var-dumper": "~2.7|~3.0|~4.0" }, "require-dev": { - "friendsofphp/php-cs-fixer": "~1.11", - "hoa/console": "~3.16|~1.14", - "phpunit/phpunit": "~4.4|~5.0", - "symfony/finder": "~2.1|~3.0" + "bamarni/composer-bin-plugin": "^1.2", + "hoa/console": "~2.15|~3.16", + "phpunit/phpunit": "~4.8.35|~5.0|~6.0|~7.0" }, "suggest": { "ext-pcntl": "Enabling the PCNTL extension makes PsySH a lot happier :)", @@ -420,15 +533,15 @@ "type": "library", "extra": { "branch-alias": { - "dev-develop": "0.8.x-dev" + "dev-develop": "0.9.x-dev" } }, "autoload": { "files": [ - "src/Psy/functions.php" + "src/functions.php" ], "psr-4": { - "Psy\\": "src/Psy/" + "Psy\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -450,20 +563,20 @@ "interactive", "shell" ], - "time": "2017-11-04T16:06:49+00:00" + "time": "2018-10-13T15:16:03+00:00" }, { "name": "symfony/console", - "version": "v2.8.28", + "version": "v2.8.49", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "f81549d2c5fdee8d711c9ab3c7e7362353ea5853" + "reference": "cbcf4b5e233af15cd2bbd50dee1ccc9b7927dc12" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/f81549d2c5fdee8d711c9ab3c7e7362353ea5853", - "reference": "f81549d2c5fdee8d711c9ab3c7e7362353ea5853", + "url": "https://api.github.com/repos/symfony/console/zipball/cbcf4b5e233af15cd2bbd50dee1ccc9b7927dc12", + "reference": "cbcf4b5e233af15cd2bbd50dee1ccc9b7927dc12", "shasum": "" }, "require": { @@ -477,7 +590,7 @@ "symfony/process": "~2.1|~3.0.0" }, "suggest": { - "psr/log": "For using the console logger", + "psr/log-implementation": "For using the console logger", "symfony/event-dispatcher": "", "symfony/process": "" }, @@ -511,20 +624,20 @@ ], "description": "Symfony Console Component", "homepage": "https://symfony.com", - "time": "2017-10-01T21:00:16+00:00" + "time": "2018-11-20T15:55:20+00:00" }, { "name": "symfony/debug", - "version": "v2.8.28", + "version": "v2.8.49", "source": { "type": "git", "url": "https://github.com/symfony/debug.git", - "reference": "eaaec993ca5e8067e204b2ee653cdd142961f33e" + "reference": "74251c8d50dd3be7c4ce0c7b862497cdc641a5d0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/debug/zipball/eaaec993ca5e8067e204b2ee653cdd142961f33e", - "reference": "eaaec993ca5e8067e204b2ee653cdd142961f33e", + "url": "https://api.github.com/repos/symfony/debug/zipball/74251c8d50dd3be7c4ce0c7b862497cdc641a5d0", + "reference": "74251c8d50dd3be7c4ce0c7b862497cdc641a5d0", "shasum": "" }, "require": { @@ -568,20 +681,20 @@ ], "description": "Symfony Debug Component", "homepage": "https://symfony.com", - "time": "2017-10-01T21:00:16+00:00" + "time": "2018-11-11T11:18:13+00:00" }, { "name": "symfony/event-dispatcher", - "version": "v2.8.28", + "version": "v2.8.49", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "7fe089232554357efb8d4af65ce209fc6e5a2186" + "reference": "a77e974a5fecb4398833b0709210e3d5e334ffb0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/7fe089232554357efb8d4af65ce209fc6e5a2186", - "reference": "7fe089232554357efb8d4af65ce209fc6e5a2186", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/a77e974a5fecb4398833b0709210e3d5e334ffb0", + "reference": "a77e974a5fecb4398833b0709210e3d5e334ffb0", "shasum": "" }, "require": { @@ -628,20 +741,20 @@ ], "description": "Symfony EventDispatcher Component", "homepage": "https://symfony.com", - "time": "2017-10-01T21:00:16+00:00" + "time": "2018-11-21T14:20:20+00:00" }, { "name": "symfony/finder", - "version": "v2.8.28", + "version": "v2.8.49", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "a945724b201f74d543e356f6059c930bb8d10c92" + "reference": "1444eac52273e345d9b95129bf914639305a9ba4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/a945724b201f74d543e356f6059c930bb8d10c92", - "reference": "a945724b201f74d543e356f6059c930bb8d10c92", + "url": "https://api.github.com/repos/symfony/finder/zipball/1444eac52273e345d9b95129bf914639305a9ba4", + "reference": "1444eac52273e345d9b95129bf914639305a9ba4", "shasum": "" }, "require": { @@ -677,20 +790,78 @@ ], "description": "Symfony Finder Component", "homepage": "https://symfony.com", - "time": "2017-10-01T21:00:16+00:00" + "time": "2018-11-11T11:18:13+00:00" + }, + { + "name": "symfony/polyfill-ctype", + "version": "v1.10.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-ctype.git", + "reference": "e3d826245268269cd66f8326bd8bc066687b4a19" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/e3d826245268269cd66f8326bd8bc066687b4a19", + "reference": "e3d826245268269cd66f8326bd8bc066687b4a19", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "suggest": { + "ext-ctype": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.9-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Ctype\\": "" + }, + "files": [ + "bootstrap.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + }, + { + "name": "Gert de Pagter", + "email": "backendtea@gmail.com" + } + ], + "description": "Symfony polyfill for ctype functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "ctype", + "polyfill", + "portable" + ], + "time": "2018-08-06T14:22:27+00:00" }, { "name": "symfony/polyfill-mbstring", - "version": "v1.6.0", + "version": "v1.10.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "2ec8b39c38cb16674bbf3fea2b6ce5bf117e1296" + "reference": "c79c051f5b3a46be09205c73b80b346e4153e494" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/2ec8b39c38cb16674bbf3fea2b6ce5bf117e1296", - "reference": "2ec8b39c38cb16674bbf3fea2b6ce5bf117e1296", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/c79c051f5b3a46be09205c73b80b346e4153e494", + "reference": "c79c051f5b3a46be09205c73b80b346e4153e494", "shasum": "" }, "require": { @@ -702,7 +873,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.6-dev" + "dev-master": "1.9-dev" } }, "autoload": { @@ -736,20 +907,20 @@ "portable", "shim" ], - "time": "2017-10-11T12:05:26+00:00" + "time": "2018-09-21T13:07:52+00:00" }, { "name": "symfony/var-dumper", - "version": "v2.8.28", + "version": "v2.8.49", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "3e34c94f44d7bf8db1569b4bcb4b45065ccf388e" + "reference": "91abb1e39d14fb7773d25de9c711949ea8502ac1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/3e34c94f44d7bf8db1569b4bcb4b45065ccf388e", - "reference": "3e34c94f44d7bf8db1569b4bcb4b45065ccf388e", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/91abb1e39d14fb7773d25de9c711949ea8502ac1", + "reference": "91abb1e39d14fb7773d25de9c711949ea8502ac1", "shasum": "" }, "require": { @@ -804,24 +975,25 @@ "debug", "dump" ], - "time": "2017-09-15T16:59:28+00:00" + "time": "2018-11-11T11:18:13+00:00" }, { "name": "symfony/yaml", - "version": "v2.8.28", + "version": "v2.8.49", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "842fb6df22180244b4c65935ce1a88d324e5ff9e" + "reference": "02c1859112aa779d9ab394ae4f3381911d84052b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/842fb6df22180244b4c65935ce1a88d324e5ff9e", - "reference": "842fb6df22180244b4c65935ce1a88d324e5ff9e", + "url": "https://api.github.com/repos/symfony/yaml/zipball/02c1859112aa779d9ab394ae4f3381911d84052b", + "reference": "02c1859112aa779d9ab394ae4f3381911d84052b", "shasum": "" }, "require": { - "php": ">=5.3.9" + "php": ">=5.3.9", + "symfony/polyfill-ctype": "~1.8" }, "type": "library", "extra": { @@ -853,24 +1025,62 @@ ], "description": "Symfony Yaml Component", "homepage": "https://symfony.com", - "time": "2017-10-05T14:38:30+00:00" + "time": "2018-11-11T11:18:13+00:00" + }, + { + "name": "webflo/drupal-finder", + "version": "1.1.0", + "source": { + "type": "git", + "url": "https://github.com/webflo/drupal-finder.git", + "reference": "8a7886c575d6eaa67a425dceccc84e735c0b9637" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/webflo/drupal-finder/zipball/8a7886c575d6eaa67a425dceccc84e735c0b9637", + "reference": "8a7886c575d6eaa67a425dceccc84e735c0b9637", + "shasum": "" + }, + "require-dev": { + "mikey179/vfsstream": "^1.6", + "phpunit/phpunit": "^4.8" + }, + "type": "library", + "autoload": { + "classmap": [ + "src/DrupalFinder.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "GPL-2.0+" + ], + "authors": [ + { + "name": "Florian Weber", + "email": "florian@webflo.org" + } + ], + "description": "Helper class to locate a Drupal installation from a given path.", + "time": "2017-10-24T08:12:11+00:00" }, { "name": "webmozart/assert", - "version": "1.2.0", + "version": "1.4.0", "source": { "type": "git", "url": "https://github.com/webmozart/assert.git", - "reference": "2db61e59ff05fe5126d152bd0655c9ea113e550f" + "reference": "83e253c8e0be5b0257b881e1827274667c5c17a9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/webmozart/assert/zipball/2db61e59ff05fe5126d152bd0655c9ea113e550f", - "reference": "2db61e59ff05fe5126d152bd0655c9ea113e550f", + "url": "https://api.github.com/repos/webmozart/assert/zipball/83e253c8e0be5b0257b881e1827274667c5c17a9", + "reference": "83e253c8e0be5b0257b881e1827274667c5c17a9", "shasum": "" }, "require": { - "php": "^5.3.3 || ^7.0" + "php": "^5.3.3 || ^7.0", + "symfony/polyfill-ctype": "^1.8" }, "require-dev": { "phpunit/phpunit": "^4.6", @@ -903,7 +1113,7 @@ "check", "validate" ], - "time": "2016-11-23T20:04:58+00:00" + "time": "2018-12-25T11:19:39+00:00" }, { "name": "webmozart/path-util", @@ -1058,33 +1268,33 @@ }, { "name": "phpspec/prophecy", - "version": "v1.7.2", + "version": "1.8.0", "source": { "type": "git", "url": "https://github.com/phpspec/prophecy.git", - "reference": "c9b8c6088acd19d769d4cc0ffa60a9fe34344bd6" + "reference": "4ba436b55987b4bf311cb7c6ba82aa528aac0a06" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpspec/prophecy/zipball/c9b8c6088acd19d769d4cc0ffa60a9fe34344bd6", - "reference": "c9b8c6088acd19d769d4cc0ffa60a9fe34344bd6", + "url": "https://api.github.com/repos/phpspec/prophecy/zipball/4ba436b55987b4bf311cb7c6ba82aa528aac0a06", + "reference": "4ba436b55987b4bf311cb7c6ba82aa528aac0a06", "shasum": "" }, "require": { "doctrine/instantiator": "^1.0.2", "php": "^5.3|^7.0", "phpdocumentor/reflection-docblock": "^2.0|^3.0.2|^4.0", - "sebastian/comparator": "^1.1|^2.0", + "sebastian/comparator": "^1.1|^2.0|^3.0", "sebastian/recursion-context": "^1.0|^2.0|^3.0" }, "require-dev": { "phpspec/phpspec": "^2.5|^3.2", - "phpunit/phpunit": "^4.8 || ^5.6.5" + "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5 || ^7.1" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.7.x-dev" + "dev-master": "1.8.x-dev" } }, "autoload": { @@ -1117,7 +1327,7 @@ "spy", "stub" ], - "time": "2017-09-04T11:05:03+00:00" + "time": "2018-08-05T17:53:17+00:00" }, { "name": "phpunit/php-code-coverage", @@ -1183,16 +1393,16 @@ }, { "name": "phpunit/php-file-iterator", - "version": "1.4.2", + "version": "1.4.5", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-file-iterator.git", - "reference": "3cc8f69b3028d0f96a9078e6295d86e9bf019be5" + "reference": "730b01bc3e867237eaac355e06a36b85dd93a8b4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/3cc8f69b3028d0f96a9078e6295d86e9bf019be5", - "reference": "3cc8f69b3028d0f96a9078e6295d86e9bf019be5", + "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/730b01bc3e867237eaac355e06a36b85dd93a8b4", + "reference": "730b01bc3e867237eaac355e06a36b85dd93a8b4", "shasum": "" }, "require": { @@ -1226,7 +1436,7 @@ "filesystem", "iterator" ], - "time": "2016-10-03T07:40:28+00:00" + "time": "2017-11-27T13:52:08+00:00" }, { "name": "phpunit/php-text-template", @@ -1320,16 +1530,16 @@ }, { "name": "phpunit/php-token-stream", - "version": "1.4.11", + "version": "1.4.12", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-token-stream.git", - "reference": "e03f8f67534427a787e21a385a67ec3ca6978ea7" + "reference": "1ce90ba27c42e4e44e6d8458241466380b51fa16" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/e03f8f67534427a787e21a385a67ec3ca6978ea7", - "reference": "e03f8f67534427a787e21a385a67ec3ca6978ea7", + "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/1ce90ba27c42e4e44e6d8458241466380b51fa16", + "reference": "1ce90ba27c42e4e44e6d8458241466380b51fa16", "shasum": "" }, "require": { @@ -1365,7 +1575,7 @@ "keywords": [ "tokenizer" ], - "time": "2017-02-27T10:12:30+00:00" + "time": "2017-12-04T08:55:13+00:00" }, { "name": "phpunit/phpunit", @@ -1493,6 +1703,7 @@ "mock", "xunit" ], + "abandoned": true, "time": "2015-10-02T06:51:40+00:00" }, { @@ -1869,16 +2080,16 @@ }, { "name": "symfony/process", - "version": "v2.7.35", + "version": "v2.7.50", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "601b7d86103ae1ad374343725e899f905680f919" + "reference": "eda637e05670e2afeec3842dcd646dce94262f6b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/601b7d86103ae1ad374343725e899f905680f919", - "reference": "601b7d86103ae1ad374343725e899f905680f919", + "url": "https://api.github.com/repos/symfony/process/zipball/eda637e05670e2afeec3842dcd646dce94262f6b", + "reference": "eda637e05670e2afeec3842dcd646dce94262f6b", "shasum": "" }, "require": { @@ -1914,7 +2125,7 @@ ], "description": "Symfony Process Component", "homepage": "https://symfony.com", - "time": "2017-09-30T14:00:25+00:00" + "time": "2018-08-03T11:24:48+00:00" } ], "aliases": [], diff --git a/vendor/drush/drush/docs/make.md b/vendor/drush/drush/docs/make.md index 94aebdf3cd9e4c8403d30b6a1d70fb980efe908b..91d0fb900605cadc1ae6aa1658807ae570ed7c12 100644 --- a/vendor/drush/drush/docs/make.md +++ b/vendor/drush/drush/docs/make.md @@ -1,6 +1,8 @@ Drush make ---------- +**Drush make is no longer maintained ([#3946](https://github.com/drush-ops/drush/issues/3946#issuecomment-467861007)), use [drupal-composer/drupal-project](https://github.com/drupal-composer/drupal-project) template for Drupal projects!** + Drush make is an extension to drush that can create a ready-to-use drupal site, pulling sources from various locations. It does this by parsing a flat text file (similar to a drupal `.info` file) and downloading the sources it describes. In @@ -484,7 +486,7 @@ Properties in the includer takes precedence over the includee. type: "module" download: type: "git" - url: "http://git.drupal.org/project/views.git" + url: "https://git.drupal.org/project/views.git" A project or library entry of an included makefile can be removed entirely by setting the corresponding key to NULL: diff --git a/vendor/drush/drush/drush.info b/vendor/drush/drush/drush.info index 1aa36c4af2bb85786fa072c9fd5be743ed6399bc..82b325851c948db637b5b571cc13d23663946b3f 100644 --- a/vendor/drush/drush/drush.info +++ b/vendor/drush/drush/drush.info @@ -1 +1 @@ -drush_version=8.1.17 +drush_version=8.2.3 diff --git a/vendor/drush/drush/examples/example.make b/vendor/drush/drush/examples/example.make index 3736590995ca159b5cb63ac3daf7d67c1530ebae..00ad0dc0059e14e3d1f0f5daccde6fb0ed6a9852 100644 --- a/vendor/drush/drush/examples/example.make +++ b/vendor/drush/drush/examples/example.make @@ -36,7 +36,7 @@ api = 2 ; Git clone of Drupal 7.x. Requires the `core` property to be set to 7.x. ; projects[drupal][type] = "core" ; projects[drupal][download][type] = git -; projects[drupal][download][url] = http://git.drupal.org/project/drupal.git +; projects[drupal][download][url] = https://git.drupal.org/project/drupal.git projects[] = drupal @@ -69,7 +69,7 @@ projects[ctools][version] = 1.3 projects[data][type] = module projects[data][download][type] = git -projects[data][download][url] = http://git.drupal.org/project/views.git +projects[data][download][url] = https://git.drupal.org/project/views.git projects[data][download][revision] = DRUPAL-6--3 ; For projects on drupal.org, some shorthand is available. If any diff --git a/vendor/drush/drush/examples/example.make.yml b/vendor/drush/drush/examples/example.make.yml index 49448424766699bd58463264762a407b722f4a56..8bd4d28f80b9f16a9b4f106894d929fb783dda41 100644 --- a/vendor/drush/drush/examples/example.make.yml +++ b/vendor/drush/drush/examples/example.make.yml @@ -40,7 +40,7 @@ api: 2 # drupal: # type: "core" # download: -# url: "http://git.drupal.org/project/drupal.git" +# url: "https://git.drupal.org/project/drupal.git" projects: drupal: @@ -80,7 +80,7 @@ projects: type: "module" download: type: "git" # Note, 'git' is the default, no need to specify. - url: "http://git.drupal.org/project/views.git" + url: "https://git.drupal.org/project/views.git" revision: "7.x-3.x" # For projects on drupal.org, some shorthand is available. If any diff --git a/vendor/drush/drush/includes/annotationcommand_adapter.inc b/vendor/drush/drush/includes/annotationcommand_adapter.inc index 17a450c249657204c95297a0b4fef0755a66a70f..07ab48951792c6e0d823c65630469ed77dee9aa5 100644 --- a/vendor/drush/drush/includes/annotationcommand_adapter.inc +++ b/vendor/drush/drush/includes/annotationcommand_adapter.inc @@ -16,6 +16,9 @@ use Consolidation\AnnotatedCommand\CommandData; use Drush\Command\DrushInputAdapter; use Drush\Command\DrushOutputAdapter; +use Drush\Drush; +use Drush\SiteAlias\AliasManagerAdapterInjector; +use Drush\SiteAlias\ProcessManagerInjector; use Symfony\Component\Console\Output\ConsoleOutput; @@ -30,6 +33,10 @@ function annotationcommand_adapter_get_discovery() { $discovery = new CommandFileDiscovery(); $discovery ->setIncludeFilesAtBase(false) + ->setSearchDepth(3) + ->ignoreNamespacePart('contrib', 'Commands') + ->ignoreNamespacePart('custom', 'Commands') + ->ignoreNamespacePart('src') ->setSearchLocations(['Commands']) ->setSearchPattern('#.*Commands.php$#'); } @@ -99,9 +106,11 @@ function annotationcommand_adapter_commands() { unset($annotation_commandfiles[$key]); } } - $commands = annotationcommand_adapter_get_commands($annotation_commandfiles); + $site_wide_commands = annotationcommand_adapter_get_commands($annotation_commandfiles); $module_service_commands = drush_get_context('DRUSH_MODULE_SERVICE_COMMANDS'); - return array_merge($commands, $module_service_commands); + $commands = array_merge($site_wide_commands, $module_service_commands); + + return $commands; } /** @@ -231,6 +240,7 @@ function annotationcommand_adapter_process_command() { $input = new DrushInputAdapter($args, annotationcommand_adapter_get_options($command), $command['command']); $output = new DrushOutputAdapter(); + annotationcommand_adapter_input($input); $annotationData = $command['annotations']; $commandData = new CommandData( $annotationData, @@ -240,6 +250,15 @@ function annotationcommand_adapter_process_command() { $commandData->setIncludeOptionsInArgs($command['add-options-to-arguments']); $names = annotationcommand_adapter_command_names($command); + // For now, the only thing that can be injected is the InputInterface. + foreach ($command['injected-classes'] as $injected) { + switch ($injected) { + case 'Symfony\Component\Console\Input\InputInterface': + $commandData->injectInstance($input); + break; + } + } + // n.b.: backend result is set by a post-alter hook. $result = $commandprocessor->process( $output, @@ -251,6 +270,14 @@ function annotationcommand_adapter_process_command() { return $result; } +function annotationcommand_adapter_input($setInput = null) { + static $cacheInput = null; + if ($setInput != null) { + $cacheInput = $setInput; + } + return $cacheInput; +} + /** * Internal function called by annotationcommand_adapter_commands, which * is called by drush_get_commands(). @@ -265,15 +292,21 @@ function annotationcommand_adapter_get_commands($annotation_commandfiles) { // 'modules/default_content/src/CliTools/DefaultContentCommands.php' => // '\\Drupal\\default_content\\CliTools\\DefaultContentCommands', foreach ($annotation_commandfiles as $commandfile_path => $commandfile_class) { - if (file_exists($commandfile_path)) { - $commandhandler = annotationcommand_adapter_create_commandfile_instance($commandfile_path, $commandfile_class); - $commands_for_this_commandhandler = annotationcommand_adapter_get_commands_for_commandhandler($commandhandler, $commandfile_path); - $commands = array_merge($commands, $commands_for_this_commandhandler); + try { + if (file_exists($commandfile_path) && ($commandfile_class != '\Drush\Commands\DrushCommands')) { + $commandhandler = annotationcommand_adapter_create_commandfile_instance($commandfile_path, $commandfile_class); + $commands_for_this_commandhandler = annotationcommand_adapter_get_commands_for_commandhandler($commandhandler, $commandfile_path); + $commands = array_merge($commands, $commands_for_this_commandhandler); + } } + catch (\Exception $e) {} } return $commands; } +use Psr\Log\LoggerAwareInterface; + + /** * Create and cache a commandfile instance. * @@ -287,6 +320,22 @@ function annotationcommand_adapter_create_commandfile_instance($commandfile_path if (!isset($cache[$commandfile_path])) { include_once $commandfile_path; $commandhandler = new $commandfile_class; + + // Inject logger if requested + if ($commandhandler instanceof LoggerAwareInterface) { + $commandhandler->setLogger(Drush::logger()); + } + + if (class_exists('\Consolidation\SiteAlias\SiteAliasManager')) { + $alias_manager_injector = new AliasManagerAdapterInjector(); + $alias_manager_injector->inflect($commandhandler); + } + + if (class_exists('\Consolidation\SiteProcess\ProcessManager')) { + $process_manager_injector = new ProcessManagerInjector(); + $process_manager_injector->inflect($commandhandler); + } + $cache[$commandfile_path] = $commandhandler; } return $cache[$commandfile_path]; @@ -368,6 +417,33 @@ function annotationcommand_adapter_get_command_for_console_command($console_comm return $commands; } +function annotationcommand_adapter_bootstrap_phase_index($phase) +{ + $phaseMap = annotationcommand_adapter_bootstrap_phase_map(); + if (isset($phaseMap[$phase])) { + return $phaseMap[$phase]; + } + + if ((substr($phase, 0, 16) != 'DRUSH_BOOTSTRAP_') || (!defined($phase))) { + return; + } + return constant($phase); +} + +function annotationcommand_adapter_bootstrap_phase_map() +{ + return [ + 'none' => DRUSH_BOOTSTRAP_NONE, + 'root' => DRUSH_BOOTSTRAP_DRUPAL_ROOT, + 'site' => DRUSH_BOOTSTRAP_DRUPAL_SITE, + 'config' => DRUSH_BOOTSTRAP_DRUPAL_CONFIGURATION, + 'configuration' => DRUSH_BOOTSTRAP_DRUPAL_CONFIGURATION, + 'db' => DRUSH_BOOTSTRAP_DRUPAL_DATABASE, + 'database' => DRUSH_BOOTSTRAP_DRUPAL_DATABASE, + 'full' => DRUSH_BOOTSTRAP_DRUPAL_FULL, + ]; +} + /** * Convert an annotated command command handler object into a Drush $command record. * @@ -378,6 +454,9 @@ function annotationcommand_adapter_get_command_for_console_command($console_comm * @return array Drush $command record */ function annotationcommand_adapter_get_commands_for_commandhandler($commandhandler, $commandfile_path, $includeAllPublicMethods = true) { + if (!$commandhandler) { + return []; + } $cache =& drush_get_context('DRUSH_ANNOTATION_COMMANDS_FOR_COMMANDFILE'); if (isset($cache[$commandfile_path])) { return $cache[$commandfile_path]; @@ -401,7 +480,8 @@ function annotationcommand_adapter_get_commands_for_commandhandler($commandhandl $handle_remote_commands = $commandinfo->getAnnotation('handle-remote-commands') == 'true'; // TODO: if there is no 'bootstrap' annotation, maybe we should default to NONE instead of FULL? if ($bootstrap = $commandinfo->getAnnotation('bootstrap')) { - $bootstrap = constant($bootstrap); + // Convert from the bootstrap string to the appropriate bootstrap phase index + $bootstrap = annotationcommand_adapter_bootstrap_phase_index($bootstrap); } $command = [ 'name' => $command_name, @@ -442,6 +522,7 @@ function annotationcommand_adapter_get_commands_for_commandhandler($commandhandl } } $command['annotations'] = $commandinfo->getAnnotations(); + $command['injected-classes'] = $commandinfo->getInjectedClasses(); // If the command has a '@return' annotation, then // remember information we will need to use the output formatter. $returnType = $commandinfo->getReturnType(); diff --git a/vendor/drush/drush/includes/command.inc b/vendor/drush/drush/includes/command.inc index e0d57cfa2d69b94ad31ec4f040f5486205d8ede0..3e1821a91b6edb9c33cbd2a99b09a3bb3d709b3e 100644 --- a/vendor/drush/drush/includes/command.inc +++ b/vendor/drush/drush/includes/command.inc @@ -847,6 +847,7 @@ function drush_parse_args() { // into options (starting with a '-') and arguments. $arguments = $options = array(); + $verbosity = 0; for ($i = 1; $i < count($args); $i++) { $opt = $args[$i]; // We set $command_args to NULL until the first argument that is not @@ -861,7 +862,11 @@ function drush_parse_args() { if (strlen($opt) > 2 && $opt{1} != "-") { // Each char becomes a key of its own. for ($j = 1; $j < strlen($opt); $j++) { - $options[substr($opt, $j, 1)] = TRUE; + $opt_char = substr($opt, $j, 1); + $options[$opt_char] = TRUE; + if ($opt_char == 'v') { + ++$verbosity; + } } } // Do we have a longopt (starting with '--')? @@ -912,6 +917,9 @@ function drush_parse_args() { } } } + if ($verbosity >= 3) { + $options['debug'] = TRUE; + } // If no arguments are specified, then the command will // be either 'help' or 'version' (the latter if --version is specified) // @todo: it would be handy if one could do `drush @remote st --help` and diff --git a/vendor/drush/drush/includes/drush.inc b/vendor/drush/drush/includes/drush.inc index 2478b62d2dfb12acaab74fb273d56d237e32ee60..14da678140f5987e4469702b760e4168b0d2dcbc 100644 --- a/vendor/drush/drush/includes/drush.inc +++ b/vendor/drush/drush/includes/drush.inc @@ -328,6 +328,7 @@ function drush_get_global_options($brief = FALSE) { $options['redirect-port'] = array('hidden' => TRUE, 'never-propagate' => TRUE, 'description' => 'Used by the user-login command to specify the redirect port on the local machine; it therefore would not do to pass this to the remote machines.'); $options['cache-clear'] = array('propagate' => TRUE, 'description' => 'If 0, Drush skips normal cache clearing; the caller should then clear if needed.', 'example-value' => '0', ); $options['local'] = array('propagate' => TRUE, 'description' => 'Don\'t look in global locations for commandfiles, config, and site aliases'); + $options['no-interaction'] = array('hidden' => TRUE, 'description' => 'Synonym for --yes; provided for light forward-compatibility with future Drush versions.'); $options['ignored-directories'] = array('propagate' => TRUE, 'description' => "Exclude directories when searching for files in drush_scan_directory().", 'example-value' => 'node_modules,bower_components'); $command = array( diff --git a/vendor/drush/drush/includes/environment.inc b/vendor/drush/drush/includes/environment.inc index 00822078287749eb499690a0fc0719c3df80e598..e6c993389142473b4f8c5f98eb104b84eb430fb2 100644 --- a/vendor/drush/drush/includes/environment.inc +++ b/vendor/drush/drush/includes/environment.inc @@ -10,6 +10,7 @@ * @see includes/bootstrap.inc */ +use Drush\Drush; use Drush\Log\LogLevel; use Webmozart\PathUtil\Path; @@ -17,7 +18,7 @@ * Log PHP errors to the Drush log. This is in effect until Drupal's error * handler takes over. */ -function drush_error_handler($errno, $message, $filename, $line, $context) { +function drush_error_handler($errno, $message, $filename, $line) { // E_DEPRECATED was added in PHP 5.3. Drupal 6 will not fix all the // deprecated errors, but suppresses them. So we suppress them as well. if (defined('E_DEPRECATED')) { @@ -139,6 +140,10 @@ function drush_cwd() { // Save original working dir case some command wants it. drush_set_context('DRUSH_OLDCWD', $path); + // Make a read-only copy of the original cwd at env.cwd + // for forwards-compatibility + drush_set_option('env.cwd', $path); + return $path; } @@ -608,9 +613,7 @@ function _drush_test_os($os, $os_list_to_check) { * Read the drush info file. */ function drush_read_drush_info() { - $drush_info_file = dirname(__FILE__) . '/../drush.info'; - - return parse_ini_file($drush_info_file); + return Drush::ReadDrushInfo(); } /** diff --git a/vendor/drush/drush/includes/preflight.inc b/vendor/drush/drush/includes/preflight.inc index d832365b534543afc529f224fa25de11c27bd441..c8e939b686719d2abef1a3b27197385aece9baae 100644 --- a/vendor/drush/drush/includes/preflight.inc +++ b/vendor/drush/drush/includes/preflight.inc @@ -5,6 +5,7 @@ * Preflight, postflight and shutdown code. */ +use Drush\Drush; use Drush\Log\LogLevel; /** @@ -143,6 +144,10 @@ function drush_preflight_prepare() { drush_set_context('DRUSH_VENDOR_PATH', dirname($vendor_path)); drush_set_context('DRUSH_CLASSLOADER', $classloader); + // Make a read-only copy of the vendor path at drush.vendor-dir + // for forwards-compatibility + drush_set_option('drush.vendor-dir', dirname($vendor_path)); + // Can't log until we have a logger, so we'll create this ASAP. _drush_create_default_logger(); @@ -165,17 +170,20 @@ function drush_preflight_prepare() { return; // An error was logged. } - $drush_info = drush_read_drush_info(); - define('DRUSH_VERSION', $drush_info['drush_version']); - $version_parts = explode('.', DRUSH_VERSION); - define('DRUSH_MAJOR_VERSION', $version_parts[0]); - define('DRUSH_MINOR_VERSION', $version_parts[1]); + // For backwards compatibility. Prefer the static accessors. + define('DRUSH_VERSION', Drush::getVersion()); + define('DRUSH_MAJOR_VERSION', Drush::getMajorVersion()); + define('DRUSH_MINOR_VERSION', Drush::getMinorVersion()); define('DRUSH_REQUEST_TIME', microtime(TRUE)); drush_set_context('argc', $GLOBALS['argc']); drush_set_context('argv', $GLOBALS['argv']); + // Make a read-only copy of the arguments at runtime.argv + // for forwards-compatibility + drush_set_option('runtime.argv', $GLOBALS['argv']); + // Set an error handler and a shutdown function set_error_handler('drush_error_handler'); register_shutdown_function('drush_shutdown'); @@ -325,6 +333,13 @@ function drush_preflight_root() { if (!isset($root)) { $root = drush_locate_root(); } + // If the old ways do not find a Drupal root, use DrupalFinder. + if (!$root) { + $finder = new \DrupalFinder\DrupalFinder(); + if ($finder->locateRoot(getcwd())) { + $root = $finder->getDrupalRoot(); + } + } if ($root) { $root = realpath($root); } @@ -382,7 +397,7 @@ function _drush_preflight_global_options() { // Backend implies affirmative unless negative is explicitly specified drush_set_context('DRUSH_NEGATIVE', drush_get_option('no', FALSE)); - drush_set_context('DRUSH_AFFIRMATIVE', drush_get_option(array('yes', 'pipe'), FALSE) || (drush_get_context('DRUSH_BACKEND') && !drush_get_context('DRUSH_NEGATIVE'))); + drush_set_context('DRUSH_AFFIRMATIVE', drush_get_option(array('yes', 'pipe', 'no-interaction'), FALSE) || (drush_get_context('DRUSH_BACKEND') && !drush_get_context('DRUSH_NEGATIVE'))); // Pipe implies quiet. drush_set_context('DRUSH_QUIET', drush_get_option(array('quiet', 'pipe'))); @@ -441,10 +456,12 @@ function _drush_preflight_columns() { if (!($columns = getenv('COLUMNS') ?: 0)) { // Trying to export the columns using stty. exec('stty size 2>&1', $columns_output, $columns_status); - if (!$columns_status) $columns = preg_replace('/\d+\s(\d+)/', '$1', $columns_output[0], -1, $columns_count); - + $matched = FALSE; + if (!$columns_status && $matched = preg_match('/^\d+\s(\d+)$/', $columns_output[0], $matches, 0)) { + $columns = $matches[1]; + } // If stty fails and Drush us running on Windows are we trying with mode con. - if (($columns_status || !$columns_count) && drush_is_windows()) { + if (($columns_status || !$matched) && drush_is_windows()) { $columns_output = array(); exec('mode con', $columns_output, $columns_status); if (!$columns_status && is_array($columns_output)) { @@ -611,7 +628,7 @@ function drush_preflight_command_dispatch() { $local_drush = find_wrapper_or_launcher($root); } $is_local = drush_get_option('local'); - $must_use_site_local = !empty($root) && !empty($local_drush) && empty($is_local); + $must_use_site_local = !empty($root) && !empty($local_drush) && !empty($is_local); // If the command sets the 'handle-remote-commands' flag, then we will short-circuit // remote command dispatching and site-list command dispatching, and always let // the command handler run on the local machine. diff --git a/vendor/drush/drush/includes/sitealias.inc b/vendor/drush/drush/includes/sitealias.inc index fce233d81120e2581d5e037f41a55aa72aad1fea..be109498ca48878263e9379f5d20f6c94c3fc815 100644 --- a/vendor/drush/drush/includes/sitealias.inc +++ b/vendor/drush/drush/includes/sitealias.inc @@ -1646,7 +1646,7 @@ function drush_convert_db_from_db_url($db_url) { ); $url = (object)array_map('urldecode', $url); $db_spec = array( - 'driver' => $url->scheme == 'mysqli' ? 'mysql' : $url->scheme, + 'driver' => $url->scheme == 'mysqli' && extension_loaded('mysql') ? 'mysql' : $url->scheme, 'username' => $url->user, 'password' => $url->pass, 'host' => $url->host, @@ -1659,6 +1659,13 @@ function drush_convert_db_from_db_url($db_url) { return $db_spec; } +function drush_convert_db_url($db_url) { + if (extension_loaded('mysql') && !extension_loaded('mysqli')) { + return preg_replace('#^mysqli://#', 'mysql://', $db_url);; + } + return preg_replace('#^mysql://#', 'mysqli://', $db_url); +} + /** * Convert from an old-style database URL to an array of database settings * diff --git a/vendor/drush/drush/lib/Drush/Commands/DrushCommands.php b/vendor/drush/drush/lib/Drush/Commands/DrushCommands.php new file mode 100644 index 0000000000000000000000000000000000000000..346c50dfb9c58f6e6fedcf082e4168afbb03761c --- /dev/null +++ b/vendor/drush/drush/lib/Drush/Commands/DrushCommands.php @@ -0,0 +1,102 @@ +<?php +namespace Drush\Commands; + +use Drush\Command\DrushInputAdapter; +use Drush\Command\DrushOutputAdapter; +use Drush\Drush; +use Drush\SiteAlias\ProcessManager; +use Psr\Log\LoggerAwareInterface; +use Psr\Log\LoggerAwareTrait; +use Psr\Log\LoggerInterface; +use Symfony\Component\Console\Input\InputInterface; +use Symfony\Component\Console\Input\InputOption; +use Symfony\Component\Console\Input\OutputInterface; +use Symfony\Component\Console\Style\SymfonyStyle; + +/** + * DrushCommands provides access to configuration, IO and the logger, + * and also provides a "printFile" convenience method for displaying + * the contents of a file with a pager. + * + * Drush extensions that use ONLY the facilities provided by this class, + * plus any APIs provided by Drupal core and the module they are bundled + * with should work with both Drush 8 and Drush 9. + */ +abstract class DrushCommands implements LoggerAwareInterface +{ + // This is more readable. + const REQ=InputOption::VALUE_REQUIRED; + const OPT=InputOption::VALUE_OPTIONAL; + + use LoggerAwareTrait; + + protected $io; + + public function __construct() + { + } + + /** + * Return an object that has the same signature as a Consolidation\Config\ConfigInterface + */ + protected function getConfig() + { + return Drush::config(); + } + + /** + * @return ProcessManager + */ + public function processManager() + { + return Drush::processManager(); + } + + /** + * @return SymfonyStyle + */ + protected function io() + { + if (!$this->io) { + $this->io = new SymfonyStyle($this->input(), $this->output()); + } + return $this->io; + } + + /** + * @return InputInterface + */ + protected function input() + { + return Drush::input(); + } + + /** + * @return OutputInterface + */ + protected function output() + { + return Drush::output(); + } + + /** + * Returns a logger object. + * + * @return LoggerInterface + */ + protected function logger() + { + return $this->logger; + } + + /** + * Print the contents of a file. + * + * @param string $file + * Full path to a file. + */ + protected function printFile($file) + { + drush_print_file($file); + } +} diff --git a/vendor/drush/drush/lib/Drush/ConfigAdapter.php b/vendor/drush/drush/lib/Drush/ConfigAdapter.php new file mode 100644 index 0000000000000000000000000000000000000000..3cd4f49694de1df8984fd50496744ae21c9d5a00 --- /dev/null +++ b/vendor/drush/drush/lib/Drush/ConfigAdapter.php @@ -0,0 +1,110 @@ +<?php +namespace Drush; + +use Consolidation\Config\ConfigInterface; + +/** + * Note that DrushConfig deliberately does NOT implement the interface + * Consolidation\Config\ConfigInterface because consolidation/config + * is NOT a requirement of Drush 8. DrushConfig must therefore work in + * the absence of consolidation/config. + * + * Drush 8 uses some components optionally, if they are available + * (e.g. the AliasManager and the ProcessManager). Drush never calls + * these directly, but makes them available to Drush extensions that + * want to use them. In these instances, the needed dependencies should + * be required in the composer.json of the extension that uses it. + * + * This adapter simply converts DrushConfig into an equivalent object + * that implements ConfigInterface, so that it may be passed to + * objects that typehint their parameters as ConfigInterface. + */ +class ConfigAdapter implements ConfigInterface +{ + protected $config; + + public function __construct($config) + { + $this->config = $config; + } + + /** + * @inheritdoc + */ + public function has($key) + { + return $this->config->has($key); + } + + /** + * @inheritdoc + */ + public function get($key, $defaultFallback = null) + { + return $this->config->get($key, $defaultFallback); + } + + /** + * @inheritdoc + */ + public function set($key, $value) + { + $this->config->set($key, $value); + } + + /** + * @inheritdoc + */ + public function import($data) + { + return $this->config->import($data); + } + + /** + * @inheritdoc + */ + public function replace($data) + { + $this->config->replace($data); + } + + /** + * @inheritdoc + */ + public function combine($data) + { + return $this->config->combine($data); + } + + /** + * @inheritdoc + */ + public function export() + { + return $this->config->export(); + } + + /** + * @inheritdoc + */ + public function hasDefault($key) + { + return $this->config->hasDefault($key); + } + + /** + * @inheritdoc + */ + public function getDefault($key, $defaultFallback = null) + { + return $this->config->getDefault($key, $defaultFallback); + } + + /** + * @inheritdoc + */ + public function setDefault($key, $value) + { + return $this->setDefault($key, $value); + } +} diff --git a/vendor/drush/drush/lib/Drush/Drush.php b/vendor/drush/drush/lib/Drush/Drush.php new file mode 100644 index 0000000000000000000000000000000000000000..1a311b6f24d13569cdaf027506b13b61dd9a6ef2 --- /dev/null +++ b/vendor/drush/drush/lib/Drush/Drush.php @@ -0,0 +1,413 @@ +<?php + +/** + * @file + * Contains \Drush. + */ +namespace Drush; + +use Consolidation\SiteAlias\SiteAliasInterface; +use Consolidation\SiteAlias\SiteAliasManager; +use Consolidation\SiteAlias\SiteAliasManagerAwareInterface; +use Consolidation\SiteAlias\SiteAliasManagerInterface; +use Consolidation\SiteProcess\ProcessBase; +use Consolidation\SiteProcess\SiteProcess; +use Drush\Command\DrushOutputAdapter; +use Drush\ConfigAdapter; +use Drush\DrushConfig; +use Drush\SiteAlias\ProcessManager; +use Drush\SiteAlias\AliasManagerAdapter; +use Psr\Log\LoggerInterface; +use Symfony\Component\Console\Input\InputInterface; +use Symfony\Component\Console\Output\OutputInterface; +use Symfony\Component\Process\Process; + +/** + * Static Service provider. + * + * This is a back-port of the \Drush\Drush class from Drush 9. + * Drush 8 does not use a dependency injection container; however, + * some objects are injected into command files, and these should + * be used preferentially whenever possible. + * + * @endcode + */ +class Drush +{ + protected static $config = null; + protected static $aliasManager = null; + protected static $processManager = null; + protected static $input = null; + protected static $output = null; + protected static $drushVersion = null; + protected static $drushMajorVersion = null; + protected static $drushMinorVersion = null; + + /** + * Number of seconds before timeout for subprocesses. Can be customized via setTimeout() method. + * + * @var int + */ + const TIMEOUT = 14400; + + /** + * @return int + */ + public static function getTimeout() + { + return self::TIMEOUT; + } + + /** + * Return the current Drush version. + */ + public static function getVersion() + { + if (!isset(self::$drushVersion)) { + $drush_info = self::ReadDrushInfo(); + self::$drushVersion = $drush_info['drush_version']; + } + + return self::$drushVersion; + } + + /** + * Return the Drush major version, e.g. 8, 9 or 10 + */ + public static function getMajorVersion() + { + if (!isset(self::$drushMajorVersion)) { + $version_parts = explode('.', self::getVersion()); + self::$drushMajorVersion = $version_parts[0]; + } + + return self::$drushMajorVersion; + } + + /** + * Return the Drush minor version, e.g. the minor version of + * Drush 9.5.2 is "5". + */ + public static function getMinorVersion() + { + if (!isset(self::$drushMinorVersion)) { + $version_parts = explode('.', self::getVersion()); + self::$drushMinorVersion = $version_parts[1]; + } + + return self::$drushMinorVersion; + } + + /** + * Read the drush info file. + */ + public static function ReadDrushInfo() + { + $drush_info_file = dirname(dirname(__DIR__)) . '/drush.info'; + + return parse_ini_file($drush_info_file); + } + + // public static function setContainer(ContainerInterface $container) + + // public static function unsetContainer() + + // public static function getContainer() + + public static function hasContainer() + { + return false; + } + + // public static function getApplication() + + // public static function runner() + + // public static function service($id) + + public static function hasService($id) + { + return false; + } + + // public static function commandFactory() + + /** + * Return the Drush logger object. + * + * @return LoggerInterface + * + * @deprecated Use injected logger if possible + */ + public static function logger() + { + return drush_get_context('DRUSH_LOGGER');; + } + + /** + * Return the configuration object + * + * @return \Drush\DrushConfig + * + * @deprecated Use injected config if possible + */ + public static function config() + { + if (!static::$config) { + static::$config = new DrushConfig(); + } + + return static::$config; + } + + /** + * @return SiteAliasManager + * + * @deprecated Use injected alias manager if possible + */ + public static function aliasManager() + { + if (!static::$aliasManager) { + static::$aliasManager = new AliasManagerAdapter(); + } + + return static::$aliasManager; + } + + /** + * @return ProcessManager + * + * @deprecated Use injected process manager instead. @see Drush::drush() + */ + public static function processManager() + { + if (!static::$processManager) { + static::$processManager = new ProcessManager(); + ProcessManager::addTransports(static::$processManager); + static::$processManager->setConfig(new ConfigAdapter(new DrushConfig())); + // TODO: static::$processManager->setConfigRuntime() + } + + return static::$processManager; + } + + /** + * Return the input object + * + * @return InputInterface + */ + public static function input() + { + if (!static::$input) { + static::$input = annotationcommand_adapter_input(); + } + + return static::$input; + } + + /** + * Return the output object + * + * @return OutputInterface + */ + public static function output() + { + if (!static::$output) { + static::$output = new DrushOutputAdapter(); + } + + return static::$output; + } + + /** + * Run a Drush command on a site alias (or @self). + * + * Tip: Use injected process manager instead of this method. See below. + * + * A class should use ProcessManagerAwareInterface / ProcessManagerAwareTrait + * in order to have the Process Manager injected by Drush's DI container. + * For example: + * + * use Consolidation\SiteProcess\ProcessManagerAwareTrait; + * use Consolidation\SiteProcess\ProcessManagerAwareInterface; + * + * abstract class DrushCommands implements ProcessManagerAwareInterface ... + * { + * use ProcessManagerAwareTrait; + * } + * + * Since DrushCommands already uses ProcessManagerAwareTrait, all Drush + * commands may use the process manager to call other Drush commands. + * Other classes will need to ensure that the process manager is injected + * as shown above. + * + * Note, however, that an alias record is required to use the `drush` method. + * The alias manager will provide an alias record, but the alias manager is + * not injected by default into Drush commands. In order to use it, it is + * necessary to use SiteAliasManagerAwareTrait: + * + * use Consolidation\SiteAlias\SiteAliasManagerAwareInterface; + * use Consolidation\SiteAlias\SiteAliasManagerAwareTrait; + * + * class SiteInstallCommands extends DrushCommands implements SiteAliasManagerAwareInterface + * { + * use SiteAliasManagerAwareTrait; + * + * public function install(array $profile, ...) + * { + * $selfRecord = $this->siteAliasManager()->getSelf(); + * $args = ['system.site', ...]; + * $options = ['yes' => true]; + * $process = $this->processManager()->drush(selfRecord, 'config-set', $args, $options); + * $process->mustRun(); + * } + * } + * + * Objects that are fetched from the DI container, or any Drush command will + * automatically be given a reference to the alias manager if SiteAliasManagerAwareTrait + * is used. Other objects will need to be manually provided with a reference + * to the alias manager once it is created (call $obj->setAliasManager($aliasManager);). + * + * Clients that are using Drush::drush(), and need a reference to the alias + * manager may use Drush::aliasManager(). + * + * @param SiteAliasInterface $siteAlias + * @param string $command + * @param array $args + * @param array $options + * @param array $options_double_dash + * @return SiteProcess + */ + public static function drush(SiteAliasInterface $siteAlias, $command, $args = [], $options = [], $options_double_dash = []) + { + return static::processManager()->drush($siteAlias, $command, $args, $options, $options_double_dash); + } + + /** + * Run a bash fragment on a site alias. U + * + * Use Drush::drush() instead of this method when calling Drush. + * Tip: Consider using injected process manager instead of this method. @see \Drush\Drush::drush(). + * + * @param SiteAliasInterface $siteAlias + * @param array $args + * @param array $options + * @param array $options_double_dash + * @return ProcessBase + */ + public static function siteProcess(SiteAliasInterface $siteAlias, $args = [], $options = [], $options_double_dash = []) + { + return static::processManager()->siteProcess($siteAlias, $args, $options, $options_double_dash); + } + + /** + * Run a bash fragment locally. + * + * The timeout parameter on this method doesn't work. It exists for compatibility with parent. + * Call this method to get a Process and then call setters as needed. + * + * Tip: Consider using injected process manager instead of this method. @see \Drush\Drush::drush(). + * + * @param string|array $commandline The command line to run + * @param string|null $cwd The working directory or null to use the working dir of the current PHP process + * @param array|null $env The environment variables or null to use the same environment as the current PHP process + * @param mixed|null $input The input as stream resource, scalar or \Traversable, or null for no input + * @param int|float|null $timeout The timeout in seconds or null to disable + * @param array $options An array of options for proc_open + * + * @return ProcessBase + * A wrapper around Symfony Process. + */ + public static function process($commandline, $cwd = null, array $env = null, $input = null, $timeout = 60) + { + return static::processManager()->process($commandline, $cwd, $env, $input, $timeout); + } + + /** + * Create a Process instance from a commandline string. + * + * Tip: Consider using injected process manager instead of this method. @see \Drush\Drush::drush(). + * + * @param string $command The commandline string to run + * @param string|null $cwd The working directory or null to use the working dir of the current PHP process + * @param array|null $env The environment variables or null to use the same environment as the current PHP process + * @param mixed|null $input The input as stream resource, scalar or \Traversable, or null for no input + * @param int|float|null $timeout The timeout in seconds or null to disable + * @return Process + */ + public static function shell($command, $cwd = null, array $env = null, $input = null, $timeout = 60) + { + return static::processManager()->shell($command, $cwd, $env, $input, $timeout); + } + + /** + * Return the path to this Drush. + * + * @deprecated Inject configuration and use $this->getConfig()->drushScript(). + */ + public static function drushScript() + { + return \Drush\Drush::config()->drushScript(); + } + + /** + * Return 'true' if we are in simulated mode + * + * @deprecated Inject configuration and use $this->getConfig()->simulate(). + */ + public static function simulate() + { + return \Drush\Drush::config()->simulate(); + } + + /** + * Return 'true' if we are in backend mode + * + * @deprecated Inject configuration and use $this->getConfig()->backend(). + */ + public static function backend() + { + return \Drush\Drush::config()->backend(); + } + + /** + * Return 'true' if we are in affirmative mode + */ + public static function affirmative() + { + return drush_get_context('DRUSH_AFFIRMATIVE'); + } + + /** + * Return 'true' if we are in negative mode + */ + public static function negative() + { + return drush_get_context('DRUSH_NEGATIVE'); + } + + /** + * Return 'true' if we are in verbose mode + */ + public static function verbose() + { + return drush_get_context('DRUSH_VERBOSE'); + } + + /** + * Return 'true' if we are in debug mode + */ + public static function debug() + { + return drush_get_context('DRUSH_DEBUG'); + } + + // public static function bootstrapManager() + + // public static function bootstrap() + + public static function redispatchOptions() + { + return drush_redispatch_get_options(); + } +} diff --git a/vendor/drush/drush/lib/Drush/DrushConfig.php b/vendor/drush/drush/lib/Drush/DrushConfig.php new file mode 100644 index 0000000000000000000000000000000000000000..2f9235034abb7da7119f7c1767111474d6076b3e --- /dev/null +++ b/vendor/drush/drush/lib/Drush/DrushConfig.php @@ -0,0 +1,138 @@ +<?php +namespace Drush; + +use Dflydev\DotAccessData\Data; + +/** + * Provides minimal access to Drush configuration in a way that is + * forward-compatible with the Consolidation\Config classes used + * in Drush 9. + */ +class DrushConfig +{ + /** + * Determine if a non-default config value exists in a non-default context. + */ + public function has($key) + { + $contexts = drush_context_names(); + $contexts = array_filter($contexts, function ($item) { return $item != 'default'; }); + + foreach ($contexts as $context) { + $value = _drush_get_option($option, drush_get_context($context)); + + if ($value !== NULL) { + return true; + } + } + return false; + } + + /** + * Fetch a configuration value + * + * @param string $key Which config item to look up + * @param string|null $default Value to use when $key does not exist + * + * @return mixed + */ + public function get($key, $default = null) + { + return drush_get_option($key, $default); + } + + /** + * Set a config value + * + * @param string $key + * @param mixed $value + * + * @return $this + */ + public function set($key, $value) + { + drush_set_option($key, $value); + } + + /** + * export returns a collection of all of the + * configuration available in the config object, although + * in truth this list is pared down to include only + * those values that are common to Drush 8 and Drush 9. + */ + public function export() + { + $data = new Data; + $contextData = drush_get_merged_options(); + $cliData = drush_get_context('cli'); + foreach ($cliData as $key => $value) { + $data->set("options.$key", $value); + unset($contextData[$key]); + } + foreach ($contextData as $key => $value) { + $data->set($key, $value); + } + return $data->export(); + } + + /** + * Return the default value for a given configuration item. + * + * @param string $key + * + * @return mixed + */ + public function hasDefault($key) + { + $value = $this->getDefault($key); + return $value != null; + } + + /** + * Return the default value for a given configuration item. + * + * @param string $key + * @param mixed $default + * + * @return mixed + */ + public function getDefault($key, $default = null) + { + return drush_get_option($key, $default, 'default'); + } + + /** + * Set the default value for a configuration setting. This allows us to + * set defaults either before or after more specific configuration values + * are loaded. Keeping defaults separate from current settings also + * allows us to determine when a setting has been overridden. + * + * @param string $key + * @param string $value + */ + public function setDefault($key, $value) + { + drush_set_default($key, $value); + } + + /** + * Determine whether we are in 'backend' mode + */ + public function backend() + { + return drush_get_context('DRUSH_BACKEND'); + } + + /** + * Determine whether we are in 'simulate' mode + */ + public function simulate() + { + return drush_get_context('DRUSH_SIMULATE'); + } + + public function drushScript() + { + return DRUSH_COMMAND; + } +} diff --git a/vendor/drush/drush/lib/Drush/Exceptions/UserAbortException.php b/vendor/drush/drush/lib/Drush/Exceptions/UserAbortException.php new file mode 100644 index 0000000000000000000000000000000000000000..f05ee0cb4cc8ffa2626102c782ada2bdcbfdff85 --- /dev/null +++ b/vendor/drush/drush/lib/Drush/Exceptions/UserAbortException.php @@ -0,0 +1,14 @@ +<?php + +namespace Drush\Exceptions; + +/** + * Throw an exception indicating that the user cancelled the operation. + */ +class UserAbortException extends \Exception +{ + public function __construct($message = "Cancelled.", $code = 0, \Exception $previous = null) + { + parent::__construct($message, $code, $previous); + } +} diff --git a/vendor/drush/drush/lib/Drush/Log/Logger.php b/vendor/drush/drush/lib/Drush/Log/Logger.php index 81075898ce6a8644bb424514b509fe36304b18a5..f2d6b5b75862bbce77a04271e240ad66a0f4786f 100644 --- a/vendor/drush/drush/lib/Drush/Log/Logger.php +++ b/vendor/drush/drush/lib/Drush/Log/Logger.php @@ -38,6 +38,9 @@ public function log($level, $message, array $context = array()) { if (!isset($entry['memory'])) { $entry['memory'] = memory_get_usage(); } + if (!isset($entry['timestamp'])) { + $entry['timestamp'] = microtime(TRUE); + } // Drush\Log\Logger should take over all of the responsibilities // of drush_log, including caching the log messages and sending diff --git a/vendor/drush/drush/lib/Drush/SiteAlias/AliasManagerAdapter.php b/vendor/drush/drush/lib/Drush/SiteAlias/AliasManagerAdapter.php new file mode 100644 index 0000000000000000000000000000000000000000..63704c26da6a14386281f51ae3222ba143ccafe4 --- /dev/null +++ b/vendor/drush/drush/lib/Drush/SiteAlias/AliasManagerAdapter.php @@ -0,0 +1,64 @@ +<?php +namespace Drush\SiteAlias; + +use Consolidation\SiteAlias\SiteAliasManagerAwareInterface; +use Consolidation\SiteAlias\SiteAliasManagerInterface; +use Consolidation\SiteAlias\SiteAlias; + +class AliasManagerAdapter implements SiteAliasManagerInterface +{ + /** + * @inheritdoc + */ + public function searchLocations() + { + // not supported + return []; + } + + /** + * @inheritdoc + */ + public function get($name) + { + return $this->getAlias($name); + } + + /** + * @inheritdoc + */ + public function getSelf() + { + return $this->getAlias('@self'); + } + + /** + * @inheritdoc + */ + public function getAlias($aliasName) + { + $record = drush_sitealias_get_record($aliasName); + + // TODO: Convert $record to new site alias layout + + return new SiteAlias($record, $aliasName); + } + + /** + * @inheritdoc + */ + public function getMultiple($name = '') + { + // Not supported + return false; + } + + /** + * @inheritdoc + */ + public function listAllFilePaths($location = '') + { + // Not supported + return []; + } +} diff --git a/vendor/drush/drush/lib/Drush/SiteAlias/AliasManagerAdapterInjector.php b/vendor/drush/drush/lib/Drush/SiteAlias/AliasManagerAdapterInjector.php new file mode 100644 index 0000000000000000000000000000000000000000..864626ad38a47ba753637b0210c7aeccd947dfd1 --- /dev/null +++ b/vendor/drush/drush/lib/Drush/SiteAlias/AliasManagerAdapterInjector.php @@ -0,0 +1,18 @@ +<?php +namespace Drush\SiteAlias; + +use Consolidation\SiteAlias\SiteAliasManagerAwareInterface; +use Consolidation\SiteAlias\SiteAliasManagerInterface; +use Drush\Drush; + +class AliasManagerAdapterInjector +{ + protected static $aliasManager = null; + + public function inflect($command) + { + if ($command instanceof SiteAliasManagerAwareInterface) { + $command->setSiteAliasManager(Drush::aliasManager()); + } + } +} diff --git a/vendor/drush/drush/lib/Drush/SiteAlias/ProcessManager.php b/vendor/drush/drush/lib/Drush/SiteAlias/ProcessManager.php new file mode 100644 index 0000000000000000000000000000000000000000..0060946cc34a812dc7a7518dd3c420a951e90879 --- /dev/null +++ b/vendor/drush/drush/lib/Drush/SiteAlias/ProcessManager.php @@ -0,0 +1,159 @@ +<?php +namespace Drush\SiteAlias; + +use Consolidation\SiteProcess\ProcessManager as ConsolidationProcessManager; + +use Consolidation\SiteAlias\SiteAliasInterface; +use Consolidation\SiteProcess\Factory\TransportFactoryInterface; +use Consolidation\SiteProcess\ProcessBase; +use Consolidation\SiteProcess\SiteProcess; +use Consolidation\SiteProcess\Util\Escape; +use Drush\Drush; +use Psr\Log\LoggerInterface; +use Symfony\Component\Console\Style\SymfonyStyle; +use Symfony\Component\Process\Process; +use Webmozart\PathUtil\Path; + +/** + * The Drush ProcessManager adds a few Drush-specific service methods. + */ +class ProcessManager extends ConsolidationProcessManager +{ + /** + * Run a Drush command on a site alias (or @self). + * + * @param SiteAliasInterface $siteAlias + * @param string $command + * @param array $args + * @param array $options + * @param array $options_double_dash + * @return SiteProcess + */ + public function drush(SiteAliasInterface $siteAlias, $command, $args = [], $options = [], $options_double_dash = []) + { + array_unshift($args, $command); + return $this->drushSiteProcess($siteAlias, $args, $options, $options_double_dash); + } + + /** + * drushSiteProcess should be avoided in favor of the drush method above. + * drushSiteProcess exists specifically for use by the RedispatchHook, + * which does not have specific knowledge about which argument is the command. + * + * @param SiteAliasInterface $siteAlias + * @param array $args + * @param array $options + * @param array $options_double_dash + * @return ProcessBase + */ + public function drushSiteProcess(SiteAliasInterface $siteAlias, $args = [], $options = [], $options_double_dash = []) + { + // Fill in the root and URI from the site alias, if the caller + // did not already provide them in $options. + if ($siteAlias->has('uri')) { + $options += [ 'uri' => $siteAlias->uri(), ]; + } + if ($siteAlias->hasRoot()) { + $options += [ 'root' => $siteAlias->root(), ]; + } + + // The executable is always 'drush' (at some path or another) + array_unshift($args, $this->drushScript($siteAlias)); + + return $this->siteProcess($siteAlias, $args, $options, $options_double_dash); + } + + /** + * Determine the path to Drush to use + */ + public function drushScript(SiteAliasInterface $siteAlias) + { + $defaultDrushScript = 'drush'; + + // If the site alias has 'paths.drush-script', always use that. + if ($siteAlias->has('paths.drush-script')) { + return $siteAlias->get('paths.drush-script'); + } + + // If the provided site alias is for a remote site / container et. al., + // then use the 'drush' in the $PATH. + if ($this->hasTransport($siteAlias)) { + return $defaultDrushScript; + } + + // If the target is a local Drupal site that has a vendor/bin/drush, + // then use that. + if ($siteAlias->hasRoot()) { + $localDrushScript = Path::join($siteAlias->root(), 'vendor/bin/drush'); + if (file_exists($localDrushScript)) { + return $localDrushScript; + } + } + + // Otherwise, use the path to the version of Drush that is running + // right now (if available). + return $this->getConfig()->get('runtime.drush-script', $defaultDrushScript); + } + + /** + * @inheritdoc + * + * Use Drush::drush() or ProcessManager::drush() instead of this method + * when calling Drush. + */ + public function siteProcess(SiteAliasInterface $siteAlias, $args = [], $options = [], $optionsPassedAsArgs = []) + { + $process = parent::siteProcess($siteAlias, $args, $options, $optionsPassedAsArgs); + return $this->configureProcess($process); + } + + /** + * Run a bash fragment locally. + * + * The timeout parameter on this method doesn't work. It exists for compatibility with parent. + * Call this method to get a Process and then call setters as needed. + * + * @param array $commandline The command line to run with arguments as separate items in an array + * @param string|null $cwd The working directory or null to use the working dir of the current PHP process + * @param array|null $env The environment variables or null to use the same environment as the current PHP process + * @param mixed|null $input The input as stream resource, scalar or \Traversable, or null for no input + * @param int|float|null $timeout The timeout in seconds or null to disable + * + * @return ProcessBase + * A wrapper around Symfony Process. + */ + public function process($commandline, $cwd = null, array $env = null, $input = null, $timeout = 60) + { + $process = parent::process($commandline, $cwd, $env, $input, $timeout); + return $this->configureProcess($process); + } + + /** + * Create a Process instance from a commandline string. + * @param string $command The commandline string to run + * @param string|null $cwd The working directory or null to use the working dir of the current PHP process + * @param array|null $env The environment variables or null to use the same environment as the current PHP process + * @param mixed|null $input The input as stream resource, scalar or \Traversable, or null for no input + * @param int|float|null $timeout The timeout in seconds or null to disable + * @return Process + */ + public function shell($command, $cwd = null, array $env = null, $input = null, $timeout = 60) + { + $process = parent::shell($command, $cwd, $env, $input, $timeout); + return $this->configureProcess($process); + } + + /** + * configureProcess sets up a process object so that it is ready to use. + */ + protected static function configureProcess(ProcessBase $process) + { + $process->setSimulated(Drush::simulate()); + $process->setVerbose(Drush::verbose()); + $process->inheritEnvironmentVariables(); + $process->setLogger(Drush::logger()); + $process->setRealtimeOutput(new SymfonyStyle(Drush::input(), Drush::output())); + $process->setTimeout(Drush::getTimeout()); + return $process; + } +} diff --git a/vendor/drush/drush/lib/Drush/SiteAlias/ProcessManagerInjector.php b/vendor/drush/drush/lib/Drush/SiteAlias/ProcessManagerInjector.php new file mode 100644 index 0000000000000000000000000000000000000000..455fe965c33927c0bbf940e8c67c2bd7b5ad329e --- /dev/null +++ b/vendor/drush/drush/lib/Drush/SiteAlias/ProcessManagerInjector.php @@ -0,0 +1,19 @@ +<?php + +namespace Drush\SiteAlias; + +use Consolidation\SiteProcess\ProcessManagerAwareInterface; +use Drush\SiteAlias\ProcessManager; +use Drush\Drush; + +class ProcessManagerInjector +{ + protected static $processManager = null; + + public function inflect($command) + { + if ($command instanceof ProcessManagerAwareInterface) { + $command->setProcessManager(Drush::processManager()); + } + } +} diff --git a/vendor/drush/drush/lib/Drush/Sql/SqlBase.php b/vendor/drush/drush/lib/Drush/Sql/SqlBase.php index 0d8871ce64b87c68c853f3796c3559c944a3e919..8ac60bc23c80c977c88ad14597364f2628b6c822 100644 --- a/vendor/drush/drush/lib/Drush/Sql/SqlBase.php +++ b/vendor/drush/drush/lib/Drush/Sql/SqlBase.php @@ -2,7 +2,6 @@ namespace Drush\Sql; -use Drupal\Core\Database\Database; use Drush\Log\LogLevel; use Webmozart\PathUtil\Path; @@ -201,8 +200,12 @@ public function query_prefix($query) { if (drush_has_boostrapped(DRUSH_BOOTSTRAP_DRUPAL_DATABASE)) { // Enable prefix processing which can be dangerous so off by default. See http://drupal.org/node/1219850. if (drush_get_option('db-prefix')) { - if (drush_drupal_major_version() >= 7) { - $query = Database::getConnection()->prefixTables($query); + $drupal_major_version = drush_drupal_major_version(); + if ($drupal_major_version >= 8) { + $query = \Drupal\Core\Database\Database::getConnection()->prefixTables($query); + } + elseif ($drupal_major_version == 7) { + $query = \Database::getConnection()->prefixTables($query); } else { $query = db_prefix_tables($query); diff --git a/vendor/drush/drush/lib/Drush/Sql/Sqlmysqli.php b/vendor/drush/drush/lib/Drush/Sql/Sqlmysqli.php new file mode 100644 index 0000000000000000000000000000000000000000..52d5fabae81da7f2f368b04f226bda3d2dd50535 --- /dev/null +++ b/vendor/drush/drush/lib/Drush/Sql/Sqlmysqli.php @@ -0,0 +1,7 @@ +<?php + +namespace Drush\Sql; + +class Sqlmysqli extends Sqlmysql { + +} \ No newline at end of file diff --git a/vendor/drush/drush/lib/Drush/Sql/Sqlpgsql.php b/vendor/drush/drush/lib/Drush/Sql/Sqlpgsql.php index e8945c735be85a27c2cca660004c87a70dc447da..e0fc46cef600645c103d4586bf6f5d76c90270ef 100644 --- a/vendor/drush/drush/lib/Drush/Sql/Sqlpgsql.php +++ b/vendor/drush/drush/lib/Drush/Sql/Sqlpgsql.php @@ -121,7 +121,7 @@ public function dumpCmd($table_selection) { if (isset($data_only)) { $extra .= ' --data-only'; } - if ($option = drush_get_option('extra', $this->query_extra)) { + if ($option = drush_get_option('extra')) { $extra .= " $option"; } $exec .= $extra; diff --git a/vendor/drush/drush/src/TestTraits/CliTestTrait.php b/vendor/drush/drush/src/TestTraits/CliTestTrait.php new file mode 100644 index 0000000000000000000000000000000000000000..da89f76bf2e11ad3059f075f32f0cfad022098f2 --- /dev/null +++ b/vendor/drush/drush/src/TestTraits/CliTestTrait.php @@ -0,0 +1,222 @@ +<?php +namespace Drush\TestTraits; + +use Symfony\Component\Process\Process; +use Symfony\Component\Process\Exception\ProcessTimedOutException; + +/** + * CliTestTrait provides an `execute()` method that is useful + * for launching executable programs in functional tests. + */ +trait CliTestTrait +{ + use OutputUtilsTrait; + + /** + * Default timeout for commands. By default, there is no timeout. + * + * @var int + */ + private $defaultTimeout = 0; + + /** + * Timeout for command. + * + * Reset to $defaultTimeout after executing a command. + * + * @var int + */ + protected $timeout = 0; + + /** + * Default idle timeout for commands. + * + * @var int + */ + private $defaultIdleTimeout = 0; + + /** + * Idle timeouts for commands. + * + * Reset to $defaultIdleTimeout after executing a command. + * + * @var int + */ + protected $idleTimeout = 0; + + /** + * @var Process + */ + protected $process = null; + + /** + * Accessor for the last output, non-trimmed. + * + * @return string + * Raw output as text. + * + * @access public + */ + public function getOutputRaw() + { + return $this->process ? $this->process->getOutput() : ''; + } + + /** + * Accessor for the last stderr output, non-trimmed. + * + * @return string + * Raw stderr as text. + * + * @access public + */ + public function getErrorOutputRaw() + { + return $this->process ? $this->process->getErrorOutput() : ''; + } + + /** + * Actually runs the command. + * + * @param string $command + * The actual command line to run. + * @param integer $expected_return + * The return code to expect + * @param sting cd + * The directory to run the command in. + * @param array $env + * Extra environment variables. + * @param string $input + * A string representing the STDIN that is piped to the command. + */ + public function execute($command, $expected_return = 0, $cd = null, $env = null, $input = null) + { + try { + // Process uses a default timeout of 60 seconds, set it to 0 (none). + $this->process = new Process($command, $cd, $env, $input, 0); + $this->process->inheritEnvironmentVariables(true); + if ($this->timeout) { + $this->process->setTimeout($this->timeout) + ->setIdleTimeout($this->idleTimeout); + } + $return = $this->process->run(); + if ($expected_return !== $return) { + $message = 'Unexpected exit code ' . $return . ' (expected ' . $expected_return . ") for command:\n" . $command; + throw new \Exception($message . $this->buildProcessMessage()); + } + // Reset timeouts to default. + $this->timeout = $this->defaultTimeout; + $this->idleTimeout = $this->defaultIdleTimeout; + } catch (ProcessTimedOutException $e) { + if ($e->isGeneralTimeout()) { + $message = 'Command runtime exceeded ' . $this->timeout . " seconds:\n" . $command; + } else { + $message = 'Command had no output for ' . $this->idleTimeout . " seconds:\n" . $command; + } + throw new \Exception($message . $this->buildProcessMessage()); + } + } + + public static function escapeshellarg($arg) + { + // Short-circuit escaping for simple params (keep stuff readable) + if (preg_match('|^[a-zA-Z0-9.:/_-]*$|', $arg)) { + return $arg; + } elseif (self::isWindows()) { + return self::_escapeshellargWindows($arg); + } else { + return escapeshellarg($arg); + } + } + + public static function isWindows() + { + return strtoupper(substr(PHP_OS, 0, 3)) === 'WIN'; + } + + public static function _escapeshellargWindows($arg) + { + // Double up existing backslashes + $arg = preg_replace('/\\\/', '\\\\\\\\', $arg); + + // Double up double quotes + $arg = preg_replace('/"/', '""', $arg); + + // Double up percents. + $arg = preg_replace('/%/', '%%', $arg); + + // Add surrounding quotes. + $arg = '"' . $arg . '"'; + + return $arg; + } + + /** + * Borrowed from \Symfony\Component\Process\Exception\ProcessTimedOutException + * + * @return string + */ + public function buildProcessMessage() + { + $error = sprintf( + "%s\n\nExit Code: %s(%s)\n\nWorking directory: %s", + $this->process->getCommandLine(), + $this->process->getExitCode(), + $this->process->getExitCodeText(), + $this->process->getWorkingDirectory() + ); + + if (!$this->process->isOutputDisabled()) { + $error .= sprintf( + "\n\nOutput:\n================\n%s\n\nError Output:\n================\n%s", + $this->process->getOutput(), + $this->process->getErrorOutput() + ); + } + + return $error; + } + + /** + * Checks that the output matches the expected output. + * + * This matches against a simplified version of the actual output that has + * absolute paths and duplicate whitespace removed, to avoid false negatives + * on minor differences. + * + * @param string $expected + * The expected output. + * @param string $filter + * Optional regular expression that should be ignored in the error output. + */ + + protected function assertOutputEquals($expected, $filter = '') + { + $output = $this->getSimplifiedOutput(); + if (!empty($filter)) { + $output = preg_replace($filter, '', $output); + } + $this->assertEquals($expected, $output); + } + + /** + * Checks that the error output matches the expected output. + * + * This matches against a simplified version of the actual output that has + * absolute paths and duplicate whitespace removed, to avoid false negatives + * on minor differences. + * + * @param string $expected + * The expected output. + * @param string $filter + * Optional regular expression that should be ignored in the error output. + */ + protected function assertErrorOutputEquals($expected, $filter = '') + { + $output = $this->getSimplifiedErrorOutput(); + if (!empty($filter)) { + $output = preg_replace($filter, '', $output); + } + $this->assertEquals($expected, $output); + } +} diff --git a/vendor/drush/drush/src/TestTraits/DrushTestTrait.php b/vendor/drush/drush/src/TestTraits/DrushTestTrait.php new file mode 100644 index 0000000000000000000000000000000000000000..722b840089f88bee63e31720b897fb6fed78d959 --- /dev/null +++ b/vendor/drush/drush/src/TestTraits/DrushTestTrait.php @@ -0,0 +1,116 @@ +<?php +namespace Drush\TestTraits; + +/** + * DrushTestTrait provides a `drush()` method that may be + * used to write functional tests for Drush extensions. + * + * More information is available at https://github.com/drush-ops/drush/tree/master/tests#drush-test-traits. + */ +trait DrushTestTrait +{ + use CliTestTrait; + + /** + * @return string + */ + public function getPathToDrush() + { + return dirname(dirname(__DIR__)) . '/drush'; + } + + /** + * Invoke drush in via execute(). + * + * @param command + * A defined drush command such as 'cron', 'status' or any of the available ones such as 'drush pm'. + * @param args + * Command arguments. + * @param $options + * An associative array containing options. + * @param $site_specification + * A site alias or site specification. Include the '@' at start of a site alias. + * @param $cd + * A directory to change into before executing. + * @param $expected_return + * The expected exit code, e.g. 0 or 1 or some other expected value. + * @param $suffix + * Any code to append to the command. For example, redirection like 2>&1. + * @param array $env + * Environment variables to pass along to the subprocess. + */ + public function drush($command, array $args = [], array $options = [], $site_specification = null, $cd = null, $expected_return = 0, $suffix = null, $env = []) + { + // Set UA for SimpleTests which typically extend BrowserTestCase (i.e. contrib modules). + if (isset($this->databasePrefix) && function_exists('drupal_generate_test_ua') && !isset($env['HTTP_USER_AGENT'])) { + $env['HTTP_USER_AGENT'] = drupal_generate_test_ua($this->databasePrefix); + } + + $global_option_list = ['simulate', 'root', 'uri', 'include', 'config', 'alias-path', 'ssh-options']; + $cmd[] = self::getPathToDrush(); + + // Insert global options. + foreach ($options as $key => $value) { + if (in_array($key, $global_option_list)) { + unset($options[$key]); + $cmd[] = $this->convertKeyValueToFlag($key, $value); + } + } + + $cmd[] = "--no-interaction"; + + // Insert site specification and drush command. + if (!empty($site_specification)) { + $cmd[] = self::escapeshellarg($site_specification); + } + $cmd[] = $command; + + // Insert drush command arguments. + foreach ($args as $arg) { + $cmd[] = self::escapeshellarg($arg); + } + // insert drush command options + foreach ($options as $key => $value) { + $cmd[] = $this->convertKeyValueToFlag($key, $value); + } + + $cmd[] = $suffix; + $exec = array_filter($cmd, 'strlen'); // Remove NULLs + + $cmd = implode(' ', $exec); + $this->execute($cmd, $expected_return, $cd, $env); + } + + /** + * Given an option key / value pair, convert to a + * "--key=value" string. + * + * @param string $key The option name + * @param string $value The option value (or empty) + * @return string + */ + protected function convertKeyValueToFlag($key, $value) + { + if (!isset($value)) { + return "--$key"; + } + return "--$key=" . self::escapeshellarg($value); + } + + /** + * Return the major version of Drush + * + * @return string e.g. "8" or "9" + */ + public function drushMajorVersion() + { + static $major; + + if (!isset($major)) { + $this->drush('version', [], ['field' => 'drush-version']); + $version = trim($this->getOutput()); + list($major) = explode('.', $version); + } + return (int)$major; + } +} diff --git a/vendor/drush/drush/src/TestTraits/OutputUtilsTrait.php b/vendor/drush/drush/src/TestTraits/OutputUtilsTrait.php new file mode 100644 index 0000000000000000000000000000000000000000..a8467cd6baabdc8f01622801b993a8ef71454698 --- /dev/null +++ b/vendor/drush/drush/src/TestTraits/OutputUtilsTrait.php @@ -0,0 +1,165 @@ +<?php +namespace Drush\TestTraits; + +/** + * OutputUtilsTrait provides some useful utility methods for test classes + * that define `getOutputRaw()` and `getErrorOutputRaw()` methods. + * + * This trait is used by CliTestTrait and DrushTestTrait. + */ +trait OutputUtilsTrait +{ + /** + * Accessor for the last output, non-trimmed. + * + * @return string + * Raw output as text. + * + * @access public + */ + public abstract function getOutputRaw(); + + /** + * Accessor for the last stderr output, non-trimmed. + * + * @return string + * Raw stderr as text. + * + * @access public + */ + public abstract function getErrorOutputRaw(); + + /** + * Get command output and simplify away things like full paths and extra + * whitespace. + */ + protected function getSimplifiedOutput() + { + return $this->simplifyOutput($this->getOutput()); + } + + /** + * Returns a simplified version of the error output to facilitate testing. + * + * @return string + * A simplified version of the error output that has things like full + * paths and superfluous whitespace removed from it. + */ + protected function getSimplifiedErrorOutput() + { + return $this->simplifyOutput($this->getErrorOutput()); + } + + /** + * Remove things like full paths and extra whitespace from the given string. + * + * @param string $output + * The output string to simplify. + * + * @return string + * The simplified output. + */ + protected function simplifyOutput($output) + { + // We do not care if Drush inserts a -t or not in the string. Depends on whether there is a tty. + $output = preg_replace('# -t #', ' ', $output); + // Remove multiple blank lines + $output = preg_replace("#\n\n\n*#m", "\n\n", $output); + // Remove double spaces from output to help protect test from false negatives if spacing changes subtly + $output = preg_replace('# *#', ' ', $output); + // Remove leading and trailing spaces. + $output = preg_replace('#^[ \t]*#m', '', $output); + $output = preg_replace('#[ \t]*$#m', '', $output); + // Remove verbose info for rsync. + $output = preg_replace('# -akzv --stats --progress #', ' -akz ', $output); + // Debug flags may be added to command strings if we are in debug mode. Take those out so that tests in phpunit --debug mode work + $output = preg_replace('# --debug #', ' ', $output); + $output = preg_replace('# --verbose #', ' ', $output); + $output = preg_replace('# -vvv #', ' ', $output); + + foreach ($this->pathsToSimplify() as $path => $simplification) { + $output = str_replace($path, $simplification, $output); + } + + return $output; + } + + public function pathsToSimplify() + { + return []; + } + + /** + * Accessor for the last output, trimmed. + * + * @return string + * Trimmed output as text. + * + * @access public + */ + public function getOutput() + { + return trim($this->getOutputRaw()); + } + + /** + * Accessor for the last stderr output, trimmed. + * + * @return string + * Trimmed stderr as text. + * + * @access public + */ + public function getErrorOutput() + { + return trim($this->getErrorOutputRaw()); + } + + /** + * Accessor for the last output, rtrimmed and split on newlines. + * + * @return array + * Output as array of lines. + * + * @access public + */ + public function getOutputAsList() + { + return array_map('rtrim', explode("\n", $this->getOutput())); + } + + /** + * Accessor for the last stderr output, rtrimmed and split on newlines. + * + * @return array + * Stderr as array of lines. + * + * @access public + */ + public function getErrorOutputAsList() + { + return array_map('rtrim', explode("\n", $this->getErrorOutput())); + } + + /** + * Accessor for the last output, decoded from json. + * + * @param string $key + * Optionally return only a top level element from the json object. + * + * @return object + * Decoded object. + */ + public function getOutputFromJSON($key = null) + { + $output = $this->getOutput(); + $json = json_decode($output, true); + if (!$json) { + throw new \Exception("No json output received.\n\nOutput:\n\n$output\n\nStderr:\n\n" . $this->getErrorOutput()); + } + if (isset($key)) { + $json = $json[$key]; + } + return $json; + } +} diff --git a/vendor/drush/drush/tests/Unish/UnishTestCase.php b/vendor/drush/drush/tests/Unish/UnishTestCase.php index fba36435e8becc7980472c128015c3e087f6e5f4..c0b3144092c3af747dd1fdb5be2dfcf46868bfe2 100644 --- a/vendor/drush/drush/tests/Unish/UnishTestCase.php +++ b/vendor/drush/drush/tests/Unish/UnishTestCase.php @@ -347,6 +347,11 @@ function fetchInstallDrupal($env = 'dev', $install = FALSE, $version_string = NU } // Download Drupal if not already present. + if (!file_exists($root) && (substr($version_string, 0, 1) == 6)) { + if (!$this->downloadDrupal6($version_string, $root)) { + $this->markTestSkipped("Could not download d6lts."); + } + } if (!file_exists($root)) { $options += array( 'destination' => dirname($root), @@ -372,6 +377,7 @@ function fetchInstallDrupal($env = 'dev', $install = FALSE, $version_string = NU $this->drush('site-install', array($profile), $options); // Give us our write perms back. chmod($site, 0777); + chmod("$site/settings.php", 0777); } else { @mkdir($site); @@ -379,6 +385,48 @@ function fetchInstallDrupal($env = 'dev', $install = FALSE, $version_string = NU } } + // pm-download cannot download from d6lts, so we will rough in our own download function + function downloadDrupal6($drupal_6_test_version, $root) { + if (($drupal_6_test_version == '6') || ($drupal_6_test_version == '6.x')) { + $drupal_6_test_version = '6.46'; + } + return $this->downloadFromGitHub('d6lts/drupal', $drupal_6_test_version, $root, "drupal-$drupal_6_test_version"); + } + + function downloadFromGitHub($project, $version, $target, $rootDirToRemove = '') { + $url = "https://github.com/{$project}/archive/{$version}.zip"; + $tarPath = dirname($target) . '/' . basename($url); + if (!$this->cachedDownload($url, $tarPath)) { + return false; + } + $zipDir = $target; + if (!empty($rootDirToRemove)) { + $zipDir = dirname($zipDir); + } + passthru("unzip -od $zipDir $tarPath >/dev/null 2>&1", $status); + if ($status != 0) { + return false; + } + if (!empty($rootDirToRemove)) { + rename("$zipDir/$rootDirToRemove", $zipDir . '/' . basename($target)); + } + return file_exists($target); + } + + function cachedDownload($url, $target) { + $dlCacheDir = $this->directory_cache('dl'); + @mkdir($dlCacheDir); + $cacheFile = $dlCacheDir . '/' . basename($target); + if (!file_exists($cacheFile)) { + passthru("curl -L --output $cacheFile $url >/dev/null 2>&1", $status); + if ($status != 0) { + return false; + } + } + copy($cacheFile, $target); + return file_exists($target); + } + function writeSiteAlias($name, $root, $uri) { $alias_definition = array($name => array('root' => $root, 'uri' => $uri)); file_put_contents(UNISH_SANDBOX . '/etc/drush/' . $name . '.alias.drushrc.php', $this->unish_file_aliases($alias_definition)); diff --git a/vendor/drush/drush/tests/bootstrap.inc b/vendor/drush/drush/tests/bootstrap.inc index ab7f8cc193977049d40d5ecb373a23798ee5eb5c..e0294d5731bab3ba8fb3a702b29060170dc8322a 100644 --- a/vendor/drush/drush/tests/bootstrap.inc +++ b/vendor/drush/drush/tests/bootstrap.inc @@ -50,6 +50,9 @@ function unish_init() { elseif (isset($GLOBALS['UNISH_DB_URL'])) { $unish_db_url = $GLOBALS['UNISH_DB_URL']; } + if (UNISH_DRUPAL_MAJOR_VERSION == '6') { + $unish_db_url = preg_replace('#^mysql://#', 'mysqli://', $unish_db_url); + } define('UNISH_DB_URL', $unish_db_url); // UNISH_DRUSH value can come from phpunit.xml. diff --git a/vendor/drush/drush/tests/generateMakeTest.php b/vendor/drush/drush/tests/generateMakeTest.php index 3b82d9bad4f0d3153353ef50bcac2e34a14610aa..027651b14df27b2d9b685c3c47861ed694a07f0f 100644 --- a/vendor/drush/drush/tests/generateMakeTest.php +++ b/vendor/drush/drush/tests/generateMakeTest.php @@ -27,6 +27,9 @@ function testGenerateMakeOmega() { } function _testGenerateMake($module, $theme) { + if (UNISH_DRUPAL_MAJOR_VERSION != '7') { + $this->markTestSkipped("Drush generate make tests depend on projects not available on older and newer versions of Drupal. Tests need updating, but Drush make is deprecated; Composer is recommended."); + } $sites = $this->setUpDrupal(1, TRUE); $major_version = UNISH_DRUPAL_MAJOR_VERSION . '.x'; diff --git a/vendor/drush/drush/tests/makeTest.php b/vendor/drush/drush/tests/makeTest.php index cccc70fa65cfa8232dbdc0a03659835b63883c27..96569cccf038ce005fb8cb29f0f3a8863b0725ad 100644 --- a/vendor/drush/drush/tests/makeTest.php +++ b/vendor/drush/drush/tests/makeTest.php @@ -319,7 +319,7 @@ function testInfoFileWritingGit() { // Verify that a reference cache was created. $cache_dir = UNISH_CACHE . DIRECTORY_SEPARATOR . 'cache'; - $this->assertFileExists($cache_dir . '/git/cck_signup-' . md5('http://git.drupal.org/project/cck_signup.git')); + $this->assertFileExists($cache_dir . '/git/cck_signup-' . md5('https://git.drupal.org/project/cck_signup.git')); // Test context_admin.info file. $this->assertFileExists(UNISH_SANDBOX . '/test-build/sites/all/modules/context_admin/context_admin.info'); @@ -329,7 +329,7 @@ function testInfoFileWritingGit() { $this->assertContains('project = "context_admin"', $contents); // Verify git reference cache exists. - $this->assertFileExists($cache_dir . '/git/context_admin-' . md5('http://git.drupal.org/project/context_admin.git')); + $this->assertFileExists($cache_dir . '/git/context_admin-' . md5('https://git.drupal.org/project/context_admin.git')); // Text caption_filter .info rewrite. $this->assertFileExists(UNISH_SANDBOX . '/test-build/sites/all/modules/contrib/caption_filter/caption_filter.info'); diff --git a/vendor/drush/drush/tests/makefiles/git.make b/vendor/drush/drush/tests/makefiles/git.make index 09a587d8e940f19e355b81bb9023897ae992494c..266f8fb4adf6f9ffec93c00c222e815d9917affc 100644 --- a/vendor/drush/drush/tests/makefiles/git.make +++ b/vendor/drush/drush/tests/makefiles/git.make @@ -27,5 +27,5 @@ projects[os_lightbox][download][revision] = "8d60090f2" ; Test a refspec fetch. projects[storypal][type] = module projects[storypal][download][type] = git -projects[storypal][download][url] = http://git.drupal.org/project/storypal.git +projects[storypal][download][url] = https://git.drupal.org/project/storypal.git projects[storypal][download][refspec] = refs/tags/7.x-1.0 diff --git a/vendor/drush/drush/tests/pmDownloadTest.php b/vendor/drush/drush/tests/pmDownloadTest.php index 0354bb2a59e18c70dc6fe36c10e39d1947d153eb..431ed51b60faec4efb8913980a38e435df6eadd9 100644 --- a/vendor/drush/drush/tests/pmDownloadTest.php +++ b/vendor/drush/drush/tests/pmDownloadTest.php @@ -68,7 +68,7 @@ public function testDestination() { ) + $devel_options; $this->drush('pm-download', array('devel'), $options); $this->assertFileExists(UNISH_SANDBOX . '/' . $destination . '/devel/README.txt'); -} + } public function testSelect() { $options = array( diff --git a/vendor/drush/drush/tests/pmEnDisUnListInfoTest.php b/vendor/drush/drush/tests/pmEnDisUnListInfoTest.php index 6cf81b42f53d1867d7205a17f4f5fb3925dd61f3..e0278245e62e99292dc8e6a9fb05cecfefe9f5dd 100644 --- a/vendor/drush/drush/tests/pmEnDisUnListInfoTest.php +++ b/vendor/drush/drush/tests/pmEnDisUnListInfoTest.php @@ -112,6 +112,9 @@ public function testEnDisUnList() { } if (UNISH_DRUPAL_MAJOR_VERSION !=6) { + if (substr(UNISH_DRUPAL_MINOR_VERSION, 0, 2) == '.4') { + $this->markTestSkipped("panels module broken with Drupal 8.4.x"); + } // Test that pm-enable downloads missing projects and dependencies. $this->drush('pm-enable', array('panels'), $options + array('resolve-dependencies' => TRUE)); $this->drush('pm-list', array(), $options + array('status' => 'enabled')); diff --git a/vendor/drush/drush/tests/pmUpdateCodeTest.php b/vendor/drush/drush/tests/pmUpdateCodeTest.php index e4b96688712649e60e86f52dbf3270579123b269..84a141efcab4787d47c5ca9a5bb5208411966da2 100644 --- a/vendor/drush/drush/tests/pmUpdateCodeTest.php +++ b/vendor/drush/drush/tests/pmUpdateCodeTest.php @@ -49,9 +49,7 @@ public function setUp() { $this->modules = array('menu', 'devel', 'webform'); } else { - $core = '6.28'; - $modules_str = 'devel-6.x-1.26,webform-6.x-3.18'; - $this->modules = array('menu', 'devel', 'webform'); + $this->markTestSkipped("pm-update* no longer supported with Drupal 6; drupal.org does not allow stable releases for Drupal 6 contrib modules."); } $sites = $this->setUpDrupal(1, TRUE, $core); diff --git a/vendor/drush/drush/tests/pmUpdateStatusTest.php b/vendor/drush/drush/tests/pmUpdateStatusTest.php index ae55e77cc5c43c481a19a9daaecc0ea645980993..bb536629ab1000b1d179c97d71f674275d9ddb35 100644 --- a/vendor/drush/drush/tests/pmUpdateStatusTest.php +++ b/vendor/drush/drush/tests/pmUpdateStatusTest.php @@ -28,6 +28,10 @@ class pmUpdateStatus extends CommandUnishTestCase { * - Drupal 8 still has not enough variety to cover the tests */ function setUp() { + if (UNISH_DRUPAL_MAJOR_VERSION == '6') { + $this->markTestSkipped("pm-update* no longer supported with Drupal 6; drupal.org does not allow stable releases for Drupal 6 contrib modules."); + } + $sites = $this->setUpDrupal(1, TRUE, "7.30"); $options = array( 'root' => $this->webroot(), diff --git a/vendor/drush/drush/tests/testChildren.sh b/vendor/drush/drush/tests/testChildren.sh deleted file mode 100755 index 372ce72e371235b8b269fd86544b91e1957d91bb..0000000000000000000000000000000000000000 --- a/vendor/drush/drush/tests/testChildren.sh +++ /dev/null @@ -1,16 +0,0 @@ -# See https://github.com/drush-ops/drush/pull/1426 for background information. -# -# $AUTH_TOKEN is provided via a secure Travis environment variable. -# Secure environment variables are not set for pull requests that -# originated from another repository, so skip child tests if $AUTH_TOKEN -# is empty. -if [ -n "$AUTH_TOKEN" ] -then - # After a travis build succeeds, run tests from any child repository defined in $TEST_CHILDREN - for CHILD in $TEST_CHILDREN - do - BUILD_NUM=$(curl -s "https://api.travis-ci.org/repos/$CHILD/builds" | grep -o '^\[{"id":[0-9]*,' | grep -o '[0-9]' | tr -d '\n') - echo "Restarting build $BUILD_NUM for $CHILD" - curl -X POST https://api.travis-ci.org/builds/$BUILD_NUM/restart --header "Authorization: token "$AUTH_TOKEN - done -fi diff --git a/vendor/jakub-onderka/php-console-color/.travis.yml b/vendor/jakub-onderka/php-console-color/.travis.yml index 4671dca598e625bab21d44a19d8dc5ee46f2ff5e..49175a99693797be2c85d5c6fe9a50915b20596e 100644 --- a/vendor/jakub-onderka/php-console-color/.travis.yml +++ b/vendor/jakub-onderka/php-console-color/.travis.yml @@ -1,15 +1,24 @@ language: php php: - - 5.3.3 - 5.4 - 5.5 + - 5.6 + - 7.0 + - 7.1 + - 7.2 + +sudo: false + +cache: + directories: + - vendor + - $HOME/.composer/cache before_script: - - composer self-update - - composer install --no-interaction --prefer-source --dev + - composer install --no-interaction --prefer-source script: - ant phplint - ant phpcs - - ant phpunit \ No newline at end of file + - ant phpunit diff --git a/vendor/jakub-onderka/php-console-color/LICENSE b/vendor/jakub-onderka/php-console-color/LICENSE new file mode 100644 index 0000000000000000000000000000000000000000..0954fc941f03b88e16e3c4bd24f251b8b29cf049 --- /dev/null +++ b/vendor/jakub-onderka/php-console-color/LICENSE @@ -0,0 +1,27 @@ +Copyright (c) 2014-2018, Jakub Onderka +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. diff --git a/vendor/jakub-onderka/php-console-color/README.md b/vendor/jakub-onderka/php-console-color/README.md new file mode 100644 index 0000000000000000000000000000000000000000..39e55d9255e866144c2de3fdf1d70e0083205dc4 --- /dev/null +++ b/vendor/jakub-onderka/php-console-color/README.md @@ -0,0 +1,10 @@ +PHP Console Color +================= + +[](https://travis-ci.org/JakubOnderka/PHP-Console-Color) + +Simple library for creating colored console ouput. + +See `example.php` how to use this library. + + \ No newline at end of file diff --git a/vendor/jakub-onderka/php-console-color/composer.json b/vendor/jakub-onderka/php-console-color/composer.json index 0721abca1823b81df270babbf72a1417f7a7ba52..6481cb51d0fca62690e7a79541d68699b73714bf 100644 --- a/vendor/jakub-onderka/php-console-color/composer.json +++ b/vendor/jakub-onderka/php-console-color/composer.json @@ -1,7 +1,6 @@ { "name": "jakub-onderka/php-console-color", "license": "BSD-2-Clause", - "version": "0.1", "authors": [ { "name": "Jakub Onderka", @@ -9,16 +8,16 @@ } ], "autoload": { - "psr-0": {"JakubOnderka\\PhpConsoleColor": "src/"} + "psr-4": {"JakubOnderka\\PhpConsoleColor\\": "src/"} }, "require": { - "php": ">=5.3.2" + "php": ">=5.4.0" }, "require-dev": { - "phpunit/phpunit": "3.7.*", - "jakub-onderka/php-parallel-lint": "0.*", + "phpunit/phpunit": "~4.3", + "jakub-onderka/php-parallel-lint": "1.0", "jakub-onderka/php-var-dump-check": "0.*", "squizlabs/php_codesniffer": "1.*", "jakub-onderka/php-code-style": "1.0" } -} \ No newline at end of file +} diff --git a/vendor/jakub-onderka/php-console-color/phpunit.xml b/vendor/jakub-onderka/php-console-color/phpunit.xml index 74011d9dfe9dbc524cfeb12f73fbaefacffc1470..f1105cc4e2e23be53ab152c34ee3b7fef5c6aa25 100644 --- a/vendor/jakub-onderka/php-console-color/phpunit.xml +++ b/vendor/jakub-onderka/php-console-color/phpunit.xml @@ -1,8 +1,9 @@ <?xml version="1.0" encoding="UTF-8"?> -<phpunit bootstrap="tests/bootstrap.php"> +<phpunit + bootstrap="./vendor/autoload.php"> <testsuites> <testsuite> - <directory>tests/*</directory> + <directory suffix="Test.php">tests</directory> </testsuite> </testsuites> @@ -12,4 +13,4 @@ <directory>vendor</directory> </blacklist> </filter> -</phpunit> \ No newline at end of file +</phpunit> diff --git a/vendor/jakub-onderka/php-console-color/src/JakubOnderka/PhpConsoleColor/ConsoleColor.php b/vendor/jakub-onderka/php-console-color/src/ConsoleColor.php similarity index 90% rename from vendor/jakub-onderka/php-console-color/src/JakubOnderka/PhpConsoleColor/ConsoleColor.php rename to vendor/jakub-onderka/php-console-color/src/ConsoleColor.php index c367a7655ca6c683ed5b2ce3d4c0438104881fe6..90fd1252865c7797946dc77449095fdd0b73175d 100644 --- a/vendor/jakub-onderka/php-console-color/src/JakubOnderka/PhpConsoleColor/ConsoleColor.php +++ b/vendor/jakub-onderka/php-console-color/src/ConsoleColor.php @@ -201,10 +201,15 @@ public function removeTheme($name) public function isSupported() { if (DIRECTORY_SEPARATOR === '\\') { - return getenv('ANSICON') !== false || getenv('ConEmuANSI') === 'ON'; + if (function_exists('sapi_windows_vt100_support') && @sapi_windows_vt100_support(STDOUT)) { + return true; + } elseif (getenv('ANSICON') !== false || getenv('ConEmuANSI') === 'ON') { + return true; + } + return false; + } else { + return function_exists('posix_isatty') && @posix_isatty(STDOUT); } - - return function_exists('posix_isatty') && @posix_isatty(STDOUT); } /** @@ -212,7 +217,11 @@ public function isSupported() */ public function are256ColorsSupported() { - return DIRECTORY_SEPARATOR === '/' && strpos(getenv('TERM'), '256color') !== false; + if (DIRECTORY_SEPARATOR === '\\') { + return function_exists('sapi_windows_vt100_support') && @sapi_windows_vt100_support(STDOUT); + } else { + return strpos(getenv('TERM'), '256color') !== false; + } } /** @@ -225,8 +234,7 @@ public function getPossibleStyles() /** * @param string $name - * @return string - * @throws InvalidStyleException + * @return string[] */ private function themeSequence($name) { @@ -240,7 +248,6 @@ private function themeSequence($name) /** * @param string $style * @return string - * @throws InvalidStyleException */ private function styleSequence($style) { @@ -277,4 +284,4 @@ private function escSequence($value) { return "\033[{$value}m"; } -} \ No newline at end of file +} diff --git a/vendor/jakub-onderka/php-console-color/src/JakubOnderka/PhpConsoleColor/InvalidStyleException.php b/vendor/jakub-onderka/php-console-color/src/InvalidStyleException.php similarity index 100% rename from vendor/jakub-onderka/php-console-color/src/JakubOnderka/PhpConsoleColor/InvalidStyleException.php rename to vendor/jakub-onderka/php-console-color/src/InvalidStyleException.php diff --git a/vendor/jakub-onderka/php-console-color/tests/JakubOnderka/PhpConsoleColor/ConsoleColorTest.php b/vendor/jakub-onderka/php-console-color/tests/ConsoleColorTest.php similarity index 100% rename from vendor/jakub-onderka/php-console-color/tests/JakubOnderka/PhpConsoleColor/ConsoleColorTest.php rename to vendor/jakub-onderka/php-console-color/tests/ConsoleColorTest.php diff --git a/vendor/jakub-onderka/php-console-color/tests/bootstrap.php b/vendor/jakub-onderka/php-console-color/tests/bootstrap.php deleted file mode 100644 index 7500417edae482a416715478c3bd51dc34cc0f93..0000000000000000000000000000000000000000 --- a/vendor/jakub-onderka/php-console-color/tests/bootstrap.php +++ /dev/null @@ -1,2 +0,0 @@ -<?php -$loader = require_once __DIR__ . '/../vendor/autoload.php'; \ No newline at end of file diff --git a/vendor/jakub-onderka/php-console-highlighter/.travis.yml b/vendor/jakub-onderka/php-console-highlighter/.travis.yml index 2f7e8c89b0422ee4f67854b896ddce53d7683187..c88c4ec9d4d4013c230e50df3053a2ddc5a99076 100644 --- a/vendor/jakub-onderka/php-console-highlighter/.travis.yml +++ b/vendor/jakub-onderka/php-console-highlighter/.travis.yml @@ -1,21 +1,22 @@ language: php php: - - 5.3.3 - 5.4 - 5.5 - 5.6 - 7.0 - - hhvm - - hhvm-nightly + - 7.1 + - 7.2 + +sudo: false -matrix: - allowed_failures: - - php: 7.0 - - php: hhvm-nightly +cache: + directories: + - vendor + - $HOME/.composer/cache before_script: - composer install --no-interaction --prefer-source script: - - ant \ No newline at end of file + - ant diff --git a/vendor/jakub-onderka/php-console-highlighter/README.md b/vendor/jakub-onderka/php-console-highlighter/README.md index 432ea0a789a8e57e9c8d3426edb86f9c99432d1c..1ef3d1340d50c98e82096c246cb05676d185f869 100644 --- a/vendor/jakub-onderka/php-console-highlighter/README.md +++ b/vendor/jakub-onderka/php-console-highlighter/README.md @@ -37,4 +37,6 @@ echo $highlighter->getWholeFile($fileContent); ------ +[](https://packagist.org/packages/jakub-onderka/php-console-highlighter) [](https://travis-ci.org/JakubOnderka/PHP-Console-Highlighter) +[](https://packagist.org/packages/jakub-onderka/php-console-highlighter) diff --git a/vendor/jakub-onderka/php-console-highlighter/composer.json b/vendor/jakub-onderka/php-console-highlighter/composer.json index bd2f47a28b058dbe0534b99acd79f103ffe56a12..21c29f710a7259b88b92cb156400ae144ee1cf3f 100644 --- a/vendor/jakub-onderka/php-console-highlighter/composer.json +++ b/vendor/jakub-onderka/php-console-highlighter/composer.json @@ -1,5 +1,6 @@ { "name": "jakub-onderka/php-console-highlighter", + "description": "Highlight PHP code in terminal", "type": "library", "license": "MIT", "authors": [ @@ -10,15 +11,16 @@ } ], "autoload": { - "psr-0": {"JakubOnderka\\PhpConsoleHighlighter": "src/"} + "psr-4": {"JakubOnderka\\PhpConsoleHighlighter\\": "src/"} }, "require": { - "php": ">=5.3.0", - "jakub-onderka/php-console-color": "~0.1" + "php": ">=5.4.0", + "ext-tokenizer": "*", + "jakub-onderka/php-console-color": "~0.2" }, "require-dev": { "phpunit/phpunit": "~4.0", - "jakub-onderka/php-parallel-lint": "~0.5", + "jakub-onderka/php-parallel-lint": "~1.0", "jakub-onderka/php-var-dump-check": "~0.1", "squizlabs/php_codesniffer": "~1.5", "jakub-onderka/php-code-style": "~1.0" diff --git a/vendor/jakub-onderka/php-console-highlighter/phpunit.xml b/vendor/jakub-onderka/php-console-highlighter/phpunit.xml index 74011d9dfe9dbc524cfeb12f73fbaefacffc1470..9c653a680a487e3c566ea85a6b19ef6009aa79b2 100644 --- a/vendor/jakub-onderka/php-console-highlighter/phpunit.xml +++ b/vendor/jakub-onderka/php-console-highlighter/phpunit.xml @@ -1,8 +1,8 @@ <?xml version="1.0" encoding="UTF-8"?> -<phpunit bootstrap="tests/bootstrap.php"> +<phpunit bootstrap="./vendor/autoload.php"> <testsuites> <testsuite> - <directory>tests/*</directory> + <directory suffix="Test.php">tests</directory> </testsuite> </testsuites> @@ -12,4 +12,4 @@ <directory>vendor</directory> </blacklist> </filter> -</phpunit> \ No newline at end of file +</phpunit> diff --git a/vendor/jakub-onderka/php-console-highlighter/src/JakubOnderka/PhpConsoleHighlighter/Highlighter.php b/vendor/jakub-onderka/php-console-highlighter/src/Highlighter.php similarity index 94% rename from vendor/jakub-onderka/php-console-highlighter/src/JakubOnderka/PhpConsoleHighlighter/Highlighter.php rename to vendor/jakub-onderka/php-console-highlighter/src/Highlighter.php index b908e9318913bc65ca37aff37a03de6cb190d46f..47ce30d2c04c98ada209c83b70aa3c41046a2925 100644 --- a/vendor/jakub-onderka/php-console-highlighter/src/JakubOnderka/PhpConsoleHighlighter/Highlighter.php +++ b/vendor/jakub-onderka/php-console-highlighter/src/Highlighter.php @@ -31,6 +31,7 @@ class Highlighter /** * @param ConsoleColor $color + * @throws \JakubOnderka\PhpConsoleColor\InvalidStyleException */ public function __construct(ConsoleColor $color) { @@ -118,20 +119,6 @@ private function tokenize($source) foreach ($tokens as $token) { if (is_array($token)) { switch ($token[0]) { - case T_INLINE_HTML: - $newType = self::TOKEN_HTML; - break; - - case T_COMMENT: - case T_DOC_COMMENT: - $newType = self::TOKEN_COMMENT; - break; - - case T_ENCAPSED_AND_WHITESPACE: - case T_CONSTANT_ENCAPSED_STRING: - $newType = self::TOKEN_STRING; - break; - case T_WHITESPACE: break; @@ -151,17 +138,26 @@ private function tokenize($source) case T_LINE: case T_CLASS_C: case T_FUNC_C: - //case T_TRAIT_C: + case T_TRAIT_C: $newType = self::TOKEN_DEFAULT; break; + case T_COMMENT: + case T_DOC_COMMENT: + $newType = self::TOKEN_COMMENT; + break; + + case T_ENCAPSED_AND_WHITESPACE: + case T_CONSTANT_ENCAPSED_STRING: + $newType = self::TOKEN_STRING; + break; + + case T_INLINE_HTML: + $newType = self::TOKEN_HTML; + break; + default: - // Compatibility with PHP 5.3 - if (defined('T_TRAIT_C') && $token[0] === T_TRAIT_C) { - $newType = self::TOKEN_DEFAULT; - } else { - $newType = self::TOKEN_KEYWORD; - } + $newType = self::TOKEN_KEYWORD; } } else { $newType = $token === '"' ? self::TOKEN_STRING : self::TOKEN_KEYWORD; @@ -171,7 +167,7 @@ private function tokenize($source) $currentType = $newType; } - if ($currentType != $newType) { + if ($currentType !== $newType) { $output[] = array($currentType, $buffer); $buffer = ''; $currentType = $newType; diff --git a/vendor/jakub-onderka/php-console-highlighter/tests/JakubOnderka/PhpConsoleHighligter/HigligterTest.php b/vendor/jakub-onderka/php-console-highlighter/tests/HigligterTest.php similarity index 93% rename from vendor/jakub-onderka/php-console-highlighter/tests/JakubOnderka/PhpConsoleHighligter/HigligterTest.php rename to vendor/jakub-onderka/php-console-highlighter/tests/HigligterTest.php index 269d03da563c47182582212667c4e4bc769399da..187beb67bbe235dd59b5b82ec0776f97135e29c2 100644 --- a/vendor/jakub-onderka/php-console-highlighter/tests/JakubOnderka/PhpConsoleHighligter/HigligterTest.php +++ b/vendor/jakub-onderka/php-console-highlighter/tests/HigligterTest.php @@ -8,7 +8,9 @@ class HighlighterTest extends \PHPUnit_Framework_TestCase protected function getConsoleColorMock() { - $mock = $this->getMock('\JakubOnderka\PhpConsoleColor\ConsoleColor'); + $mock = method_exists($this, 'createMock') + ? $this->createMock('\JakubOnderka\PhpConsoleColor\ConsoleColor') + : $this->getMock('\JakubOnderka\PhpConsoleColor\ConsoleColor'); $mock->expects($this->any()) ->method('apply') @@ -260,4 +262,13 @@ public function testEmpty() '' ); } -} \ No newline at end of file + + public function testWhitespace() + { + $this->compare( + ' ' + , + '<token_html> </token_html>' + ); + } +} diff --git a/vendor/jakub-onderka/php-console-highlighter/tests/bootstrap.php b/vendor/jakub-onderka/php-console-highlighter/tests/bootstrap.php deleted file mode 100644 index 7500417edae482a416715478c3bd51dc34cc0f93..0000000000000000000000000000000000000000 --- a/vendor/jakub-onderka/php-console-highlighter/tests/bootstrap.php +++ /dev/null @@ -1,2 +0,0 @@ -<?php -$loader = require_once __DIR__ . '/../vendor/autoload.php'; \ No newline at end of file diff --git a/vendor/nikic/php-parser/.travis.yml b/vendor/nikic/php-parser/.travis.yml index 989d7a049f140a9b116124119e187d65e97e7a40..d33d7a8b503661da5ad82c6fae5fd6bf649cd74f 100644 --- a/vendor/nikic/php-parser/.travis.yml +++ b/vendor/nikic/php-parser/.travis.yml @@ -1,5 +1,5 @@ language: php -dist: trusty +dist: xenial sudo: false cache: @@ -10,11 +10,13 @@ php: - 7.0 - 7.1 - 7.2 + - 7.3 + - 7.4snapshot - nightly install: - if [ $TRAVIS_PHP_VERSION = '7.0' ]; then composer require satooshi/php-coveralls '~1.0'; fi - - composer install --prefer-dist + - composer install --prefer-dist --ignore-platform-reqs matrix: allow_failures: @@ -23,7 +25,7 @@ matrix: script: - if [ $TRAVIS_PHP_VERSION = '7.0' ]; then vendor/bin/phpunit --coverage-clover build/logs/clover.xml; else vendor/bin/phpunit; fi - - if [ $TRAVIS_PHP_VERSION = '7.1' ]; then test_old/run-php-src.sh; fi + - if [ $TRAVIS_PHP_VERSION = '7.2' ]; then test_old/run-php-src.sh; fi after_success: - if [ $TRAVIS_PHP_VERSION = '7.0' ]; then php vendor/bin/coveralls; fi diff --git a/vendor/nikic/php-parser/CHANGELOG.md b/vendor/nikic/php-parser/CHANGELOG.md index facd5719258637f93f46134b91b4853a76af317f..c3045d91c1642b0a3126965aef8e4272ea1435bf 100644 --- a/vendor/nikic/php-parser/CHANGELOG.md +++ b/vendor/nikic/php-parser/CHANGELOG.md @@ -1,8 +1,94 @@ -Version 4.0.4-dev +Version 4.2.3-dev ----------------- Nothing yet. +Version 4.2.2 (2019-05-25) +-------------------------- + +### Added + +* [PHP 7.4] Add support for arrow functions using a new `Expr\ArrowFunction` node. (#602) +* [PHP 7.4] Add support for array spreads, using a new `unpack` subnode on `ArrayItem`. (#609) +* Added support for inserting into empty list nodes in the formatting preserving pretty printer. + +### Changed + +* `php-parse` will now print messages to stderr, so that stdout only contains the actual result of + the operation (such as a JSON dump). (#605) + +### Fixed + +* Fixed attribute assignment for zero-length nop statements, and a related assertion failure in + the formatting-preserving pretty printer. (#589) + +Version 4.2.1 (2019-02-16) +-------------------------- + +### Added + +* [PHP 7.4] Add support for `??=` operator through a new `AssignOp\Coalesce` node. (#575) + +Version 4.2.0 (2019-01-12) +-------------------------- + +### Added + +* [PHP 7.4] Add support for typed properties through a new `type` subnode of `Stmt\Property`. + Additionally `Builder\Property` now has a `setType()` method. (#567) +* Add `kind` attribute to `Cast\Double_`, which allows to distinguish between `(float)`, + `(double)` and `(real)`. The form of the cast will be preserved by the pretty printer. (#565) + +### Fixed + +* Remove assertion when pretty printing anonymous class with a name (#554). + +Version 4.1.1 (2018-12-26) +-------------------------- + +### Fixed + +* Fix "undefined offset" notice when parsing specific malformed code (#551). + +### Added + +* Support error recovery for missing return type (`function foo() : {}`) (#544). + +Version 4.1.0 (2018-10-10) +-------------------------- + +### Added + +* Added support for PHP 7.3 flexible heredoc/nowdoc strings, completing support for PHP 7.3. There + are two caveats for this feature: + * In some rare, pathological cases flexible heredoc/nowdoc strings change the interpretation of + existing doc strings. PHP-Parser will now use the new interpretation. + * Flexible heredoc/nowdoc strings require special support from the lexer. Because this is not + available on PHP versions before 7.3, support has to be emulated. This emulation is not perfect + and some cases which we do not expect to occur in practice (such as flexible doc strings being + nested within each other through abuse of variable-variable interpolation syntax) may not be + recognized correctly. +* Added `DONT_TRAVERSE_CURRENT_AND_CHILDREN` to `NodeTraverser` to skip both traversal of child + nodes, and prevent subsequent visitors from visiting the current node. + +Version 4.0.4 (2018-09-18) +-------------------------- + +### Added + +* The following methods have been added to `BuilderFactory`: + * `useTrait()` (fluent builder) + * `traitUseAdaptation()` (fluent builder) + * `useFunction()` (fluent builder) + * `useConst()` (fluent builder) + * `var()` + * `propertyFetch()` + +### Deprecated + +* `Builder\Param::setTypeHint()` has been deprecated in favor of the newly introduced + `Builder\Param::setType()`. + Version 4.0.3 (2018-07-15) -------------------------- diff --git a/vendor/nikic/php-parser/README.md b/vendor/nikic/php-parser/README.md index 7b1fedabb2960153e5865f7f8e7606170345e605..e62748eb1c19fcddcd5deefafefabc97242bd312 100644 --- a/vendor/nikic/php-parser/README.md +++ b/vendor/nikic/php-parser/README.md @@ -3,12 +3,12 @@ PHP Parser [](https://travis-ci.org/nikic/PHP-Parser) [](https://coveralls.io/github/nikic/PHP-Parser?branch=master) -This is a PHP 5.2 to PHP 7.2 parser written in PHP. Its purpose is to simplify static code analysis and +This is a PHP 5.2 to PHP 7.3 parser written in PHP. Its purpose is to simplify static code analysis and manipulation. -[**Documentation for version 4.x**][doc_master] (stable; for running on PHP >= 7.0; for parsing PHP 5.2 to PHP 7.2). +[**Documentation for version 4.x**][doc_master] (stable; for running on PHP >= 7.0; for parsing PHP 5.2 to PHP 7.3). -[Documentation for version 3.x][doc_3_x] (stable; for running on PHP >= 5.5; for parsing PHP 5.2 to PHP 7.2). +[Documentation for version 3.x][doc_3_x] (unsupported; for running on PHP >= 5.5; for parsing PHP 5.2 to PHP 7.2). Features -------- diff --git a/vendor/nikic/php-parser/bin/php-parse b/vendor/nikic/php-parser/bin/php-parse index 5dd01ba17972c9564ee7c518eada3b787cc2f3e0..a002f8527193b836c5ccf98c36483edcc8f37355 100755 --- a/vendor/nikic/php-parser/bin/php-parse +++ b/vendor/nikic/php-parser/bin/php-parse @@ -45,14 +45,15 @@ $traverser->addVisitor(new PhpParser\NodeVisitor\NameResolver); foreach ($files as $file) { if (strpos($file, '<?php') === 0) { $code = $file; - echo "====> Code $code\n"; + fwrite(STDERR, "====> Code $code\n"); } else { if (!file_exists($file)) { - die("File $file does not exist.\n"); + fwrite(STDERR, "File $file does not exist.\n"); + exit(1); } $code = file_get_contents($file); - echo "====> File $file:\n"; + fwrite(STDERR, "====> File $file:\n"); } if ($attributes['with-recovery']) { @@ -60,7 +61,7 @@ foreach ($files as $file) { $stmts = $parser->parse($code, $errorHandler); foreach ($errorHandler->getErrors() as $error) { $message = formatErrorMessage($error, $code, $attributes['with-column-info']); - echo $message . "\n"; + fwrite(STDERR, $message . "\n"); } if (null === $stmts) { continue; @@ -70,25 +71,26 @@ foreach ($files as $file) { $stmts = $parser->parse($code); } catch (PhpParser\Error $error) { $message = formatErrorMessage($error, $code, $attributes['with-column-info']); - die($message . "\n"); + fwrite(STDERR, $message . "\n"); + exit(1); } } foreach ($operations as $operation) { if ('dump' === $operation) { - echo "==> Node dump:\n"; + fwrite(STDERR, "==> Node dump:\n"); echo $dumper->dump($stmts, $code), "\n"; } elseif ('pretty-print' === $operation) { - echo "==> Pretty print:\n"; + fwrite(STDERR, "==> Pretty print:\n"); echo $prettyPrinter->prettyPrintFile($stmts), "\n"; } elseif ('json-dump' === $operation) { - echo "==> JSON dump:\n"; + fwrite(STDERR, "==> JSON dump:\n"); echo json_encode($stmts, JSON_PRETTY_PRINT), "\n"; } elseif ('var-dump' === $operation) { - echo "==> var_dump():\n"; + fwrite(STDERR, "==> var_dump():\n"); var_dump($stmts); } elseif ('resolve-names' === $operation) { - echo "==> Resolved names.\n"; + fwrite(STDERR, "==> Resolved names.\n"); $stmts = $traverser->traverse($stmts); } } @@ -104,9 +106,9 @@ function formatErrorMessage(PhpParser\Error $e, $code, $withColumnInfo) { function showHelp($error = '') { if ($error) { - echo $error . "\n\n"; + fwrite(STDERR, $error . "\n\n"); } - die(<<<OUTPUT + fwrite($error ? STDERR : STDOUT, <<<OUTPUT Usage: php-parse [operations] file1.php [file2.php ...] or: php-parse [operations] "<?php code" Turn PHP source code into an abstract syntax tree. @@ -131,6 +133,7 @@ Example: OUTPUT ); + exit($error ? 1 : 0); } function parseArgs($args) { diff --git a/vendor/nikic/php-parser/composer.json b/vendor/nikic/php-parser/composer.json index 7ae425ff76a3f3fad8684d52bfad5be054d145d3..97428539271af82a4a1d3d3a05e709591de15de5 100644 --- a/vendor/nikic/php-parser/composer.json +++ b/vendor/nikic/php-parser/composer.json @@ -1,8 +1,11 @@ { "name": "nikic/php-parser", - "description": "A PHP parser written in PHP", - "keywords": ["php", "parser"], "type": "library", + "description": "A PHP parser written in PHP", + "keywords": [ + "php", + "parser" + ], "license": "BSD-3-Clause", "authors": [ { @@ -16,15 +19,22 @@ "require-dev": { "phpunit/phpunit": "^6.5 || ^7.0" }, + "extra": { + "branch-alias": { + "dev-master": "4.2-dev" + } + }, "autoload": { "psr-4": { "PhpParser\\": "lib/PhpParser" } }, - "bin": ["bin/php-parse"], - "extra": { - "branch-alias": { - "dev-master": "4.0-dev" + "autoload-dev": { + "psr-4": { + "PhpParser\\": "test/PhpParser/" } - } + }, + "bin": [ + "bin/php-parse" + ] } diff --git a/vendor/nikic/php-parser/doc/0_Introduction.markdown b/vendor/nikic/php-parser/doc/0_Introduction.markdown index 240f7fdea1958c8c92ab10be7ec1dc50430a6a92..abc40f2bb83d58ba65f3eb6131433c8d19e0c62b 100644 --- a/vendor/nikic/php-parser/doc/0_Introduction.markdown +++ b/vendor/nikic/php-parser/doc/0_Introduction.markdown @@ -1,7 +1,7 @@ Introduction ============ -This project is a PHP 5.2 to PHP 7.2 parser **written in PHP itself**. +This project is a PHP 5.2 to PHP 7.3 parser **written in PHP itself**. What is this for? ----------------- @@ -26,11 +26,11 @@ programmatic PHP code analysis are incidentally PHP developers, not C developers What can it parse? ------------------ -The parser supports parsing PHP 5.2-7.2. +The parser supports parsing PHP 5.2-7.3. As the parser is based on the tokens returned by `token_get_all` (which is only able to lex the PHP version it runs on), additionally a wrapper for emulating tokens from newer versions is provided. -This allows to parse PHP 7.2 source code running on PHP 5.5, for example. This emulation is somewhat +This allows to parse PHP 7.3 source code running on PHP 7.0, for example. This emulation is somewhat hacky and not perfect, but it should work well on any sane code. What output does it produce? diff --git a/vendor/nikic/php-parser/doc/2_Usage_of_basic_components.markdown b/vendor/nikic/php-parser/doc/2_Usage_of_basic_components.markdown index 462b56374eed1c8baad31c85d9fbc938d3436caa..9a809ec8e632182cd2e920b292153602a962f378 100644 --- a/vendor/nikic/php-parser/doc/2_Usage_of_basic_components.markdown +++ b/vendor/nikic/php-parser/doc/2_Usage_of_basic_components.markdown @@ -339,7 +339,8 @@ All four methods can either return the changed node or not return at all (i.e. ` case the current node is not changed. The `enterNode()` method can additionally return the value `NodeTraverser::DONT_TRAVERSE_CHILDREN`, -which instructs the traverser to skip all children of the current node. +which instructs the traverser to skip all children of the current node. To furthermore prevent subsequent +visitors from visiting the current node, `NodeTraverser::DONT_TRAVERSE_CURRENT_AND_CHILDREN` can be used instead. The `leaveNode()` method can additionally return the value `NodeTraverser::REMOVE_NODE`, in which case the current node will be removed from the parent array. Furthermore it is possible to return diff --git a/vendor/nikic/php-parser/doc/component/AST_builders.markdown b/vendor/nikic/php-parser/doc/component/AST_builders.markdown index 5597e2a41972494f25b9bf3545c4da10fc6178b9..60ae0192df62c51389e897d9427b972a6f9a23fd 100644 --- a/vendor/nikic/php-parser/doc/component/AST_builders.markdown +++ b/vendor/nikic/php-parser/doc/component/AST_builders.markdown @@ -28,17 +28,27 @@ use PhpParser\Node; $factory = new BuilderFactory; $node = $factory->namespace('Name\Space') - ->addStmt($factory->use('Some\Other\Thingy')->as('SomeOtherClass')) + ->addStmt($factory->use('Some\Other\Thingy')->as('SomeClass')) + ->addStmt($factory->useFunction('strlen')) + ->addStmt($factory->useConst('PHP_VERSION')) ->addStmt($factory->class('SomeOtherClass') ->extend('SomeClass') ->implement('A\Few', '\Interfaces') ->makeAbstract() // ->makeFinal() + ->addStmt($factory->useTrait('FirstTrait')) + + ->addStmt($factory->useTrait('SecondTrait', 'ThirdTrait') + ->and('AnotherTrait') + ->with($factory->traitUseAdaptation('foo')->as('bar')) + ->with($factory->traitUseAdaptation('AnotherTrait', 'baz')->as('test')) + ->with($factory->traitUseAdaptation('AnotherTrait', 'func')->insteadof('SecondTrait'))) + ->addStmt($factory->method('someMethod') ->makePublic() ->makeAbstract() // ->makeFinal() - ->setReturnType('bool') - ->addParam($factory->param('someParam')->setTypeHint('SomeClass')) + ->setReturnType('bool') // ->makeReturnByRef() + ->addParam($factory->param('someParam')->setType('SomeClass')) ->setDocComment('/** * This method does something. * @@ -74,8 +84,16 @@ This will produce the following output with the standard pretty printer: namespace Name\Space; use Some\Other\Thingy as SomeClass; +use function strlen; +use const PHP_VERSION; abstract class SomeOtherClass extends SomeClass implements A\Few, \Interfaces { + use FirstTrait; + use SecondTrait, ThirdTrait, AnotherTrait { + foo as bar; + AnotherTrait::baz as test; + AnotherTrait::func insteadof SecondTrait; + } protected $someProperty; private $anotherProperty = array(1, 2, 3); /** @@ -98,6 +116,7 @@ The `BuilderFactory` also provides a number of additional helper methods, which nodes. The following methods are currently available: * `val($value)`: Creates an AST node for a literal value like `42` or `[1, 2, 3]`. + * `var($name)`: Creates variable node. * `args(array $args)`: Creates an array of function/method arguments, including the required `Arg` wrappers. Also converts literals to AST nodes. * `funcCall($name, array $args = [])`: Create a function call node. Converts `$name` to a `Name` @@ -111,7 +130,9 @@ nodes. The following methods are currently available: * `constFetch($name)`: Create a constant fetch node. Converts `$name` to a `Name` node. * `classConstFetch($class, $name)`: Create a class constant fetch node. Converts `$class` to a `Name` node and `$name` to an `Identifier` node. + * `propertyFetch($var, $name)`: Creates a property fetch node. Converts `$name` to an `Identifier` + node. * `concat(...$exprs)`: Create a tree of `BinaryOp\Concat` nodes for the given expressions. These methods may be expanded on an as-needed basis. Please open an issue or PR if a common -operation is missing. \ No newline at end of file +operation is missing. diff --git a/vendor/nikic/php-parser/doc/component/JSON_representation.markdown b/vendor/nikic/php-parser/doc/component/JSON_representation.markdown index a4d3933564310bbd9dabd28f06b4aee23e6b5f69..47c3429c07b665ecad5977bc7cbb953b8bdd960d 100644 --- a/vendor/nikic/php-parser/doc/component/JSON_representation.markdown +++ b/vendor/nikic/php-parser/doc/component/JSON_representation.markdown @@ -116,8 +116,8 @@ The JSON representation may be converted back into an AST using the `JsonDecoder ```php <?php -$nodeDecoder = new PhpParser\NodeDecoder(); -$ast = $nodeDecoder->decode($json); +$jsonDecoder = new PhpParser\JsonDecoder(); +$ast = $jsonDecoder->decode($json); ``` Note that not all ASTs can be represented using JSON. In particular: @@ -128,4 +128,4 @@ Note that not all ASTs can be represented using JSON. In particular: If the node tree is not representable in JSON, the initial `json_encode()` call will fail. -From the command line, a JSON dump can be obtained using `vendor/bin/php-parse -j file.php`. \ No newline at end of file +From the command line, a JSON dump can be obtained using `vendor/bin/php-parse -j file.php`. diff --git a/vendor/nikic/php-parser/doc/component/Walking_the_AST.markdown b/vendor/nikic/php-parser/doc/component/Walking_the_AST.markdown index fd979d5a76918cf331a6a778c549e7013015b24f..69af1e832fc93d00e9c008c9280f1aa7f475f329 100644 --- a/vendor/nikic/php-parser/doc/component/Walking_the_AST.markdown +++ b/vendor/nikic/php-parser/doc/component/Walking_the_AST.markdown @@ -215,7 +215,7 @@ once you found it: private $class = null; public function enterNode(Node $node) { if ($node instanceof Node\Stmt\Class_ && - $node->namespaceName->toString() === 'Foo\Bar\Baz' + $node->namespacedName->toString() === 'Foo\Bar\Baz' ) { $this->class = $node; return NodeTraverser::STOP_TRAVERSAL; @@ -235,7 +235,7 @@ A single traverser can be used with multiple visitors: $traverser = new NodeTraverser; $traverser->addVisitor($visitorA); $traverser->addVisitor($visitorB); -$stmts = $traverser->traverser($stmts); +$stmts = $traverser->traverse($stmts); ``` It is important to understand that if a traverser is run with multiple visitors, the visitors will @@ -281,6 +281,8 @@ special enterNode/leaveNode return values: * If *any* visitor returns `DONT_TRAVERSE_CHILDREN`, the children will be skipped for *all* visitors. + * If *any* visitor returns `DONT_TRAVERSE_CURRENT_AND_CHILDREN`, the children will be skipped for *all* + visitors, and all *subsequent* visitors will not visit the current node. * If *any* visitor returns `STOP_TRAVERSAL`, traversal is stopped for *all* visitors. * If a visitor returns a replacement node, subsequent visitors will be passed the replacement node, not the original one. @@ -305,7 +307,7 @@ $nodeFinder = new NodeFinder; $classes = $nodeFinder->findInstanceOf($stmts, Node\Stmt\Class_::class); // Find all classes that extend another class -$extendingClasses = $nodeFinder->findInstanceOf($stmts, function(Node $node) { +$extendingClasses = $nodeFinder->find($stmts, function(Node $node) { return $node instanceof Node\Stmt\Class_ && $node->extends !== null; }); @@ -332,4 +334,4 @@ reverse direction: When working on a node, you might want to check if the parent certain property. PHP-Parser does not add parent (or sibling) references to nodes by itself, but you can easily -emulate this with a visitor. See the [FAQ](FAQ.markdown) for more information. \ No newline at end of file +emulate this with a visitor. See the [FAQ](FAQ.markdown) for more information. diff --git a/vendor/nikic/php-parser/grammar/php5.y b/vendor/nikic/php-parser/grammar/php5.y index 486d836c855c984f3e1b70242c093534fb2fa3d7..e775f2cab749d1c7e64a7308223e8579f744f0eb 100644 --- a/vendor/nikic/php-parser/grammar/php5.y +++ b/vendor/nikic/php-parser/grammar/php5.y @@ -16,7 +16,7 @@ top_statement_list_ex: top_statement_list: top_statement_list_ex - { makeNop($nop, $this->lookaheadStartAttributes, $this->endAttributes); + { makeZeroLengthNop($nop, $this->lookaheadStartAttributes); if ($nop !== null) { $1[] = $nop; } $$ = $1; } ; @@ -27,7 +27,7 @@ reserved_non_modifiers: | T_FINALLY | T_THROW | T_USE | T_INSTEADOF | T_GLOBAL | T_VAR | T_UNSET | T_ISSET | T_EMPTY | T_CONTINUE | T_GOTO | T_FUNCTION | T_CONST | T_RETURN | T_PRINT | T_YIELD | T_LIST | T_SWITCH | T_ENDSWITCH | T_CASE | T_DEFAULT | T_BREAK | T_ARRAY | T_CALLABLE | T_EXTENDS | T_IMPLEMENTS | T_NAMESPACE | T_TRAIT | T_INTERFACE | T_CLASS - | T_CLASS_C | T_TRAIT_C | T_FUNC_C | T_METHOD_C | T_LINE | T_FILE | T_DIR | T_NS_C | T_HALT_COMPILER + | T_CLASS_C | T_TRAIT_C | T_FUNC_C | T_METHOD_C | T_LINE | T_FILE | T_DIR | T_NS_C | T_HALT_COMPILER | T_FN ; semi_reserved: @@ -160,7 +160,7 @@ inner_statement_list_ex: inner_statement_list: inner_statement_list_ex - { makeNop($nop, $this->lookaheadStartAttributes, $this->endAttributes); + { makeZeroLengthNop($nop, $this->lookaheadStartAttributes); if ($nop !== null) { $1[] = $nop; } $$ = $1; } ; @@ -461,7 +461,7 @@ class_statement_list_ex: class_statement_list: class_statement_list_ex - { makeNop($nop, $this->lookaheadStartAttributes, $this->endAttributes); + { makeZeroLengthNop($nop, $this->lookaheadStartAttributes); if ($nop !== null) { $1[] = $nop; } $$ = $1; } ; @@ -579,6 +579,7 @@ expr: | variable T_SL_EQUAL expr { $$ = Expr\AssignOp\ShiftLeft [$1, $3]; } | variable T_SR_EQUAL expr { $$ = Expr\AssignOp\ShiftRight[$1, $3]; } | variable T_POW_EQUAL expr { $$ = Expr\AssignOp\Pow [$1, $3]; } + | variable T_COALESCE_EQUAL expr { $$ = Expr\AssignOp\Coalesce [$1, $3]; } | variable T_INC { $$ = Expr\PostInc[$1]; } | T_INC variable { $$ = Expr\PreInc [$2]; } | variable T_DEC { $$ = Expr\PostDec[$1]; } @@ -628,7 +629,10 @@ expr: | T_REQUIRE expr { $$ = Expr\Include_[$2, Expr\Include_::TYPE_REQUIRE]; } | T_REQUIRE_ONCE expr { $$ = Expr\Include_[$2, Expr\Include_::TYPE_REQUIRE_ONCE]; } | T_INT_CAST expr { $$ = Expr\Cast\Int_ [$2]; } - | T_DOUBLE_CAST expr { $$ = Expr\Cast\Double [$2]; } + | T_DOUBLE_CAST expr + { $attrs = attributes(); + $attrs['kind'] = $this->getFloatCastKind($1); + $$ = new Expr\Cast\Double($2, $attrs); } | T_STRING_CAST expr { $$ = Expr\Cast\String_ [$2]; } | T_ARRAY_CAST expr { $$ = Expr\Cast\Array_ [$2]; } | T_OBJECT_CAST expr { $$ = Expr\Cast\Object_ [$2]; } @@ -791,11 +795,9 @@ common_scalar: | T_FUNC_C { $$ = Scalar\MagicConst\Function_[]; } | T_NS_C { $$ = Scalar\MagicConst\Namespace_[]; } | T_START_HEREDOC T_ENCAPSED_AND_WHITESPACE T_END_HEREDOC - { $attrs = attributes(); setDocStringAttrs($attrs, $1); - $$ = new Scalar\String_(Scalar\String_::parseDocString($1, $2, false), $attrs); } + { $$ = $this->parseDocString($1, $2, $3, attributes(), stackAttributes(#3), false); } | T_START_HEREDOC T_END_HEREDOC - { $attrs = attributes(); setDocStringAttrs($attrs, $1); - $$ = new Scalar\String_('', $attrs); } + { $$ = $this->parseDocString($1, '', $2, attributes(), stackAttributes(#2), false); } ; static_scalar: @@ -856,8 +858,7 @@ scalar: { $attrs = attributes(); $attrs['kind'] = Scalar\String_::KIND_DOUBLE_QUOTED; parseEncapsed($2, '"', true); $$ = new Scalar\Encapsed($2, $attrs); } | T_START_HEREDOC encaps_list T_END_HEREDOC - { $attrs = attributes(); setDocStringAttrs($attrs, $1); - parseEncapsedDoc($2, true); $$ = new Scalar\Encapsed($2, $attrs); } + { $$ = $this->parseDocString($1, $2, $3, attributes(), stackAttributes(#3), true); } ; static_array_pair_list: @@ -987,6 +988,7 @@ array_pair: | expr { $$ = Expr\ArrayItem[$1, null, false]; } | expr T_DOUBLE_ARROW '&' variable { $$ = Expr\ArrayItem[$4, $1, true]; } | '&' variable { $$ = Expr\ArrayItem[$2, null, true]; } + | T_ELLIPSIS expr { $$ = Expr\ArrayItem[$2, null, false, attributes(), true]; } ; encaps_list: diff --git a/vendor/nikic/php-parser/grammar/php7.y b/vendor/nikic/php-parser/grammar/php7.y index ba203284bba3450faa835b86e822b592cf4e7dc0..23b193bbba774b100abdef2ea4254ca56020b96b 100644 --- a/vendor/nikic/php-parser/grammar/php7.y +++ b/vendor/nikic/php-parser/grammar/php7.y @@ -16,7 +16,7 @@ top_statement_list_ex: top_statement_list: top_statement_list_ex - { makeNop($nop, $this->lookaheadStartAttributes, $this->endAttributes); + { makeZeroLengthNop($nop, $this->lookaheadStartAttributes); if ($nop !== null) { $1[] = $nop; } $$ = $1; } ; @@ -27,7 +27,7 @@ reserved_non_modifiers: | T_FINALLY | T_THROW | T_USE | T_INSTEADOF | T_GLOBAL | T_VAR | T_UNSET | T_ISSET | T_EMPTY | T_CONTINUE | T_GOTO | T_FUNCTION | T_CONST | T_RETURN | T_PRINT | T_YIELD | T_LIST | T_SWITCH | T_ENDSWITCH | T_CASE | T_DEFAULT | T_BREAK | T_ARRAY | T_CALLABLE | T_EXTENDS | T_IMPLEMENTS | T_NAMESPACE | T_TRAIT | T_INTERFACE | T_CLASS - | T_CLASS_C | T_TRAIT_C | T_FUNC_C | T_METHOD_C | T_LINE | T_FILE | T_DIR | T_NS_C | T_HALT_COMPILER + | T_CLASS_C | T_TRAIT_C | T_FUNC_C | T_METHOD_C | T_LINE | T_FILE | T_DIR | T_NS_C | T_HALT_COMPILER | T_FN ; semi_reserved: @@ -196,7 +196,7 @@ inner_statement_list_ex: inner_statement_list: inner_statement_list_ex - { makeNop($nop, $this->lookaheadStartAttributes, $this->endAttributes); + { makeZeroLengthNop($nop, $this->lookaheadStartAttributes); if ($nop !== null) { $1[] = $nop; } $$ = $1; } ; @@ -450,11 +450,11 @@ non_empty_parameter_list: ; parameter: - optional_param_type optional_ref optional_ellipsis plain_variable + optional_type optional_ref optional_ellipsis plain_variable { $$ = Node\Param[$4, null, $1, $2, $3]; $this->checkParam($$); } - | optional_param_type optional_ref optional_ellipsis plain_variable '=' expr + | optional_type optional_ref optional_ellipsis plain_variable '=' expr { $$ = Node\Param[$4, $6, $1, $2, $3]; $this->checkParam($$); } - | optional_param_type optional_ref optional_ellipsis error + | optional_type optional_ref optional_ellipsis error { $$ = Node\Param[Expr\Error[], null, $1, $2, $3]; } ; @@ -469,7 +469,7 @@ type: | T_CALLABLE { $$ = Node\Identifier['callable']; } ; -optional_param_type: +optional_type: /* empty */ { $$ = null; } | type_expr { $$ = $1; } ; @@ -477,6 +477,7 @@ optional_param_type: optional_return_type: /* empty */ { $$ = null; } | ':' type_expr { $$ = $2; } + | ':' error { $$ = null; } ; argument_list: @@ -529,13 +530,14 @@ class_statement_list_ex: class_statement_list: class_statement_list_ex - { makeNop($nop, $this->lookaheadStartAttributes, $this->endAttributes); + { makeZeroLengthNop($nop, $this->lookaheadStartAttributes); if ($nop !== null) { $1[] = $nop; } $$ = $1; } ; class_statement: - variable_modifiers property_declaration_list ';' - { $$ = Stmt\Property[$1, $2]; $this->checkProperty($$, #1); } + variable_modifiers optional_type property_declaration_list ';' + { $attrs = attributes(); + $$ = new Stmt\Property($1, $3, $attrs, $2); $this->checkProperty($$, #1); } | method_modifiers T_CONST class_const_list ';' { $$ = Stmt\ClassConst[$3, $1]; $this->checkClassConst($$, #1); } | method_modifiers T_FUNCTION optional_ref identifier_ex '(' parameter_list ')' optional_return_type method_body @@ -658,6 +660,7 @@ expr: | variable T_SL_EQUAL expr { $$ = Expr\AssignOp\ShiftLeft [$1, $3]; } | variable T_SR_EQUAL expr { $$ = Expr\AssignOp\ShiftRight[$1, $3]; } | variable T_POW_EQUAL expr { $$ = Expr\AssignOp\Pow [$1, $3]; } + | variable T_COALESCE_EQUAL expr { $$ = Expr\AssignOp\Coalesce [$1, $3]; } | variable T_INC { $$ = Expr\PostInc[$1]; } | T_INC variable { $$ = Expr\PreInc [$2]; } | variable T_DEC { $$ = Expr\PostDec[$1]; } @@ -705,7 +708,10 @@ expr: | T_REQUIRE expr { $$ = Expr\Include_[$2, Expr\Include_::TYPE_REQUIRE]; } | T_REQUIRE_ONCE expr { $$ = Expr\Include_[$2, Expr\Include_::TYPE_REQUIRE_ONCE]; } | T_INT_CAST expr { $$ = Expr\Cast\Int_ [$2]; } - | T_DOUBLE_CAST expr { $$ = Expr\Cast\Double [$2]; } + | T_DOUBLE_CAST expr + { $attrs = attributes(); + $attrs['kind'] = $this->getFloatCastKind($1); + $$ = new Expr\Cast\Double($2, $attrs); } | T_STRING_CAST expr { $$ = Expr\Cast\String_ [$2]; } | T_ARRAY_CAST expr { $$ = Expr\Cast\Array_ [$2]; } | T_OBJECT_CAST expr { $$ = Expr\Cast\Object_ [$2]; } @@ -723,6 +729,12 @@ expr: | T_YIELD expr { $$ = Expr\Yield_[$2, null]; } | T_YIELD expr T_DOUBLE_ARROW expr { $$ = Expr\Yield_[$4, $2]; } | T_YIELD_FROM expr { $$ = Expr\YieldFrom[$2]; } + + | T_FN optional_ref '(' parameter_list ')' optional_return_type T_DOUBLE_ARROW expr + { $$ = Expr\ArrowFunction[['static' => false, 'byRef' => $2, 'params' => $4, 'returnType' => $6, 'expr' => $8]]; } + | T_STATIC T_FN optional_ref '(' parameter_list ')' optional_return_type T_DOUBLE_ARROW expr + { $$ = Expr\ArrowFunction[['static' => true, 'byRef' => $3, 'params' => $5, 'returnType' => $7, 'expr' => $9]]; } + | T_FUNCTION optional_ref '(' parameter_list ')' lexical_vars optional_return_type block_or_error { $$ = Expr\Closure[['static' => false, 'byRef' => $2, 'params' => $4, 'uses' => $6, 'returnType' => $7, 'stmts' => $8]]; } @@ -847,17 +859,14 @@ scalar: | dereferencable_scalar { $$ = $1; } | constant { $$ = $1; } | T_START_HEREDOC T_ENCAPSED_AND_WHITESPACE T_END_HEREDOC - { $attrs = attributes(); setDocStringAttrs($attrs, $1); - $$ = new Scalar\String_(Scalar\String_::parseDocString($1, $2), $attrs); } + { $$ = $this->parseDocString($1, $2, $3, attributes(), stackAttributes(#3), true); } | T_START_HEREDOC T_END_HEREDOC - { $attrs = attributes(); setDocStringAttrs($attrs, $1); - $$ = new Scalar\String_('', $attrs); } + { $$ = $this->parseDocString($1, '', $2, attributes(), stackAttributes(#2), true); } | '"' encaps_list '"' { $attrs = attributes(); $attrs['kind'] = Scalar\String_::KIND_DOUBLE_QUOTED; parseEncapsed($2, '"', true); $$ = new Scalar\Encapsed($2, $attrs); } | T_START_HEREDOC encaps_list T_END_HEREDOC - { $attrs = attributes(); setDocStringAttrs($attrs, $1); - parseEncapsedDoc($2, true); $$ = new Scalar\Encapsed($2, $attrs); } + { $$ = $this->parseDocString($1, $2, $3, attributes(), stackAttributes(#3), true); } ; optional_expr: @@ -961,6 +970,7 @@ array_pair_list: comma_or_error: ',' | error + { /* do nothing -- prevent default action of $$=$1. See #551. */ } ; inner_array_pair_list: @@ -973,6 +983,7 @@ array_pair: | expr { $$ = Expr\ArrayItem[$1, null, false]; } | expr T_DOUBLE_ARROW '&' variable { $$ = Expr\ArrayItem[$4, $1, true]; } | '&' variable { $$ = Expr\ArrayItem[$2, null, true]; } + | T_ELLIPSIS expr { $$ = Expr\ArrayItem[$2, null, false, attributes(), true]; } | /* empty */ { $$ = null; } ; diff --git a/vendor/nikic/php-parser/grammar/rebuildParsers.php b/vendor/nikic/php-parser/grammar/rebuildParsers.php index 3be5edb64d57d9edb77e767719e3c57a78ae21e2..b913cdacaf1af6a2e8a16b4cea61785c499c12a2 100644 --- a/vendor/nikic/php-parser/grammar/rebuildParsers.php +++ b/vendor/nikic/php-parser/grammar/rebuildParsers.php @@ -13,9 +13,12 @@ $resultDir = __DIR__ . '/../lib/PhpParser/Parser'; $tokensResultsFile = $resultDir . '/Tokens.php'; -// check for kmyacc.exe binary in this directory, otherwise fall back to global name -$kmyacc = __DIR__ . '/kmyacc.exe'; -if (!file_exists($kmyacc)) { +// check for kmyacc binary in this directory, otherwise fall back to global name +if (file_exists(__DIR__ . '/kmyacc.exe')) { + $kmyacc = __DIR__ . '/kmyacc.exe'; +} else if (file_exists(__DIR__ . '/kmyacc')) { + $kmyacc = __DIR__ . '/kmyacc'; +} else { $kmyacc = 'kmyacc'; } @@ -166,15 +169,6 @@ function($matches) { . ' $s->value = Node\Scalar\String_::parseEscapeSequences($s->value, ' . $args[1] . ', ' . $args[2] . '); } }'; } - if ('parseEncapsedDoc' == $name) { - assertArgs(2, $args, $name); - - return 'foreach (' . $args[0] . ' as $s) { if ($s instanceof Node\Scalar\EncapsedStringPart) {' - . ' $s->value = Node\Scalar\String_::parseEscapeSequences($s->value, null, ' . $args[1] . '); } }' - . ' $s->value = preg_replace(\'~(\r\n|\n|\r)\z~\', \'\', $s->value);' - . ' if (\'\' === $s->value) array_pop(' . $args[0] . ');'; - } - if ('makeNop' == $name) { assertArgs(3, $args, $name); @@ -184,6 +178,15 @@ function($matches) { . ' else { ' . $args[0] . ' = null; }'; } + if ('makeZeroLengthNop' == $name) { + assertArgs(2, $args, $name); + + return '$startAttributes = ' . $args[1] . ';' + . ' if (isset($startAttributes[\'comments\']))' + . ' { ' . $args[0] . ' = new Stmt\Nop($this->createZeroLengthAttributes($startAttributes)); }' + . ' else { ' . $args[0] . ' = null; }'; + } + if ('strKind' == $name) { assertArgs(1, $args, $name); @@ -192,15 +195,6 @@ function($matches) { . '? Scalar\String_::KIND_SINGLE_QUOTED : Scalar\String_::KIND_DOUBLE_QUOTED)'; } - if ('setDocStringAttrs' == $name) { - assertArgs(2, $args, $name); - - return $args[0] . '[\'kind\'] = strpos(' . $args[1] . ', "\'") === false ' - . '? Scalar\String_::KIND_HEREDOC : Scalar\String_::KIND_NOWDOC; ' - . 'preg_match(\'/\A[bB]?<<<[ \t]*[\\\'"]?([a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*)[\\\'"]?(?:\r\n|\n|\r)\z/\', ' . $args[1] . ', $matches); ' - . $args[0] . '[\'docLabel\'] = $matches[1];'; - } - if ('prependLeadingComments' == $name) { assertArgs(1, $args, $name); diff --git a/vendor/nikic/php-parser/grammar/tokens.y b/vendor/nikic/php-parser/grammar/tokens.y index 2b54f80b470e82868f2e5cdf2431bde5f5fbf670..dd83a6f83dc3afd89794e3b8998704b8f22daf58 100644 --- a/vendor/nikic/php-parser/grammar/tokens.y +++ b/vendor/nikic/php-parser/grammar/tokens.y @@ -10,7 +10,7 @@ %right T_YIELD %right T_DOUBLE_ARROW %right T_YIELD_FROM -%left '=' T_PLUS_EQUAL T_MINUS_EQUAL T_MUL_EQUAL T_DIV_EQUAL T_CONCAT_EQUAL T_MOD_EQUAL T_AND_EQUAL T_OR_EQUAL T_XOR_EQUAL T_SL_EQUAL T_SR_EQUAL T_POW_EQUAL +%left '=' T_PLUS_EQUAL T_MINUS_EQUAL T_MUL_EQUAL T_DIV_EQUAL T_CONCAT_EQUAL T_MOD_EQUAL T_AND_EQUAL T_OR_EQUAL T_XOR_EQUAL T_SL_EQUAL T_SR_EQUAL T_POW_EQUAL T_COALESCE_EQUAL %left '?' ':' %right T_COALESCE %left T_BOOLEAN_OR @@ -64,6 +64,7 @@ %token T_CONTINUE %token T_GOTO %token T_FUNCTION +%token T_FN %token T_CONST %token T_RETURN %token T_TRY diff --git a/vendor/nikic/php-parser/lib/PhpParser/Builder/Param.php b/vendor/nikic/php-parser/lib/PhpParser/Builder/Param.php index eff76cb45c49057c11e4b3e79515745b9d86a605..184813a657cf6cab39406fc02a1715f74ed0540a 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Builder/Param.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Builder/Param.php @@ -42,13 +42,13 @@ public function setDefault($value) { } /** - * Sets type hint for the parameter. + * Sets type for the parameter. * - * @param string|Node\Name|Node\NullableType $type Type hint to use + * @param string|Node\Name|Node\NullableType $type Parameter type * * @return $this The builder instance (for fluid interface) */ - public function setTypeHint($type) { + public function setType($type) { $this->type = BuilderHelpers::normalizeType($type); if ($this->type == 'void') { throw new \LogicException('Parameter type cannot be void'); @@ -57,6 +57,19 @@ public function setTypeHint($type) { return $this; } + /** + * Sets type for the parameter. + * + * @param string|Node\Name|Node\NullableType $type Parameter type + * + * @return $this The builder instance (for fluid interface) + * + * @deprecated Use setType() instead + */ + public function setTypeHint($type) { + return $this->setType($type); + } + /** * Make the parameter accept the value by reference. * diff --git a/vendor/nikic/php-parser/lib/PhpParser/Builder/Property.php b/vendor/nikic/php-parser/lib/PhpParser/Builder/Property.php index 439bd09c6d9f3c0e1d30d13c3644617157b1caa8..1f3bdb27234b971f996c026754abe06d783cb943 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Builder/Property.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Builder/Property.php @@ -4,6 +4,9 @@ use PhpParser; use PhpParser\BuilderHelpers; +use PhpParser\Node\Identifier; +use PhpParser\Node\Name; +use PhpParser\Node\NullableType; use PhpParser\Node\Stmt; class Property implements PhpParser\Builder @@ -14,6 +17,9 @@ class Property implements PhpParser\Builder protected $default = null; protected $attributes = []; + /** @var null|Identifier|Name|NullableType */ + protected $type; + /** * Creates a property builder. * @@ -95,6 +101,19 @@ public function setDocComment($docComment) { return $this; } + /** + * Sets the property type for PHP 7.4+. + * + * @param string|Name|NullableType|Identifier $type + * + * @return $this + */ + public function setType($type) { + $this->type = BuilderHelpers::normalizeType($type); + + return $this; + } + /** * Returns the built class node. * @@ -106,7 +125,8 @@ public function getNode() : PhpParser\Node { [ new Stmt\PropertyProperty($this->name, $this->default) ], - $this->attributes + $this->attributes, + $this->type ); } } diff --git a/vendor/nikic/php-parser/lib/PhpParser/Builder/TraitUse.php b/vendor/nikic/php-parser/lib/PhpParser/Builder/TraitUse.php new file mode 100644 index 0000000000000000000000000000000000000000..311e8cd7b65cb9947127e8d68b54223f3bfd1203 --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Builder/TraitUse.php @@ -0,0 +1,64 @@ +<?php declare(strict_types=1); + +namespace PhpParser\Builder; + +use PhpParser\Builder; +use PhpParser\BuilderHelpers; +use PhpParser\Node; +use PhpParser\Node\Stmt; + +class TraitUse implements Builder +{ + protected $traits = []; + protected $adaptations = []; + + /** + * Creates a trait use builder. + * + * @param Node\Name|string ...$traits Names of used traits + */ + public function __construct(...$traits) { + foreach ($traits as $trait) { + $this->and($trait); + } + } + + /** + * Adds used trait. + * + * @param Node\Name|string $trait Trait name + * + * @return $this The builder instance (for fluid interface) + */ + public function and($trait) { + $this->traits[] = BuilderHelpers::normalizeName($trait); + return $this; + } + + /** + * Adds trait adaptation. + * + * @param Stmt\TraitUseAdaptation|Builder\TraitUseAdaptation $adaptation Trait adaptation + * + * @return $this The builder instance (for fluid interface) + */ + public function with($adaptation) { + $adaptation = BuilderHelpers::normalizeNode($adaptation); + + if (!$adaptation instanceof Stmt\TraitUseAdaptation) { + throw new \LogicException('Adaptation must have type TraitUseAdaptation'); + } + + $this->adaptations[] = $adaptation; + return $this; + } + + /** + * Returns the built node. + * + * @return Node The built node + */ + public function getNode() : Node { + return new Stmt\TraitUse($this->traits, $this->adaptations); + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Builder/TraitUseAdaptation.php b/vendor/nikic/php-parser/lib/PhpParser/Builder/TraitUseAdaptation.php new file mode 100644 index 0000000000000000000000000000000000000000..eb6c0b622dd0c822dd76374675e791f923935674 --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Builder/TraitUseAdaptation.php @@ -0,0 +1,148 @@ +<?php declare(strict_types=1); + +namespace PhpParser\Builder; + +use PhpParser\Builder; +use PhpParser\BuilderHelpers; +use PhpParser\Node; +use PhpParser\Node\Stmt; + +class TraitUseAdaptation implements Builder +{ + const TYPE_UNDEFINED = 0; + const TYPE_ALIAS = 1; + const TYPE_PRECEDENCE = 2; + + /** @var int Type of building adaptation */ + protected $type; + + protected $trait; + protected $method; + + protected $modifier = null; + protected $alias = null; + + protected $insteadof = []; + + /** + * Creates a trait use adaptation builder. + * + * @param Node\Name|string|null $trait Name of adaptated trait + * @param Node\Identifier|string $method Name of adaptated method + */ + public function __construct($trait, $method) { + $this->type = self::TYPE_UNDEFINED; + + $this->trait = is_null($trait)? null: BuilderHelpers::normalizeName($trait); + $this->method = BuilderHelpers::normalizeIdentifier($method); + } + + /** + * Sets alias of method. + * + * @param Node\Identifier|string $alias Alias for adaptated method + * + * @return $this The builder instance (for fluid interface) + */ + public function as($alias) { + if ($this->type === self::TYPE_UNDEFINED) { + $this->type = self::TYPE_ALIAS; + } + + if ($this->type !== self::TYPE_ALIAS) { + throw new \LogicException('Cannot set alias for not alias adaptation buider'); + } + + $this->alias = $alias; + return $this; + } + + /** + * Sets adaptated method public. + * + * @return $this The builder instance (for fluid interface) + */ + public function makePublic() { + $this->setModifier(Stmt\Class_::MODIFIER_PUBLIC); + return $this; + } + + /** + * Sets adaptated method protected. + * + * @return $this The builder instance (for fluid interface) + */ + public function makeProtected() { + $this->setModifier(Stmt\Class_::MODIFIER_PROTECTED); + return $this; + } + + /** + * Sets adaptated method private. + * + * @return $this The builder instance (for fluid interface) + */ + public function makePrivate() { + $this->setModifier(Stmt\Class_::MODIFIER_PRIVATE); + return $this; + } + + /** + * Adds overwritten traits. + * + * @param Node\Name|string ...$traits Traits for overwrite + * + * @return $this The builder instance (for fluid interface) + */ + public function insteadof(...$traits) { + if ($this->type === self::TYPE_UNDEFINED) { + if (is_null($this->trait)) { + throw new \LogicException('Precedence adaptation must have trait'); + } + + $this->type = self::TYPE_PRECEDENCE; + } + + if ($this->type !== self::TYPE_PRECEDENCE) { + throw new \LogicException('Cannot add overwritten traits for not precedence adaptation buider'); + } + + foreach ($traits as $trait) { + $this->insteadof[] = BuilderHelpers::normalizeName($trait); + } + + return $this; + } + + protected function setModifier(int $modifier) { + if ($this->type === self::TYPE_UNDEFINED) { + $this->type = self::TYPE_ALIAS; + } + + if ($this->type !== self::TYPE_ALIAS) { + throw new \LogicException('Cannot set access modifier for not alias adaptation buider'); + } + + if (is_null($this->modifier)) { + $this->modifier = $modifier; + } else { + throw new \LogicException('Multiple access type modifiers are not allowed'); + } + } + + /** + * Returns the built node. + * + * @return Node The built node + */ + public function getNode() : Node { + switch ($this->type) { + case self::TYPE_ALIAS: + return new Stmt\TraitUseAdaptation\Alias($this->trait, $this->method, $this->modifier, $this->alias); + case self::TYPE_PRECEDENCE: + return new Stmt\TraitUseAdaptation\Precedence($this->trait, $this->method, $this->insteadof); + default: + throw new \LogicException('Type of adaptation is not defined'); + } + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/BuilderFactory.php b/vendor/nikic/php-parser/lib/PhpParser/BuilderFactory.php index ee855589997ec38ae1ec40f65b3a412ce08129f0..18bd1cd5c226830dc0b365f2bcd99dfe342bd1b2 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/BuilderFactory.php +++ b/vendor/nikic/php-parser/lib/PhpParser/BuilderFactory.php @@ -8,7 +8,6 @@ use PhpParser\Node\Identifier; use PhpParser\Node\Name; use PhpParser\Node\Scalar\String_; -use PhpParser\Node\Stmt; use PhpParser\Node\Stmt\Use_; class BuilderFactory @@ -57,6 +56,34 @@ public function trait(string $name) : Builder\Trait_ { return new Builder\Trait_($name); } + /** + * Creates a trait use builder. + * + * @param Node\Name|string ...$traits Trait names + * + * @return Builder\TraitUse The create trait use builder + */ + public function useTrait(...$traits) : Builder\TraitUse { + return new Builder\TraitUse(...$traits); + } + + /** + * Creates a trait use adaptation builder. + * + * @param Node\Name|string|null $trait Trait name + * @param Node\Identifier|string $method Method name + * + * @return Builder\TraitUseAdaptation The create trait use adaptation builder + */ + public function traitUseAdaptation($trait, $method = null) : Builder\TraitUseAdaptation { + if ($method === null) { + $method = $trait; + $trait = null; + } + + return new Builder\TraitUseAdaptation($trait, $method); + } + /** * Creates a method builder. * @@ -104,14 +131,36 @@ public function function(string $name) : Builder\Function_ { /** * Creates a namespace/class use builder. * - * @param string|Node\Name $name Name to alias + * @param Node\Name|string $name Name of the entity (namespace or class) to alias * - * @return Builder\Use_ The create use builder + * @return Builder\Use_ The created use builder */ public function use($name) : Builder\Use_ { return new Builder\Use_($name, Use_::TYPE_NORMAL); } + /** + * Creates a function use builder. + * + * @param Node\Name|string $name Name of the function to alias + * + * @return Builder\Use_ The created use function builder + */ + public function useFunction($name) : Builder\Use_ { + return new Builder\Use_($name, Use_::TYPE_FUNCTION); + } + + /** + * Creates a constant use builder. + * + * @param Node\Name|string $name Name of the const to alias + * + * @return Builder\Use_ The created use const builder + */ + public function useConst($name) : Builder\Use_ { + return new Builder\Use_($name, Use_::TYPE_CONSTANT); + } + /** * Creates node a for a literal value. * @@ -123,6 +172,21 @@ public function val($value) : Expr { return BuilderHelpers::normalizeValue($value); } + /** + * Creates variable node. + * + * @param string|Expr $name Name + * + * @return Expr\Variable + */ + public function var($name) : Expr\Variable { + if (!\is_string($name) && !$name instanceof Expr) { + throw new \LogicException('Variable name must be string or Expr'); + } + + return new Expr\Variable($name); + } + /** * Normalizes an argument list. * @@ -218,6 +282,18 @@ public function new($class, array $args = []) : Expr\New_ { public function constFetch($name) : Expr\ConstFetch { return new Expr\ConstFetch(BuilderHelpers::normalizeName($name)); } + + /** + * Creates a property fetch node. + * + * @param Expr $var Variable holding object + * @param string|Identifier|Expr $name Property name + * + * @return Expr\PropertyFetch + */ + public function propertyFetch(Expr $var, $name) : Expr\PropertyFetch { + return new Expr\PropertyFetch($var, BuilderHelpers::normalizeIdentifierOrExpr($name)); + } /** * Creates a class constant fetch node. diff --git a/vendor/nikic/php-parser/lib/PhpParser/BuilderHelpers.php b/vendor/nikic/php-parser/lib/PhpParser/BuilderHelpers.php index d5ae1792d8698aeba50ba9eea9c8477695c2bd80..790e8877eb49242a315ed70561ef165f348b56c3 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/BuilderHelpers.php +++ b/vendor/nikic/php-parser/lib/PhpParser/BuilderHelpers.php @@ -71,7 +71,7 @@ public static function normalizeIdentifier($name) : Identifier { return new Identifier($name); } - throw new \LogicException('Expected string or instance of Node\Identifier or Node\Expr'); + throw new \LogicException('Expected string or instance of Node\Identifier'); } /** diff --git a/vendor/nikic/php-parser/lib/PhpParser/Internal/PrintableNewAnonClassNode.php b/vendor/nikic/php-parser/lib/PhpParser/Internal/PrintableNewAnonClassNode.php index dcacbfb6253e65288fc4e8ab38d71beafd2f48fe..7b019db812b3ee3eb4159c3f8a5af5910c5e39a8 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Internal/PrintableNewAnonClassNode.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Internal/PrintableNewAnonClassNode.php @@ -39,7 +39,8 @@ public function __construct( public static function fromNewNode(Expr\New_ $newNode) { $class = $newNode->class; assert($class instanceof Node\Stmt\Class_); - assert($class->name === null); + // We don't assert that $class->name is null here, to allow consumers to assign unique names + // to anonymous classes for their own purposes. We simplify ignore the name here. return new self( $newNode->args, $class->extends, $class->implements, $class->stmts, $newNode->getAttributes() diff --git a/vendor/nikic/php-parser/lib/PhpParser/Lexer.php b/vendor/nikic/php-parser/lib/PhpParser/Lexer.php index 125c3b806e2ae6bf3be33cac44577f890c82b6ad..dc5e5332c295ea59ea674365a5850362fd95ff7a 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Lexer.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Lexer.php @@ -16,7 +16,13 @@ class Lexer protected $tokenMap; protected $dropTokens; - protected $usedAttributes; + private $attributeStartLineUsed; + private $attributeEndLineUsed; + private $attributeStartTokenPosUsed; + private $attributeEndTokenPosUsed; + private $attributeStartFilePosUsed; + private $attributeEndFilePosUsed; + private $attributeCommentsUsed; /** * Creates a Lexer. @@ -37,12 +43,17 @@ public function __construct(array $options = []) { [\T_WHITESPACE, \T_OPEN_TAG, \T_COMMENT, \T_DOC_COMMENT], 1 ); - // the usedAttributes member is a map of the used attribute names to a dummy - // value (here "true") - $options += [ - 'usedAttributes' => ['comments', 'startLine', 'endLine'], - ]; - $this->usedAttributes = array_fill_keys($options['usedAttributes'], true); + $defaultAttributes = ['comments', 'startLine', 'endLine']; + $usedAttributes = array_fill_keys($options['usedAttributes'] ?? $defaultAttributes, true); + + // Create individual boolean properties to make these checks faster. + $this->attributeStartLineUsed = isset($usedAttributes['startLine']); + $this->attributeEndLineUsed = isset($usedAttributes['endLine']); + $this->attributeStartTokenPosUsed = isset($usedAttributes['startTokenPos']); + $this->attributeEndTokenPosUsed = isset($usedAttributes['endTokenPos']); + $this->attributeStartFilePosUsed = isset($usedAttributes['startFilePos']); + $this->attributeEndFilePosUsed = isset($usedAttributes['endFilePos']); + $this->attributeCommentsUsed = isset($usedAttributes['comments']); } /** @@ -230,13 +241,13 @@ public function getNextToken(&$value = null, &$startAttributes = null, &$endAttr $token = "\0"; } - if (isset($this->usedAttributes['startLine'])) { + if ($this->attributeStartLineUsed) { $startAttributes['startLine'] = $this->line; } - if (isset($this->usedAttributes['startTokenPos'])) { + if ($this->attributeStartTokenPosUsed) { $startAttributes['startTokenPos'] = $this->pos; } - if (isset($this->usedAttributes['startFilePos'])) { + if ($this->attributeStartFilePosUsed) { $startAttributes['startFilePos'] = $this->filePos; } @@ -263,7 +274,7 @@ public function getNextToken(&$value = null, &$startAttributes = null, &$endAttr $this->filePos += \strlen($value); } else { if (\T_COMMENT === $token[0] || \T_DOC_COMMENT === $token[0]) { - if (isset($this->usedAttributes['comments'])) { + if ($this->attributeCommentsUsed) { $comment = \T_DOC_COMMENT === $token[0] ? new Comment\Doc($token[1], $this->line, $this->filePos, $this->pos) : new Comment($token[1], $this->line, $this->filePos, $this->pos); @@ -276,13 +287,13 @@ public function getNextToken(&$value = null, &$startAttributes = null, &$endAttr continue; } - if (isset($this->usedAttributes['endLine'])) { + if ($this->attributeEndLineUsed) { $endAttributes['endLine'] = $this->line; } - if (isset($this->usedAttributes['endTokenPos'])) { + if ($this->attributeEndTokenPosUsed) { $endAttributes['endTokenPos'] = $this->pos; } - if (isset($this->usedAttributes['endFilePos'])) { + if ($this->attributeEndFilePosUsed) { $endAttributes['endFilePos'] = $this->filePos - 1; } diff --git a/vendor/nikic/php-parser/lib/PhpParser/Lexer/Emulative.php b/vendor/nikic/php-parser/lib/PhpParser/Lexer/Emulative.php index 647aaa34caf0d98d0ce898734285813a40f84728..5d10b9af6463eb2950a85d5e60411b6a5d509543 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Lexer/Emulative.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Lexer/Emulative.php @@ -2,7 +2,247 @@ namespace PhpParser\Lexer; -class Emulative extends \PhpParser\Lexer +use PhpParser\Error; +use PhpParser\ErrorHandler; +use PhpParser\Lexer; +use PhpParser\Lexer\TokenEmulator\CoaleseEqualTokenEmulator; +use PhpParser\Lexer\TokenEmulator\FnTokenEmulator; +use PhpParser\Lexer\TokenEmulator\TokenEmulatorInterface; + +class Emulative extends Lexer { - /* No features requiring emulation have been added in PHP > 7.0 */ + const PHP_7_3 = '7.3.0dev'; + const PHP_7_4 = '7.4.0dev'; + + const FLEXIBLE_DOC_STRING_REGEX = <<<'REGEX' +/<<<[ \t]*(['"]?)([a-zA-Z_\x80-\xff][a-zA-Z0-9_\x80-\xff]*)\1\r?\n +(?:.*\r?\n)*? +(?<indentation>\h*)\2(?![a-zA-Z_\x80-\xff])(?<separator>(?:;?[\r\n])?)/x +REGEX; + + /** @var mixed[] Patches used to reverse changes introduced in the code */ + private $patches = []; + + /** @var TokenEmulatorInterface[] */ + private $tokenEmulators = []; + + /** + * @param mixed[] $options + */ + public function __construct(array $options = []) + { + parent::__construct($options); + + // prepare token emulators + $this->tokenEmulators[] = new FnTokenEmulator(); + $this->tokenEmulators[] = new CoaleseEqualTokenEmulator(); + + // add emulated tokens here + foreach ($this->tokenEmulators as $emulativeToken) { + $this->tokenMap[$emulativeToken->getTokenId()] = $emulativeToken->getParserTokenId(); + } + } + + public function startLexing(string $code, ErrorHandler $errorHandler = null) { + $this->patches = []; + + if ($this->isEmulationNeeded($code) === false) { + // Nothing to emulate, yay + parent::startLexing($code, $errorHandler); + return; + } + + $collector = new ErrorHandler\Collecting(); + + // 1. emulation of heredoc and nowdoc new syntax + $preparedCode = $this->processHeredocNowdoc($code); + parent::startLexing($preparedCode, $collector); + + // add token emulation + foreach ($this->tokenEmulators as $emulativeToken) { + if ($emulativeToken->isEmulationNeeded($code)) { + $this->tokens = $emulativeToken->emulate($code, $this->tokens); + } + } + + $this->fixupTokens(); + + $errors = $collector->getErrors(); + if (!empty($errors)) { + $this->fixupErrors($errors); + foreach ($errors as $error) { + $errorHandler->handleError($error); + } + } + } + + private function isHeredocNowdocEmulationNeeded(string $code): bool + { + // skip version where this works without emulation + if (version_compare(\PHP_VERSION, self::PHP_7_3, '>=')) { + return false; + } + + return strpos($code, '<<<') !== false; + } + + private function processHeredocNowdoc(string $code): string + { + if ($this->isHeredocNowdocEmulationNeeded($code) === false) { + return $code; + } + + if (!preg_match_all(self::FLEXIBLE_DOC_STRING_REGEX, $code, $matches, PREG_SET_ORDER|PREG_OFFSET_CAPTURE)) { + // No heredoc/nowdoc found + return $code; + } + + // Keep track of how much we need to adjust string offsets due to the modifications we + // already made + $posDelta = 0; + foreach ($matches as $match) { + $indentation = $match['indentation'][0]; + $indentationStart = $match['indentation'][1]; + + $separator = $match['separator'][0]; + $separatorStart = $match['separator'][1]; + + if ($indentation === '' && $separator !== '') { + // Ordinary heredoc/nowdoc + continue; + } + + if ($indentation !== '') { + // Remove indentation + $indentationLen = strlen($indentation); + $code = substr_replace($code, '', $indentationStart + $posDelta, $indentationLen); + $this->patches[] = [$indentationStart + $posDelta, 'add', $indentation]; + $posDelta -= $indentationLen; + } + + if ($separator === '') { + // Insert newline as separator + $code = substr_replace($code, "\n", $separatorStart + $posDelta, 0); + $this->patches[] = [$separatorStart + $posDelta, 'remove', "\n"]; + $posDelta += 1; + } + } + + return $code; + } + + private function isEmulationNeeded(string $code): bool + { + foreach ($this->tokenEmulators as $emulativeToken) { + if ($emulativeToken->isEmulationNeeded($code)) { + return true; + } + } + + return $this->isHeredocNowdocEmulationNeeded($code); + } + + private function fixupTokens() + { + if (\count($this->patches) === 0) { + return; + } + + // Load first patch + $patchIdx = 0; + + list($patchPos, $patchType, $patchText) = $this->patches[$patchIdx]; + + // We use a manual loop over the tokens, because we modify the array on the fly + $pos = 0; + for ($i = 0, $c = \count($this->tokens); $i < $c; $i++) { + $token = $this->tokens[$i]; + if (\is_string($token)) { + // We assume that patches don't apply to string tokens + $pos += \strlen($token); + continue; + } + + $len = \strlen($token[1]); + $posDelta = 0; + while ($patchPos >= $pos && $patchPos < $pos + $len) { + $patchTextLen = \strlen($patchText); + if ($patchType === 'remove') { + if ($patchPos === $pos && $patchTextLen === $len) { + // Remove token entirely + array_splice($this->tokens, $i, 1, []); + $i--; + $c--; + } else { + // Remove from token string + $this->tokens[$i][1] = substr_replace( + $token[1], '', $patchPos - $pos + $posDelta, $patchTextLen + ); + $posDelta -= $patchTextLen; + } + } elseif ($patchType === 'add') { + // Insert into the token string + $this->tokens[$i][1] = substr_replace( + $token[1], $patchText, $patchPos - $pos + $posDelta, 0 + ); + $posDelta += $patchTextLen; + } else { + assert(false); + } + + // Fetch the next patch + $patchIdx++; + if ($patchIdx >= \count($this->patches)) { + // No more patches, we're done + return; + } + + list($patchPos, $patchType, $patchText) = $this->patches[$patchIdx]; + + // Multiple patches may apply to the same token. Reload the current one to check + // If the new patch applies + $token = $this->tokens[$i]; + } + + $pos += $len; + } + + // A patch did not apply + assert(false); + } + + /** + * Fixup line and position information in errors. + * + * @param Error[] $errors + */ + private function fixupErrors(array $errors) { + foreach ($errors as $error) { + $attrs = $error->getAttributes(); + + $posDelta = 0; + $lineDelta = 0; + foreach ($this->patches as $patch) { + list($patchPos, $patchType, $patchText) = $patch; + if ($patchPos >= $attrs['startFilePos']) { + // No longer relevant + break; + } + + if ($patchType === 'add') { + $posDelta += strlen($patchText); + $lineDelta += substr_count($patchText, "\n"); + } else { + $posDelta -= strlen($patchText); + $lineDelta -= substr_count($patchText, "\n"); + } + } + + $attrs['startFilePos'] += $posDelta; + $attrs['endFilePos'] += $posDelta; + $attrs['startLine'] += $lineDelta; + $attrs['endLine'] += $lineDelta; + $error->setAttributes($attrs); + } + } } diff --git a/vendor/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/CoaleseEqualTokenEmulator.php b/vendor/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/CoaleseEqualTokenEmulator.php new file mode 100644 index 0000000000000000000000000000000000000000..ca6cf1340057bab92cdd67e692d5626e0b6ae05b --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/CoaleseEqualTokenEmulator.php @@ -0,0 +1,54 @@ +<?php declare(strict_types=1); + +namespace PhpParser\Lexer\TokenEmulator; + +use PhpParser\Lexer\Emulative; +use PhpParser\Parser\Tokens; + +final class CoaleseEqualTokenEmulator implements TokenEmulatorInterface +{ + const T_COALESCE_EQUAL = 1007; + + public function getTokenId(): int + { + return self::T_COALESCE_EQUAL; + } + + public function getParserTokenId(): int + { + return Tokens::T_COALESCE_EQUAL; + } + + public function isEmulationNeeded(string $code) : bool + { + // skip version where this is supported + if (version_compare(\PHP_VERSION, Emulative::PHP_7_4, '>=')) { + return false; + } + + return strpos($code, '??=') !== false; + } + + public function emulate(string $code, array $tokens): array + { + // We need to manually iterate and manage a count because we'll change + // the tokens array on the way + $line = 1; + for ($i = 0, $c = count($tokens); $i < $c; ++$i) { + if (isset($tokens[$i + 1])) { + if ($tokens[$i][0] === T_COALESCE && $tokens[$i + 1] === '=') { + array_splice($tokens, $i, 2, [ + [self::T_COALESCE_EQUAL, '??=', $line] + ]); + $c--; + continue; + } + } + if (\is_array($tokens[$i])) { + $line += substr_count($tokens[$i][1], "\n"); + } + } + + return $tokens; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/FnTokenEmulator.php b/vendor/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/FnTokenEmulator.php new file mode 100644 index 0000000000000000000000000000000000000000..2059693ae1d53111c05716971121bb57ff8397ca --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/FnTokenEmulator.php @@ -0,0 +1,66 @@ +<?php declare(strict_types=1); + +namespace PhpParser\Lexer\TokenEmulator; + +use PhpParser\Lexer\Emulative; +use PhpParser\Parser\Tokens; + +final class FnTokenEmulator implements TokenEmulatorInterface +{ + const T_FN = 1008; + + public function getTokenId(): int + { + return self::T_FN; + } + + public function getParserTokenId(): int + { + return Tokens::T_FN; + } + + public function isEmulationNeeded(string $code) : bool + { + // skip version where this is supported + if (version_compare(\PHP_VERSION, Emulative::PHP_7_4, '>=')) { + return false; + } + + return strpos($code, 'fn') !== false; + } + + public function emulate(string $code, array $tokens): array + { + // We need to manually iterate and manage a count because we'll change + // the tokens array on the way + foreach ($tokens as $i => $token) { + if ($token[0] === T_STRING && $token[1] === 'fn') { + $previousNonSpaceToken = $this->getPreviousNonSpaceToken($tokens, $i); + if ($previousNonSpaceToken !== null && $previousNonSpaceToken[0] === T_OBJECT_OPERATOR) { + continue; + } + + $tokens[$i][0] = self::T_FN; + } + } + + return $tokens; + } + + /** + * @param mixed[] $tokens + * @return mixed[]|null + */ + private function getPreviousNonSpaceToken(array $tokens, int $start) + { + for ($i = $start - 1; $i >= 0; --$i) { + if ($tokens[$i][0] === T_WHITESPACE) { + continue; + } + + return $tokens[$i]; + } + + return null; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/TokenEmulatorInterface.php b/vendor/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/TokenEmulatorInterface.php new file mode 100644 index 0000000000000000000000000000000000000000..6ef5b9d0689ed118dd00f6b058f0db1f6d186a53 --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/TokenEmulatorInterface.php @@ -0,0 +1,17 @@ +<?php declare(strict_types=1); + +namespace PhpParser\Lexer\TokenEmulator; + +interface TokenEmulatorInterface +{ + public function getTokenId(): int; + + public function getParserTokenId(): int; + + public function isEmulationNeeded(string $code): bool; + + /** + * @return array Modified Tokens + */ + public function emulate(string $code, array $tokens): array; +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Arg.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Arg.php index f89bf86de1a376887cfe05c91f3f8aba7134a9eb..a585ddc3be0bb8e25f82ade2688f7f9ac6db0d6f 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Arg.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Arg.php @@ -22,7 +22,7 @@ class Arg extends NodeAbstract * @param array $attributes Additional attributes */ public function __construct(Expr $value, bool $byRef = false, bool $unpack = false, array $attributes = []) { - parent::__construct($attributes); + $this->attributes = $attributes; $this->value = $value; $this->byRef = $byRef; $this->unpack = $unpack; diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Const_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Const_.php index 76a220f4de1c82ce1b0e20023c759064a81ae8c5..4094a653dc2a46fb298656865bbc3e450703189f 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Const_.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Const_.php @@ -22,7 +22,7 @@ class Const_ extends NodeAbstract * @param array $attributes Additional attributes */ public function __construct($name, Expr $value, array $attributes = []) { - parent::__construct($attributes); + $this->attributes = $attributes; $this->name = \is_string($name) ? new Identifier($name) : $name; $this->value = $value; } diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ArrayDimFetch.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ArrayDimFetch.php index 7c7dcecfc922061854a7c9c8e3ef9d2a1948dfa7..71694478e946b9fe9729574cb1c67e0d7fe208fd 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ArrayDimFetch.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ArrayDimFetch.php @@ -19,7 +19,7 @@ class ArrayDimFetch extends Expr * @param array $attributes Additional attributes */ public function __construct(Expr $var, Expr $dim = null, array $attributes = []) { - parent::__construct($attributes); + $this->attributes = $attributes; $this->var = $var; $this->dim = $dim; } diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ArrayItem.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ArrayItem.php index bf9c7fdef440bf1914b185e730dc70b4737e725f..1b078f82183200acde9c7374ae8acad2e3d0d529 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ArrayItem.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ArrayItem.php @@ -12,6 +12,8 @@ class ArrayItem extends Expr public $value; /** @var bool Whether to assign by reference */ public $byRef; + /** @var bool Whether to unpack the argument */ + public $unpack; /** * Constructs an array item node. @@ -21,17 +23,18 @@ class ArrayItem extends Expr * @param bool $byRef Whether to assign by reference * @param array $attributes Additional attributes */ - public function __construct(Expr $value, Expr $key = null, bool $byRef = false, array $attributes = []) { - parent::__construct($attributes); + public function __construct(Expr $value, Expr $key = null, bool $byRef = false, array $attributes = [], bool $unpack = false) { + $this->attributes = $attributes; $this->key = $key; $this->value = $value; $this->byRef = $byRef; + $this->unpack = $unpack; } public function getSubNodeNames() : array { - return ['key', 'value', 'byRef']; + return ['key', 'value', 'byRef', 'unpack']; } - + public function getType() : string { return 'Expr_ArrayItem'; } diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Array_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Array_.php index 061c52e3832050affe7710ac56c60a52e8e1b961..fbe207ee3026b566488d34f9120dfa8af67b5618 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Array_.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Array_.php @@ -20,7 +20,7 @@ class Array_ extends Expr * @param array $attributes Additional attributes */ public function __construct(array $items = [], array $attributes = []) { - parent::__construct($attributes); + $this->attributes = $attributes; $this->items = $items; } diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ArrowFunction.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ArrowFunction.php new file mode 100644 index 0000000000000000000000000000000000000000..b4b816f622ce831cd2fff8f7c761993abf3d4ed7 --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ArrowFunction.php @@ -0,0 +1,71 @@ +<?php declare(strict_types=1); + +namespace PhpParser\Node\Expr; + +use PhpParser\Node; +use PhpParser\Node\Expr; +use PhpParser\Node\FunctionLike; + +class ArrowFunction extends Expr implements FunctionLike +{ + /** @var bool */ + public $static; + + /** @var bool */ + public $byRef; + + /** @var Node\Param[] */ + public $params = []; + + /** @var null|Node\Identifier|Node\Name|Node\NullableType */ + public $returnType; + + /** @var Expr */ + public $expr; + + /** + * @param array $subNodes Array of the following optional subnodes: + * 'static' => false : Whether the closure is static + * 'byRef' => false : Whether to return by reference + * 'params' => array() : Parameters + * 'returnType' => null : Return type + * 'expr' => Expr : Expression body + * @param array $attributes Additional attributes + */ + public function __construct(array $subNodes = [], array $attributes = []) { + $this->attributes = $attributes; + $this->static = $subNodes['static'] ?? false; + $this->byRef = $subNodes['byRef'] ?? false; + $this->params = $subNodes['params'] ?? []; + $returnType = $subNodes['returnType'] ?? null; + $this->returnType = \is_string($returnType) ? new Node\Identifier($returnType) : $returnType; + $this->expr = $subNodes['expr'] ?? null; + } + + public function getSubNodeNames() : array { + return ['static', 'byRef', 'params', 'returnType', 'expr']; + } + + public function returnsByRef() : bool { + return $this->byRef; + } + + public function getParams() : array { + return $this->params; + } + + public function getReturnType() { + return $this->returnType; + } + + /** + * @return Node\Stmt\Return_[] + */ + public function getStmts() : array { + return [new Node\Stmt\Return_($this->expr)]; + } + + public function getType() : string { + return 'Expr_ArrowFunction'; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Assign.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Assign.php index 1306c88f2076ea798621a9bcf00ef0f96f580602..cf9e6e82b465aea897da13819cc6a337a0fee192 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Assign.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Assign.php @@ -19,7 +19,7 @@ class Assign extends Expr * @param array $attributes Additional attributes */ public function __construct(Expr $var, Expr $expr, array $attributes = []) { - parent::__construct($attributes); + $this->attributes = $attributes; $this->var = $var; $this->expr = $expr; } diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp.php index e5bdbf58f4310c02cfeadf3273bd6678601a0667..bce8604f14d07dbcf8a97162006961aa9feba981 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp.php @@ -19,7 +19,7 @@ abstract class AssignOp extends Expr * @param array $attributes Additional attributes */ public function __construct(Expr $var, Expr $expr, array $attributes = []) { - parent::__construct($attributes); + $this->attributes = $attributes; $this->var = $var; $this->expr = $expr; } diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Coalesce.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Coalesce.php new file mode 100644 index 0000000000000000000000000000000000000000..c0e9b316cf08ecdf6e688891a20c3b6fd949927b --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Coalesce.php @@ -0,0 +1,12 @@ +<?php declare(strict_types=1); + +namespace PhpParser\Node\Expr\AssignOp; + +use PhpParser\Node\Expr\AssignOp; + +class Coalesce extends AssignOp +{ + public function getType() : string { + return 'Expr_AssignOp_Coalesce'; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/AssignRef.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/AssignRef.php index acedb0b8e6fed3e7aa48aa006c22af75f8609a1b..de3c644c3c129b793fbc5feb86ee24e3026e7aac 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/AssignRef.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/AssignRef.php @@ -19,7 +19,7 @@ class AssignRef extends Expr * @param array $attributes Additional attributes */ public function __construct(Expr $var, Expr $expr, array $attributes = []) { - parent::__construct($attributes); + $this->attributes = $attributes; $this->var = $var; $this->expr = $expr; } diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp.php index 466b01a22f5be73a7510d95ea496eec2c3d2e88f..d9c582b0d25cc0c4f0f00fdc9feeabb4255a4539 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp.php @@ -19,7 +19,7 @@ abstract class BinaryOp extends Expr * @param array $attributes Additional attributes */ public function __construct(Expr $left, Expr $right, array $attributes = []) { - parent::__construct($attributes); + $this->attributes = $attributes; $this->left = $left; $this->right = $right; } diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BitwiseNot.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BitwiseNot.php index f96fdddc79a5f1ba925e3473284d3ad47a27968e..ed44984beaa42ea3deee0b91a652d8bf772988a6 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BitwiseNot.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BitwiseNot.php @@ -16,7 +16,7 @@ class BitwiseNot extends Expr * @param array $attributes Additional attributes */ public function __construct(Expr $expr, array $attributes = []) { - parent::__construct($attributes); + $this->attributes = $attributes; $this->expr = $expr; } diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BooleanNot.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BooleanNot.php index 1ae74b165eec69f923c562dd33d5a067da3372f2..bf27e9f657b0f30750aad99c57b949806beae6e0 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BooleanNot.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BooleanNot.php @@ -16,7 +16,7 @@ class BooleanNot extends Expr * @param array $attributes Additional attributes */ public function __construct(Expr $expr, array $attributes = []) { - parent::__construct($attributes); + $this->attributes = $attributes; $this->expr = $expr; } diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Cast.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Cast.php index 8fd0285e55a5fb67ecc0b92e9b9fec31b771b1a0..36769d4fc6b56562fd2407324a99c12dada907c4 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Cast.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Cast.php @@ -16,7 +16,7 @@ abstract class Cast extends Expr * @param array $attributes Additional attributes */ public function __construct(Expr $expr, array $attributes = []) { - parent::__construct($attributes); + $this->attributes = $attributes; $this->expr = $expr; } diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Double.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Double.php index 0cee5543962e36cd982cabddf7779d526118e236..891ba5f87085921a0d986af00d592493d95e3004 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Double.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Double.php @@ -6,6 +6,11 @@ class Double extends Cast { + // For use in "kind" attribute + const KIND_DOUBLE = 1; // "double" syntax + const KIND_FLOAT = 2; // "float" syntax + const KIND_REAL = 3; // "real" syntax + public function getType() : string { return 'Expr_Cast_Double'; } diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ClassConstFetch.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ClassConstFetch.php index 9aaea3c9da9a5d6a50d0e70cf84c79e5e7eb9cdf..faf832f9380bec04fd32305b64a3e0b02feaa9d0 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ClassConstFetch.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ClassConstFetch.php @@ -21,7 +21,7 @@ class ClassConstFetch extends Expr * @param array $attributes Additional attributes */ public function __construct($class, $name, array $attributes = []) { - parent::__construct($attributes); + $this->attributes = $attributes; $this->class = $class; $this->name = \is_string($name) ? new Identifier($name) : $name; } diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Clone_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Clone_.php index 9f6931a698799881ee8ad63df3de4732fa93627d..db216b8f8416f8872f2aceb0c4d8c9349ce5220b 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Clone_.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Clone_.php @@ -16,7 +16,7 @@ class Clone_ extends Expr * @param array $attributes Additional attributes */ public function __construct(Expr $expr, array $attributes = []) { - parent::__construct($attributes); + $this->attributes = $attributes; $this->expr = $expr; } diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Closure.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Closure.php index 261b4440b9596bb412267af71646dc9e1709546d..dfda88a7a9223935b3812aec297d6138e56815a1 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Closure.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Closure.php @@ -34,7 +34,7 @@ class Closure extends Expr implements FunctionLike * @param array $attributes Additional attributes */ public function __construct(array $subNodes = [], array $attributes = []) { - parent::__construct($attributes); + $this->attributes = $attributes; $this->static = $subNodes['static'] ?? false; $this->byRef = $subNodes['byRef'] ?? false; $this->params = $subNodes['params'] ?? []; diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ClosureUse.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ClosureUse.php index 4c551684696c4ce71985972fd8c062b9456a8134..2b8a096666388891f5bb6c15b23193b8debc8846 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ClosureUse.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ClosureUse.php @@ -19,7 +19,7 @@ class ClosureUse extends Expr * @param array $attributes Additional attributes */ public function __construct(Expr\Variable $var, bool $byRef = false, array $attributes = []) { - parent::__construct($attributes); + $this->attributes = $attributes; $this->var = $var; $this->byRef = $byRef; } diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ConstFetch.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ConstFetch.php index 875ddf3c39c1624eb5bbbe288b759c735912cd3d..14ebd16bd8400b6d3118c15cff9ea2136c6edb38 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ConstFetch.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ConstFetch.php @@ -17,7 +17,7 @@ class ConstFetch extends Expr * @param array $attributes Additional attributes */ public function __construct(Name $name, array $attributes = []) { - parent::__construct($attributes); + $this->attributes = $attributes; $this->name = $name; } diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Empty_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Empty_.php index 2e0c43b0e7036ab4a76f808e5d9120f8e9622408..4042ec93ca37a8f546d2a78bc362f4dfb378c9ff 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Empty_.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Empty_.php @@ -16,7 +16,7 @@ class Empty_ extends Expr * @param array $attributes Additional attributes */ public function __construct(Expr $expr, array $attributes = []) { - parent::__construct($attributes); + $this->attributes = $attributes; $this->expr = $expr; } diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Error.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Error.php index 90f6cbbcd1b8348b54e7c616c07b4e3fedcf7d02..1637f3aeae0a52ea4bdbc442f6816ea21c42ca17 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Error.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Error.php @@ -18,7 +18,7 @@ class Error extends Expr * @param array $attributes Additional attributes */ public function __construct(array $attributes = []) { - parent::__construct($attributes); + $this->attributes = $attributes; } public function getSubNodeNames() : array { diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ErrorSuppress.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ErrorSuppress.php index 345c8d46049abee01b94e1708dfd8c8a6f797950..c44ff6f93181748a0dcf56977bde40f8ed9b6558 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ErrorSuppress.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ErrorSuppress.php @@ -16,7 +16,7 @@ class ErrorSuppress extends Expr * @param array $attributes Additional attributes */ public function __construct(Expr $expr, array $attributes = []) { - parent::__construct($attributes); + $this->attributes = $attributes; $this->expr = $expr; } diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Eval_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Eval_.php index d421595a9fc20afe8ef06167ddc48b518cb79cf0..856854743877cfd17c0d38bd2c2d0d5891e93422 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Eval_.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Eval_.php @@ -16,7 +16,7 @@ class Eval_ extends Expr * @param array $attributes Additional attributes */ public function __construct(Expr $expr, array $attributes = []) { - parent::__construct($attributes); + $this->attributes = $attributes; $this->expr = $expr; } diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Exit_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Exit_.php index 58134811ebf348730ae5caf812d6abac8df0e6d0..b88a8f7e6f3f3912a6f9d32c18c3575da14e3406 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Exit_.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Exit_.php @@ -20,7 +20,7 @@ class Exit_ extends Expr * @param array $attributes Additional attributes */ public function __construct(Expr $expr = null, array $attributes = []) { - parent::__construct($attributes); + $this->attributes = $attributes; $this->expr = $expr; } diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/FuncCall.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/FuncCall.php index 79457670c9a9857072db5d9591e2988af17ae3c5..1e8afa55962e994e2a699c710c890f40ff766a4b 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/FuncCall.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/FuncCall.php @@ -20,7 +20,7 @@ class FuncCall extends Expr * @param array $attributes Additional attributes */ public function __construct($name, array $args = [], array $attributes = []) { - parent::__construct($attributes); + $this->attributes = $attributes; $this->name = $name; $this->args = $args; } diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Include_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Include_.php index aa6e55d182dc4f50028b2cb472e14f1e8e1b506e..07ce5968e40e4ffe72d298ca9d894a7b8a9ff8f6 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Include_.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Include_.php @@ -24,7 +24,7 @@ class Include_ extends Expr * @param array $attributes Additional attributes */ public function __construct(Expr $expr, int $type, array $attributes = []) { - parent::__construct($attributes); + $this->attributes = $attributes; $this->expr = $expr; $this->type = $type; } diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Instanceof_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Instanceof_.php index 5b73d027f176ba56fa842148814647013d869759..9000d47bb1b0e36ff70a064c9e934a688bb58ce3 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Instanceof_.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Instanceof_.php @@ -20,7 +20,7 @@ class Instanceof_ extends Expr * @param array $attributes Additional attributes */ public function __construct(Expr $expr, $class, array $attributes = []) { - parent::__construct($attributes); + $this->attributes = $attributes; $this->expr = $expr; $this->class = $class; } diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Isset_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Isset_.php index 5e192cfea1006cfdadac10c9bf1a98ae8adbfb14..76b7387587b87e78e12f671f21db82eb1b169a70 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Isset_.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Isset_.php @@ -16,7 +16,7 @@ class Isset_ extends Expr * @param array $attributes Additional attributes */ public function __construct(array $vars, array $attributes = []) { - parent::__construct($attributes); + $this->attributes = $attributes; $this->vars = $vars; } diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/List_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/List_.php index cc156e3a6480676037a74a84cb4225ef4bcfa22c..c27a27b95738d2ccb8cb06684a358253391d38be 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/List_.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/List_.php @@ -16,7 +16,7 @@ class List_ extends Expr * @param array $attributes Additional attributes */ public function __construct(array $items, array $attributes = []) { - parent::__construct($attributes); + $this->attributes = $attributes; $this->items = $items; } diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/MethodCall.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/MethodCall.php index e0fe327101c53235bb6f16cb0ac18cde9e0f575f..bd81bb43f6d7ec53cb2d15ff11da0f5361548c5c 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/MethodCall.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/MethodCall.php @@ -24,7 +24,7 @@ class MethodCall extends Expr * @param array $attributes Additional attributes */ public function __construct(Expr $var, $name, array $args = [], array $attributes = []) { - parent::__construct($attributes); + $this->attributes = $attributes; $this->var = $var; $this->name = \is_string($name) ? new Identifier($name) : $name; $this->args = $args; diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/New_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/New_.php index f438008278c1c29da9b22214ddd4c57c9af88b9b..c86f0c60158171ad14dfa62d396efdfad78c8d77 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/New_.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/New_.php @@ -20,7 +20,7 @@ class New_ extends Expr * @param array $attributes Additional attributes */ public function __construct($class, array $args = [], array $attributes = []) { - parent::__construct($attributes); + $this->attributes = $attributes; $this->class = $class; $this->args = $args; } diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/PostDec.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/PostDec.php index c3f21a2c3d64f71aba0a63ac011fd159801848a2..94d6c296d89b18aae05fa8c5bde48ae68a2cc830 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/PostDec.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/PostDec.php @@ -16,7 +16,7 @@ class PostDec extends Expr * @param array $attributes Additional attributes */ public function __construct(Expr $var, array $attributes = []) { - parent::__construct($attributes); + $this->attributes = $attributes; $this->var = $var; } diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/PostInc.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/PostInc.php index e8b07d8066b89d9b8fa88af47c81979f031bc812..005c443a2de79e1e02681cd04abe59a4c1eb4ad6 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/PostInc.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/PostInc.php @@ -16,7 +16,7 @@ class PostInc extends Expr * @param array $attributes Additional attributes */ public function __construct(Expr $var, array $attributes = []) { - parent::__construct($attributes); + $this->attributes = $attributes; $this->var = $var; } diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/PreDec.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/PreDec.php index d31b2580ec6de6a914b8458c2ad84a8eebd5ba52..a5ca685a8a6524f2910844454ef8828fd37de8fd 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/PreDec.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/PreDec.php @@ -16,7 +16,7 @@ class PreDec extends Expr * @param array $attributes Additional attributes */ public function __construct(Expr $var, array $attributes = []) { - parent::__construct($attributes); + $this->attributes = $attributes; $this->var = $var; } diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/PreInc.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/PreInc.php index 68be695b860e61b10626b884bc5b29923c9a2319..0986c447483fd3b63831ec030963d6e395d6d365 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/PreInc.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/PreInc.php @@ -16,7 +16,7 @@ class PreInc extends Expr * @param array $attributes Additional attributes */ public function __construct(Expr $var, array $attributes = []) { - parent::__construct($attributes); + $this->attributes = $attributes; $this->var = $var; } diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Print_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Print_.php index 9d514e6501d500a2eaaf37e56d3d9e657719fa97..2d43c2ac82a3d8f58d79c1650756a9d057ca9188 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Print_.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Print_.php @@ -16,7 +16,7 @@ class Print_ extends Expr * @param array $attributes Additional attributes */ public function __construct(Expr $expr, array $attributes = []) { - parent::__construct($attributes); + $this->attributes = $attributes; $this->expr = $expr; } diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/PropertyFetch.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/PropertyFetch.php index 90efef3d8c6ed48954927ac52c0c3a63bd52db7c..4281f31ccf5c1c348e16e2ff05959015c7940f32 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/PropertyFetch.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/PropertyFetch.php @@ -20,7 +20,7 @@ class PropertyFetch extends Expr * @param array $attributes Additional attributes */ public function __construct(Expr $var, $name, array $attributes = []) { - parent::__construct($attributes); + $this->attributes = $attributes; $this->var = $var; $this->name = \is_string($name) ? new Identifier($name) : $name; } diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ShellExec.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ShellExec.php index 59708d66a40c5589a3f557914bbad45990d80af0..537a7cc80926622020e359f381da5a8190470795 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ShellExec.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ShellExec.php @@ -16,7 +16,7 @@ class ShellExec extends Expr * @param array $attributes Additional attributes */ public function __construct(array $parts, array $attributes = []) { - parent::__construct($attributes); + $this->attributes = $attributes; $this->parts = $parts; } diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/StaticCall.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/StaticCall.php index 5dc2d31617490ee7709497777a14bbbf92fbf1fe..9883f5af515aa93a27c9feef6502ac1f47848210 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/StaticCall.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/StaticCall.php @@ -10,7 +10,7 @@ class StaticCall extends Expr { /** @var Node\Name|Expr Class name */ public $class; - /** @var string|Identifier|Expr Method name */ + /** @var Identifier|Expr Method name */ public $name; /** @var Node\Arg[] Arguments */ public $args; @@ -24,7 +24,7 @@ class StaticCall extends Expr * @param array $attributes Additional attributes */ public function __construct($class, $name, array $args = [], array $attributes = []) { - parent::__construct($attributes); + $this->attributes = $attributes; $this->class = $class; $this->name = \is_string($name) ? new Identifier($name) : $name; $this->args = $args; diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/StaticPropertyFetch.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/StaticPropertyFetch.php index 809b66620306a59c6599dc8bbd8f0626ea40eb94..1ee1a25e50d66d1f44bd3f1b4ddc201a2020044b 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/StaticPropertyFetch.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/StaticPropertyFetch.php @@ -21,7 +21,7 @@ class StaticPropertyFetch extends Expr * @param array $attributes Additional attributes */ public function __construct($class, $name, array $attributes = []) { - parent::__construct($attributes); + $this->attributes = $attributes; $this->class = $class; $this->name = \is_string($name) ? new VarLikeIdentifier($name) : $name; } diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Ternary.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Ternary.php index cb36145e2aa5705ed17ca9f8fa55739a8733f055..9316f47d4dc7e5782abac0092922546750792660 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Ternary.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Ternary.php @@ -22,7 +22,7 @@ class Ternary extends Expr * @param array $attributes Additional attributes */ public function __construct(Expr $cond, $if, Expr $else, array $attributes = []) { - parent::__construct($attributes); + $this->attributes = $attributes; $this->cond = $cond; $this->if = $if; $this->else = $else; diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/UnaryMinus.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/UnaryMinus.php index 90be0e05e1f63e2e39d3aeea9f1b38145bf66fc6..ce8808bc6489791b8ba730527316a49618f437f3 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/UnaryMinus.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/UnaryMinus.php @@ -16,7 +16,7 @@ class UnaryMinus extends Expr * @param array $attributes Additional attributes */ public function __construct(Expr $expr, array $attributes = []) { - parent::__construct($attributes); + $this->attributes = $attributes; $this->expr = $expr; } diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/UnaryPlus.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/UnaryPlus.php index 1a5bc6324115451940b46453f7467384d1f8b797..d23047e54efcd117dbebca52255a08cbf57169cf 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/UnaryPlus.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/UnaryPlus.php @@ -16,7 +16,7 @@ class UnaryPlus extends Expr * @param array $attributes Additional attributes */ public function __construct(Expr $expr, array $attributes = []) { - parent::__construct($attributes); + $this->attributes = $attributes; $this->expr = $expr; } diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Variable.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Variable.php index b100f2140f83a93888e2908404f4955fa741523b..1f2b2314a3b636426c10bd3385d03bde769aa1fd 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Variable.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Variable.php @@ -16,7 +16,7 @@ class Variable extends Expr * @param array $attributes Additional attributes */ public function __construct($name, array $attributes = []) { - parent::__construct($attributes); + $this->attributes = $attributes; $this->name = $name; } diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/YieldFrom.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/YieldFrom.php index ab3a275423aa6c299c14182b3b8776c1c8a1bc70..a3efce618cd072c011d66738d52994b8ff158eed 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/YieldFrom.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/YieldFrom.php @@ -16,7 +16,7 @@ class YieldFrom extends Expr * @param array $attributes Additional attributes */ public function __construct(Expr $expr, array $attributes = []) { - parent::__construct($attributes); + $this->attributes = $attributes; $this->expr = $expr; } diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Yield_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Yield_.php index a28a701a5e37e96a95628d9b3384353e5641aa35..aef8fc333dd8ed37b10a7afa2374d863d124cd52 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Yield_.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Yield_.php @@ -19,7 +19,7 @@ class Yield_ extends Expr * @param array $attributes Additional attributes */ public function __construct(Expr $value = null, Expr $key = null, array $attributes = []) { - parent::__construct($attributes); + $this->attributes = $attributes; $this->key = $key; $this->value = $value; } diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Identifier.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Identifier.php index 485b5b9d72cbed0e6b1282bc87ec27424029927b..2f262db0aa569e93f00f81122bf4ade1f18c212c 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Identifier.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Identifier.php @@ -25,7 +25,7 @@ class Identifier extends NodeAbstract * @param array $attributes Additional attributes */ public function __construct(string $name, array $attributes = []) { - parent::__construct($attributes); + $this->attributes = $attributes; $this->name = $name; } diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Name.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Name.php index 5d923d02a84a312ad5ca288dd6e01f416d067049..7ebdd579cf0bdec468660e859f6cf38c7e15d255 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Name.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Name.php @@ -6,9 +6,7 @@ class Name extends NodeAbstract { - /** - * @var string[] Parts of the name - */ + /** @var string[] Parts of the name */ public $parts; private static $specialClassNames = [ @@ -24,7 +22,7 @@ class Name extends NodeAbstract * @param array $attributes Additional attributes */ public function __construct($name, array $attributes = []) { - parent::__construct($attributes); + $this->attributes = $attributes; $this->parts = self::prepareName($name); } @@ -237,7 +235,7 @@ private static function prepareName($name) : array { 'Expected string, array of parts or Name instance' ); } - + public function getType() : string { return 'Name'; } diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/NullableType.php b/vendor/nikic/php-parser/lib/PhpParser/Node/NullableType.php index 3679269e9026d3c78e5053ff7996875774b18c41..36463657e98905df5cc4e4b30db53428b0886c90 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/NullableType.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/NullableType.php @@ -16,7 +16,7 @@ class NullableType extends NodeAbstract * @param array $attributes Additional attributes */ public function __construct($type, array $attributes = []) { - parent::__construct($attributes); + $this->attributes = $attributes; $this->type = \is_string($type) ? new Identifier($type) : $type; } diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Param.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Param.php index 0b53f67cc78c27804b2cf63e20a55313db572abd..5bc8a1cb88f5ebae7718caab5a858a0652be3fe7 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Param.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Param.php @@ -6,7 +6,7 @@ class Param extends NodeAbstract { - /** @var null|Identifier|Name|NullableType Typehint */ + /** @var null|Identifier|Name|NullableType Type declaration */ public $type; /** @var bool Whether parameter is passed by reference */ public $byRef; @@ -20,18 +20,18 @@ class Param extends NodeAbstract /** * Constructs a parameter node. * - * @param Expr\Variable|Expr\Error $var Parameter variable - * @param null|Expr $default Default value - * @param null|string|Name|NullableType $type Typehint - * @param bool $byRef Whether is passed by reference - * @param bool $variadic Whether this is a variadic argument - * @param array $attributes Additional attributes + * @param Expr\Variable|Expr\Error $var Parameter variable + * @param null|Expr $default Default value + * @param null|string|Identifier|Name|NullableType $type Type declaration + * @param bool $byRef Whether is passed by reference + * @param bool $variadic Whether this is a variadic argument + * @param array $attributes Additional attributes */ public function __construct( $var, Expr $default = null, $type = null, bool $byRef = false, bool $variadic = false, array $attributes = [] ) { - parent::__construct($attributes); + $this->attributes = $attributes; $this->type = \is_string($type) ? new Identifier($type) : $type; $this->byRef = $byRef; $this->variadic = $variadic; @@ -42,7 +42,7 @@ public function __construct( public function getSubNodeNames() : array { return ['type', 'byRef', 'variadic', 'var', 'default']; } - + public function getType() : string { return 'Param'; } diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/DNumber.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/DNumber.php index d6934d3313d0dfa53d78607c4b333a935e79ff72..7b7ae378d77a07cd95334041fe55fb9b130d21a9 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/DNumber.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/DNumber.php @@ -16,7 +16,7 @@ class DNumber extends Scalar * @param array $attributes Additional attributes */ public function __construct(float $value, array $attributes = []) { - parent::__construct($attributes); + $this->attributes = $attributes; $this->value = $value; } diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/Encapsed.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/Encapsed.php index 0541a31e268ee58ccdd9cd7e45a501f389efdeec..fa5d2e2681998809581b694bd746d04d9926ee68 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/Encapsed.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/Encapsed.php @@ -17,7 +17,7 @@ class Encapsed extends Scalar * @param array $attributes Additional attributes */ public function __construct(array $parts, array $attributes = []) { - parent::__construct($attributes); + $this->attributes = $attributes; $this->parts = $parts; } diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/EncapsedStringPart.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/EncapsedStringPart.php index 89048e215867f940934c372ed56bf093883096e4..bb3194c1d7cc1b8cac22f2850c34f837a16357a2 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/EncapsedStringPart.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/EncapsedStringPart.php @@ -16,7 +16,7 @@ class EncapsedStringPart extends Scalar * @param array $attributes Additional attributes */ public function __construct(string $value, array $attributes = []) { - parent::__construct($attributes); + $this->attributes = $attributes; $this->value = $value; } diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/LNumber.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/LNumber.php index 7b9ec5e959175dd7a335ebfc463c44e550db938d..5c5aca3f7991b86df01d171631c7275aa4d07ef1 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/LNumber.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/LNumber.php @@ -23,7 +23,7 @@ class LNumber extends Scalar * @param array $attributes Additional attributes */ public function __construct(int $value, array $attributes = []) { - parent::__construct($attributes); + $this->attributes = $attributes; $this->value = $value; } diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst.php index 841f4f8be934ea7bca18d5f59ff2b680f38368cd..941f0c762079533469e035d49fef5e8bf035d8fd 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst.php @@ -12,7 +12,7 @@ abstract class MagicConst extends Scalar * @param array $attributes Additional attributes */ public function __construct(array $attributes = []) { - parent::__construct($attributes); + $this->attributes = $attributes; } public function getSubNodeNames() : array { diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/String_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/String_.php index 93a8633deb1d710c32c25d765e3eb2ce60f16f40..de6318d05341c1595caf1d812e882eaa058294eb 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/String_.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/String_.php @@ -34,7 +34,7 @@ class String_ extends Scalar * @param array $attributes Additional attributes */ public function __construct(string $value, array $attributes = []) { - parent::__construct($attributes); + $this->attributes = $attributes; $this->value = $value; } @@ -134,29 +134,6 @@ private static function codePointToUtf8(int $num) : string { } throw new Error('Invalid UTF-8 codepoint escape sequence: Codepoint too large'); } - - /** - * @internal - * - * Parses a constant doc string. - * - * @param string $startToken Doc string start token content (<<<SMTHG) - * @param string $str String token content - * @param bool $parseUnicodeEscape Whether to parse PHP 7 \u escapes - * - * @return string Parsed string - */ - public static function parseDocString(string $startToken, string $str, bool $parseUnicodeEscape = true) : string { - // strip last newline (thanks tokenizer for sticking it into the string!) - $str = preg_replace('~(\r\n|\n|\r)\z~', '', $str); - - // nowdoc string - if (false !== strpos($startToken, '\'')) { - return $str; - } - - return self::parseEscapeSequences($str, null, $parseUnicodeEscape); - } public function getType() : string { return 'Scalar_String'; diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Break_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Break_.php index 57df3eae12130914744f71f8c9d5f5a2e21c84c3..6adc5a6c6f716a0357696cbf8a9f7314c0af9d97 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Break_.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Break_.php @@ -16,7 +16,7 @@ class Break_ extends Node\Stmt * @param array $attributes Additional attributes */ public function __construct(Node\Expr $num = null, array $attributes = []) { - parent::__construct($attributes); + $this->attributes = $attributes; $this->num = $num; } diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Case_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Case_.php index 30528509b43b8407b0acb074cf829a1814c60a2b..2bf044c90082e4b780af11983b6cb93f6e3dc808 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Case_.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Case_.php @@ -6,7 +6,7 @@ class Case_ extends Node\Stmt { - /** @var null|Node\Expr $cond Condition (null for default) */ + /** @var null|Node\Expr Condition (null for default) */ public $cond; /** @var Node\Stmt[] Statements */ public $stmts; @@ -19,7 +19,7 @@ class Case_ extends Node\Stmt * @param array $attributes Additional attributes */ public function __construct($cond, array $stmts = [], array $attributes = []) { - parent::__construct($attributes); + $this->attributes = $attributes; $this->cond = $cond; $this->stmts = $stmts; } diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Catch_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Catch_.php index 49cecf39d9a3f60832c5a310d9e200b26d6020f4..7d4a7034be367364b553561a50d2293fc8177165 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Catch_.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Catch_.php @@ -25,7 +25,7 @@ class Catch_ extends Node\Stmt public function __construct( array $types, Expr\Variable $var, array $stmts = [], array $attributes = [] ) { - parent::__construct($attributes); + $this->attributes = $attributes; $this->types = $types; $this->var = $var; $this->stmts = $stmts; diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassConst.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassConst.php index ff2f40d2ce6d54987547af36b9722457ba9c6357..73a50103092f470e8dfc4d73879eec296aeb4ddd 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassConst.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassConst.php @@ -19,7 +19,7 @@ class ClassConst extends Node\Stmt * @param array $attributes Additional attributes */ public function __construct(array $consts, int $flags = 0, array $attributes = []) { - parent::__construct($attributes); + $this->attributes = $attributes; $this->flags = $flags; $this->consts = $consts; } diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassMethod.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassMethod.php index 550b54ba2dee53973a8dcd5f24a5f96c2607583d..881dcd7ff5322abe5822d17837185179e6182f6a 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassMethod.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassMethod.php @@ -51,7 +51,7 @@ class ClassMethod extends Node\Stmt implements FunctionLike * @param array $attributes Additional attributes */ public function __construct($name, array $subNodes = [], array $attributes = []) { - parent::__construct($attributes); + $this->attributes = $attributes; $this->flags = $subNodes['flags'] ?? $subNodes['type'] ?? 0; $this->byRef = $subNodes['byRef'] ?? false; $this->name = \is_string($name) ? new Node\Identifier($name) : $name; diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Class_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Class_.php index 78bd1957053faf7789df6c9016f87af274cff75e..a97c3f4ae8d3f43bb053f530d4851b44f275dd4d 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Class_.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Class_.php @@ -35,7 +35,7 @@ class Class_ extends ClassLike * @param array $attributes Additional attributes */ public function __construct($name, array $subNodes = [], array $attributes = []) { - parent::__construct($attributes); + $this->attributes = $attributes; $this->flags = $subNodes['flags'] ?? $subNodes['type'] ?? 0; $this->name = \is_string($name) ? new Node\Identifier($name) : $name; $this->extends = $subNodes['extends'] ?? null; diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Const_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Const_.php index c1786bedd8a3f04cac4861a97be7e1f8981b068b..e6316345ee34b9fe1ceb473027b4a18395d63471 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Const_.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Const_.php @@ -16,7 +16,7 @@ class Const_ extends Node\Stmt * @param array $attributes Additional attributes */ public function __construct(array $consts, array $attributes = []) { - parent::__construct($attributes); + $this->attributes = $attributes; $this->consts = $consts; } diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Continue_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Continue_.php index 7e143ac9651d5b561b05e75feac034c457d84001..24882683b37c607cff0ce1c20df9fb8e344ee10a 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Continue_.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Continue_.php @@ -16,7 +16,7 @@ class Continue_ extends Node\Stmt * @param array $attributes Additional attributes */ public function __construct(Node\Expr $num = null, array $attributes = []) { - parent::__construct($attributes); + $this->attributes = $attributes; $this->num = $num; } diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/DeclareDeclare.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/DeclareDeclare.php index 40bec3030cf3144b4fac53adc65ca4fe77d03406..ac07f30c78f0cc91a873862cdf73051cd965182b 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/DeclareDeclare.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/DeclareDeclare.php @@ -19,7 +19,7 @@ class DeclareDeclare extends Node\Stmt * @param array $attributes Additional attributes */ public function __construct($key, Node\Expr $value, array $attributes = []) { - parent::__construct($attributes); + $this->attributes = $attributes; $this->key = \is_string($key) ? new Node\Identifier($key) : $key; $this->value = $value; } diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Declare_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Declare_.php index 305e07d5a1a3c564e93c022cdb337a03d8b79a70..f46ff0bafde696a6a74f25d9909f0a0044c67ab0 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Declare_.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Declare_.php @@ -19,7 +19,7 @@ class Declare_ extends Node\Stmt * @param array $attributes Additional attributes */ public function __construct(array $declares, array $stmts = null, array $attributes = []) { - parent::__construct($attributes); + $this->attributes = $attributes; $this->declares = $declares; $this->stmts = $stmts; } diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Do_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Do_.php index 778c73983b744cb9ddc4217d418b772e6a7a3f0c..78e90da03a083c416b293662e1e4eee6d8466e37 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Do_.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Do_.php @@ -19,7 +19,7 @@ class Do_ extends Node\Stmt * @param array $attributes Additional attributes */ public function __construct(Node\Expr $cond, array $stmts = [], array $attributes = []) { - parent::__construct($attributes); + $this->attributes = $attributes; $this->cond = $cond; $this->stmts = $stmts; } diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Echo_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Echo_.php index 9c35c61657cf822b2829eb95cd7fa5a064c8e295..7cc50d5d6e805aab34a2485651487eb41dcbddd0 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Echo_.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Echo_.php @@ -16,7 +16,7 @@ class Echo_ extends Node\Stmt * @param array $attributes Additional attributes */ public function __construct(array $exprs, array $attributes = []) { - parent::__construct($attributes); + $this->attributes = $attributes; $this->exprs = $exprs; } diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/ElseIf_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/ElseIf_.php index f518d512ee538be597f751e3b19c0dfa6dd37946..eef1ece3242585e0d31a98a67a834a3b0f1019c7 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/ElseIf_.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/ElseIf_.php @@ -19,7 +19,7 @@ class ElseIf_ extends Node\Stmt * @param array $attributes Additional attributes */ public function __construct(Node\Expr $cond, array $stmts = [], array $attributes = []) { - parent::__construct($attributes); + $this->attributes = $attributes; $this->cond = $cond; $this->stmts = $stmts; } diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Else_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Else_.php index c7015c69dc93073898f4a06ed0e5f97ba68899d4..0e61778e26021b4d739ff8517b3e5f00f5adef90 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Else_.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Else_.php @@ -16,7 +16,7 @@ class Else_ extends Node\Stmt * @param array $attributes Additional attributes */ public function __construct(array $stmts = [], array $attributes = []) { - parent::__construct($attributes); + $this->attributes = $attributes; $this->stmts = $stmts; } diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Expression.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Expression.php index 1e2aa394d2d84c2556520b1c64d936227d87ba84..99d1687deddbb37a41ac19e79324f3aee7091965 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Expression.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Expression.php @@ -19,7 +19,7 @@ class Expression extends Node\Stmt * @param array $attributes Additional attributes */ public function __construct(Node\Expr $expr, array $attributes = []) { - parent::__construct($attributes); + $this->attributes = $attributes; $this->expr = $expr; } diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Finally_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Finally_.php index 0498f5bf849eba1692555d0bcca4e2ea797fe388..d55b8b687269b3eb42dd8493dd54f928a68d070a 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Finally_.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Finally_.php @@ -16,7 +16,7 @@ class Finally_ extends Node\Stmt * @param array $attributes Additional attributes */ public function __construct(array $stmts = [], array $attributes = []) { - parent::__construct($attributes); + $this->attributes = $attributes; $this->stmts = $stmts; } diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/For_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/For_.php index 3e208914d7858caeef95b7fd8014270ab3d77d63..1323d37cf34ce5f5723c7fe16d2b0b27c6a89562 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/For_.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/For_.php @@ -26,7 +26,7 @@ class For_ extends Node\Stmt * @param array $attributes Additional attributes */ public function __construct(array $subNodes = [], array $attributes = []) { - parent::__construct($attributes); + $this->attributes = $attributes; $this->init = $subNodes['init'] ?? []; $this->cond = $subNodes['cond'] ?? []; $this->loop = $subNodes['loop'] ?? []; diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Foreach_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Foreach_.php index 9c8e88f8f40eac646b2529bb2f016f16f1574254..0556a7ce5f6a8061cebd067bff90d696d58d3ea6 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Foreach_.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Foreach_.php @@ -29,7 +29,7 @@ class Foreach_ extends Node\Stmt * @param array $attributes Additional attributes */ public function __construct(Node\Expr $expr, Node\Expr $valueVar, array $subNodes = [], array $attributes = []) { - parent::__construct($attributes); + $this->attributes = $attributes; $this->expr = $expr; $this->keyVar = $subNodes['keyVar'] ?? null; $this->byRef = $subNodes['byRef'] ?? false; diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Function_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Function_.php index a0bd2570c50928ad9c6fd0ee62b12abd74af61d1..d11a4df9d35353d28544d9e8137e680aa56f7574 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Function_.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Function_.php @@ -33,7 +33,7 @@ class Function_ extends Node\Stmt implements FunctionLike * @param array $attributes Additional attributes */ public function __construct($name, array $subNodes = [], array $attributes = []) { - parent::__construct($attributes); + $this->attributes = $attributes; $this->byRef = $subNodes['byRef'] ?? false; $this->name = \is_string($name) ? new Node\Identifier($name) : $name; $this->params = $subNodes['params'] ?? []; diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Global_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Global_.php index 8e6164879ec9e754cb321e9065fbdf014a79df5d..a0022ad9328f5ead35ea7b067f771c70ff388f96 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Global_.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Global_.php @@ -16,7 +16,7 @@ class Global_ extends Node\Stmt * @param array $attributes Additional attributes */ public function __construct(array $vars, array $attributes = []) { - parent::__construct($attributes); + $this->attributes = $attributes; $this->vars = $vars; } diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Goto_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Goto_.php index 35052b8a62c88e1735acd9648970e47054796ec1..24a57f7807763aa2f6be834fd485363e1133da4a 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Goto_.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Goto_.php @@ -17,7 +17,7 @@ class Goto_ extends Stmt * @param array $attributes Additional attributes */ public function __construct($name, array $attributes = []) { - parent::__construct($attributes); + $this->attributes = $attributes; $this->name = \is_string($name) ? new Identifier($name) : $name; } diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/GroupUse.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/GroupUse.php index e0d7e604c74b65d20e7d8abea25f309901609158..24520d2233c77d6eb02238ed55e5e8c0c97612e0 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/GroupUse.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/GroupUse.php @@ -23,7 +23,7 @@ class GroupUse extends Stmt * @param array $attributes Additional attributes */ public function __construct(Name $prefix, array $uses, int $type = Use_::TYPE_NORMAL, array $attributes = []) { - parent::__construct($attributes); + $this->attributes = $attributes; $this->type = $type; $this->prefix = $prefix; $this->uses = $uses; diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/HaltCompiler.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/HaltCompiler.php index c86d71e1482b087847675484fcc0caf41b760b9a..8e624e0f1fb4f67b1bf18909b7ff706c0adeac75 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/HaltCompiler.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/HaltCompiler.php @@ -16,7 +16,7 @@ class HaltCompiler extends Stmt * @param array $attributes Additional attributes */ public function __construct(string $remaining, array $attributes = []) { - parent::__construct($attributes); + $this->attributes = $attributes; $this->remaining = $remaining; } diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/If_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/If_.php index 87cd313b49eff3476afb18141bad89c2496e9644..a1bae4bf891e1384cf4cbc02fe6b5c344425bb91 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/If_.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/If_.php @@ -26,7 +26,7 @@ class If_ extends Node\Stmt * @param array $attributes Additional attributes */ public function __construct(Node\Expr $cond, array $subNodes = [], array $attributes = []) { - parent::__construct($attributes); + $this->attributes = $attributes; $this->cond = $cond; $this->stmts = $subNodes['stmts'] ?? []; $this->elseifs = $subNodes['elseifs'] ?? []; diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/InlineHTML.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/InlineHTML.php index 1dec989fd22c9cfb733838b68e6d39bed1030713..0711d2842c2147c206654a48d7fad8707435ae99 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/InlineHTML.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/InlineHTML.php @@ -16,7 +16,7 @@ class InlineHTML extends Stmt * @param array $attributes Additional attributes */ public function __construct(string $value, array $attributes = []) { - parent::__construct($attributes); + $this->attributes = $attributes; $this->value = $value; } diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Interface_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Interface_.php index 39049aae7a3f02e2e3a848ccb8f09fd4bb31633d..052558113d911e457fcc43255f5969196787ee9e 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Interface_.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Interface_.php @@ -19,7 +19,7 @@ class Interface_ extends ClassLike * @param array $attributes Additional attributes */ public function __construct($name, array $subNodes = [], array $attributes = []) { - parent::__construct($attributes); + $this->attributes = $attributes; $this->name = \is_string($name) ? new Node\Identifier($name) : $name; $this->extends = $subNodes['extends'] ?? []; $this->stmts = $subNodes['stmts'] ?? []; diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Label.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Label.php index 332043ba5c58f6fe4d3d280e5dfff8fd6184c22c..3edcb3be7ead9126dbca75ce20d22f66d1a4a86a 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Label.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Label.php @@ -17,7 +17,7 @@ class Label extends Stmt * @param array $attributes Additional attributes */ public function __construct($name, array $attributes = []) { - parent::__construct($attributes); + $this->attributes = $attributes; $this->name = \is_string($name) ? new Identifier($name) : $name; } diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Namespace_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Namespace_.php index f113998d62d832719ecfae57578b81d117971fe6..c63204577c3fba326847291c56f0ddffae7593d9 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Namespace_.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Namespace_.php @@ -23,7 +23,7 @@ class Namespace_ extends Node\Stmt * @param array $attributes Additional attributes */ public function __construct(Node\Name $name = null, $stmts = [], array $attributes = []) { - parent::__construct($attributes); + $this->attributes = $attributes; $this->name = $name; $this->stmts = $stmts; } diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Property.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Property.php index 91291aa126947a951a44529184d612121acf570f..849b8b44e9b20933b3b79821d5bda2782c6f0446 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Property.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Property.php @@ -3,6 +3,9 @@ namespace PhpParser\Node\Stmt; use PhpParser\Node; +use PhpParser\Node\Identifier; +use PhpParser\Node\Name; +use PhpParser\Node\NullableType; class Property extends Node\Stmt { @@ -10,22 +13,26 @@ class Property extends Node\Stmt public $flags; /** @var PropertyProperty[] Properties */ public $props; + /** @var null|Identifier|Name|NullableType Type declaration */ + public $type; /** * Constructs a class property list node. * - * @param int $flags Modifiers - * @param PropertyProperty[] $props Properties - * @param array $attributes Additional attributes + * @param int $flags Modifiers + * @param PropertyProperty[] $props Properties + * @param array $attributes Additional attributes + * @param null|string|Identifier|Name|NullableType $type Type declaration */ - public function __construct(int $flags, array $props, array $attributes = []) { - parent::__construct($attributes); + public function __construct(int $flags, array $props, array $attributes = [], $type = null) { + $this->attributes = $attributes; $this->flags = $flags; $this->props = $props; + $this->type = \is_string($type) ? new Identifier($type) : $type; } public function getSubNodeNames() : array { - return ['flags', 'props']; + return ['flags', 'type', 'props']; } /** @@ -64,7 +71,7 @@ public function isPrivate() : bool { public function isStatic() : bool { return (bool) ($this->flags & Class_::MODIFIER_STATIC); } - + public function getType() : string { return 'Stmt_Property'; } diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/PropertyProperty.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/PropertyProperty.php index 45e26faafde3f768a8a7bd9af6cf21ca4762e103..205731e20eb772e298b7fec1721f432cf862a4ed 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/PropertyProperty.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/PropertyProperty.php @@ -19,7 +19,7 @@ class PropertyProperty extends Node\Stmt * @param array $attributes Additional attributes */ public function __construct($name, Node\Expr $default = null, array $attributes = []) { - parent::__construct($attributes); + $this->attributes = $attributes; $this->name = \is_string($name) ? new Node\VarLikeIdentifier($name) : $name; $this->default = $default; } diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Return_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Return_.php index 346f9bd88c5308473e0035e4c8a618901b01ed84..efc578c58f6e89ec0cda9e8977d29812ddd99ac0 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Return_.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Return_.php @@ -16,7 +16,7 @@ class Return_ extends Node\Stmt * @param array $attributes Additional attributes */ public function __construct(Node\Expr $expr = null, array $attributes = []) { - parent::__construct($attributes); + $this->attributes = $attributes; $this->expr = $expr; } diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/StaticVar.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/StaticVar.php index 7fbb7de15c9bf31f4b83af0c3ea3f55eb32b65bb..29584560d3de3b8a0b17dbd6af5c2b8389cd39da 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/StaticVar.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/StaticVar.php @@ -22,7 +22,7 @@ class StaticVar extends Node\Stmt public function __construct( Expr\Variable $var, Node\Expr $default = null, array $attributes = [] ) { - parent::__construct($attributes); + $this->attributes = $attributes; $this->var = $var; $this->default = $default; } diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Static_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Static_.php index e408f51f377cae272978952ba65c3c2bbcebc2aa..464898ffa66d5cd459a172f0434a2045178cd70b 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Static_.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Static_.php @@ -16,7 +16,7 @@ class Static_ extends Stmt * @param array $attributes Additional attributes */ public function __construct(array $vars, array $attributes = []) { - parent::__construct($attributes); + $this->attributes = $attributes; $this->vars = $vars; } diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Switch_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Switch_.php index ff2ba0d96e3167cfeb0bf6dacd9e3e3d0e891173..2c8dae02215ed88ba7d918c5d3125df768748cca 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Switch_.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Switch_.php @@ -19,7 +19,7 @@ class Switch_ extends Node\Stmt * @param array $attributes Additional attributes */ public function __construct(Node\Expr $cond, array $cases, array $attributes = []) { - parent::__construct($attributes); + $this->attributes = $attributes; $this->cond = $cond; $this->cases = $cases; } diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Throw_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Throw_.php index 21709bf75a9d0fefa5c62dd27c2c729c95ccca7a..f97f56718aed1e51135190074b0ac558ce453229 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Throw_.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Throw_.php @@ -16,7 +16,7 @@ class Throw_ extends Node\Stmt * @param array $attributes Additional attributes */ public function __construct(Node\Expr $expr, array $attributes = []) { - parent::__construct($attributes); + $this->attributes = $attributes; $this->expr = $expr; } diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUse.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUse.php index 43c66b8d762b6aed0c38145d335a45ef64004ac5..9e97053b40fe5df46c460a03f885763241874a30 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUse.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUse.php @@ -19,7 +19,7 @@ class TraitUse extends Node\Stmt * @param array $attributes Additional attributes */ public function __construct(array $traits, array $adaptations = [], array $attributes = []) { - parent::__construct($attributes); + $this->attributes = $attributes; $this->traits = $traits; $this->adaptations = $adaptations; } diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUseAdaptation/Alias.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUseAdaptation/Alias.php index 189cc858980d77e2ce1c3118f000ca25526759a3..a3bccbd10c5ad70c847c3d6c9c9f379731c04e93 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUseAdaptation/Alias.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUseAdaptation/Alias.php @@ -21,7 +21,7 @@ class Alias extends Node\Stmt\TraitUseAdaptation * @param array $attributes Additional attributes */ public function __construct($trait, $method, $newModifier, $newName, array $attributes = []) { - parent::__construct($attributes); + $this->attributes = $attributes; $this->trait = $trait; $this->method = \is_string($method) ? new Node\Identifier($method) : $method; $this->newModifier = $newModifier; diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUseAdaptation/Precedence.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUseAdaptation/Precedence.php index 2ec6bff2a3e091ee27730f03af2ab9f0be21c36f..80385f64e32b3ce98168e98736abd26749db4906 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUseAdaptation/Precedence.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUseAdaptation/Precedence.php @@ -18,7 +18,7 @@ class Precedence extends Node\Stmt\TraitUseAdaptation * @param array $attributes Additional attributes */ public function __construct(Node\Name $trait, $method, array $insteadof, array $attributes = []) { - parent::__construct($attributes); + $this->attributes = $attributes; $this->trait = $trait; $this->method = \is_string($method) ? new Node\Identifier($method) : $method; $this->insteadof = $insteadof; diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Trait_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Trait_.php index 83980a7628a4ceca50b33bc76122084f5bc7ca3f..1ffa664e7ed033dfbe25282b6f183a60b65bd0c9 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Trait_.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Trait_.php @@ -15,7 +15,7 @@ class Trait_ extends ClassLike * @param array $attributes Additional attributes */ public function __construct($name, array $subNodes = [], array $attributes = []) { - parent::__construct($attributes); + $this->attributes = $attributes; $this->name = \is_string($name) ? new Node\Identifier($name) : $name; $this->stmts = $subNodes['stmts'] ?? []; } diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/TryCatch.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/TryCatch.php index 7661ecb7adb41f581bda775f3281d41bee59f290..47b9aae74df32fecdf36551a7089429fcbd06763 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/TryCatch.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/TryCatch.php @@ -22,7 +22,7 @@ class TryCatch extends Node\Stmt * @param array $attributes Additional attributes */ public function __construct(array $stmts, array $catches, Finally_ $finally = null, array $attributes = []) { - parent::__construct($attributes); + $this->attributes = $attributes; $this->stmts = $stmts; $this->catches = $catches; $this->finally = $finally; diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Unset_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Unset_.php index 8bd2d7d68b2c5fce7fb7773885a062ad1e37e5e4..310e427aa201f4d283f17b6e60adf9270ea41df1 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Unset_.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Unset_.php @@ -16,7 +16,7 @@ class Unset_ extends Node\Stmt * @param array $attributes Additional attributes */ public function __construct(array $vars, array $attributes = []) { - parent::__construct($attributes); + $this->attributes = $attributes; $this->vars = $vars; } diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/UseUse.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/UseUse.php index fe588d2c9d94ca6e66d4e6f09c48e77c62fb01c0..32bd7847da42a0c477003cbb28ebe6587a92a9cf 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/UseUse.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/UseUse.php @@ -23,7 +23,7 @@ class UseUse extends Node\Stmt * @param array $attributes Additional attributes */ public function __construct(Node\Name $name, $alias = null, int $type = Use_::TYPE_UNKNOWN, array $attributes = []) { - parent::__construct($attributes); + $this->attributes = $attributes; $this->type = $type; $this->name = $name; $this->alias = \is_string($alias) ? new Identifier($alias) : $alias; diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Use_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Use_.php index dafc1090f47ccc1a87e6c7eb4a026514fb3fdbcc..8753da313dd588bbe981f80c846e49dd52a14dd3 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Use_.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Use_.php @@ -32,7 +32,7 @@ class Use_ extends Stmt * @param array $attributes Additional attributes */ public function __construct(array $uses, int $type = self::TYPE_NORMAL, array $attributes = []) { - parent::__construct($attributes); + $this->attributes = $attributes; $this->type = $type; $this->uses = $uses; } diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/While_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/While_.php index 671207b8fa4d5a2400f68a313e6983614fb2a26e..f41034f8c24b624f3a53e8af4559a5ec908e12e7 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/While_.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/While_.php @@ -19,7 +19,7 @@ class While_ extends Node\Stmt * @param array $attributes Additional attributes */ public function __construct(Node\Expr $cond, array $stmts = [], array $attributes = []) { - parent::__construct($attributes); + $this->attributes = $attributes; $this->cond = $cond; $this->stmts = $stmts; } diff --git a/vendor/nikic/php-parser/lib/PhpParser/NodeAbstract.php b/vendor/nikic/php-parser/lib/PhpParser/NodeAbstract.php index 29d42b4fdc6be4982dff3c7f004c326f5dfa7c95..fda595994d2cf63326323b8ed22e05f53f77b63b 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/NodeAbstract.php +++ b/vendor/nikic/php-parser/lib/PhpParser/NodeAbstract.php @@ -2,8 +2,6 @@ namespace PhpParser; -use PhpParser\Node; - abstract class NodeAbstract implements Node, \JsonSerializable { protected $attributes; @@ -159,11 +157,11 @@ public function hasAttribute(string $key) : bool { } public function getAttribute(string $key, $default = null) { - if (!array_key_exists($key, $this->attributes)) { - return $default; - } else { + if (array_key_exists($key, $this->attributes)) { return $this->attributes[$key]; } + + return $default; } public function getAttributes() : array { diff --git a/vendor/nikic/php-parser/lib/PhpParser/NodeTraverser.php b/vendor/nikic/php-parser/lib/PhpParser/NodeTraverser.php index fe3045aebcf45998783fbe96d15c7ea770d6e85e..97d45bdaaa7c95ba7ecdae9580a83e3239732bd1 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/NodeTraverser.php +++ b/vendor/nikic/php-parser/lib/PhpParser/NodeTraverser.php @@ -30,17 +30,23 @@ class NodeTraverser implements NodeTraverserInterface */ const REMOVE_NODE = 3; + /** + * If NodeVisitor::enterNode() returns DONT_TRAVERSE_CURRENT_AND_CHILDREN, child nodes + * of the current node will not be traversed for any visitors. + * + * For subsequent visitors enterNode() will not be called as well. + * leaveNode() will be invoked for visitors that has enterNode() method invoked. + */ + const DONT_TRAVERSE_CURRENT_AND_CHILDREN = 4; + /** @var NodeVisitor[] Visitors */ - protected $visitors; + protected $visitors = []; /** @var bool Whether traversal should be stopped */ protected $stopTraversal; - /** - * Constructs a node traverser. - */ public function __construct() { - $this->visitors = []; + // for BC } /** @@ -111,7 +117,9 @@ protected function traverseNode(Node $node) : Node { } } elseif ($subNode instanceof Node) { $traverseChildren = true; - foreach ($this->visitors as $visitor) { + $breakVisitorIndex = null; + + foreach ($this->visitors as $visitorIndex => $visitor) { $return = $visitor->enterNode($subNode); if (null !== $return) { if ($return instanceof Node) { @@ -119,6 +127,10 @@ protected function traverseNode(Node $node) : Node { $subNode = $return; } elseif (self::DONT_TRAVERSE_CHILDREN === $return) { $traverseChildren = false; + } elseif (self::DONT_TRAVERSE_CURRENT_AND_CHILDREN === $return) { + $traverseChildren = false; + $breakVisitorIndex = $visitorIndex; + break; } elseif (self::STOP_TRAVERSAL === $return) { $this->stopTraversal = true; break 2; @@ -137,8 +149,9 @@ protected function traverseNode(Node $node) : Node { } } - foreach ($this->visitors as $visitor) { + foreach ($this->visitors as $visitorIndex => $visitor) { $return = $visitor->leaveNode($subNode); + if (null !== $return) { if ($return instanceof Node) { $this->ensureReplacementReasonable($subNode, $return); @@ -157,6 +170,10 @@ protected function traverseNode(Node $node) : Node { ); } } + + if ($breakVisitorIndex === $visitorIndex) { + break; + } } } } @@ -177,7 +194,9 @@ protected function traverseArray(array $nodes) : array { foreach ($nodes as $i => &$node) { if ($node instanceof Node) { $traverseChildren = true; - foreach ($this->visitors as $visitor) { + $breakVisitorIndex = null; + + foreach ($this->visitors as $visitorIndex => $visitor) { $return = $visitor->enterNode($node); if (null !== $return) { if ($return instanceof Node) { @@ -185,6 +204,10 @@ protected function traverseArray(array $nodes) : array { $node = $return; } elseif (self::DONT_TRAVERSE_CHILDREN === $return) { $traverseChildren = false; + } elseif (self::DONT_TRAVERSE_CURRENT_AND_CHILDREN === $return) { + $traverseChildren = false; + $breakVisitorIndex = $visitorIndex; + break; } elseif (self::STOP_TRAVERSAL === $return) { $this->stopTraversal = true; break 2; @@ -203,8 +226,9 @@ protected function traverseArray(array $nodes) : array { } } - foreach ($this->visitors as $visitor) { + foreach ($this->visitors as $visitorIndex => $visitor) { $return = $visitor->leaveNode($node); + if (null !== $return) { if ($return instanceof Node) { $this->ensureReplacementReasonable($node, $return); @@ -229,6 +253,10 @@ protected function traverseArray(array $nodes) : array { ); } } + + if ($breakVisitorIndex === $visitorIndex) { + break; + } } } elseif (\is_array($node)) { throw new \LogicException('Invalid node structure: Contains nested arrays'); diff --git a/vendor/nikic/php-parser/lib/PhpParser/NodeVisitor/NameResolver.php b/vendor/nikic/php-parser/lib/PhpParser/NodeVisitor/NameResolver.php index 44d01e107061dc7e538ced85d678d2762aafa886..cfe8ce7643b8807d813fcc7fa6df920d23b36dd4 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/NodeVisitor/NameResolver.php +++ b/vendor/nikic/php-parser/lib/PhpParser/NodeVisitor/NameResolver.php @@ -2,7 +2,6 @@ namespace PhpParser\NodeVisitor; -use PhpParser\Error; use PhpParser\ErrorHandler; use PhpParser\NameContext; use PhpParser\Node; @@ -94,6 +93,10 @@ public function enterNode(Node $node) { || $node instanceof Expr\Closure ) { $this->resolveSignature($node); + } elseif ($node instanceof Stmt\Property) { + if (null !== $node->type) { + $node->type = $this->resolveType($node->type); + } } elseif ($node instanceof Stmt\Const_) { foreach ($node->consts as $const) { $this->addNamespacedName($const); diff --git a/vendor/nikic/php-parser/lib/PhpParser/Parser/Php5.php b/vendor/nikic/php-parser/lib/PhpParser/Parser/Php5.php index b5ebb327330ee91430bdef01337350b787ff8f2a..a558d28b7803c0ec5bb94ab660fdb6ba711c0a24 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Parser/Php5.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Parser/Php5.php @@ -17,17 +17,17 @@ */ class Php5 extends \PhpParser\ParserAbstract { - protected $tokenToSymbolMapSize = 392; - protected $actionTableSize = 1072; - protected $gotoTableSize = 644; + protected $tokenToSymbolMapSize = 394; + protected $actionTableSize = 1079; + protected $gotoTableSize = 650; - protected $invalidSymbol = 157; + protected $invalidSymbol = 159; protected $errorSymbol = 1; protected $defaultAction = -32766; protected $unexpectedTokenRule = 32767; - protected $YY2TBLSTATE = 403; - protected $numNonLeafStates = 672; + protected $YY2TBLSTATE = 407; + protected $numNonLeafStates = 676; protected $symbolToName = array( "EOF", @@ -58,6 +58,7 @@ class Php5 extends \PhpParser\ParserAbstract "T_SL_EQUAL", "T_SR_EQUAL", "T_POW_EQUAL", + "T_COALESCE_EQUAL", "'?'", "':'", "T_COALESCE", @@ -133,6 +134,7 @@ class Php5 extends \PhpParser\ParserAbstract "T_CONTINUE", "T_GOTO", "T_FUNCTION", + "T_FN", "T_CONST", "T_RETURN", "T_TRY", @@ -190,388 +192,389 @@ class Php5 extends \PhpParser\ParserAbstract ); protected $tokenToSymbol = array( - 0, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 53, 156, 157, 153, 52, 35, 157, - 151, 152, 50, 47, 7, 48, 49, 51, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 29, 148, - 41, 15, 43, 28, 65, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 67, 157, 155, 34, 157, 154, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 149, 33, 150, 55, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 1, 2, 3, 4, + 0, 159, 159, 159, 159, 159, 159, 159, 159, 159, + 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, + 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, + 159, 159, 159, 54, 158, 159, 155, 53, 36, 159, + 153, 154, 51, 48, 7, 49, 50, 52, 159, 159, + 159, 159, 159, 159, 159, 159, 159, 159, 30, 150, + 42, 15, 44, 29, 66, 159, 159, 159, 159, 159, + 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, + 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, + 159, 68, 159, 157, 35, 159, 156, 159, 159, 159, + 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, + 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, + 159, 159, 159, 151, 34, 152, 56, 159, 159, 159, + 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, + 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, + 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, + 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, + 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, + 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, + 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, + 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, + 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, + 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, + 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, + 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, + 159, 159, 159, 159, 159, 159, 1, 2, 3, 4, 5, 6, 8, 9, 10, 11, 12, 13, 14, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, - 27, 30, 31, 32, 36, 37, 38, 39, 40, 42, - 44, 45, 46, 54, 56, 57, 58, 59, 60, 61, - 62, 63, 64, 66, 68, 69, 70, 71, 72, 73, - 74, 75, 76, 77, 78, 79, 80, 81, 157, 157, - 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 27, 28, 31, 32, 33, 37, 38, 39, 40, 41, + 43, 45, 46, 47, 55, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 67, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, 82, 159, + 159, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, - 132, 133, 134, 135, 136, 137, 157, 157, 157, 157, - 157, 157, 138, 139, 140, 141, 142, 143, 144, 145, - 146, 147 + 132, 133, 134, 135, 136, 137, 138, 139, 159, 159, + 159, 159, 159, 159, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149 ); protected $action = array( - 677, 678, 679, 680, 681, 279, 682, 683, 684, 720, - 721, 218, 219, 220, 221, 222, 223, 224, 225, 226, - 0, 227, 228, 229, 230, 231, 232, 233, 234, 235, - 236, 237, 238,-32766,-32766,-32766,-32766,-32766,-32766,-32766, - -32766,-32767,-32767,-32767,-32767, 206, 239, 240,-32766,-32766, - -32766,-32766, 685,-32766, 123,-32766,-32766,-32766,-32766,-32766, - -32766,-32767,-32767,-32767,-32767,-32767, 686, 687, 688, 689, - 690, 691, 692, 350, 30, 752, 954, 955, 956, 953, - 952, 951, 693, 694, 695, 696, 697, 698, 699, 700, - 701, 702, 703, 723, 724, 725, 726, 727, 715, 716, - 717, 718, 719, 704, 705, 706, 707, 708, 709, 710, - 746, 747, 748, 749, 750, 751, 711, 712, 713, 714, - 744, 735, 733, 734, 730, 731, 1046, 722, 728, 729, - 736, 737, 739, 738, 740, 741, 54, 55, 422, 56, - 57, 732, 743, 742, -219, 58, 59, 413, 60,-32766, - -32766,-32766,-32766,-32766,-32766,-32766,-32766,-32766, 1046,-32767, - -32767,-32767,-32767,-32767,-32767,-32767,-32767, 96, 97, 98, - 99, 100,-32766,-32766,-32766,-32766,-32766, 1224, 52, 829, - 1225, 61, 62,-32766,-32766,-32766, 294, 63, 590, 64, - 290, 291, 65, 66, 67, 68, 69, 70, 71, 72, - 1046, 26, 298, 73, 414,-32766,-32766,-32766, 877, 1097, - 1098, 756, 754, 759, 815, 771, 772, 471,-32766,-32766, - -32766, 830, 421, 294, 548,-32766, 1182,-32766,-32766,-32766, - -32766,-32766,-32766, 215, 216, 217, 434, 420,-32766, 306, - -32766,-32766,-32766,-32766,-32766, 1109, 495, 954, 955, 956, - 953, 952, 951, 202, 479, 480, 215, 216, 217, 407, - 122, 241, 813, 481, 482, 1046, 1103, 1104, 1105, 1106, - 1100, 1101, 309, 901, 902, 328, 202, 496, 1107, 1102, - 430,-32766, 215, 216, 217, 41, 496, 332, 320, 430, - 321, 423, -125, -125, -125, -4, 830, 470, 126, 417, - 336, 818, 202, 907, 40, 21, 424, -125, 472, -125, - 473, -125, 474, -125,-32766, 425, 215, 216, 217, 31, - 32, 426, 427, 10, 33, 475, 820, 878, 74, 216, - 217, 348, 349, 476, 477, 126, 202, 243, 418, 478, - 1046, 444, 801, 848, 428, 429, 281, 756, 202, 759, - 35, 105, 106, 107, 108, 109, 110, 111, 112, 113, - 114, 115, 116,-32766,-32766,-32766, 423, 1064, 832, 643, - -125, 830, 470, 215, 216, 217, 818, 1148, 927, 40, - 21, 424, 1074, 472, 628, 473,-32766, 474,-32766, 419, - 425, 985, 987, 202, 31, 32, 426, 427, 405, 33, - 475, 811, 1046, 74, 319, 1046, 348, 349, 476, 477, - -32766,-32766,-32766, 496, 478, 25, 430, 763, 848, 428, - 429, 435, 48, 332, 415, 295, 901, 902, 282, 1147, - -32766, 297,-32766,-32766,-32766,-32766, 1182, 347, 333, 496, - 770, 423, 430, 832, 643, -4, 830, 470, -223, 331, - 629, 818,-32766, 430, 40, 21, 424, 932, 472, 308, - 473, 445, 474, -502, 928, 425, -203, -203, -203, 31, - 32, 426, 427, 296, 33, 475, 809, 759, 74, 816, - 1215, 348, 349, 476, 477,-32766,-32766,-32766, 1046, 478, - 335, 1197, 801, 848, 428, 429, 236, 237, 238, 217, - 49,-32766,-32766,-32766, 118,-32766, 127,-32766,-32766,-32766, - 336, 292, 239, 240, 1046, 1196, 423, 202, 832, 643, - -203,-32766, 470,-32766,-32766, 481, 818, 208, 131, 40, - 21, 424, 581, 472, 20, 473, 36, 474, 29, 293, - 425, -204, -204, -204, 31, 32, 426, 427, 51, 33, - 475, 447, 121, 74, 202, 830, 348, 349, 476, 477, - 908,-32766,-32766,-32766, 478, 244, 522, 801, 848, 428, - 429, 101, 102, 103, 9, 300, 78, 79, 80, 246, - 324,-32766, 119, 646, 233, 234, 235, 104, 77, 946, - 130, 754, 332, 832, 643, -204, 34, 245, 81, 82, - 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, - 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, - 103, -254, 300, 1109, 830, 423, 98, 99, 100, 496, - 120, 470, 430, 1046, 104, 818,-32766,-32766, 40, 21, - 424, 117, 472, 828, 473, 440, 474, 207, 645, 425, - 125, 209, 647, 31, 32, 426, 830, 841, 33, 475, - -32766,-32766, 74, 128, 657, 348, 349, 332, 239, 240, - 459, 597, 654, 478, 312, 454, 22, 132, 358, 771, - 772, 604, 605, -82, 660, 300, 943, 663, 931, 671, - 764, 649,-32766, 104, 423, 756, 757, 53, 612, 959, - 470, 43, 832, 643, 818, 44, 45, 40, 21, 424, - 298, 472, -273, 473, 46, 474, 50, 47, 425, 129, - 759, 754, 31, 32, 426, 830, 423, 33, 475, 637, - 528, 74, 470,-32766, 348, 349, 818, 624, 850, 40, - 21, 424, 478, 472, 443, 473, 584, 474, 849, 616, - 425, -80, 1108, 655, 31, 32, 426, 830, 11, 33, - 475, 446, 278, 74, 438, 601, 348, 349, 587, 602, - 283, 832, 643, 464, 478, 325, 1154, 0, 0, 327, - 0, 0, 0, 0, 0, 651, 0, 0, 0, 322, - 0, 0, 0, 323, 0, 423, 0, 0, 307, 0, - 0, 470, 305, 832, 643, 818, -503, -502, 40, 21, - 424, 481, 472, 0, 473, -403, 474, 14, 5, 425, - 0, 0, 6, 31, 32, 426, 830, 423, 33, 475, - 357, -411, 74, 470, 12, 348, 349, 818, -412, 440, - 40, 21, 424, 478, 472, 382, 473, 409, 474, 408, - 383, 425, 391, 371, 530, 31, 32, 426, 843, 329, - 33, 475, 666, 810, 74, 39, 38, 348, 349, 880, - 821, 769, 832, 643, 819, 478, 937, 806, 667, 768, - 827, 936, 939, 812, 767, 814, 826, 872, 804, 938, - 865, 862, 817, 860, 935, 871, 423, 77, 644, 648, - 650, 652, 470, 653, 864, 643, 818, 656, 658, 40, - 21, 424, 659, 472, 661, 473, 242, 474, 662, 330, - 425, 403, 404, 124, 31, 32, 426, 845, 773, 33, - 475, 776, 775, 74, 210, 211, 348, 349, 870, 668, - 212, 802, 213, 1221, 478, 458, 1220, 1190, 1188, 1173, - 1186, 1088, 919, 1194, 204, 1184, 869, 944, 835, 210, - 211, 1049, 1097, 1098, 844, 212,-32766, 213, 1048, 837, - 1099, 1060, 774, 832, 643, 42, 1222, 846, 765, 204, - 847, 766, 1223, 1044, 37, 28, 412, 1097, 1098, 406, - 337,-32766, 75, 76, 304, 1099, 303, 302, 301, 27, - 24, 289, 288, 280,-32766, 205, 0, 1025, 573, 1026, - 1050, -220, 1090, -219, 16, 1113, 909, 569, 1054, 1103, - 1104, 1105, 1106, 1100, 1101, 381, 1051, 634, 563, 468, - 463, 1107, 1102, 462, 455, 376, 18, 17, 214, 0, - -32766, 608, 569, -421, 1103, 1104, 1105, 1106, 1100, 1101, - 381, 1168, 1167, 1114, 1218, 1087, 1107, 1102, 1185, 1057, - 1172, 1187, 1073, 214, 1058,-32766, 1059, 0, 1056, 1055, - 0, 1153 + 681, 682, 683, 684, 685, 283, 686, 687, 688, 724, + 725, 222, 223, 224, 225, 226, 227, 228, 229, 230, + 0, 231, 232, 233, 234, 235, 236, 237, 238, 239, + 240, 241, 242,-32766,-32766,-32766,-32766,-32766,-32766,-32766, + -32766,-32767,-32767,-32767,-32767, 1052, 243, 244,-32766,-32766, + -32766,-32766,-32766, 689,-32766,-32766,-32766,-32766,-32766,-32766, + -32766,-32766,-32767,-32767,-32767,-32767,-32767, 690, 691, 692, + 693, 694, 695, 696, 834, 27, 757, 959, 960, 961, + 958, 957, 956, 697, 698, 699, 700, 701, 702, 703, + 704, 705, 706, 707, 727, 728, 729, 730, 731, 719, + 720, 721, 749, 722, 723, 708, 709, 710, 711, 712, + 713, 714, 751, 752, 753, 754, 755, 756, 715, 716, + 717, 718, 748, 739, 737, 738, 734, 735, 1188, 726, + 732, 733, 740, 741, 743, 742, 744, 745, 54, 55, + 426, 56, 57, 736, 747, 746, -220, 58, 59, 419, + 60,-32766,-32766,-32766,-32766,-32766,-32766,-32766,-32766,-32766, + 28,-32767,-32767,-32767,-32767,-32767,-32767,-32767,-32767, 97, + 98, 99, 100, 101, 9, 906, 907,-32766, 1202, 761, + 328, 764, 1188, 814, 61, 62, 52, 285, 500, 951, + 63, 434, 64, 294, 295, 65, 66, 67, 68, 69, + 70, 71, 72, 340, 25, 302, 73, 418,-32766,-32766, + -32766, 882, 1103, 1104, 761, 1080, 764,-32766,-32766,-32766, + 475, -255, 298, 825, 835, 759, 219, 220, 221,-32766, + 36,-32766,-32766,-32766,-32766,-32766,-32766, 125,-32766, 438, + -32766,-32766,-32766,-32766,-32766, 1052, 500, 206, 310, 434, + 499, 423, 1052, 129, 439, 759, 336, 340, 483, 484, + 10, 959, 960, 961, 958, 957, 956, 485, 486, 124, + 1109, 1110, 1111, 1112, 1106, 1107, 313,-32766,-32766,-32766, + -32766, 500, 1113, 1108, 434, 219, 220, 221, 425, 41, + 764, 336, 324, 1222, 325, 427, -126, -126, -126, -4, + 835, 474,-32766,-32766,-32766, 823, 206, 913, 40, 21, + 428, -126, 476, -126, 477, -126, 478, -126, 123, 429, + 219, 220, 221, 31, 32, 430, 431, 354, 130, 33, + 479, 883, 336, 74, 1203, 128, 352, 353, 480, 481, + 912, 206, 247, 301, 482, 210, 1052, 806, 853, 432, + 433, 312, 30, 297, 35, 106, 107, 108, 109, 110, + 111, 112, 113, 114, 115, 116, 117, 118, 421, 1052, + 296, 427, 1154, 837, 647, -126, 835, 474, 102, 103, + 104, 823, 304, 816, 40, 21, 428, 332, 476, 632, + 477, 422, 478, 298, 105, 429, 991, 993, 20, 31, + 32, 430, 431, 933, 409, 33, 479, 220, 221, 74, + 323,-32766, 352, 353, 480, 481,-32766,-32766,-32766, 424, + 482, 1052, 448, 768, 853, 432, 433, 206,-32766,-32766, + -32766, 48, 906, 907, 1153, 1070, 339,-32766, 485,-32766, + -32766,-32766,-32766, 1231, 337, 500, 1232, 427, 434, 837, + 647, -4, 835, 474, -224, 1052, 633, 823, 49, 434, + 40, 21, 428, 937, 476, 776, 477, 777, 478, -504, + 820, 429, -205, -205, -205, 31, 32, 430, 431,-32766, + -32766, 33, 479, 75,-32766, 74,-32766, 594, 352, 353, + 480, 481,-32766,-32766,-32766, 119, 482, 526, 451, 806, + 853, 432, 433, 240, 241, 242, 128,-32766,-32766,-32766, + 411, 775, 51,-32766, 120,-32766,-32766,-32766, 500, 243, + 244, 434, 552, 427, 417, 837, 647, -205,-32766, 474, + -32766,-32766, 1052, 823, 821, 351, 40, 21, 428, 1052, + 476, 121, 477, 449, 478, 1115, 211, 429, -204, -204, + -204, 31, 32, 430, 431, 1115, 286, 33, 479, 818, + 835, 74, 932, 299, 352, 353, 480, 481, 212, 219, + 220, 221, 482, 335, 245, 806, 853, 432, 433,-32766, + -32766,-32766, 213, 79, 80, 81, 99, 100, 101, 650, + 206, 237, 238, 239, 444, 122, 776, 649, 777, 300, + -32766, 837, 647, -204, 34, 248, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, + 96, 97, 98, 99, 100, 101, 102, 103, 104, 1052, + 304, 427, 221, 249, 835, 250, 78, 474, 206, 133, + 336, 823, 105, 585, 40, 21, 428, 127, 476, -83, + 477, 206, 478,-32766,-32766, 429, 219, 220, 221, 31, + 32, 430, 316, 651, 658, 33, 479, 835, 661, 74, + 243, 244, 352, 353, 458, 22, 833, 206, 463, 601, + 482, 134, 362, 132, 608, 609, 769, 653,-32766, 948, + 667, 936, 675, 846, 304, 105, 655, 43, 44, 45, + 616, 761, 759, 46, 47, 427, 302, -274, 50, 837, + 647, 474, 53, 131, 588, 823, 442, 468, 40, 21, + 428, 762, 476, 606, 477,-32766, 478, 764, 447, 429, + 964, 854, 532, 31, 32, 430, 855, 327, 427, 33, + 479, 835, 641, 74, 474, 620, 352, 353, 823, -81, + 628, 40, 21, 428, 482, 476, 11, 477, 450, 478, + 282, 591, 429, 375, 605, 848, 31, 32, 430, 0, + 659, 329, 33, 479, 835, 0, 74, 0, 0, 352, + 353, 0, 0, 837, 647, -504, 0, 482, 326, 0, + 331, 0, 0, 0, 0, 0, 0, 0, 309, 311, + -505, 0, 485, 664, 0, 0, 0, 0, 0, 0, + 0, 0, 427, 1114, 1160, 0, 869, 647, 474, -413, + -405, 835, 823, 5, 6, 40, 21, 428, 12, 476, + 14, 477, 361, 478, -414, 386, 429, 387, 24, 395, + 31, 32, 430, 444, 534, 427, 33, 479, 412, 413, + 74, 474, 38, 352, 353, 823, 39, 670, 40, 21, + 428, 482, 476, 671, 477, 774, 478, 824, 832, 429, + 811, 826, 885, 31, 32, 430, 876, 877, 809, 33, + 479, 870, 867, 74, 865, 943, 352, 353, 944, 941, + 837, 647, 427, 815, 482, 817, 819, 831, 474, 822, + 940, 772, 823, 773, 942, 40, 21, 428, 78, 476, + 648, 477, 652, 478, 654, 656, 429, 657, 246, 660, + 31, 32, 430, 837, 647, 662, 33, 479, 663, 665, + 74, 666, 126, 352, 353, 333, 214, 215, 334, 407, + 408, 482, 216, 672, 217, 807, 1228, 1230, 771, 852, + 770, 851, 1229, 850, 1066, 842, 208, 1054, 849, 1055, + 840, 214, 215, 949, 1103, 1104, 874, 216,-32766, 217, + 837, 647, 1105, 875, 462, 1227, 1196, 1194, 1179, 1192, + 1094, 208, 924, 1200, 1190, 780, 781, 778, 779, 1103, + 1104, 26, 29,-32766, 37, 42, 76, 1105, 77, 209, + 284, 292, 293, 305, 306, 307, 308, 341, 410, 416, + -32766, 0, -221, -220, 16, 17, 18, 380, 459, 466, + 573, 467, 1109, 1110, 1111, 1112, 1106, 1107, 385, 472, + 567, 638, 1057, 1060, 1113, 1108, 914, 1119, 1056, 1032, + 577, 218, 287,-32766, 1031, 573, 1096, 1109, 1110, 1111, + 1112, 1106, 1107, 385, -423, 1050, 0, 1061, 1063, 1113, + 1108, 1062, 1065, 1064, 1079, 1193, 218, 1178,-32766, 1174, + 0, 1191, 1093, 1225, 1120, 1173, 612, 0, 1159 ); protected $actionCheck = array( 2, 3, 4, 5, 6, 13, 8, 9, 10, 11, - 12, 31, 32, 33, 34, 35, 36, 37, 38, 39, - 0, 41, 42, 43, 44, 45, 46, 47, 48, 49, - 50, 51, 52, 8, 9, 10, 31, 32, 33, 34, - 35, 36, 37, 38, 39, 7, 66, 67, 31, 32, - 33, 34, 54, 28, 7, 30, 31, 32, 33, 34, - 35, 36, 37, 38, 39, 40, 68, 69, 70, 71, - 72, 73, 74, 7, 7, 77, 112, 113, 114, 115, - 116, 117, 84, 85, 86, 87, 88, 89, 90, 91, + 12, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 0, 42, 43, 44, 45, 46, 47, 48, 49, 50, + 51, 52, 53, 8, 9, 10, 32, 33, 34, 35, + 36, 37, 38, 39, 40, 12, 67, 68, 32, 33, + 34, 35, 36, 55, 29, 8, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 69, 70, 71, + 72, 73, 74, 75, 1, 7, 78, 114, 115, 116, + 117, 118, 119, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 126, 127, 12, 129, 130, 131, - 132, 133, 134, 135, 136, 137, 2, 3, 4, 5, - 6, 143, 144, 145, 152, 11, 12, 7, 14, 31, - 32, 33, 34, 35, 36, 37, 38, 39, 12, 41, - 42, 43, 44, 41, 42, 43, 44, 45, 46, 47, - 48, 49, 31, 32, 33, 34, 35, 77, 67, 1, - 80, 47, 48, 8, 9, 10, 35, 53, 82, 55, - 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, - 12, 67, 68, 69, 70, 8, 9, 10, 29, 75, - 76, 77, 77, 79, 148, 102, 103, 83, 8, 9, - 10, 1, 7, 35, 78, 28, 79, 30, 31, 32, - 33, 34, 35, 8, 9, 10, 102, 7, 28, 128, - 30, 31, 32, 33, 34, 139, 112, 112, 113, 114, - 115, 116, 117, 28, 120, 121, 8, 9, 10, 146, - 149, 13, 148, 129, 130, 12, 132, 133, 134, 135, - 136, 137, 138, 130, 131, 7, 28, 143, 144, 145, - 146, 8, 8, 9, 10, 151, 143, 153, 154, 146, - 156, 71, 72, 73, 74, 0, 1, 77, 147, 7, - 153, 81, 28, 152, 84, 85, 86, 87, 88, 89, - 90, 91, 92, 93, 79, 95, 8, 9, 10, 99, - 100, 101, 102, 7, 104, 105, 148, 148, 108, 9, - 10, 111, 112, 113, 114, 147, 28, 29, 7, 119, - 12, 29, 122, 123, 124, 125, 7, 77, 28, 79, - 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, - 25, 26, 27, 31, 32, 33, 71, 152, 148, 149, - 150, 1, 77, 8, 9, 10, 81, 152, 148, 84, - 85, 86, 112, 88, 77, 90, 151, 92, 153, 7, - 95, 56, 57, 28, 99, 100, 101, 102, 103, 104, - 105, 148, 12, 108, 109, 12, 111, 112, 113, 114, - 8, 9, 10, 143, 119, 7, 146, 122, 123, 124, - 125, 151, 67, 153, 123, 35, 130, 131, 35, 155, - 28, 35, 30, 31, 32, 33, 79, 7, 143, 143, - 148, 71, 146, 148, 149, 150, 1, 77, 152, 7, - 143, 81, 151, 146, 84, 85, 86, 150, 88, 7, - 90, 149, 92, 128, 148, 95, 96, 97, 98, 99, - 100, 101, 102, 7, 104, 105, 148, 79, 108, 148, - 82, 111, 112, 113, 114, 8, 9, 10, 12, 119, - 67, 152, 122, 123, 124, 125, 50, 51, 52, 10, - 67, 8, 9, 10, 149, 28, 149, 30, 31, 32, - 153, 35, 66, 67, 12, 1, 71, 28, 148, 149, - 150, 28, 77, 30, 31, 129, 81, 15, 149, 84, - 85, 86, 153, 88, 152, 90, 13, 92, 140, 141, - 95, 96, 97, 98, 99, 100, 101, 102, 67, 104, - 105, 128, 13, 108, 28, 1, 111, 112, 113, 114, - 152, 8, 9, 10, 119, 15, 82, 122, 123, 124, - 125, 50, 51, 52, 103, 54, 8, 9, 10, 15, - 109, 28, 149, 29, 47, 48, 49, 66, 149, 118, - 29, 77, 153, 148, 149, 150, 28, 15, 30, 31, - 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, - 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, - 52, 150, 54, 139, 1, 71, 47, 48, 49, 143, - 149, 77, 146, 12, 66, 81, 8, 9, 84, 85, - 86, 15, 88, 29, 90, 146, 92, 15, 149, 95, - 29, 15, 29, 99, 100, 101, 1, 35, 104, 105, - 31, 32, 108, 149, 29, 111, 112, 153, 66, 67, - 72, 73, 29, 119, 29, 72, 73, 97, 98, 102, - 103, 106, 107, 29, 29, 54, 148, 149, 148, 149, - 148, 149, 31, 66, 71, 77, 77, 67, 74, 79, - 77, 67, 148, 149, 81, 67, 67, 84, 85, 86, - 68, 88, 79, 90, 67, 92, 67, 67, 95, 67, - 79, 77, 99, 100, 101, 1, 71, 104, 105, 89, - 82, 108, 77, 82, 111, 112, 81, 91, 123, 84, - 85, 86, 119, 88, 86, 90, 87, 92, 123, 93, - 95, 94, 139, 29, 99, 100, 101, 1, 94, 104, - 105, 94, 94, 108, 102, 96, 111, 112, 96, 109, - 153, 148, 149, 102, 119, 110, 139, -1, -1, 126, - -1, -1, -1, -1, -1, 29, -1, -1, -1, 126, - -1, -1, -1, 127, -1, 71, -1, -1, 128, -1, - -1, 77, 128, 148, 149, 81, 128, 128, 84, 85, - 86, 129, 88, -1, 90, 142, 92, 142, 142, 95, - -1, -1, 142, 99, 100, 101, 1, 71, 104, 105, - 142, 142, 108, 77, 142, 111, 112, 81, 142, 146, - 84, 85, 86, 119, 88, 146, 90, 146, 92, 146, - 146, 95, 146, 146, 146, 99, 100, 101, 147, 149, - 104, 105, 148, 148, 108, 148, 148, 111, 112, 148, - 148, 148, 148, 149, 148, 119, 148, 148, 148, 148, - 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, - 148, 148, 148, 148, 148, 148, 71, 149, 149, 149, - 149, 149, 77, 149, 148, 149, 81, 149, 149, 84, - 85, 86, 149, 88, 149, 90, 29, 92, 149, 149, - 95, 149, 149, 149, 99, 100, 101, 150, 150, 104, - 105, 150, 150, 108, 47, 48, 111, 112, 150, 150, - 53, 150, 55, 150, 119, 150, 150, 150, 150, 150, - 150, 150, 150, 150, 67, 150, 150, 150, 150, 47, - 48, 150, 75, 76, 150, 53, 79, 55, 150, 150, - 83, 150, 150, 148, 149, 151, 150, 150, 150, 67, - 150, 150, 150, 154, 151, 151, 151, 75, 76, 151, - 151, 79, 151, 151, 151, 83, 151, 151, 151, 151, - 151, 151, 151, 151, 151, 151, -1, 152, 152, 152, - 152, 152, 152, 152, 152, 152, 152, 130, 152, 132, - 133, 134, 135, 136, 137, 138, 152, 152, 152, 152, - 152, 144, 145, 152, 152, 152, 152, 152, 151, -1, - 153, 155, 130, 154, 132, 133, 134, 135, 136, 137, - 138, 155, 155, 155, 155, 155, 144, 145, 155, 155, - 155, 155, 155, 151, 155, 153, 155, -1, 155, 155, - -1, 156 + 122, 123, 124, 125, 126, 127, 128, 129, 80, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 2, 3, + 4, 5, 6, 145, 146, 147, 154, 11, 12, 125, + 14, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 7, 42, 43, 44, 45, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 105, 132, 133, 153, 1, 78, + 111, 80, 80, 150, 48, 49, 68, 7, 145, 120, + 54, 148, 56, 57, 58, 59, 60, 61, 62, 63, + 64, 65, 66, 155, 68, 69, 70, 71, 8, 9, + 10, 30, 76, 77, 78, 114, 80, 8, 9, 10, + 84, 152, 36, 150, 1, 78, 8, 9, 10, 29, + 13, 31, 32, 33, 34, 35, 36, 7, 29, 103, + 31, 32, 33, 34, 35, 12, 145, 29, 130, 148, + 114, 7, 12, 151, 153, 78, 155, 155, 122, 123, + 7, 114, 115, 116, 117, 118, 119, 131, 132, 151, + 134, 135, 136, 137, 138, 139, 140, 32, 33, 34, + 35, 145, 146, 147, 148, 8, 9, 10, 7, 153, + 80, 155, 156, 83, 158, 72, 73, 74, 75, 0, + 1, 78, 8, 9, 10, 82, 29, 154, 85, 86, + 87, 88, 89, 90, 91, 92, 93, 94, 13, 96, + 8, 9, 10, 100, 101, 102, 103, 7, 151, 106, + 107, 150, 155, 110, 154, 149, 113, 114, 115, 116, + 154, 29, 30, 36, 121, 7, 12, 124, 125, 126, + 127, 7, 142, 143, 15, 16, 17, 18, 19, 20, + 21, 22, 23, 24, 25, 26, 27, 28, 7, 12, + 36, 72, 154, 150, 151, 152, 1, 78, 51, 52, + 53, 82, 55, 150, 85, 86, 87, 7, 89, 78, + 91, 7, 93, 36, 67, 96, 57, 58, 154, 100, + 101, 102, 103, 150, 105, 106, 107, 9, 10, 110, + 111, 80, 113, 114, 115, 116, 8, 9, 10, 7, + 121, 12, 30, 124, 125, 126, 127, 29, 32, 33, + 34, 68, 132, 133, 157, 154, 68, 29, 131, 31, + 32, 33, 34, 78, 145, 145, 81, 72, 148, 150, + 151, 152, 1, 78, 154, 12, 145, 82, 68, 148, + 85, 86, 87, 152, 89, 103, 91, 105, 93, 130, + 150, 96, 97, 98, 99, 100, 101, 102, 103, 8, + 9, 106, 107, 149, 153, 110, 155, 83, 113, 114, + 115, 116, 8, 9, 10, 15, 121, 83, 130, 124, + 125, 126, 127, 51, 52, 53, 149, 8, 9, 10, + 148, 150, 68, 29, 151, 31, 32, 33, 145, 67, + 68, 148, 79, 72, 7, 150, 151, 152, 29, 78, + 31, 32, 12, 82, 150, 7, 85, 86, 87, 12, + 89, 151, 91, 151, 93, 141, 15, 96, 97, 98, + 99, 100, 101, 102, 103, 141, 36, 106, 107, 150, + 1, 110, 150, 36, 113, 114, 115, 116, 15, 8, + 9, 10, 121, 7, 13, 124, 125, 126, 127, 8, + 9, 10, 15, 8, 9, 10, 48, 49, 50, 30, + 29, 48, 49, 50, 148, 151, 103, 151, 105, 7, + 29, 150, 151, 152, 29, 15, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 12, + 55, 72, 10, 15, 1, 15, 151, 78, 29, 151, + 155, 82, 67, 155, 85, 86, 87, 30, 89, 30, + 91, 29, 93, 32, 33, 96, 8, 9, 10, 100, + 101, 102, 30, 30, 30, 106, 107, 1, 30, 110, + 67, 68, 113, 114, 73, 74, 30, 29, 73, 74, + 121, 98, 99, 30, 108, 109, 150, 151, 32, 150, + 151, 150, 151, 36, 55, 67, 30, 68, 68, 68, + 75, 78, 78, 68, 68, 72, 69, 80, 68, 150, + 151, 78, 68, 68, 88, 82, 103, 103, 85, 86, + 87, 78, 89, 111, 91, 83, 93, 80, 87, 96, + 80, 125, 83, 100, 101, 102, 125, 129, 72, 106, + 107, 1, 90, 110, 78, 94, 113, 114, 82, 95, + 92, 85, 86, 87, 121, 89, 95, 91, 95, 93, + 95, 97, 96, 148, 97, 149, 100, 101, 102, -1, + 30, 112, 106, 107, 1, -1, 110, -1, -1, 113, + 114, -1, -1, 150, 151, 130, -1, 121, 128, -1, + 128, -1, -1, -1, -1, -1, -1, -1, 130, 130, + 130, -1, 131, 30, -1, -1, -1, -1, -1, -1, + -1, -1, 72, 141, 141, -1, 150, 151, 78, 144, + 144, 1, 82, 144, 144, 85, 86, 87, 144, 89, + 144, 91, 144, 93, 144, 148, 96, 148, 153, 148, + 100, 101, 102, 148, 148, 72, 106, 107, 148, 148, + 110, 78, 150, 113, 114, 82, 150, 150, 85, 86, + 87, 121, 89, 150, 91, 150, 93, 150, 150, 96, + 150, 150, 150, 100, 101, 102, 150, 150, 150, 106, + 107, 150, 150, 110, 150, 150, 113, 114, 150, 150, + 150, 151, 72, 150, 121, 150, 150, 150, 78, 150, + 150, 150, 82, 150, 150, 85, 86, 87, 151, 89, + 151, 91, 151, 93, 151, 151, 96, 151, 30, 151, + 100, 101, 102, 150, 151, 151, 106, 107, 151, 151, + 110, 151, 151, 113, 114, 151, 48, 49, 151, 151, + 151, 121, 54, 152, 56, 152, 152, 152, 152, 152, + 152, 152, 152, 152, 152, 152, 68, 152, 152, 152, + 152, 48, 49, 152, 76, 77, 152, 54, 80, 56, + 150, 151, 84, 152, 152, 152, 152, 152, 152, 152, + 152, 68, 152, 152, 152, 152, 152, 152, 152, 76, + 77, 153, 153, 80, 153, 153, 153, 84, 153, 153, + 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, + 153, -1, 154, 154, 154, 154, 154, 154, 154, 154, + 132, 154, 134, 135, 136, 137, 138, 139, 140, 154, + 154, 154, 154, 154, 146, 147, 154, 154, 154, 154, + 154, 153, 155, 155, 154, 132, 154, 134, 135, 136, + 137, 138, 139, 140, 156, 156, -1, 157, 157, 146, + 147, 157, 157, 157, 157, 157, 153, 157, 155, 157, + -1, 157, 157, 157, 157, 157, 157, -1, 158 ); protected $actionBase = array( - 0, 220, 295, 445, 370, 357, 357, 307, 728, -2, - -2, 135, -2, -2, -2, 623, 724, 655, 724, 554, - 756, 825, 825, 825, 151, 188, 476, 476, 860, 146, - 476, 328, 253, 114, 621, 393, 390, 502, 502, 502, - 502, 134, 134, 502, 502, 502, 502, 502, 502, 502, - 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, - 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, - 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, - 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, - 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, - 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, - 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, - 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, - 502, 502, 502, 179, 178, 539, 523, 715, 735, 737, - 738, 858, 668, 857, 796, 797, 561, 798, 799, 800, - 801, 802, 795, 803, 886, 805, 568, 568, 568, 568, - 568, 568, 568, 568, 568, 568, 568, 273, 248, 225, - 308, 274, 628, 365, 365, 365, 365, 365, 365, 365, - 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 320, 553, 553, - 553, 489, 887, 526, 912, 912, 912, 912, 912, 912, - 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, - 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, - 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, - 912, 912, 912, 912, 912, 912, 912, 493, -20, -20, - 477, 661, 402, 629, 210, 332, 197, 25, 25, 25, - 25, 25, 17, 141, 5, 5, 5, 5, 335, 122, - 122, 122, 122, 118, 118, 118, 118, 471, 396, 396, - 682, 682, 642, 774, 579, 579, 537, 537, 270, 270, - 270, 270, 270, 270, 270, 270, 270, 270, 301, 633, - 853, 296, 296, 296, 296, 514, 514, 514, 143, 484, - 637, 915, 143, 521, 521, 521, 446, 446, 446, 113, - 648, 398, 235, 235, 235, 235, 398, 235, 235, 577, - 577, 577, 439, 499, 651, 100, 379, 486, 433, 672, - 806, 669, 788, 540, 696, 111, 703, 701, 617, 662, - 617, 603, 598, 575, 673, 312, 847, 147, 179, 538, - 481, 631, 744, 292, 736, 66, 331, 423, 542, 355, - 382, 710, 731, 856, 855, 339, 678, 631, 631, 631, - 408, 106, 770, 772, 355, -8, 602, 602, 602, 602, - 782, 773, 602, 602, 602, 602, 781, 778, 316, 230, - 822, 215, 746, 618, 618, 644, 644, 618, 618, 618, - 618, 620, 622, 618, 834, 849, 849, 644, 641, 644, - 620, 622, 824, 824, 824, 824, 644, 622, 644, 644, - 618, 644, 849, 849, 622, 642, 849, 67, 622, 663, - 618, 653, 653, 824, 714, 730, 644, 644, 666, 849, - 849, 849, 666, 622, 824, 660, 711, 38, 849, 824, - 645, 641, 645, 660, 622, 645, 641, 641, 645, 20, - 654, 634, 833, 841, 838, 749, 625, 615, 851, 850, - 842, 852, 848, 614, 708, 723, 726, 626, 638, 639, - 647, 650, 676, 649, 674, 662, 693, 627, 627, 627, - 679, 680, 679, 627, 627, 627, 627, 627, 627, 627, - 627, 914, 689, 688, 670, 658, 732, 632, 707, 667, - 512, 750, 613, 708, 708, 791, 874, 883, 889, 829, - 619, 847, 876, 679, 904, 718, 47, 636, 846, 789, - 699, 704, 679, 845, 679, 751, 679, 866, 793, 652, - 832, 708, 831, 627, 864, 913, 911, 909, 907, 906, - 905, 896, 903, 630, 900, 729, 659, 882, 452, 854, - 673, 692, 706, 722, 830, 268, 899, 828, 679, 679, - 752, 748, 679, 754, 721, 717, 862, 747, 881, 898, - 613, 878, 679, 671, 827, 897, 268, 643, 624, 859, - 656, 739, 835, 863, 839, 758, 550, 582, 826, 777, - 821, 635, 740, 885, 884, 861, 742, 759, 564, 763, - 646, 819, 765, 843, 743, 818, 814, 875, 657, 693, - 675, 665, 664, 640, 769, 811, 877, 745, 741, 734, - 808, 733, 807, 0, 0, 0, 0, 0, 0, 0, + 0, 223, 299, 375, 451, 102, 102, 311, 754, -2, + -2, 147, -2, -2, -2, 633, 740, 773, 740, 559, + 666, 820, 820, 820, 186, 334, 334, 334, 357, 892, + 443, 33, 233, 409, 617, 520, 527, 240, 240, 240, + 240, 136, 136, 240, 240, 240, 240, 240, 240, 240, + 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, + 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, + 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, + 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, + 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, + 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, + 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, + 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, + 240, 240, 240, 240, 240, 181, 73, 305, 217, 743, + 745, 746, 747, 884, 665, 885, 823, 824, 653, 825, + 826, 827, 828, 830, 822, 831, 919, 832, 575, 575, + 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, + 47, 561, 218, 312, 277, 471, 648, 648, 648, 648, + 648, 648, 648, 294, 294, 294, 294, 294, 294, 294, + 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, + 294, 398, 571, 571, 571, 622, 888, 609, 913, 913, + 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, + 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, + 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, + 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, + 913, 499, -21, -21, 484, 656, 408, 621, 209, 396, + 200, 25, 25, 25, 25, 25, 245, 16, 4, 4, + 4, 4, 339, 123, 123, 123, 123, 119, 119, 119, + 119, 69, 307, 307, 671, 671, 637, 781, 538, 538, + 543, 543, 101, 101, 101, 101, 101, 101, 101, 101, + 101, 101, 24, 627, 857, 300, 300, 300, 300, 177, + 177, 177, 43, 414, 673, 920, 43, 327, 327, 327, + 452, 452, 452, 362, 649, 210, 331, 331, 331, 331, + 210, 331, 331, 493, 493, 493, 485, 446, 642, 365, + 488, 373, 390, 664, 814, 667, 821, 541, 690, 118, + 700, 701, 887, 613, 887, 601, 605, 576, 676, 392, + 850, 48, 181, 539, 444, 639, 749, 361, 751, 320, + 384, 368, 536, 363, 244, 784, 753, 886, 890, 180, + 670, 639, 639, 639, 153, 404, 787, 788, 363, -8, + 603, 603, 603, 603, 833, 789, 603, 603, 603, 603, + 834, 835, 253, 412, 836, 281, 750, 623, 623, 624, + 624, 623, 623, 623, 623, 650, 657, 623, 839, 685, + 685, 624, 647, 624, 650, 657, 842, 842, 842, 842, + 624, 657, 624, 624, 623, 624, 685, 685, 657, 637, + 685, 68, 657, 660, 623, 662, 662, 842, 707, 713, + 624, 624, 608, 685, 685, 685, 608, 657, 842, 612, + 616, 338, 685, 842, 632, 647, 632, 612, 657, 632, + 647, 647, 632, 20, 619, 629, 841, 843, 855, 759, + 606, 611, 848, 849, 845, 847, 838, 646, 696, 715, + 717, 480, 630, 631, 635, 636, 679, 640, 668, 613, + 695, 628, 628, 628, 655, 680, 655, 628, 628, 628, + 628, 628, 628, 628, 628, 900, 675, 688, 669, 641, + 718, 531, 615, 663, 553, 761, 672, 696, 696, 793, + 878, 863, 898, 899, 643, 850, 876, 655, 901, 702, + 230, 567, 851, 791, 687, 689, 655, 852, 655, 763, + 655, 879, 794, 645, 795, 696, 796, 628, 882, 904, + 905, 906, 907, 908, 910, 912, 914, 644, 915, 720, + 626, 864, 344, 846, 676, 684, 691, 721, 797, 380, + 916, 798, 655, 655, 764, 757, 655, 766, 722, 706, + 860, 726, 865, 917, 672, 867, 655, 614, 799, 918, + 380, 634, 625, 858, 651, 727, 856, 883, 854, 768, + 590, 618, 800, 801, 802, 638, 728, 861, 862, 859, + 731, 774, 620, 777, 658, 803, 778, 853, 732, 805, + 806, 877, 654, 695, 686, 659, 661, 652, 780, 807, + 875, 734, 735, 738, 808, 739, 811, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 134, 134, 134, 134, -2, -2, -2, - -2, 0, 0, -2, 0, 0, 0, 134, 134, 134, - 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, - 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, - 134, 134, 134, 0, 0, 134, 134, 134, 134, 134, - 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, - 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, - 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, - 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, - 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, - 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, - 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, - 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, - 134, 134, 134, 134, 134, 568, 568, 568, 568, 568, - 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, - 568, 568, 568, 568, 568, 568, 568, 568, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 568, - -20, -20, -20, -20, 568, -20, -20, -20, -20, -20, - -20, -20, 568, 568, 568, 568, 568, 568, 568, 568, - 568, 568, 568, 568, 568, 568, 568, 568, 568, -20, - 568, 568, 568, -20, 270, -20, 270, 270, 270, 270, - 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, - 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, - 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, - 270, 270, 270, 270, 270, 270, 270, 270, 270, 568, - 0, 0, 568, -20, 568, -20, 568, -20, 568, 568, - 568, 568, 568, 568, -20, -20, -20, -20, -20, -20, - 0, 521, 521, 521, 521, -20, -20, -20, -20, -36, - 270, 270, 270, 270, 270, 270, 521, 521, 446, 446, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 270, -36, 270, 618, 618, 618, 618, 641, 641, 641, - 618, 398, 398, 398, 618, 0, 0, 0, 0, 0, - 0, 618, 398, 0, 270, 270, 270, 270, 0, 270, - 270, 618, 618, 618, 641, 618, 398, 641, 641, 618, - 849, 580, 580, 580, 580, 268, 355, 0, 618, 618, - 641, 641, 641, 0, 0, 0, 849, 0, 644, 0, - 0, 0, 0, 627, 47, 0, 430, 0, 0, 0, - 0, 0, 0, 619, 430, 466, 466, 0, 630, 627, - 627, 627, 0, 0, 619, 619, 0, 0, 0, 0, - 0, 0, 442, 619, 0, 0, 0, 0, 442, 140, - 0, 0, 140, 0, 268 + 0, 0, 0, 0, 0, 0, 0, 136, 136, 136, + 136, -2, -2, -2, -2, 0, 0, -2, 0, 0, + 0, 136, 136, 136, 136, 136, 136, 136, 136, 136, + 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, + 136, 136, 136, 136, 136, 136, 136, 0, 0, 136, + 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, + 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, + 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, + 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, + 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, + 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, + 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, + 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, + 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, + 136, 575, 575, 575, 575, 575, 575, 575, 575, 575, + 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, + 575, 575, 575, 575, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 575, -21, -21, -21, + -21, 575, -21, -21, -21, -21, -21, -21, -21, 575, + 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, + 575, 575, 575, 575, 575, 575, 575, -21, 575, 575, + 575, -21, 101, -21, 101, 101, 101, 101, 101, 101, + 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, + 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, + 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, + 101, 101, 101, 101, 101, 101, 101, 575, 0, 0, + 575, -21, 575, -21, 575, -21, 575, 575, 575, 575, + 575, 575, -21, -21, -21, -21, -21, -21, 0, 327, + 327, 327, 327, -21, -21, -21, -21, -37, 101, 101, + 101, 101, 101, 101, 327, 327, 452, 452, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 101, -37, + 101, 623, 623, 623, 623, 647, 647, 647, 623, 210, + 210, 210, 623, 0, 0, 0, 0, 0, 0, 623, + 210, 0, 101, 101, 101, 101, 0, 101, 101, 623, + 623, 623, 647, 623, 210, 647, 647, 623, 685, 583, + 583, 583, 583, 380, 363, 0, 623, 623, 647, 647, + 647, 0, 0, 0, 685, 0, 624, 0, 0, 0, + 0, 628, 230, 0, 528, 0, 0, 0, 0, 0, + 0, 643, 528, 592, 592, 0, 644, 628, 628, 628, + 0, 0, 643, 643, 0, 0, 0, 0, 0, 0, + 566, 643, 0, 0, 0, 0, 566, 517, 0, 0, + 517, 0, 380 ); protected $actionDefault = array( 3,32767,32767,32767,32767,32767,32767,32767,32767,32767, 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767,32767,32767,32767, 531, 531,32767,32767, - 486,32767,32767,32767,32767,32767,32767, 292, 292, 292, - 32767,32767,32767, 519, 519, 519, 519, 519, 519, 519, - 519, 519, 519, 519,32767,32767,32767,32767,32767, 374, + 32767,32767,32767,32767,32767, 533, 533, 488,32767,32767, + 32767,32767,32767,32767,32767,32767,32767, 293, 293, 293, + 32767,32767,32767, 521, 521, 521, 521, 521, 521, 521, + 521, 521, 521, 521,32767,32767,32767,32767,32767, 376, 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, @@ -579,129 +582,129 @@ class Php5 extends \PhpParser\ParserAbstract 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767,32767,32767, 380, 536,32767,32767,32767, + 32767,32767,32767,32767,32767,32767,32767, 382, 538,32767, 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767,32767,32767,32767, 355, 356, 358, 359, - 291, 520, 240, 381, 535, 290, 242, 319, 490,32767, - 32767,32767, 321, 119, 251, 196, 489, 122, 289, 227, - 373, 375, 320, 296, 301, 302, 303, 304, 305, 306, - 307, 308, 309, 310, 311, 312, 295, 446, 352, 351, - 350, 448,32767, 447, 483, 483, 486,32767,32767,32767, + 32767,32767,32767,32767,32767,32767,32767,32767, 357, 358, + 360, 361, 292, 541, 522, 241, 383, 537, 291, 243, + 321, 492,32767,32767,32767, 323, 120, 252, 197, 491, + 123, 290, 228, 375, 377, 322, 297, 302, 303, 304, + 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, + 296, 448, 354, 353, 352, 450,32767, 449, 485, 485, + 488,32767,32767,32767,32767,32767,32767,32767,32767,32767, 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767,32767,32767,32767,32767, 317, 474, 473, - 318, 444, 322, 445, 324, 449, 323, 340, 341, 338, - 339, 342, 451, 450, 467, 468, 465, 466, 294, 343, - 344, 345, 346, 469, 470, 471, 472, 275,32767,32767, - 530, 530,32767,32767, 331, 332, 458, 459,32767,32767, - 32767,32767,32767,32767,32767,32767,32767,32767,32767, 276, - 32767, 231, 231, 231, 231,32767,32767,32767, 231,32767, - 32767,32767,32767, 326, 327, 325, 453, 454, 452,32767, - 420,32767,32767,32767,32767,32767, 422,32767,32767,32767, - 32767,32767,32767,32767,32767,32767,32767,32767, 491,32767, - 32767,32767,32767,32767, 504, 409,32767,32767,32767, 402, - 32767, 215, 217, 164, 477,32767,32767,32767,32767,32767, - 509, 336,32767,32767,32767,32767,32767, 545,32767, 504, - 32767,32767,32767,32767,32767,32767, 349, 328, 329, 330, - 32767,32767,32767,32767, 508, 502, 461, 462, 463, 464, - 32767,32767, 455, 456, 457, 460,32767,32767,32767,32767, + 32767, 319, 476, 475, 320, 446, 324, 447, 326, 451, + 325, 342, 343, 340, 341, 344, 453, 452, 469, 470, + 467, 468, 295, 345, 346, 347, 348, 471, 472, 473, + 474, 276,32767,32767, 532, 532,32767,32767, 333, 334, + 460, 461,32767,32767,32767,32767,32767,32767,32767,32767, + 32767,32767,32767, 277,32767, 232, 232, 232, 232,32767, + 32767,32767, 232,32767,32767,32767,32767, 328, 329, 327, + 455, 456, 454,32767, 422,32767,32767,32767,32767,32767, + 424,32767,32767,32767,32767,32767,32767,32767,32767,32767, + 32767,32767, 493,32767,32767,32767,32767,32767, 506, 411, + 32767,32767,32767, 404,32767, 216, 218, 165, 479,32767, + 32767,32767,32767,32767, 511, 338,32767,32767,32767,32767, + 32767, 548,32767, 506,32767,32767,32767,32767,32767,32767, + 351, 330, 331, 332,32767,32767,32767,32767, 510, 504, + 463, 464, 465, 466,32767,32767, 457, 458, 459, 462, 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 32767,32767, 168,32767, 417, 423, 423,32767,32767,32767, - 32767, 168,32767,32767,32767,32767,32767, 168,32767,32767, - 32767,32767, 507, 506, 168,32767, 403, 485, 168, 181, - 32767, 179, 179,32767, 201, 201,32767,32767, 183, 478, - 497,32767, 183, 168,32767, 391, 170, 485,32767,32767, - 233,32767, 233, 391, 168, 233,32767,32767, 233,32767, - 84, 427,32767,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767,32767, 404,32767,32767,32767, 370, 371, - 480, 493,32767, 494,32767, 402,32767, 334, 335, 337, - 314,32767, 316, 360, 361, 362, 363, 364, 365, 366, - 368,32767, 407,32767, 410,32767,32767,32767, 86, 111, - 250,32767, 543, 86, 405,32767,32767, 299, 543,32767, - 32767,32767,32767, 538,32767,32767, 293,32767,32767,32767, - 86, 86, 246,32767, 166,32767, 528,32767, 544,32767, - 502, 406,32767, 333,32767,32767,32767,32767,32767,32767, - 32767,32767,32767, 503,32767,32767,32767,32767, 222,32767, - 440,32767, 86,32767,32767, 182,32767,32767, 297, 241, - 32767,32767, 537,32767,32767,32767,32767,32767,32767,32767, - 32767,32767, 167,32767,32767,32767, 184,32767,32767, 502, - 32767,32767,32767,32767,32767,32767,32767, 288,32767,32767, - 32767,32767,32767,32767,32767, 502,32767,32767, 226,32767, - 32767,32767,32767,32767,32767,32767,32767,32767, 84, 60, - 32767, 269,32767,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767, 124, 124, 3, 124, 124, 253, 3, - 253, 124, 253, 253, 124, 124, 124, 124, 124, 124, - 124, 124, 124, 124, 209, 212, 201, 201, 161, 124, - 124, 261 + 32767,32767,32767,32767,32767,32767, 169,32767, 419, 425, + 425,32767,32767,32767,32767, 169,32767,32767,32767,32767, + 32767, 169,32767,32767,32767,32767, 509, 508, 169,32767, + 405, 487, 169, 182,32767, 180, 180,32767, 202, 202, + 32767,32767, 184, 480, 499,32767, 184, 169,32767, 393, + 171, 487,32767,32767, 234,32767, 234, 393, 169, 234, + 32767,32767, 234,32767, 85, 429,32767,32767,32767,32767, + 32767,32767,32767,32767,32767,32767,32767,32767, 406,32767, + 32767,32767, 372, 373, 482, 495,32767, 496,32767, 404, + 32767, 336, 337, 339, 316,32767, 318, 362, 363, 364, + 365, 366, 367, 368, 370,32767, 409,32767, 412,32767, + 32767,32767, 87, 112, 251,32767, 546, 87, 407,32767, + 32767, 300, 546,32767,32767,32767,32767, 540,32767,32767, + 294,32767,32767,32767, 87, 87, 247,32767, 167,32767, + 530,32767, 547,32767, 504, 408,32767, 335,32767,32767, + 32767,32767,32767,32767,32767,32767,32767, 505,32767,32767, + 32767,32767, 223,32767, 442,32767, 87,32767,32767, 183, + 32767,32767, 298, 242,32767,32767, 539,32767,32767,32767, + 32767,32767,32767,32767,32767,32767, 168,32767,32767,32767, + 185,32767,32767, 504,32767,32767,32767,32767,32767,32767, + 32767, 289,32767,32767,32767,32767,32767,32767,32767, 504, + 32767,32767, 227,32767,32767,32767,32767,32767,32767,32767, + 32767,32767, 85, 60,32767, 270,32767,32767,32767,32767, + 32767,32767,32767,32767,32767,32767,32767, 125, 125, 3, + 125, 125, 254, 3, 254, 125, 254, 254, 125, 125, + 125, 125, 125, 125, 125, 125, 125, 125, 210, 213, + 202, 202, 162, 125, 125, 262 ); protected $goto = array( - 162, 162, 136, 136, 141, 144, 136, 137, 138, 139, - 146, 183, 164, 160, 160, 160, 160, 141, 141, 161, - 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, - 156, 157, 158, 159, 180, 135, 181, 497, 498, 361, - 499, 503, 504, 505, 506, 507, 508, 509, 510, 972, - 140, 142, 143, 145, 167, 172, 182, 198, 247, 250, - 252, 254, 256, 257, 258, 259, 260, 261, 269, 270, - 271, 272, 284, 285, 313, 314, 315, 377, 378, 379, - 553, 184, 185, 186, 187, 188, 189, 190, 191, 192, - 193, 194, 195, 196, 147, 148, 149, 163, 150, 165, - 151, 199, 166, 152, 153, 154, 200, 155, 133, 630, - 571, 792, 571, 571, 571, 571, 571, 571, 571, 571, - 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, - 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, - 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, - 571, 571, 571, 571, 571, 1110, 762, 1110, 1110, 1110, - 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, - 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, - 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, - 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, - 501, 501, 501, 501, 501, 501, 512, 638, 512, 761, - 501, 501, 501, 501, 501, 501, 501, 501, 501, 501, - 513, 755, 513, 893, 893, 1201, 1201, 527, 585, 613, - 857, 857, 857, 857, 170, 852, 858, 1086, 1085, 173, - 174, 175, 386, 387, 388, 389, 169, 197, 201, 203, - 251, 253, 255, 262, 263, 264, 265, 266, 267, 273, - 274, 275, 276, 286, 287, 316, 317, 318, 392, 393, - 394, 395, 171, 176, 248, 249, 177, 178, 179, 385, - 615, 546, 546, 578, 542, 1212, 1212, 823, 340, 544, - 544, 500, 502, 533, 550, 579, 582, 592, 599, 619, - 863, 1212, 622, 911, 570, 359, 570, 570, 570, 570, - 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, - 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, - 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, - 570, 570, 570, 570, 570, 570, 570, 570, 570, 555, - 556, 557, 558, 559, 560, 561, 562, 564, 595, 518, - 554, 326, 311, 594, 526, 609, 610, 949, 552, 523, - 523, 523, 577, 523, 588, 591, 636, 526, 526, 547, - 436, 436, 436, 436, 436, 436, 541, 523, 1205, 950, - 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, - 1075, 362, 1075, 900, 900, 900, 900, 596, 343, 402, - 900, 514, 1159, 514, 900, 1179, 603, 1179, 3, 4, - 367, 367, 367, 614, 1075, 1075, 1075, 1075, 785, 1075, - 1075, 367, 367, 1178, 1198, 1178, 1171, 367, 374, 467, - 1195, 1195, 1195, 523, 523, 367, 1226, 540, 572, 523, - 523, 1019, 1068, 523, 897, 785, 785, 906, 346, 917, - 520, 917, 396, 368, 781, 372, 915, 1177, 970, 779, - 524, 539, 669, 665, 566, 400, 1061, 920, 600, 760, - 551, 890, 620, 621, 886, 625, 626, 633, 635, 640, - 642, 789, 879, 861, 859, 861, 664, 1091, 515, 888, - 883, 1193, 1193, 1193, 867, 1029, 19, 15, 355, 341, - 342, 958, 778, 778, 356, 1066, 786, 786, 786, 788, - 452, 531, 777, 1156, 465, 543, 565, 583, 0, 520, - 1071, 1072, 0, 0, 1068, 0, 0, 23, 1211, 1211, - 456, 0, 611, 369, 369, 369, 0, 1069, 1170, 1069, - 0, 13, 538, 0, 1211, 0, 1070, 449, 451, 942, - 641, 0, 1214, 0, 1111, 623, 940, 0, 0, 0, - 369, 0, 618, 0, 384, 0, 0, 1067, 627, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 165, 138, 138, 138, 165, 143, 146, 139, 140, 141, + 148, 186, 167, 162, 162, 162, 162, 143, 143, 164, + 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, + 158, 159, 160, 161, 183, 137, 184, 501, 502, 365, + 503, 507, 508, 509, 510, 511, 512, 513, 514, 977, + 142, 163, 144, 145, 147, 170, 175, 185, 202, 251, + 254, 256, 258, 260, 261, 262, 263, 264, 265, 273, + 274, 275, 276, 288, 289, 317, 318, 319, 381, 382, + 383, 557, 187, 188, 189, 190, 191, 192, 193, 194, + 195, 196, 197, 198, 199, 200, 149, 150, 151, 166, + 152, 168, 153, 203, 169, 154, 155, 156, 204, 157, + 135, 634, 575, 760, 575, 575, 575, 575, 575, 575, + 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, + 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, + 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, + 575, 575, 575, 575, 575, 575, 575, 1116, 766, 1116, + 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, + 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, + 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, + 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, + 1116, 1116, 505, 505, 505, 505, 505, 505, 516, 642, + 516, 767, 505, 505, 505, 505, 505, 505, 505, 505, + 505, 505, 517, 797, 517, 898, 898, 1207, 1207, 531, + 589, 617, 862, 862, 862, 862, 173, 857, 863, 1092, + 1091, 176, 177, 178, 390, 391, 392, 393, 172, 201, + 205, 207, 255, 257, 259, 266, 267, 268, 269, 270, + 271, 277, 278, 279, 280, 290, 291, 320, 321, 322, + 396, 397, 398, 399, 174, 179, 252, 253, 180, 181, + 182, 389, 619, 550, 550, 582, 546, 598, 765, 613, + 614, 548, 548, 504, 506, 537, 554, 583, 586, 596, + 603, 884, 866, 864, 866, 668, 828, 519, 893, 888, + 574, 344, 574, 574, 574, 574, 574, 574, 574, 574, + 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, + 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, + 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, + 574, 574, 574, 574, 574, 559, 560, 561, 562, 563, + 564, 565, 566, 568, 599, 522, 558, 330, 315, 1219, + 1219, 530, 592, 595, 640, 527, 527, 527, 868, 527, + 600, 347, 406, 530, 530, 1219, 440, 440, 440, 440, + 440, 440, 545, 527, 551, 954, 440, 440, 440, 440, + 440, 440, 440, 440, 440, 440, 1081, 1211, 1081, 905, + 905, 905, 905, 3, 4, 623, 905, 955, 626, 556, + 905, 363, 1185, 581, 1185, 916, 371, 371, 371, 366, + 1081, 1081, 1081, 1081, 790, 1081, 1081, 371, 371, 1184, + 607, 1184, 1177, 371, 1165, 471, 1201, 1201, 1201, 527, + 527, 371, 1233, 544, 576, 527, 527, 618, 1074, 527, + 1204, 790, 790, 378, 1025, 922, 524, 922, 518, 902, + 518, 911, 350, 1183, 975, 400, 528, 543, 786, 669, + 570, 372, 376, 920, 604, 784, 555, 895, 624, 625, + 891, 629, 630, 637, 639, 644, 646, 453, 455, 947, + 645, 673, 1097, 404, 1117, 627, 945, 1199, 1199, 1199, + 1035, 19, 15, 359, 1218, 1218, 1067, 872, 783, 783, + 794, 963, 791, 791, 791, 793, 1072, 925, 782, 456, + 1218, 569, 345, 346, 360, 524, 1077, 1078, 1221, 1162, + 1074, 535, 23, 587, 469, 547, 0, 615, 373, 373, + 373, 0, 0, 1075, 1176, 1075, 0, 0, 542, 0, + 460, 0, 1076, 0, 0, 0, 0, 0, 0, 0, + 0, 13, 0, 0, 0, 373, 0, 0, 622, 388, + 0, 0, 0, 1073, 631, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 517, 537, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 517, 0, 537, 0, 0, 0, 0, - 0, 532, 516, 0, 521, 439, 0, 441, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 784, 1219 + 0, 0, 0, 0, 0, 0, 0, 521, 541, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 521, + 0, 541, 0, 0, 0, 0, 0, 536, 520, 0, + 525, 443, 0, 445, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 789, 1226 ); protected $gotoCheck = array( @@ -715,97 +718,97 @@ class Php5 extends \PhpParser\ParserAbstract 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, - 42, 42, 42, 42, 42, 42, 42, 42, 42, 56, - 66, 28, 66, 66, 66, 66, 66, 66, 66, 66, + 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, + 42, 56, 66, 5, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, - 66, 66, 66, 66, 66, 124, 15, 124, 124, 124, + 66, 66, 66, 66, 66, 66, 66, 124, 14, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, - 115, 115, 115, 115, 115, 115, 66, 8, 66, 14, - 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, - 115, 5, 115, 74, 74, 74, 74, 99, 39, 39, - 66, 66, 66, 66, 26, 66, 66, 122, 122, 26, + 124, 124, 115, 115, 115, 115, 115, 115, 66, 8, + 66, 15, 115, 115, 115, 115, 115, 115, 115, 115, + 115, 115, 115, 28, 115, 74, 74, 74, 74, 99, + 39, 39, 66, 66, 66, 66, 26, 66, 66, 122, + 122, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, 26, 50, - 50, 50, 50, 50, 50, 140, 140, 49, 69, 50, - 50, 50, 50, 50, 50, 50, 50, 50, 50, 60, - 32, 140, 60, 81, 56, 60, 56, 56, 56, 56, + 26, 50, 50, 50, 50, 50, 50, 64, 13, 64, + 64, 50, 50, 50, 50, 50, 50, 50, 50, 50, + 50, 13, 13, 13, 13, 13, 49, 13, 13, 13, + 56, 69, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, 56, 108, - 108, 108, 108, 108, 108, 108, 108, 108, 108, 10, - 46, 123, 123, 64, 46, 64, 64, 95, 2, 10, - 10, 10, 2, 10, 59, 59, 59, 46, 46, 107, - 56, 56, 56, 56, 56, 56, 10, 10, 138, 95, - 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, - 56, 45, 56, 56, 56, 56, 56, 67, 67, 67, - 56, 120, 129, 120, 56, 116, 125, 116, 29, 29, - 12, 12, 12, 48, 56, 56, 56, 56, 22, 56, - 56, 12, 12, 117, 136, 117, 79, 12, 47, 56, - 117, 117, 117, 10, 10, 12, 12, 10, 10, 10, - 10, 100, 79, 10, 76, 22, 22, 78, 17, 12, - 12, 12, 21, 11, 24, 16, 82, 117, 99, 23, - 10, 31, 71, 31, 31, 20, 111, 83, 31, 13, - 10, 31, 31, 31, 31, 31, 31, 31, 31, 31, - 31, 25, 13, 13, 13, 13, 13, 33, 13, 13, - 13, 8, 8, 8, 68, 33, 33, 33, 33, 69, - 69, 97, 22, 22, 57, 113, 22, 22, 22, 22, - 62, 57, 22, 128, 106, 57, 33, 63, -1, 12, - 79, 79, -1, -1, 79, -1, -1, 33, 139, 139, - 57, -1, 33, 121, 121, 121, -1, 79, 79, 79, - -1, 57, 8, -1, 139, -1, 79, 7, 7, 7, - 7, -1, 139, -1, 7, 7, 7, -1, -1, -1, - 121, -1, 12, -1, 121, -1, -1, 12, 12, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 56, 56, 56, 56, 56, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 10, 46, 123, 123, 140, + 140, 46, 59, 59, 59, 10, 10, 10, 32, 10, + 67, 67, 67, 46, 46, 140, 56, 56, 56, 56, + 56, 56, 10, 10, 107, 95, 56, 56, 56, 56, + 56, 56, 56, 56, 56, 56, 56, 138, 56, 56, + 56, 56, 56, 29, 29, 60, 56, 95, 60, 2, + 56, 60, 116, 2, 116, 81, 12, 12, 12, 45, + 56, 56, 56, 56, 22, 56, 56, 12, 12, 117, + 125, 117, 79, 12, 129, 56, 117, 117, 117, 10, + 10, 12, 12, 10, 10, 10, 10, 48, 79, 10, + 136, 22, 22, 47, 100, 12, 12, 12, 120, 76, + 120, 78, 17, 117, 99, 21, 10, 31, 24, 31, + 31, 11, 16, 82, 31, 23, 10, 31, 31, 31, + 31, 31, 31, 31, 31, 31, 31, 7, 7, 7, + 7, 71, 33, 20, 7, 7, 7, 8, 8, 8, + 33, 33, 33, 33, 139, 139, 111, 68, 22, 22, + 25, 97, 22, 22, 22, 22, 113, 83, 22, 62, + 139, 33, 69, 69, 57, 12, 79, 79, 139, 128, + 79, 57, 33, 63, 106, 57, -1, 33, 121, 121, + 121, -1, -1, 79, 79, 79, -1, -1, 8, -1, + 57, -1, 79, -1, -1, -1, -1, -1, -1, -1, + -1, 57, -1, -1, -1, 121, -1, -1, 12, 121, + -1, -1, -1, 12, 12, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 8, 8, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 8, -1, 8, -1, -1, -1, -1, - -1, 99, 8, -1, 8, 8, -1, 8, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 8, 8 + -1, -1, -1, -1, -1, -1, -1, 8, 8, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 8, + -1, 8, -1, -1, -1, -1, -1, 99, 8, -1, + 8, 8, -1, 8, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 8, 8 ); protected $gotoBase = array( - 0, 0, -277, 0, 0, 210, 0, 552, 196, 0, - 40, 130, 111, 477, 207, 154, 119, 139, 0, 0, - 71, 132, 109, 122, 133, 74, 32, 0, 101, -251, - 0, -173, 280, 83, 0, 0, 0, 0, 0, 190, - 0, 0, -24, 0, 0, 361, 336, 149, 144, 269, - 1, 0, 0, 0, 0, 0, 102, 87, 0, 72, - -163, 0, 78, 75, -287, 0, -92, 84, 85, -157, - 0, 114, 0, 0, -55, 0, 146, 0, 145, 98, - 0, 278, 116, 59, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 90, 0, 91, 0, 186, - 151, 0, 0, 0, 0, 0, 61, 352, 305, 0, - 0, 60, 0, 94, 0, -78, 117, 135, 0, 0, - 113, 238, -69, 41, -47, 211, 0, 0, 66, 206, - 0, 0, 0, 0, 0, 0, 153, 0, 358, 228, - -25, 0, 0 + 0, 0, -230, 0, 0, 102, 0, 492, 198, 0, + 42, 144, 113, 286, 156, 209, 132, 149, 0, 0, + 95, 141, 111, 134, 143, 99, 30, 0, 213, -260, + 0, -171, 358, 84, 0, 0, 0, 0, 0, 192, + 0, 0, -24, 0, 0, 389, 342, 170, 174, 288, + -1, 0, 0, 0, 0, 0, 104, 103, 0, 66, + -51, 0, 83, 87, -367, 0, -94, 53, 94, -138, + 0, 139, 0, 0, -57, 0, 157, 0, 155, 100, + 0, 397, 129, 105, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 114, 0, 97, 0, 188, + 160, 0, 0, 0, 0, 0, 77, 368, 311, 0, + 0, 96, 0, 101, 0, -80, 120, 137, 0, 0, + 166, 239, -71, 43, -49, 231, 0, 0, 78, 234, + 0, 0, 0, 0, 0, 0, 175, 0, 380, 200, + 55, 0, 0 ); protected $gotoDefault = array( - -32768, 469, 673, 2, 674, 745, 753, 606, 483, 639, - 484, 519, 1189, 798, 799, 800, 364, 410, 485, 363, - 397, 390, 787, 780, 782, 790, 168, 398, 793, 1, - 795, 525, 831, 1020, 351, 803, 352, 598, 805, 535, - 807, 808, 134, 365, 366, 536, 486, 373, 586, 822, - 268, 370, 824, 353, 825, 834, 354, 466, 461, 567, - 617, 431, 448, 580, 574, 545, 1083, 575, 866, 339, - 874, 670, 882, 885, 487, 568, 896, 453, 904, 1096, - 380, 910, 916, 921, 277, 924, 411, 399, 593, 929, - 930, 7, 934, 631, 632, 8, 299, 957, 607, 971, - 416, 1039, 1041, 488, 489, 529, 460, 511, 534, 490, - 1062, 442, 401, 1065, 491, 492, 432, 433, 1080, 345, - 1164, 344, 450, 310, 1151, 589, 1115, 457, 1204, 1160, - 338, 493, 494, 360, 1183, 375, 1199, 437, 1206, 1213, - 334, 549, 576 + -32768, 473, 677, 2, 678, 750, 758, 610, 487, 643, + 488, 523, 1195, 803, 804, 805, 368, 414, 489, 367, + 401, 394, 792, 785, 787, 795, 171, 402, 798, 1, + 800, 529, 836, 1026, 355, 808, 356, 602, 810, 539, + 812, 813, 136, 369, 370, 540, 490, 377, 590, 827, + 272, 374, 829, 357, 830, 839, 358, 470, 465, 571, + 621, 435, 452, 584, 578, 549, 1089, 579, 871, 343, + 879, 674, 887, 890, 491, 572, 901, 457, 909, 1102, + 384, 915, 921, 926, 281, 929, 415, 403, 597, 934, + 935, 7, 939, 635, 636, 8, 303, 962, 611, 976, + 420, 1045, 1047, 492, 493, 533, 464, 515, 538, 494, + 1068, 446, 405, 1071, 495, 496, 436, 437, 1086, 349, + 1170, 348, 454, 314, 1157, 593, 1121, 461, 1210, 1166, + 342, 497, 498, 364, 1189, 379, 1205, 441, 1212, 1220, + 338, 553, 580 ); protected $ruleToNonTerminal = array( @@ -816,29 +819,30 @@ class Php5 extends \PhpParser\ParserAbstract 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, - 7, 7, 8, 9, 10, 10, 11, 12, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 17, - 17, 18, 18, 18, 18, 20, 20, 16, 16, 21, - 21, 22, 22, 23, 23, 24, 24, 19, 19, 25, - 27, 27, 28, 29, 29, 31, 30, 30, 30, 30, + 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, + 6, 7, 7, 8, 9, 10, 10, 11, 12, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 17, 17, 18, 18, 18, 18, 20, 20, 16, 16, + 21, 21, 22, 22, 23, 23, 24, 24, 19, 19, + 25, 27, 27, 28, 29, 29, 31, 30, 30, 30, + 30, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 13, - 13, 53, 53, 55, 54, 54, 47, 47, 57, 57, - 58, 58, 14, 15, 15, 15, 61, 61, 61, 62, - 62, 65, 65, 63, 63, 67, 67, 40, 40, 49, - 49, 52, 52, 52, 51, 51, 68, 41, 41, 41, - 41, 69, 69, 70, 70, 71, 71, 38, 38, 34, - 34, 72, 36, 36, 73, 35, 35, 37, 37, 48, - 48, 48, 59, 59, 75, 75, 76, 76, 78, 78, - 78, 77, 77, 60, 60, 79, 79, 79, 80, 80, - 81, 81, 81, 43, 43, 82, 82, 82, 44, 44, - 83, 83, 84, 84, 64, 85, 85, 85, 85, 90, - 90, 91, 91, 92, 92, 92, 92, 92, 93, 94, - 94, 89, 89, 86, 86, 88, 88, 96, 96, 95, - 95, 95, 95, 95, 95, 87, 87, 98, 97, 97, - 45, 45, 39, 39, 42, 42, 42, 42, 42, 42, + 13, 13, 53, 53, 55, 54, 54, 47, 47, 57, + 57, 58, 58, 14, 15, 15, 15, 61, 61, 61, + 62, 62, 65, 65, 63, 63, 67, 67, 40, 40, + 49, 49, 52, 52, 52, 51, 51, 68, 41, 41, + 41, 41, 69, 69, 70, 70, 71, 71, 38, 38, + 34, 34, 72, 36, 36, 73, 35, 35, 37, 37, + 48, 48, 48, 59, 59, 75, 75, 76, 76, 78, + 78, 78, 77, 77, 60, 60, 79, 79, 79, 80, + 80, 81, 81, 81, 43, 43, 82, 82, 82, 44, + 44, 83, 83, 84, 84, 64, 85, 85, 85, 85, + 90, 90, 91, 91, 92, 92, 92, 92, 92, 93, + 94, 94, 89, 89, 86, 86, 88, 88, 96, 96, + 95, 95, 95, 95, 95, 95, 87, 87, 98, 97, + 97, 45, 45, 39, 39, 42, 42, 42, 42, 42, + 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, @@ -846,25 +850,24 @@ class Php5 extends \PhpParser\ParserAbstract 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, - 42, 42, 42, 42, 42, 42, 42, 42, 33, 33, - 46, 46, 103, 103, 104, 104, 104, 104, 110, 99, - 99, 106, 106, 112, 112, 113, 114, 114, 114, 114, - 114, 114, 66, 66, 56, 56, 56, 100, 100, 118, - 118, 115, 115, 119, 119, 119, 119, 101, 101, 101, - 105, 105, 105, 111, 111, 124, 124, 124, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 124, 26, 26, - 26, 26, 26, 26, 126, 126, 126, 126, 126, 126, + 33, 33, 46, 46, 103, 103, 104, 104, 104, 104, + 110, 99, 99, 106, 106, 112, 112, 113, 114, 114, + 114, 114, 114, 114, 66, 66, 56, 56, 56, 100, + 100, 118, 118, 115, 115, 119, 119, 119, 119, 101, + 101, 101, 105, 105, 105, 111, 111, 124, 124, 124, + 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, + 26, 26, 26, 26, 26, 26, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, - 126, 126, 126, 126, 126, 126, 126, 109, 109, 102, - 102, 102, 102, 125, 125, 128, 128, 127, 127, 129, - 129, 50, 50, 50, 50, 131, 131, 130, 130, 130, - 130, 130, 132, 132, 117, 117, 120, 120, 116, 116, - 134, 133, 133, 133, 133, 121, 121, 121, 121, 108, - 108, 122, 122, 122, 122, 74, 135, 135, 136, 136, - 136, 107, 107, 137, 137, 138, 138, 138, 138, 123, - 123, 123, 123, 140, 141, 139, 139, 139, 139, 139, - 139, 139, 142, 142, 142 + 126, 126, 126, 126, 126, 126, 126, 126, 126, 109, + 109, 102, 102, 102, 102, 125, 125, 128, 128, 127, + 127, 129, 129, 50, 50, 50, 50, 131, 131, 130, + 130, 130, 130, 130, 132, 132, 117, 117, 120, 120, + 116, 116, 134, 133, 133, 133, 133, 121, 121, 121, + 121, 108, 108, 122, 122, 122, 122, 74, 135, 135, + 136, 136, 136, 107, 107, 137, 137, 138, 138, 138, + 138, 138, 123, 123, 123, 123, 140, 141, 139, 139, + 139, 139, 139, 139, 139, 142, 142, 142 ); protected $ruleToLength = array( @@ -876,54 +879,54 @@ class Php5 extends \PhpParser\ParserAbstract 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, - 1, 1, 3, 5, 4, 3, 4, 2, 3, 1, - 1, 7, 8, 6, 7, 3, 1, 3, 1, 3, - 1, 1, 3, 1, 2, 1, 2, 3, 1, 3, - 3, 1, 3, 2, 0, 1, 1, 1, 1, 1, - 3, 5, 8, 3, 5, 9, 3, 2, 3, 2, - 3, 2, 3, 3, 3, 3, 1, 2, 2, 5, - 7, 9, 5, 6, 3, 3, 2, 2, 1, 1, - 1, 0, 2, 8, 0, 4, 1, 3, 0, 1, - 0, 1, 10, 7, 6, 5, 1, 2, 2, 0, - 2, 0, 2, 0, 2, 1, 3, 1, 4, 1, - 4, 1, 1, 4, 1, 3, 3, 3, 4, 4, - 5, 0, 2, 4, 3, 1, 1, 1, 4, 0, - 2, 3, 0, 2, 4, 0, 2, 0, 3, 1, - 2, 1, 1, 0, 1, 3, 4, 6, 1, 1, - 1, 0, 1, 0, 2, 2, 3, 3, 1, 3, - 1, 2, 2, 3, 1, 1, 2, 4, 3, 1, - 1, 3, 2, 0, 1, 3, 3, 9, 3, 1, - 3, 0, 2, 4, 5, 4, 4, 4, 3, 1, - 1, 1, 3, 1, 1, 0, 1, 1, 2, 1, - 1, 1, 1, 1, 1, 1, 3, 1, 1, 3, - 3, 1, 0, 1, 1, 3, 3, 4, 4, 1, - 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 2, 2, 2, 2, 3, 3, 3, + 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, + 1, 1, 1, 3, 5, 4, 3, 4, 2, 3, + 1, 1, 7, 8, 6, 7, 3, 1, 3, 1, + 3, 1, 1, 3, 1, 2, 1, 2, 3, 1, + 3, 3, 1, 3, 2, 0, 1, 1, 1, 1, + 1, 3, 5, 8, 3, 5, 9, 3, 2, 3, + 2, 3, 2, 3, 3, 3, 3, 1, 2, 2, + 5, 7, 9, 5, 6, 3, 3, 2, 2, 1, + 1, 1, 0, 2, 8, 0, 4, 1, 3, 0, + 1, 0, 1, 10, 7, 6, 5, 1, 2, 2, + 0, 2, 0, 2, 0, 2, 1, 3, 1, 4, + 1, 4, 1, 1, 4, 1, 3, 3, 3, 4, + 4, 5, 0, 2, 4, 3, 1, 1, 1, 4, + 0, 2, 3, 0, 2, 4, 0, 2, 0, 3, + 1, 2, 1, 1, 0, 1, 3, 4, 6, 1, + 1, 1, 0, 1, 0, 2, 2, 3, 3, 1, + 3, 1, 2, 2, 3, 1, 1, 2, 4, 3, + 1, 1, 3, 2, 0, 1, 3, 3, 9, 3, + 1, 3, 0, 2, 4, 5, 4, 4, 4, 3, + 1, 1, 1, 3, 1, 1, 0, 1, 1, 2, + 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, + 3, 3, 1, 0, 1, 1, 3, 3, 4, 4, + 1, 2, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 2, 2, 2, 2, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 1, 3, - 5, 4, 3, 4, 4, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, - 1, 1, 3, 2, 1, 2, 10, 11, 3, 3, - 2, 4, 4, 3, 4, 4, 4, 4, 7, 3, - 2, 0, 4, 1, 3, 2, 2, 4, 6, 2, - 2, 4, 1, 1, 1, 2, 3, 1, 1, 1, - 1, 1, 1, 3, 3, 4, 4, 0, 2, 1, - 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 3, 2, 1, 3, - 1, 4, 3, 1, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 2, 2, 2, 2, 3, 3, 3, 3, 3, - 3, 3, 3, 5, 4, 4, 3, 1, 3, 1, - 1, 3, 3, 0, 2, 0, 1, 3, 1, 3, - 1, 1, 1, 1, 1, 6, 4, 3, 4, 2, - 4, 4, 1, 3, 1, 2, 1, 1, 4, 1, - 1, 3, 6, 4, 4, 4, 4, 1, 4, 0, - 1, 1, 3, 1, 1, 4, 3, 1, 1, 1, - 0, 0, 2, 3, 1, 3, 1, 4, 2, 2, - 2, 1, 2, 1, 1, 1, 4, 3, 3, 3, - 6, 3, 1, 1, 1 + 1, 3, 5, 4, 3, 4, 4, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 1, 1, 1, 3, 2, 1, 2, 10, 11, + 3, 3, 2, 4, 4, 3, 4, 4, 4, 4, + 7, 3, 2, 0, 4, 1, 3, 2, 2, 4, + 6, 2, 2, 4, 1, 1, 1, 2, 3, 1, + 1, 1, 1, 1, 1, 3, 3, 4, 4, 0, + 2, 1, 0, 1, 1, 0, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, + 1, 3, 1, 4, 3, 1, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 2, 2, 2, 2, 3, 3, 3, + 3, 3, 3, 3, 3, 5, 4, 4, 3, 1, + 3, 1, 1, 3, 3, 0, 2, 0, 1, 3, + 1, 3, 1, 1, 1, 1, 1, 6, 4, 3, + 4, 2, 4, 4, 1, 3, 1, 2, 1, 1, + 4, 1, 1, 3, 6, 4, 4, 4, 4, 1, + 4, 0, 1, 1, 3, 1, 1, 4, 3, 1, + 1, 1, 0, 0, 2, 3, 1, 3, 1, 4, + 2, 2, 2, 2, 1, 2, 1, 1, 1, 4, + 3, 3, 3, 6, 3, 1, 1, 1 ); protected function initReduceCallbacks() { @@ -941,7 +944,7 @@ protected function initReduceCallbacks() { $this->semValue = array(); }, 4 => function ($stackPos) { - $startAttributes = $this->lookaheadStartAttributes; if (isset($startAttributes['comments'])) { $nop = new Stmt\Nop($startAttributes + $this->endAttributes); } else { $nop = null; }; + $startAttributes = $this->lookaheadStartAttributes; if (isset($startAttributes['comments'])) { $nop = new Stmt\Nop($this->createZeroLengthAttributes($startAttributes)); } else { $nop = null; }; if ($nop !== null) { $this->semStack[$stackPos-(1-1)][] = $nop; } $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 5 => function ($stackPos) { @@ -1170,7 +1173,7 @@ protected function initReduceCallbacks() { $this->semValue = $this->semStack[$stackPos]; }, 80 => function ($stackPos) { - $this->semValue = new Node\Identifier($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos]; }, 81 => function ($stackPos) { $this->semValue = new Node\Identifier($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); @@ -1182,19 +1185,19 @@ protected function initReduceCallbacks() { $this->semValue = new Node\Identifier($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 84 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)]); + $this->semValue = new Node\Identifier($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 85 => function ($stackPos) { - $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; + $this->semValue = array($this->semStack[$stackPos-(1-1)]); }, 86 => function ($stackPos) { - $this->semValue = new Name($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; }, 87 => function ($stackPos) { - $this->semValue = new Expr\Variable(substr($this->semStack[$stackPos-(1-1)], 1), $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = new Name($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 88 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = new Expr\Variable(substr($this->semStack[$stackPos-(1-1)], 1), $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 89 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; @@ -1203,119 +1206,119 @@ protected function initReduceCallbacks() { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 91 => function ($stackPos) { - $this->semValue = new Stmt\HaltCompiler($this->lexer->handleHaltCompiler(), $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 92 => function ($stackPos) { + $this->semValue = new Stmt\HaltCompiler($this->lexer->handleHaltCompiler(), $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 93 => function ($stackPos) { $this->semValue = new Stmt\Namespace_($this->semStack[$stackPos-(3-2)], null, $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); $this->semValue->setAttribute('kind', Stmt\Namespace_::KIND_SEMICOLON); $this->checkNamespace($this->semValue); }, - 93 => function ($stackPos) { + 94 => function ($stackPos) { $this->semValue = new Stmt\Namespace_($this->semStack[$stackPos-(5-2)], $this->semStack[$stackPos-(5-4)], $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes); $this->semValue->setAttribute('kind', Stmt\Namespace_::KIND_BRACED); $this->checkNamespace($this->semValue); }, - 94 => function ($stackPos) { + 95 => function ($stackPos) { $this->semValue = new Stmt\Namespace_(null, $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); $this->semValue->setAttribute('kind', Stmt\Namespace_::KIND_BRACED); $this->checkNamespace($this->semValue); }, - 95 => function ($stackPos) { - $this->semValue = new Stmt\Use_($this->semStack[$stackPos-(3-2)], Stmt\Use_::TYPE_NORMAL, $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); - }, 96 => function ($stackPos) { - $this->semValue = new Stmt\Use_($this->semStack[$stackPos-(4-3)], $this->semStack[$stackPos-(4-2)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semValue = new Stmt\Use_($this->semStack[$stackPos-(3-2)], Stmt\Use_::TYPE_NORMAL, $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 97 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(2-1)]; + $this->semValue = new Stmt\Use_($this->semStack[$stackPos-(4-3)], $this->semStack[$stackPos-(4-2)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 98 => function ($stackPos) { - $this->semValue = new Stmt\Const_($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos-(2-1)]; }, 99 => function ($stackPos) { - $this->semValue = Stmt\Use_::TYPE_FUNCTION; + $this->semValue = new Stmt\Const_($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 100 => function ($stackPos) { - $this->semValue = Stmt\Use_::TYPE_CONSTANT; + $this->semValue = Stmt\Use_::TYPE_FUNCTION; }, 101 => function ($stackPos) { - $this->semValue = new Stmt\GroupUse(new Name($this->semStack[$stackPos-(7-3)], $this->startAttributeStack[$stackPos-(7-3)] + $this->endAttributeStack[$stackPos-(7-3)]), $this->semStack[$stackPos-(7-6)], $this->semStack[$stackPos-(7-2)], $this->startAttributeStack[$stackPos-(7-1)] + $this->endAttributes); + $this->semValue = Stmt\Use_::TYPE_CONSTANT; }, 102 => function ($stackPos) { - $this->semValue = new Stmt\GroupUse(new Name($this->semStack[$stackPos-(8-4)], $this->startAttributeStack[$stackPos-(8-4)] + $this->endAttributeStack[$stackPos-(8-4)]), $this->semStack[$stackPos-(8-7)], $this->semStack[$stackPos-(8-2)], $this->startAttributeStack[$stackPos-(8-1)] + $this->endAttributes); + $this->semValue = new Stmt\GroupUse(new Name($this->semStack[$stackPos-(7-3)], $this->startAttributeStack[$stackPos-(7-3)] + $this->endAttributeStack[$stackPos-(7-3)]), $this->semStack[$stackPos-(7-6)], $this->semStack[$stackPos-(7-2)], $this->startAttributeStack[$stackPos-(7-1)] + $this->endAttributes); }, 103 => function ($stackPos) { - $this->semValue = new Stmt\GroupUse(new Name($this->semStack[$stackPos-(6-2)], $this->startAttributeStack[$stackPos-(6-2)] + $this->endAttributeStack[$stackPos-(6-2)]), $this->semStack[$stackPos-(6-5)], Stmt\Use_::TYPE_UNKNOWN, $this->startAttributeStack[$stackPos-(6-1)] + $this->endAttributes); + $this->semValue = new Stmt\GroupUse(new Name($this->semStack[$stackPos-(8-4)], $this->startAttributeStack[$stackPos-(8-4)] + $this->endAttributeStack[$stackPos-(8-4)]), $this->semStack[$stackPos-(8-7)], $this->semStack[$stackPos-(8-2)], $this->startAttributeStack[$stackPos-(8-1)] + $this->endAttributes); }, 104 => function ($stackPos) { - $this->semValue = new Stmt\GroupUse(new Name($this->semStack[$stackPos-(7-3)], $this->startAttributeStack[$stackPos-(7-3)] + $this->endAttributeStack[$stackPos-(7-3)]), $this->semStack[$stackPos-(7-6)], Stmt\Use_::TYPE_UNKNOWN, $this->startAttributeStack[$stackPos-(7-1)] + $this->endAttributes); + $this->semValue = new Stmt\GroupUse(new Name($this->semStack[$stackPos-(6-2)], $this->startAttributeStack[$stackPos-(6-2)] + $this->endAttributeStack[$stackPos-(6-2)]), $this->semStack[$stackPos-(6-5)], Stmt\Use_::TYPE_UNKNOWN, $this->startAttributeStack[$stackPos-(6-1)] + $this->endAttributes); }, 105 => function ($stackPos) { - $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; + $this->semValue = new Stmt\GroupUse(new Name($this->semStack[$stackPos-(7-3)], $this->startAttributeStack[$stackPos-(7-3)] + $this->endAttributeStack[$stackPos-(7-3)]), $this->semStack[$stackPos-(7-6)], Stmt\Use_::TYPE_UNKNOWN, $this->startAttributeStack[$stackPos-(7-1)] + $this->endAttributes); }, 106 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)]); + $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; }, 107 => function ($stackPos) { - $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; + $this->semValue = array($this->semStack[$stackPos-(1-1)]); }, 108 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)]); + $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; }, 109 => function ($stackPos) { - $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; + $this->semValue = array($this->semStack[$stackPos-(1-1)]); }, 110 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)]); + $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; }, 111 => function ($stackPos) { - $this->semValue = new Stmt\UseUse($this->semStack[$stackPos-(1-1)], null, Stmt\Use_::TYPE_UNKNOWN, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); $this->checkUseUse($this->semValue, $stackPos-(1-1)); + $this->semValue = array($this->semStack[$stackPos-(1-1)]); }, 112 => function ($stackPos) { - $this->semValue = new Stmt\UseUse($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], Stmt\Use_::TYPE_UNKNOWN, $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); $this->checkUseUse($this->semValue, $stackPos-(3-3)); + $this->semValue = new Stmt\UseUse($this->semStack[$stackPos-(1-1)], null, Stmt\Use_::TYPE_UNKNOWN, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); $this->checkUseUse($this->semValue, $stackPos-(1-1)); }, 113 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = new Stmt\UseUse($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], Stmt\Use_::TYPE_UNKNOWN, $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); $this->checkUseUse($this->semValue, $stackPos-(3-3)); }, 114 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(2-2)]; + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 115 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; $this->semValue->type = Stmt\Use_::TYPE_NORMAL; + $this->semValue = $this->semStack[$stackPos-(2-2)]; }, 116 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(2-2)]; $this->semValue->type = $this->semStack[$stackPos-(2-1)]; + $this->semValue = $this->semStack[$stackPos-(1-1)]; $this->semValue->type = Stmt\Use_::TYPE_NORMAL; }, 117 => function ($stackPos) { - $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; + $this->semValue = $this->semStack[$stackPos-(2-2)]; $this->semValue->type = $this->semStack[$stackPos-(2-1)]; }, 118 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)]); + $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; }, 119 => function ($stackPos) { - $this->semValue = new Node\Const_($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = array($this->semStack[$stackPos-(1-1)]); }, 120 => function ($stackPos) { - $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; + $this->semValue = new Node\Const_($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 121 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)]); + $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; }, 122 => function ($stackPos) { - $this->semValue = new Node\Const_($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = array($this->semStack[$stackPos-(1-1)]); }, 123 => function ($stackPos) { - if (is_array($this->semStack[$stackPos-(2-2)])) { $this->semValue = array_merge($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)]); } else { $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; }; + $this->semValue = new Node\Const_($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 124 => function ($stackPos) { - $this->semValue = array(); + if (is_array($this->semStack[$stackPos-(2-2)])) { $this->semValue = array_merge($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)]); } else { $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; }; }, 125 => function ($stackPos) { - $startAttributes = $this->lookaheadStartAttributes; if (isset($startAttributes['comments'])) { $nop = new Stmt\Nop($startAttributes + $this->endAttributes); } else { $nop = null; }; - if ($nop !== null) { $this->semStack[$stackPos-(1-1)][] = $nop; } $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = array(); }, 126 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $startAttributes = $this->lookaheadStartAttributes; if (isset($startAttributes['comments'])) { $nop = new Stmt\Nop($this->createZeroLengthAttributes($startAttributes)); } else { $nop = null; }; + if ($nop !== null) { $this->semStack[$stackPos-(1-1)][] = $nop; } $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 127 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; @@ -1324,9 +1327,12 @@ protected function initReduceCallbacks() { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 129 => function ($stackPos) { - throw new Error('__HALT_COMPILER() can only be used from the outermost scope', $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 130 => function ($stackPos) { + throw new Error('__HALT_COMPILER() can only be used from the outermost scope', $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 131 => function ($stackPos) { if ($this->semStack[$stackPos-(3-2)]) { $this->semValue = $this->semStack[$stackPos-(3-2)]; $attrs = $this->startAttributeStack[$stackPos-(3-1)]; $stmts = $this->semValue; if (!empty($attrs['comments'])) {$stmts[0]->setAttribute('comments', array_merge($attrs['comments'], $stmts[0]->getAttribute('comments', []))); }; @@ -1336,850 +1342,849 @@ protected function initReduceCallbacks() { } }, - 131 => function ($stackPos) { - $this->semValue = new Stmt\If_($this->semStack[$stackPos-(5-2)], ['stmts' => is_array($this->semStack[$stackPos-(5-3)]) ? $this->semStack[$stackPos-(5-3)] : array($this->semStack[$stackPos-(5-3)]), 'elseifs' => $this->semStack[$stackPos-(5-4)], 'else' => $this->semStack[$stackPos-(5-5)]], $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes); - }, 132 => function ($stackPos) { - $this->semValue = new Stmt\If_($this->semStack[$stackPos-(8-2)], ['stmts' => $this->semStack[$stackPos-(8-4)], 'elseifs' => $this->semStack[$stackPos-(8-5)], 'else' => $this->semStack[$stackPos-(8-6)]], $this->startAttributeStack[$stackPos-(8-1)] + $this->endAttributes); + $this->semValue = new Stmt\If_($this->semStack[$stackPos-(5-2)], ['stmts' => is_array($this->semStack[$stackPos-(5-3)]) ? $this->semStack[$stackPos-(5-3)] : array($this->semStack[$stackPos-(5-3)]), 'elseifs' => $this->semStack[$stackPos-(5-4)], 'else' => $this->semStack[$stackPos-(5-5)]], $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes); }, 133 => function ($stackPos) { - $this->semValue = new Stmt\While_($this->semStack[$stackPos-(3-2)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Stmt\If_($this->semStack[$stackPos-(8-2)], ['stmts' => $this->semStack[$stackPos-(8-4)], 'elseifs' => $this->semStack[$stackPos-(8-5)], 'else' => $this->semStack[$stackPos-(8-6)]], $this->startAttributeStack[$stackPos-(8-1)] + $this->endAttributes); }, 134 => function ($stackPos) { - $this->semValue = new Stmt\Do_($this->semStack[$stackPos-(5-4)], is_array($this->semStack[$stackPos-(5-2)]) ? $this->semStack[$stackPos-(5-2)] : array($this->semStack[$stackPos-(5-2)]), $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes); + $this->semValue = new Stmt\While_($this->semStack[$stackPos-(3-2)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 135 => function ($stackPos) { - $this->semValue = new Stmt\For_(['init' => $this->semStack[$stackPos-(9-3)], 'cond' => $this->semStack[$stackPos-(9-5)], 'loop' => $this->semStack[$stackPos-(9-7)], 'stmts' => $this->semStack[$stackPos-(9-9)]], $this->startAttributeStack[$stackPos-(9-1)] + $this->endAttributes); + $this->semValue = new Stmt\Do_($this->semStack[$stackPos-(5-4)], is_array($this->semStack[$stackPos-(5-2)]) ? $this->semStack[$stackPos-(5-2)] : array($this->semStack[$stackPos-(5-2)]), $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes); }, 136 => function ($stackPos) { - $this->semValue = new Stmt\Switch_($this->semStack[$stackPos-(3-2)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Stmt\For_(['init' => $this->semStack[$stackPos-(9-3)], 'cond' => $this->semStack[$stackPos-(9-5)], 'loop' => $this->semStack[$stackPos-(9-7)], 'stmts' => $this->semStack[$stackPos-(9-9)]], $this->startAttributeStack[$stackPos-(9-1)] + $this->endAttributes); }, 137 => function ($stackPos) { - $this->semValue = new Stmt\Break_(null, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Stmt\Switch_($this->semStack[$stackPos-(3-2)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 138 => function ($stackPos) { - $this->semValue = new Stmt\Break_($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Stmt\Break_(null, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 139 => function ($stackPos) { - $this->semValue = new Stmt\Continue_(null, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Stmt\Break_($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 140 => function ($stackPos) { - $this->semValue = new Stmt\Continue_($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Stmt\Continue_(null, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 141 => function ($stackPos) { - $this->semValue = new Stmt\Return_(null, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Stmt\Continue_($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 142 => function ($stackPos) { - $this->semValue = new Stmt\Return_($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Stmt\Return_(null, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 143 => function ($stackPos) { - $this->semValue = new Stmt\Global_($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Stmt\Return_($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 144 => function ($stackPos) { - $this->semValue = new Stmt\Static_($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Stmt\Global_($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 145 => function ($stackPos) { - $this->semValue = new Stmt\Echo_($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Stmt\Static_($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 146 => function ($stackPos) { - $this->semValue = new Stmt\InlineHTML($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = new Stmt\Echo_($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 147 => function ($stackPos) { - $this->semValue = new Stmt\Expression($this->semStack[$stackPos-(2-1)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Stmt\InlineHTML($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 148 => function ($stackPos) { $this->semValue = new Stmt\Expression($this->semStack[$stackPos-(2-1)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 149 => function ($stackPos) { - $this->semValue = new Stmt\Unset_($this->semStack[$stackPos-(5-3)], $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes); + $this->semValue = new Stmt\Expression($this->semStack[$stackPos-(2-1)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 150 => function ($stackPos) { - $this->semValue = new Stmt\Foreach_($this->semStack[$stackPos-(7-3)], $this->semStack[$stackPos-(7-5)][0], ['keyVar' => null, 'byRef' => $this->semStack[$stackPos-(7-5)][1], 'stmts' => $this->semStack[$stackPos-(7-7)]], $this->startAttributeStack[$stackPos-(7-1)] + $this->endAttributes); + $this->semValue = new Stmt\Unset_($this->semStack[$stackPos-(5-3)], $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes); }, 151 => function ($stackPos) { - $this->semValue = new Stmt\Foreach_($this->semStack[$stackPos-(9-3)], $this->semStack[$stackPos-(9-7)][0], ['keyVar' => $this->semStack[$stackPos-(9-5)], 'byRef' => $this->semStack[$stackPos-(9-7)][1], 'stmts' => $this->semStack[$stackPos-(9-9)]], $this->startAttributeStack[$stackPos-(9-1)] + $this->endAttributes); + $this->semValue = new Stmt\Foreach_($this->semStack[$stackPos-(7-3)], $this->semStack[$stackPos-(7-5)][0], ['keyVar' => null, 'byRef' => $this->semStack[$stackPos-(7-5)][1], 'stmts' => $this->semStack[$stackPos-(7-7)]], $this->startAttributeStack[$stackPos-(7-1)] + $this->endAttributes); }, 152 => function ($stackPos) { - $this->semValue = new Stmt\Declare_($this->semStack[$stackPos-(5-3)], $this->semStack[$stackPos-(5-5)], $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes); + $this->semValue = new Stmt\Foreach_($this->semStack[$stackPos-(9-3)], $this->semStack[$stackPos-(9-7)][0], ['keyVar' => $this->semStack[$stackPos-(9-5)], 'byRef' => $this->semStack[$stackPos-(9-7)][1], 'stmts' => $this->semStack[$stackPos-(9-9)]], $this->startAttributeStack[$stackPos-(9-1)] + $this->endAttributes); }, 153 => function ($stackPos) { - $this->semValue = new Stmt\TryCatch($this->semStack[$stackPos-(6-3)], $this->semStack[$stackPos-(6-5)], $this->semStack[$stackPos-(6-6)], $this->startAttributeStack[$stackPos-(6-1)] + $this->endAttributes); $this->checkTryCatch($this->semValue); + $this->semValue = new Stmt\Declare_($this->semStack[$stackPos-(5-3)], $this->semStack[$stackPos-(5-5)], $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes); }, 154 => function ($stackPos) { - $this->semValue = new Stmt\Throw_($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Stmt\TryCatch($this->semStack[$stackPos-(6-3)], $this->semStack[$stackPos-(6-5)], $this->semStack[$stackPos-(6-6)], $this->startAttributeStack[$stackPos-(6-1)] + $this->endAttributes); $this->checkTryCatch($this->semValue); }, 155 => function ($stackPos) { - $this->semValue = new Stmt\Goto_($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Stmt\Throw_($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 156 => function ($stackPos) { - $this->semValue = new Stmt\Label($this->semStack[$stackPos-(2-1)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Stmt\Goto_($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 157 => function ($stackPos) { - $this->semValue = new Stmt\Expression($this->semStack[$stackPos-(2-1)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Stmt\Label($this->semStack[$stackPos-(2-1)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 158 => function ($stackPos) { - $this->semValue = array(); /* means: no statement */ + $this->semValue = new Stmt\Expression($this->semStack[$stackPos-(2-1)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 159 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = array(); /* means: no statement */ }, 160 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 161 => function ($stackPos) { $startAttributes = $this->startAttributeStack[$stackPos-(1-1)]; if (isset($startAttributes['comments'])) { $this->semValue = new Stmt\Nop($startAttributes + $this->endAttributes); } else { $this->semValue = null; }; if ($this->semValue === null) $this->semValue = array(); /* means: no statement */ }, - 161 => function ($stackPos) { + 162 => function ($stackPos) { $this->semValue = array(); }, - 162 => function ($stackPos) { + 163 => function ($stackPos) { $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; }, - 163 => function ($stackPos) { + 164 => function ($stackPos) { $this->semValue = new Stmt\Catch_(array($this->semStack[$stackPos-(8-3)]), $this->semStack[$stackPos-(8-4)], $this->semStack[$stackPos-(8-7)], $this->startAttributeStack[$stackPos-(8-1)] + $this->endAttributes); }, - 164 => function ($stackPos) { + 165 => function ($stackPos) { $this->semValue = null; }, - 165 => function ($stackPos) { + 166 => function ($stackPos) { $this->semValue = new Stmt\Finally_($this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, - 166 => function ($stackPos) { + 167 => function ($stackPos) { $this->semValue = array($this->semStack[$stackPos-(1-1)]); }, - 167 => function ($stackPos) { + 168 => function ($stackPos) { $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; }, - 168 => function ($stackPos) { + 169 => function ($stackPos) { $this->semValue = false; }, - 169 => function ($stackPos) { + 170 => function ($stackPos) { $this->semValue = true; }, - 170 => function ($stackPos) { + 171 => function ($stackPos) { $this->semValue = false; }, - 171 => function ($stackPos) { + 172 => function ($stackPos) { $this->semValue = true; }, - 172 => function ($stackPos) { + 173 => function ($stackPos) { $this->semValue = new Stmt\Function_($this->semStack[$stackPos-(10-3)], ['byRef' => $this->semStack[$stackPos-(10-2)], 'params' => $this->semStack[$stackPos-(10-5)], 'returnType' => $this->semStack[$stackPos-(10-7)], 'stmts' => $this->semStack[$stackPos-(10-9)]], $this->startAttributeStack[$stackPos-(10-1)] + $this->endAttributes); }, - 173 => function ($stackPos) { + 174 => function ($stackPos) { $this->semValue = new Stmt\Class_($this->semStack[$stackPos-(7-2)], ['type' => $this->semStack[$stackPos-(7-1)], 'extends' => $this->semStack[$stackPos-(7-3)], 'implements' => $this->semStack[$stackPos-(7-4)], 'stmts' => $this->semStack[$stackPos-(7-6)]], $this->startAttributeStack[$stackPos-(7-1)] + $this->endAttributes); $this->checkClass($this->semValue, $stackPos-(7-2)); }, - 174 => function ($stackPos) { + 175 => function ($stackPos) { $this->semValue = new Stmt\Interface_($this->semStack[$stackPos-(6-2)], ['extends' => $this->semStack[$stackPos-(6-3)], 'stmts' => $this->semStack[$stackPos-(6-5)]], $this->startAttributeStack[$stackPos-(6-1)] + $this->endAttributes); $this->checkInterface($this->semValue, $stackPos-(6-2)); }, - 175 => function ($stackPos) { - $this->semValue = new Stmt\Trait_($this->semStack[$stackPos-(5-2)], ['stmts' => $this->semStack[$stackPos-(5-4)]], $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes); - }, 176 => function ($stackPos) { - $this->semValue = 0; + $this->semValue = new Stmt\Trait_($this->semStack[$stackPos-(5-2)], ['stmts' => $this->semStack[$stackPos-(5-4)]], $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes); }, 177 => function ($stackPos) { - $this->semValue = Stmt\Class_::MODIFIER_ABSTRACT; + $this->semValue = 0; }, 178 => function ($stackPos) { - $this->semValue = Stmt\Class_::MODIFIER_FINAL; + $this->semValue = Stmt\Class_::MODIFIER_ABSTRACT; }, 179 => function ($stackPos) { - $this->semValue = null; + $this->semValue = Stmt\Class_::MODIFIER_FINAL; }, 180 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(2-2)]; + $this->semValue = null; }, 181 => function ($stackPos) { - $this->semValue = array(); + $this->semValue = $this->semStack[$stackPos-(2-2)]; }, 182 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(2-2)]; + $this->semValue = array(); }, 183 => function ($stackPos) { - $this->semValue = array(); + $this->semValue = $this->semStack[$stackPos-(2-2)]; }, 184 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(2-2)]; + $this->semValue = array(); }, 185 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)]); + $this->semValue = $this->semStack[$stackPos-(2-2)]; }, 186 => function ($stackPos) { - $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; + $this->semValue = array($this->semStack[$stackPos-(1-1)]); }, 187 => function ($stackPos) { - $this->semValue = is_array($this->semStack[$stackPos-(1-1)]) ? $this->semStack[$stackPos-(1-1)] : array($this->semStack[$stackPos-(1-1)]); + $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; }, 188 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(4-2)]; + $this->semValue = is_array($this->semStack[$stackPos-(1-1)]) ? $this->semStack[$stackPos-(1-1)] : array($this->semStack[$stackPos-(1-1)]); }, 189 => function ($stackPos) { - $this->semValue = is_array($this->semStack[$stackPos-(1-1)]) ? $this->semStack[$stackPos-(1-1)] : array($this->semStack[$stackPos-(1-1)]); + $this->semValue = $this->semStack[$stackPos-(4-2)]; }, 190 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(4-2)]; + $this->semValue = is_array($this->semStack[$stackPos-(1-1)]) ? $this->semStack[$stackPos-(1-1)] : array($this->semStack[$stackPos-(1-1)]); }, 191 => function ($stackPos) { - $this->semValue = is_array($this->semStack[$stackPos-(1-1)]) ? $this->semStack[$stackPos-(1-1)] : array($this->semStack[$stackPos-(1-1)]); + $this->semValue = $this->semStack[$stackPos-(4-2)]; }, 192 => function ($stackPos) { - $this->semValue = null; + $this->semValue = is_array($this->semStack[$stackPos-(1-1)]) ? $this->semStack[$stackPos-(1-1)] : array($this->semStack[$stackPos-(1-1)]); }, 193 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(4-2)]; + $this->semValue = null; }, 194 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)]); + $this->semValue = $this->semStack[$stackPos-(4-2)]; }, 195 => function ($stackPos) { - $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; + $this->semValue = array($this->semStack[$stackPos-(1-1)]); }, 196 => function ($stackPos) { - $this->semValue = new Stmt\DeclareDeclare($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; }, 197 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(3-2)]; + $this->semValue = new Stmt\DeclareDeclare($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 198 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(4-3)]; + $this->semValue = $this->semStack[$stackPos-(3-2)]; }, 199 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(4-2)]; + $this->semValue = $this->semStack[$stackPos-(4-3)]; }, 200 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(5-3)]; + $this->semValue = $this->semStack[$stackPos-(4-2)]; }, 201 => function ($stackPos) { - $this->semValue = array(); + $this->semValue = $this->semStack[$stackPos-(5-3)]; }, 202 => function ($stackPos) { - $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; + $this->semValue = array(); }, 203 => function ($stackPos) { - $this->semValue = new Stmt\Case_($this->semStack[$stackPos-(4-2)], $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; }, 204 => function ($stackPos) { - $this->semValue = new Stmt\Case_(null, $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Stmt\Case_($this->semStack[$stackPos-(4-2)], $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 205 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos]; + $this->semValue = new Stmt\Case_(null, $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 206 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos]; }, 207 => function ($stackPos) { - $this->semValue = is_array($this->semStack[$stackPos-(1-1)]) ? $this->semStack[$stackPos-(1-1)] : array($this->semStack[$stackPos-(1-1)]); + $this->semValue = $this->semStack[$stackPos]; }, 208 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(4-2)]; + $this->semValue = is_array($this->semStack[$stackPos-(1-1)]) ? $this->semStack[$stackPos-(1-1)] : array($this->semStack[$stackPos-(1-1)]); }, 209 => function ($stackPos) { - $this->semValue = array(); + $this->semValue = $this->semStack[$stackPos-(4-2)]; }, 210 => function ($stackPos) { - $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; + $this->semValue = array(); }, 211 => function ($stackPos) { - $this->semValue = new Stmt\ElseIf_($this->semStack[$stackPos-(3-2)], is_array($this->semStack[$stackPos-(3-3)]) ? $this->semStack[$stackPos-(3-3)] : array($this->semStack[$stackPos-(3-3)]), $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; }, 212 => function ($stackPos) { - $this->semValue = array(); + $this->semValue = new Stmt\ElseIf_($this->semStack[$stackPos-(3-2)], is_array($this->semStack[$stackPos-(3-3)]) ? $this->semStack[$stackPos-(3-3)] : array($this->semStack[$stackPos-(3-3)]), $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 213 => function ($stackPos) { - $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; + $this->semValue = array(); }, 214 => function ($stackPos) { - $this->semValue = new Stmt\ElseIf_($this->semStack[$stackPos-(4-2)], $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; }, 215 => function ($stackPos) { - $this->semValue = null; + $this->semValue = new Stmt\ElseIf_($this->semStack[$stackPos-(4-2)], $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 216 => function ($stackPos) { - $this->semValue = new Stmt\Else_(is_array($this->semStack[$stackPos-(2-2)]) ? $this->semStack[$stackPos-(2-2)] : array($this->semStack[$stackPos-(2-2)]), $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = null; }, 217 => function ($stackPos) { - $this->semValue = null; + $this->semValue = new Stmt\Else_(is_array($this->semStack[$stackPos-(2-2)]) ? $this->semStack[$stackPos-(2-2)] : array($this->semStack[$stackPos-(2-2)]), $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 218 => function ($stackPos) { - $this->semValue = new Stmt\Else_($this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = null; }, 219 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)], false); + $this->semValue = new Stmt\Else_($this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 220 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(2-2)], true); + $this->semValue = array($this->semStack[$stackPos-(1-1)], false); }, 221 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)], false); + $this->semValue = array($this->semStack[$stackPos-(2-2)], true); }, 222 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = array($this->semStack[$stackPos-(1-1)], false); }, 223 => function ($stackPos) { - $this->semValue = array(); + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 224 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)]); + $this->semValue = array(); }, 225 => function ($stackPos) { - $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; + $this->semValue = array($this->semStack[$stackPos-(1-1)]); }, 226 => function ($stackPos) { - $this->semValue = new Node\Param($this->semStack[$stackPos-(4-4)], null, $this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-2)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); $this->checkParam($this->semValue); + $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; }, 227 => function ($stackPos) { - $this->semValue = new Node\Param($this->semStack[$stackPos-(6-4)], $this->semStack[$stackPos-(6-6)], $this->semStack[$stackPos-(6-1)], $this->semStack[$stackPos-(6-2)], $this->semStack[$stackPos-(6-3)], $this->startAttributeStack[$stackPos-(6-1)] + $this->endAttributes); $this->checkParam($this->semValue); + $this->semValue = new Node\Param($this->semStack[$stackPos-(4-4)], null, $this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-2)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); $this->checkParam($this->semValue); }, 228 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = new Node\Param($this->semStack[$stackPos-(6-4)], $this->semStack[$stackPos-(6-6)], $this->semStack[$stackPos-(6-1)], $this->semStack[$stackPos-(6-2)], $this->semStack[$stackPos-(6-3)], $this->startAttributeStack[$stackPos-(6-1)] + $this->endAttributes); $this->checkParam($this->semValue); }, 229 => function ($stackPos) { - $this->semValue = new Node\Identifier('array', $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 230 => function ($stackPos) { - $this->semValue = new Node\Identifier('callable', $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = new Node\Identifier('array', $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 231 => function ($stackPos) { - $this->semValue = null; + $this->semValue = new Node\Identifier('callable', $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 232 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = null; }, 233 => function ($stackPos) { - $this->semValue = null; + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 234 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(2-2)]; + $this->semValue = null; }, 235 => function ($stackPos) { - $this->semValue = array(); + $this->semValue = $this->semStack[$stackPos-(2-2)]; }, 236 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(3-2)]; + $this->semValue = array(); }, 237 => function ($stackPos) { - $this->semValue = array(new Node\Arg($this->semStack[$stackPos-(3-2)], false, false, $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes)); + $this->semValue = $this->semStack[$stackPos-(3-2)]; }, 238 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)]); + $this->semValue = array(new Node\Arg($this->semStack[$stackPos-(3-2)], false, false, $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes)); }, 239 => function ($stackPos) { - $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; + $this->semValue = array($this->semStack[$stackPos-(1-1)]); }, 240 => function ($stackPos) { - $this->semValue = new Node\Arg($this->semStack[$stackPos-(1-1)], false, false, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; }, 241 => function ($stackPos) { - $this->semValue = new Node\Arg($this->semStack[$stackPos-(2-2)], true, false, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Node\Arg($this->semStack[$stackPos-(1-1)], false, false, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 242 => function ($stackPos) { - $this->semValue = new Node\Arg($this->semStack[$stackPos-(2-2)], false, true, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Node\Arg($this->semStack[$stackPos-(2-2)], true, false, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 243 => function ($stackPos) { - $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; + $this->semValue = new Node\Arg($this->semStack[$stackPos-(2-2)], false, true, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 244 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)]); + $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; }, 245 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = array($this->semStack[$stackPos-(1-1)]); }, 246 => function ($stackPos) { - $this->semValue = new Expr\Variable($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 247 => function ($stackPos) { - $this->semValue = new Expr\Variable($this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semValue = new Expr\Variable($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 248 => function ($stackPos) { - $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; + $this->semValue = new Expr\Variable($this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 249 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)]); + $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; }, 250 => function ($stackPos) { - $this->semValue = new Stmt\StaticVar($this->semStack[$stackPos-(1-1)], null, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = array($this->semStack[$stackPos-(1-1)]); }, 251 => function ($stackPos) { - $this->semValue = new Stmt\StaticVar($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Stmt\StaticVar($this->semStack[$stackPos-(1-1)], null, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 252 => function ($stackPos) { - if ($this->semStack[$stackPos-(2-2)] !== null) { $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; } + $this->semValue = new Stmt\StaticVar($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 253 => function ($stackPos) { - $this->semValue = array(); + if ($this->semStack[$stackPos-(2-2)] !== null) { $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; } }, 254 => function ($stackPos) { - $startAttributes = $this->lookaheadStartAttributes; if (isset($startAttributes['comments'])) { $nop = new Stmt\Nop($startAttributes + $this->endAttributes); } else { $nop = null; }; - if ($nop !== null) { $this->semStack[$stackPos-(1-1)][] = $nop; } $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = array(); }, 255 => function ($stackPos) { - $this->semValue = new Stmt\Property($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); $this->checkProperty($this->semValue, $stackPos-(3-1)); + $startAttributes = $this->lookaheadStartAttributes; if (isset($startAttributes['comments'])) { $nop = new Stmt\Nop($this->createZeroLengthAttributes($startAttributes)); } else { $nop = null; }; + if ($nop !== null) { $this->semStack[$stackPos-(1-1)][] = $nop; } $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 256 => function ($stackPos) { - $this->semValue = new Stmt\ClassConst($this->semStack[$stackPos-(3-2)], 0, $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Stmt\Property($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); $this->checkProperty($this->semValue, $stackPos-(3-1)); }, 257 => function ($stackPos) { - $this->semValue = new Stmt\ClassMethod($this->semStack[$stackPos-(9-4)], ['type' => $this->semStack[$stackPos-(9-1)], 'byRef' => $this->semStack[$stackPos-(9-3)], 'params' => $this->semStack[$stackPos-(9-6)], 'returnType' => $this->semStack[$stackPos-(9-8)], 'stmts' => $this->semStack[$stackPos-(9-9)]], $this->startAttributeStack[$stackPos-(9-1)] + $this->endAttributes); - $this->checkClassMethod($this->semValue, $stackPos-(9-1)); + $this->semValue = new Stmt\ClassConst($this->semStack[$stackPos-(3-2)], 0, $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 258 => function ($stackPos) { - $this->semValue = new Stmt\TraitUse($this->semStack[$stackPos-(3-2)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Stmt\ClassMethod($this->semStack[$stackPos-(9-4)], ['type' => $this->semStack[$stackPos-(9-1)], 'byRef' => $this->semStack[$stackPos-(9-3)], 'params' => $this->semStack[$stackPos-(9-6)], 'returnType' => $this->semStack[$stackPos-(9-8)], 'stmts' => $this->semStack[$stackPos-(9-9)]], $this->startAttributeStack[$stackPos-(9-1)] + $this->endAttributes); + $this->checkClassMethod($this->semValue, $stackPos-(9-1)); }, 259 => function ($stackPos) { - $this->semValue = array(); + $this->semValue = new Stmt\TraitUse($this->semStack[$stackPos-(3-2)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 260 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(3-2)]; + $this->semValue = array(); }, 261 => function ($stackPos) { - $this->semValue = array(); + $this->semValue = $this->semStack[$stackPos-(3-2)]; }, 262 => function ($stackPos) { - $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; + $this->semValue = array(); }, 263 => function ($stackPos) { - $this->semValue = new Stmt\TraitUseAdaptation\Precedence($this->semStack[$stackPos-(4-1)][0], $this->semStack[$stackPos-(4-1)][1], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; }, 264 => function ($stackPos) { - $this->semValue = new Stmt\TraitUseAdaptation\Alias($this->semStack[$stackPos-(5-1)][0], $this->semStack[$stackPos-(5-1)][1], $this->semStack[$stackPos-(5-3)], $this->semStack[$stackPos-(5-4)], $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes); + $this->semValue = new Stmt\TraitUseAdaptation\Precedence($this->semStack[$stackPos-(4-1)][0], $this->semStack[$stackPos-(4-1)][1], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 265 => function ($stackPos) { - $this->semValue = new Stmt\TraitUseAdaptation\Alias($this->semStack[$stackPos-(4-1)][0], $this->semStack[$stackPos-(4-1)][1], $this->semStack[$stackPos-(4-3)], null, $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semValue = new Stmt\TraitUseAdaptation\Alias($this->semStack[$stackPos-(5-1)][0], $this->semStack[$stackPos-(5-1)][1], $this->semStack[$stackPos-(5-3)], $this->semStack[$stackPos-(5-4)], $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes); }, 266 => function ($stackPos) { - $this->semValue = new Stmt\TraitUseAdaptation\Alias($this->semStack[$stackPos-(4-1)][0], $this->semStack[$stackPos-(4-1)][1], null, $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semValue = new Stmt\TraitUseAdaptation\Alias($this->semStack[$stackPos-(4-1)][0], $this->semStack[$stackPos-(4-1)][1], $this->semStack[$stackPos-(4-3)], null, $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 267 => function ($stackPos) { $this->semValue = new Stmt\TraitUseAdaptation\Alias($this->semStack[$stackPos-(4-1)][0], $this->semStack[$stackPos-(4-1)][1], null, $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 268 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)]); + $this->semValue = new Stmt\TraitUseAdaptation\Alias($this->semStack[$stackPos-(4-1)][0], $this->semStack[$stackPos-(4-1)][1], null, $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 269 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = array($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)]); }, 270 => function ($stackPos) { - $this->semValue = array(null, $this->semStack[$stackPos-(1-1)]); + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 271 => function ($stackPos) { - $this->semValue = null; + $this->semValue = array(null, $this->semStack[$stackPos-(1-1)]); }, 272 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(3-2)]; + $this->semValue = null; }, 273 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = $this->semStack[$stackPos-(3-2)]; }, 274 => function ($stackPos) { - $this->semValue = 0; + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 275 => function ($stackPos) { $this->semValue = 0; }, 276 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = 0; }, 277 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 278 => function ($stackPos) { - $this->checkModifier($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)], $stackPos-(2-2)); $this->semValue = $this->semStack[$stackPos-(2-1)] | $this->semStack[$stackPos-(2-2)]; + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 279 => function ($stackPos) { - $this->semValue = Stmt\Class_::MODIFIER_PUBLIC; + $this->checkModifier($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)], $stackPos-(2-2)); $this->semValue = $this->semStack[$stackPos-(2-1)] | $this->semStack[$stackPos-(2-2)]; }, 280 => function ($stackPos) { - $this->semValue = Stmt\Class_::MODIFIER_PROTECTED; + $this->semValue = Stmt\Class_::MODIFIER_PUBLIC; }, 281 => function ($stackPos) { - $this->semValue = Stmt\Class_::MODIFIER_PRIVATE; + $this->semValue = Stmt\Class_::MODIFIER_PROTECTED; }, 282 => function ($stackPos) { - $this->semValue = Stmt\Class_::MODIFIER_STATIC; + $this->semValue = Stmt\Class_::MODIFIER_PRIVATE; }, 283 => function ($stackPos) { - $this->semValue = Stmt\Class_::MODIFIER_ABSTRACT; + $this->semValue = Stmt\Class_::MODIFIER_STATIC; }, 284 => function ($stackPos) { - $this->semValue = Stmt\Class_::MODIFIER_FINAL; + $this->semValue = Stmt\Class_::MODIFIER_ABSTRACT; }, 285 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)]); + $this->semValue = Stmt\Class_::MODIFIER_FINAL; }, 286 => function ($stackPos) { - $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; + $this->semValue = array($this->semStack[$stackPos-(1-1)]); }, 287 => function ($stackPos) { - $this->semValue = new Node\VarLikeIdentifier(substr($this->semStack[$stackPos-(1-1)], 1), $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; }, 288 => function ($stackPos) { - $this->semValue = new Stmt\PropertyProperty($this->semStack[$stackPos-(1-1)], null, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = new Node\VarLikeIdentifier(substr($this->semStack[$stackPos-(1-1)], 1), $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 289 => function ($stackPos) { - $this->semValue = new Stmt\PropertyProperty($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Stmt\PropertyProperty($this->semStack[$stackPos-(1-1)], null, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 290 => function ($stackPos) { - $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; + $this->semValue = new Stmt\PropertyProperty($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 291 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)]); + $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; }, 292 => function ($stackPos) { - $this->semValue = array(); + $this->semValue = array($this->semStack[$stackPos-(1-1)]); }, 293 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = array(); }, 294 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 295 => function ($stackPos) { - $this->semValue = new Expr\Assign($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 296 => function ($stackPos) { $this->semValue = new Expr\Assign($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 297 => function ($stackPos) { - $this->semValue = new Expr\AssignRef($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semValue = new Expr\Assign($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 298 => function ($stackPos) { $this->semValue = new Expr\AssignRef($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 299 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = new Expr\AssignRef($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 300 => function ($stackPos) { - $this->semValue = new Expr\Clone_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 301 => function ($stackPos) { - $this->semValue = new Expr\AssignOp\Plus($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\Clone_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 302 => function ($stackPos) { - $this->semValue = new Expr\AssignOp\Minus($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\AssignOp\Plus($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 303 => function ($stackPos) { - $this->semValue = new Expr\AssignOp\Mul($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\AssignOp\Minus($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 304 => function ($stackPos) { - $this->semValue = new Expr\AssignOp\Div($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\AssignOp\Mul($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 305 => function ($stackPos) { - $this->semValue = new Expr\AssignOp\Concat($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\AssignOp\Div($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 306 => function ($stackPos) { - $this->semValue = new Expr\AssignOp\Mod($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\AssignOp\Concat($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 307 => function ($stackPos) { - $this->semValue = new Expr\AssignOp\BitwiseAnd($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\AssignOp\Mod($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 308 => function ($stackPos) { - $this->semValue = new Expr\AssignOp\BitwiseOr($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\AssignOp\BitwiseAnd($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 309 => function ($stackPos) { - $this->semValue = new Expr\AssignOp\BitwiseXor($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\AssignOp\BitwiseOr($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 310 => function ($stackPos) { - $this->semValue = new Expr\AssignOp\ShiftLeft($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\AssignOp\BitwiseXor($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 311 => function ($stackPos) { - $this->semValue = new Expr\AssignOp\ShiftRight($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\AssignOp\ShiftLeft($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 312 => function ($stackPos) { - $this->semValue = new Expr\AssignOp\Pow($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\AssignOp\ShiftRight($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 313 => function ($stackPos) { - $this->semValue = new Expr\PostInc($this->semStack[$stackPos-(2-1)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\AssignOp\Pow($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 314 => function ($stackPos) { - $this->semValue = new Expr\PreInc($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\AssignOp\Coalesce($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 315 => function ($stackPos) { - $this->semValue = new Expr\PostDec($this->semStack[$stackPos-(2-1)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\PostInc($this->semStack[$stackPos-(2-1)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 316 => function ($stackPos) { - $this->semValue = new Expr\PreDec($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\PreInc($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 317 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\BooleanOr($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\PostDec($this->semStack[$stackPos-(2-1)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 318 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\BooleanAnd($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\PreDec($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 319 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\LogicalOr($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\BooleanOr($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 320 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\LogicalAnd($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\BooleanAnd($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 321 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\LogicalXor($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\LogicalOr($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 322 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\BitwiseOr($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\LogicalAnd($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 323 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\BitwiseAnd($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\LogicalXor($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 324 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\BitwiseXor($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\BitwiseOr($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 325 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Concat($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\BitwiseAnd($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 326 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Plus($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\BitwiseXor($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 327 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Minus($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\Concat($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 328 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Mul($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\Plus($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 329 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Div($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\Minus($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 330 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Mod($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\Mul($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 331 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\ShiftLeft($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\Div($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 332 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\ShiftRight($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\Mod($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 333 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Pow($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\ShiftLeft($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 334 => function ($stackPos) { - $this->semValue = new Expr\UnaryPlus($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\ShiftRight($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 335 => function ($stackPos) { - $this->semValue = new Expr\UnaryMinus($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\Pow($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 336 => function ($stackPos) { - $this->semValue = new Expr\BooleanNot($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\UnaryPlus($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 337 => function ($stackPos) { - $this->semValue = new Expr\BitwiseNot($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\UnaryMinus($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 338 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Identical($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BooleanNot($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 339 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\NotIdentical($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BitwiseNot($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 340 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Equal($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\Identical($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 341 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\NotEqual($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\NotIdentical($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 342 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Spaceship($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\Equal($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 343 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Smaller($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\NotEqual($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 344 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\SmallerOrEqual($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\Spaceship($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 345 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Greater($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\Smaller($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 346 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\GreaterOrEqual($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\SmallerOrEqual($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 347 => function ($stackPos) { - $this->semValue = new Expr\Instanceof_($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\Greater($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 348 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = new Expr\BinaryOp\GreaterOrEqual($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 349 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(3-2)]; + $this->semValue = new Expr\Instanceof_($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 350 => function ($stackPos) { - $this->semValue = new Expr\Ternary($this->semStack[$stackPos-(5-1)], $this->semStack[$stackPos-(5-3)], $this->semStack[$stackPos-(5-5)], $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 351 => function ($stackPos) { - $this->semValue = new Expr\Ternary($this->semStack[$stackPos-(4-1)], null, $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos-(3-2)]; }, 352 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Coalesce($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\Ternary($this->semStack[$stackPos-(5-1)], $this->semStack[$stackPos-(5-3)], $this->semStack[$stackPos-(5-5)], $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes); }, 353 => function ($stackPos) { - $this->semValue = new Expr\Isset_($this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semValue = new Expr\Ternary($this->semStack[$stackPos-(4-1)], null, $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 354 => function ($stackPos) { - $this->semValue = new Expr\Empty_($this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\Coalesce($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 355 => function ($stackPos) { - $this->semValue = new Expr\Include_($this->semStack[$stackPos-(2-2)], Expr\Include_::TYPE_INCLUDE, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\Isset_($this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 356 => function ($stackPos) { - $this->semValue = new Expr\Include_($this->semStack[$stackPos-(2-2)], Expr\Include_::TYPE_INCLUDE_ONCE, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\Empty_($this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 357 => function ($stackPos) { - $this->semValue = new Expr\Eval_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\Include_($this->semStack[$stackPos-(2-2)], Expr\Include_::TYPE_INCLUDE, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 358 => function ($stackPos) { - $this->semValue = new Expr\Include_($this->semStack[$stackPos-(2-2)], Expr\Include_::TYPE_REQUIRE, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\Include_($this->semStack[$stackPos-(2-2)], Expr\Include_::TYPE_INCLUDE_ONCE, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 359 => function ($stackPos) { - $this->semValue = new Expr\Include_($this->semStack[$stackPos-(2-2)], Expr\Include_::TYPE_REQUIRE_ONCE, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\Eval_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 360 => function ($stackPos) { - $this->semValue = new Expr\Cast\Int_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\Include_($this->semStack[$stackPos-(2-2)], Expr\Include_::TYPE_REQUIRE, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 361 => function ($stackPos) { - $this->semValue = new Expr\Cast\Double($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\Include_($this->semStack[$stackPos-(2-2)], Expr\Include_::TYPE_REQUIRE_ONCE, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 362 => function ($stackPos) { - $this->semValue = new Expr\Cast\String_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\Cast\Int_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 363 => function ($stackPos) { - $this->semValue = new Expr\Cast\Array_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $attrs = $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes; + $attrs['kind'] = $this->getFloatCastKind($this->semStack[$stackPos-(2-1)]); + $this->semValue = new Expr\Cast\Double($this->semStack[$stackPos-(2-2)], $attrs); }, 364 => function ($stackPos) { - $this->semValue = new Expr\Cast\Object_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\Cast\String_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 365 => function ($stackPos) { - $this->semValue = new Expr\Cast\Bool_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\Cast\Array_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 366 => function ($stackPos) { - $this->semValue = new Expr\Cast\Unset_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\Cast\Object_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 367 => function ($stackPos) { + $this->semValue = new Expr\Cast\Bool_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + }, + 368 => function ($stackPos) { + $this->semValue = new Expr\Cast\Unset_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + }, + 369 => function ($stackPos) { $attrs = $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes; $attrs['kind'] = strtolower($this->semStack[$stackPos-(2-1)]) === 'exit' ? Expr\Exit_::KIND_EXIT : Expr\Exit_::KIND_DIE; $this->semValue = new Expr\Exit_($this->semStack[$stackPos-(2-2)], $attrs); }, - 368 => function ($stackPos) { + 370 => function ($stackPos) { $this->semValue = new Expr\ErrorSuppress($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, - 369 => function ($stackPos) { + 371 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, - 370 => function ($stackPos) { + 372 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, - 371 => function ($stackPos) { + 373 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, - 372 => function ($stackPos) { + 374 => function ($stackPos) { $this->semValue = new Expr\ShellExec($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, - 373 => function ($stackPos) { + 375 => function ($stackPos) { $this->semValue = new Expr\Print_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, - 374 => function ($stackPos) { + 376 => function ($stackPos) { $this->semValue = new Expr\Yield_(null, null, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, - 375 => function ($stackPos) { + 377 => function ($stackPos) { $this->semValue = new Expr\YieldFrom($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, - 376 => function ($stackPos) { + 378 => function ($stackPos) { $this->semValue = new Expr\Closure(['static' => false, 'byRef' => $this->semStack[$stackPos-(10-2)], 'params' => $this->semStack[$stackPos-(10-4)], 'uses' => $this->semStack[$stackPos-(10-6)], 'returnType' => $this->semStack[$stackPos-(10-7)], 'stmts' => $this->semStack[$stackPos-(10-9)]], $this->startAttributeStack[$stackPos-(10-1)] + $this->endAttributes); }, - 377 => function ($stackPos) { + 379 => function ($stackPos) { $this->semValue = new Expr\Closure(['static' => true, 'byRef' => $this->semStack[$stackPos-(11-3)], 'params' => $this->semStack[$stackPos-(11-5)], 'uses' => $this->semStack[$stackPos-(11-7)], 'returnType' => $this->semStack[$stackPos-(11-8)], 'stmts' => $this->semStack[$stackPos-(11-10)]], $this->startAttributeStack[$stackPos-(11-1)] + $this->endAttributes); }, - 378 => function ($stackPos) { + 380 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(3-2)]; }, - 379 => function ($stackPos) { + 381 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(3-2)]; }, - 380 => function ($stackPos) { + 382 => function ($stackPos) { $this->semValue = new Expr\Yield_($this->semStack[$stackPos-(2-2)], null, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, - 381 => function ($stackPos) { + 383 => function ($stackPos) { $this->semValue = new Expr\Yield_($this->semStack[$stackPos-(4-4)], $this->semStack[$stackPos-(4-2)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, - 382 => function ($stackPos) { + 384 => function ($stackPos) { $attrs = $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes; $attrs['kind'] = Expr\Array_::KIND_LONG; $this->semValue = new Expr\Array_($this->semStack[$stackPos-(4-3)], $attrs); }, - 383 => function ($stackPos) { + 385 => function ($stackPos) { $attrs = $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes; $attrs['kind'] = Expr\Array_::KIND_SHORT; $this->semValue = new Expr\Array_($this->semStack[$stackPos-(3-2)], $attrs); }, - 384 => function ($stackPos) { + 386 => function ($stackPos) { $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, - 385 => function ($stackPos) { + 387 => function ($stackPos) { $attrs = $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes; $attrs['kind'] = ($this->semStack[$stackPos-(4-1)][0] === "'" || ($this->semStack[$stackPos-(4-1)][1] === "'" && ($this->semStack[$stackPos-(4-1)][0] === 'b' || $this->semStack[$stackPos-(4-1)][0] === 'B')) ? Scalar\String_::KIND_SINGLE_QUOTED : Scalar\String_::KIND_DOUBLE_QUOTED); $this->semValue = new Expr\ArrayDimFetch(new Scalar\String_(Scalar\String_::parse($this->semStack[$stackPos-(4-1)]), $attrs), $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, - 386 => function ($stackPos) { + 388 => function ($stackPos) { $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, - 387 => function ($stackPos) { + 389 => function ($stackPos) { $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, - 388 => function ($stackPos) { + 390 => function ($stackPos) { $this->semValue = array(new Stmt\Class_(null, ['type' => 0, 'extends' => $this->semStack[$stackPos-(7-3)], 'implements' => $this->semStack[$stackPos-(7-4)], 'stmts' => $this->semStack[$stackPos-(7-6)]], $this->startAttributeStack[$stackPos-(7-1)] + $this->endAttributes), $this->semStack[$stackPos-(7-2)]); $this->checkClass($this->semValue[0], -1); }, - 389 => function ($stackPos) { - $this->semValue = new Expr\New_($this->semStack[$stackPos-(3-2)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); - }, - 390 => function ($stackPos) { - list($class, $ctorArgs) = $this->semStack[$stackPos-(2-2)]; $this->semValue = new Expr\New_($class, $ctorArgs, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); - }, 391 => function ($stackPos) { - $this->semValue = array(); + $this->semValue = new Expr\New_($this->semStack[$stackPos-(3-2)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 392 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(4-3)]; + list($class, $ctorArgs) = $this->semStack[$stackPos-(2-2)]; $this->semValue = new Expr\New_($class, $ctorArgs, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 393 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)]); + $this->semValue = array(); }, 394 => function ($stackPos) { - $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; + $this->semValue = $this->semStack[$stackPos-(4-3)]; }, 395 => function ($stackPos) { - $this->semValue = new Expr\ClosureUse($this->semStack[$stackPos-(2-2)], $this->semStack[$stackPos-(2-1)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = array($this->semStack[$stackPos-(1-1)]); }, 396 => function ($stackPos) { - $this->semValue = new Expr\FuncCall($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; }, 397 => function ($stackPos) { - $this->semValue = new Expr\StaticCall($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semValue = new Expr\ClosureUse($this->semStack[$stackPos-(2-2)], $this->semStack[$stackPos-(2-1)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 398 => function ($stackPos) { - $this->semValue = new Expr\StaticCall($this->semStack[$stackPos-(6-1)], $this->semStack[$stackPos-(6-4)], $this->semStack[$stackPos-(6-6)], $this->startAttributeStack[$stackPos-(6-1)] + $this->endAttributes); + $this->semValue = new Expr\FuncCall($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 399 => function ($stackPos) { - $this->semValue = $this->fixupPhp5StaticPropCall($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\StaticCall($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 400 => function ($stackPos) { - $this->semValue = new Expr\FuncCall($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\StaticCall($this->semStack[$stackPos-(6-1)], $this->semStack[$stackPos-(6-4)], $this->semStack[$stackPos-(6-6)], $this->startAttributeStack[$stackPos-(6-1)] + $this->endAttributes); }, 401 => function ($stackPos) { - $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semValue = $this->fixupPhp5StaticPropCall($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 402 => function ($stackPos) { - $this->semValue = new Name($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = new Expr\FuncCall($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 403 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 404 => function ($stackPos) { $this->semValue = new Name($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 405 => function ($stackPos) { - $this->semValue = new Name\FullyQualified($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 406 => function ($stackPos) { - $this->semValue = new Name\Relative($this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Name($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 407 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = new Name\FullyQualified($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 408 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = new Name\Relative($this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 409 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; @@ -2194,249 +2199,246 @@ protected function initReduceCallbacks() { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 413 => function ($stackPos) { - $this->semValue = new Expr\PropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 414 => function ($stackPos) { - $this->semValue = new Expr\PropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 415 => function ($stackPos) { - $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semValue = new Expr\PropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 416 => function ($stackPos) { - $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semValue = new Expr\PropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 417 => function ($stackPos) { - $this->semValue = null; + $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 418 => function ($stackPos) { - $this->semValue = null; + $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 419 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = null; }, 420 => function ($stackPos) { - $this->semValue = array(); + $this->semValue = null; }, 421 => function ($stackPos) { - $this->semValue = array(new Scalar\EncapsedStringPart(Scalar\String_::parseEscapeSequences($this->semStack[$stackPos-(1-1)], '`', false), $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes)); + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 422 => function ($stackPos) { - foreach ($this->semStack[$stackPos-(1-1)] as $s) { if ($s instanceof Node\Scalar\EncapsedStringPart) { $s->value = Node\Scalar\String_::parseEscapeSequences($s->value, '`', false); } }; $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = array(); }, 423 => function ($stackPos) { - $this->semValue = array(); + $this->semValue = array(new Scalar\EncapsedStringPart(Scalar\String_::parseEscapeSequences($this->semStack[$stackPos-(1-1)], '`', false), $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes)); }, 424 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + foreach ($this->semStack[$stackPos-(1-1)] as $s) { if ($s instanceof Node\Scalar\EncapsedStringPart) { $s->value = Node\Scalar\String_::parseEscapeSequences($s->value, '`', false); } }; $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 425 => function ($stackPos) { - $this->semValue = $this->parseLNumber($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes, true); + $this->semValue = array(); }, 426 => function ($stackPos) { - $this->semValue = new Scalar\DNumber(Scalar\DNumber::parse($this->semStack[$stackPos-(1-1)]), $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 427 => function ($stackPos) { - $attrs = $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes; $attrs['kind'] = ($this->semStack[$stackPos-(1-1)][0] === "'" || ($this->semStack[$stackPos-(1-1)][1] === "'" && ($this->semStack[$stackPos-(1-1)][0] === 'b' || $this->semStack[$stackPos-(1-1)][0] === 'B')) ? Scalar\String_::KIND_SINGLE_QUOTED : Scalar\String_::KIND_DOUBLE_QUOTED); - $this->semValue = new Scalar\String_(Scalar\String_::parse($this->semStack[$stackPos-(1-1)], false), $attrs); + $this->semValue = $this->parseLNumber($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes, true); }, 428 => function ($stackPos) { - $this->semValue = new Scalar\MagicConst\Line($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = new Scalar\DNumber(Scalar\DNumber::parse($this->semStack[$stackPos-(1-1)]), $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 429 => function ($stackPos) { - $this->semValue = new Scalar\MagicConst\File($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $attrs = $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes; $attrs['kind'] = ($this->semStack[$stackPos-(1-1)][0] === "'" || ($this->semStack[$stackPos-(1-1)][1] === "'" && ($this->semStack[$stackPos-(1-1)][0] === 'b' || $this->semStack[$stackPos-(1-1)][0] === 'B')) ? Scalar\String_::KIND_SINGLE_QUOTED : Scalar\String_::KIND_DOUBLE_QUOTED); + $this->semValue = new Scalar\String_(Scalar\String_::parse($this->semStack[$stackPos-(1-1)], false), $attrs); }, 430 => function ($stackPos) { - $this->semValue = new Scalar\MagicConst\Dir($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = new Scalar\MagicConst\Line($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 431 => function ($stackPos) { - $this->semValue = new Scalar\MagicConst\Class_($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = new Scalar\MagicConst\File($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 432 => function ($stackPos) { - $this->semValue = new Scalar\MagicConst\Trait_($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = new Scalar\MagicConst\Dir($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 433 => function ($stackPos) { - $this->semValue = new Scalar\MagicConst\Method($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = new Scalar\MagicConst\Class_($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 434 => function ($stackPos) { - $this->semValue = new Scalar\MagicConst\Function_($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = new Scalar\MagicConst\Trait_($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 435 => function ($stackPos) { - $this->semValue = new Scalar\MagicConst\Namespace_($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = new Scalar\MagicConst\Method($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 436 => function ($stackPos) { - $attrs = $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes; $attrs['kind'] = strpos($this->semStack[$stackPos-(3-1)], "'") === false ? Scalar\String_::KIND_HEREDOC : Scalar\String_::KIND_NOWDOC; preg_match('/\A[bB]?<<<[ \t]*[\'"]?([a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*)[\'"]?(?:\r\n|\n|\r)\z/', $this->semStack[$stackPos-(3-1)], $matches); $attrs['docLabel'] = $matches[1];; - $this->semValue = new Scalar\String_(Scalar\String_::parseDocString($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-2)], false), $attrs); + $this->semValue = new Scalar\MagicConst\Function_($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 437 => function ($stackPos) { - $attrs = $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes; $attrs['kind'] = strpos($this->semStack[$stackPos-(2-1)], "'") === false ? Scalar\String_::KIND_HEREDOC : Scalar\String_::KIND_NOWDOC; preg_match('/\A[bB]?<<<[ \t]*[\'"]?([a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*)[\'"]?(?:\r\n|\n|\r)\z/', $this->semStack[$stackPos-(2-1)], $matches); $attrs['docLabel'] = $matches[1];; - $this->semValue = new Scalar\String_('', $attrs); + $this->semValue = new Scalar\MagicConst\Namespace_($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 438 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = $this->parseDocString($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-2)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes, $this->startAttributeStack[$stackPos-(3-3)] + $this->endAttributeStack[$stackPos-(3-3)], false); }, 439 => function ($stackPos) { - $this->semValue = new Expr\ClassConstFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = $this->parseDocString($this->semStack[$stackPos-(2-1)], '', $this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes, $this->startAttributeStack[$stackPos-(2-2)] + $this->endAttributeStack[$stackPos-(2-2)], false); }, 440 => function ($stackPos) { - $this->semValue = new Expr\ConstFetch($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 441 => function ($stackPos) { - $this->semValue = new Expr\Array_($this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semValue = new Expr\ClassConstFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 442 => function ($stackPos) { - $this->semValue = new Expr\Array_($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\ConstFetch($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 443 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = new Expr\Array_($this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 444 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\BooleanOr($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\Array_($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 445 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\BooleanAnd($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 446 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\LogicalOr($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\BooleanOr($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 447 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\LogicalAnd($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\BooleanAnd($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 448 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\LogicalXor($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\LogicalOr($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 449 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\BitwiseOr($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\LogicalAnd($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 450 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\BitwiseAnd($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\LogicalXor($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 451 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\BitwiseXor($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\BitwiseOr($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 452 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Concat($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\BitwiseAnd($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 453 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Plus($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\BitwiseXor($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 454 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Minus($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\Concat($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 455 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Mul($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\Plus($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 456 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Div($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\Minus($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 457 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Mod($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\Mul($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 458 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\ShiftLeft($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\Div($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 459 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\ShiftRight($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\Mod($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 460 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Pow($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\ShiftLeft($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 461 => function ($stackPos) { - $this->semValue = new Expr\UnaryPlus($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\ShiftRight($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 462 => function ($stackPos) { - $this->semValue = new Expr\UnaryMinus($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\Pow($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 463 => function ($stackPos) { - $this->semValue = new Expr\BooleanNot($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\UnaryPlus($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 464 => function ($stackPos) { - $this->semValue = new Expr\BitwiseNot($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\UnaryMinus($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 465 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Identical($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BooleanNot($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 466 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\NotIdentical($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BitwiseNot($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 467 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Equal($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\Identical($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 468 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\NotEqual($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\NotIdentical($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 469 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Smaller($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\Equal($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 470 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\SmallerOrEqual($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\NotEqual($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 471 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Greater($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\Smaller($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 472 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\GreaterOrEqual($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\SmallerOrEqual($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 473 => function ($stackPos) { - $this->semValue = new Expr\Ternary($this->semStack[$stackPos-(5-1)], $this->semStack[$stackPos-(5-3)], $this->semStack[$stackPos-(5-5)], $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\Greater($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 474 => function ($stackPos) { - $this->semValue = new Expr\Ternary($this->semStack[$stackPos-(4-1)], null, $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\GreaterOrEqual($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 475 => function ($stackPos) { - $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semValue = new Expr\Ternary($this->semStack[$stackPos-(5-1)], $this->semStack[$stackPos-(5-3)], $this->semStack[$stackPos-(5-5)], $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes); }, 476 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(3-2)]; + $this->semValue = new Expr\Ternary($this->semStack[$stackPos-(4-1)], null, $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 477 => function ($stackPos) { - $this->semValue = new Expr\ConstFetch($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 478 => function ($stackPos) { - $this->semValue = new Expr\ClassConstFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos-(3-2)]; }, 479 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = new Expr\ConstFetch($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 480 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = new Expr\ClassConstFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 481 => function ($stackPos) { - $attrs = $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes; $attrs['kind'] = Scalar\String_::KIND_DOUBLE_QUOTED; - foreach ($this->semStack[$stackPos-(3-2)] as $s) { if ($s instanceof Node\Scalar\EncapsedStringPart) { $s->value = Node\Scalar\String_::parseEscapeSequences($s->value, '"', true); } }; $this->semValue = new Scalar\Encapsed($this->semStack[$stackPos-(3-2)], $attrs); + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 482 => function ($stackPos) { - $attrs = $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes; $attrs['kind'] = strpos($this->semStack[$stackPos-(3-1)], "'") === false ? Scalar\String_::KIND_HEREDOC : Scalar\String_::KIND_NOWDOC; preg_match('/\A[bB]?<<<[ \t]*[\'"]?([a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*)[\'"]?(?:\r\n|\n|\r)\z/', $this->semStack[$stackPos-(3-1)], $matches); $attrs['docLabel'] = $matches[1];; - foreach ($this->semStack[$stackPos-(3-2)] as $s) { if ($s instanceof Node\Scalar\EncapsedStringPart) { $s->value = Node\Scalar\String_::parseEscapeSequences($s->value, null, true); } } $s->value = preg_replace('~(\r\n|\n|\r)\z~', '', $s->value); if ('' === $s->value) array_pop($this->semStack[$stackPos-(3-2)]);; $this->semValue = new Scalar\Encapsed($this->semStack[$stackPos-(3-2)], $attrs); + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 483 => function ($stackPos) { - $this->semValue = array(); + $attrs = $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes; $attrs['kind'] = Scalar\String_::KIND_DOUBLE_QUOTED; + foreach ($this->semStack[$stackPos-(3-2)] as $s) { if ($s instanceof Node\Scalar\EncapsedStringPart) { $s->value = Node\Scalar\String_::parseEscapeSequences($s->value, '"', true); } }; $this->semValue = new Scalar\Encapsed($this->semStack[$stackPos-(3-2)], $attrs); }, 484 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(2-1)]; + $this->semValue = $this->parseDocString($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-2)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes, $this->startAttributeStack[$stackPos-(3-3)] + $this->endAttributeStack[$stackPos-(3-3)], true); }, 485 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos]; + $this->semValue = array(); }, 486 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos]; + $this->semValue = $this->semStack[$stackPos-(2-1)]; }, 487 => function ($stackPos) { - $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; + $this->semValue = $this->semStack[$stackPos]; }, 488 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)]); + $this->semValue = $this->semStack[$stackPos]; }, 489 => function ($stackPos) { - $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(3-3)], $this->semStack[$stackPos-(3-1)], false, $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; }, 490 => function ($stackPos) { - $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(1-1)], null, false, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = array($this->semStack[$stackPos-(1-1)]); }, 491 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(3-3)], $this->semStack[$stackPos-(3-1)], false, $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 492 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(1-1)], null, false, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 493 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; @@ -2445,64 +2447,64 @@ protected function initReduceCallbacks() { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 495 => function ($stackPos) { - $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(6-2)], $this->semStack[$stackPos-(6-5)], $this->startAttributeStack[$stackPos-(6-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 496 => function ($stackPos) { - $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 497 => function ($stackPos) { - $this->semValue = new Expr\PropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(6-2)], $this->semStack[$stackPos-(6-5)], $this->startAttributeStack[$stackPos-(6-1)] + $this->endAttributes); }, 498 => function ($stackPos) { - $this->semValue = new Expr\MethodCall($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 499 => function ($stackPos) { - $this->semValue = new Expr\FuncCall($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\PropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 500 => function ($stackPos) { - $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semValue = new Expr\MethodCall($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 501 => function ($stackPos) { - $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semValue = new Expr\FuncCall($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 502 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 503 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(3-2)]; + $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 504 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 505 => function ($stackPos) { - $this->semValue = new Expr\Variable($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos-(3-2)]; }, 506 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 507 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = new Expr\Variable($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 508 => function ($stackPos) { - $this->semValue = new Expr\StaticPropertyFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 509 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 510 => function ($stackPos) { - $var = substr($this->semStack[$stackPos-(1-1)], 1); $this->semValue = \is_string($var) ? new Node\VarLikeIdentifier($var, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes) : $var; + $this->semValue = new Expr\StaticPropertyFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 511 => function ($stackPos) { - $this->semValue = new Expr\StaticPropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 512 => function ($stackPos) { - $this->semValue = new Expr\StaticPropertyFetch($this->semStack[$stackPos-(6-1)], $this->semStack[$stackPos-(6-5)], $this->startAttributeStack[$stackPos-(6-1)] + $this->endAttributes); + $var = substr($this->semStack[$stackPos-(1-1)], 1); $this->semValue = \is_string($var) ? new Node\VarLikeIdentifier($var, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes) : $var; }, 513 => function ($stackPos) { - $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semValue = new Expr\StaticPropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 514 => function ($stackPos) { - $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semValue = new Expr\StaticPropertyFetch($this->semStack[$stackPos-(6-1)], $this->semStack[$stackPos-(6-5)], $this->startAttributeStack[$stackPos-(6-1)] + $this->endAttributes); }, 515 => function ($stackPos) { $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); @@ -2511,117 +2513,126 @@ protected function initReduceCallbacks() { $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 517 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 518 => function ($stackPos) { - $this->semValue = new Expr\Variable($this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 519 => function ($stackPos) { - $this->semValue = null; + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 520 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = new Expr\Variable($this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 521 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = null; }, 522 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(3-2)]; + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 523 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 524 => function ($stackPos) { - $this->semValue = new Expr\Error($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); $this->errorState = 2; + $this->semValue = $this->semStack[$stackPos-(3-2)]; }, 525 => function ($stackPos) { - $this->semValue = new Expr\List_($this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 526 => function ($stackPos) { - $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; + $this->semValue = new Expr\Error($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); $this->errorState = 2; }, 527 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)]); + $this->semValue = new Expr\List_($this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 528 => function ($stackPos) { - $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(1-1)], null, false, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; }, 529 => function ($stackPos) { - $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(1-1)], null, false, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = array($this->semStack[$stackPos-(1-1)]); }, 530 => function ($stackPos) { - $this->semValue = null; + $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(1-1)], null, false, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 531 => function ($stackPos) { - $this->semValue = array(); + $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(1-1)], null, false, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 532 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(2-1)]; + $this->semValue = null; }, 533 => function ($stackPos) { - $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; + $this->semValue = array(); }, 534 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)]); + $this->semValue = $this->semStack[$stackPos-(2-1)]; }, 535 => function ($stackPos) { - $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(3-3)], $this->semStack[$stackPos-(3-1)], false, $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; }, 536 => function ($stackPos) { - $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(1-1)], null, false, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = array($this->semStack[$stackPos-(1-1)]); }, 537 => function ($stackPos) { - $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(4-4)], $this->semStack[$stackPos-(4-1)], true, $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(3-3)], $this->semStack[$stackPos-(3-1)], false, $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 538 => function ($stackPos) { - $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(2-2)], null, true, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(1-1)], null, false, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 539 => function ($stackPos) { - $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; + $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(4-4)], $this->semStack[$stackPos-(4-1)], true, $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 540 => function ($stackPos) { - $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; + $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(2-2)], null, true, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 541 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)]); + $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(2-2)], null, false, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes, true, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 542 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)]); + $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; }, 543 => function ($stackPos) { - $this->semValue = new Scalar\EncapsedStringPart($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; }, 544 => function ($stackPos) { - $this->semValue = new Expr\Variable($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = array($this->semStack[$stackPos-(1-1)]); }, 545 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = array($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)]); }, 546 => function ($stackPos) { - $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semValue = new Scalar\EncapsedStringPart($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 547 => function ($stackPos) { - $this->semValue = new Expr\PropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\Variable($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 548 => function ($stackPos) { - $this->semValue = new Expr\Variable($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 549 => function ($stackPos) { - $this->semValue = new Expr\Variable($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 550 => function ($stackPos) { - $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(6-2)], $this->semStack[$stackPos-(6-4)], $this->startAttributeStack[$stackPos-(6-1)] + $this->endAttributes); + $this->semValue = new Expr\PropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 551 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(3-2)]; + $this->semValue = new Expr\Variable($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 552 => function ($stackPos) { - $this->semValue = new Scalar\String_($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = new Expr\Variable($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 553 => function ($stackPos) { - $this->semValue = $this->parseNumString($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(6-2)], $this->semStack[$stackPos-(6-4)], $this->startAttributeStack[$stackPos-(6-1)] + $this->endAttributes); }, 554 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(3-2)]; + }, + 555 => function ($stackPos) { + $this->semValue = new Scalar\String_($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 556 => function ($stackPos) { + $this->semValue = $this->parseNumString($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 557 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, ]; diff --git a/vendor/nikic/php-parser/lib/PhpParser/Parser/Php7.php b/vendor/nikic/php-parser/lib/PhpParser/Parser/Php7.php index 24ce4d14b565db726fe0d9b12b388576fdb452f3..75c8305fa0ad102e97c5c0fb72c0f188ca1ae9ed 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Parser/Php7.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Parser/Php7.php @@ -17,17 +17,17 @@ */ class Php7 extends \PhpParser\ParserAbstract { - protected $tokenToSymbolMapSize = 392; - protected $actionTableSize = 940; - protected $gotoTableSize = 486; + protected $tokenToSymbolMapSize = 394; + protected $actionTableSize = 964; + protected $gotoTableSize = 508; - protected $invalidSymbol = 157; + protected $invalidSymbol = 159; protected $errorSymbol = 1; protected $defaultAction = -32766; protected $unexpectedTokenRule = 32767; - protected $YY2TBLSTATE = 336; - protected $numNonLeafStates = 581; + protected $YY2TBLSTATE = 348; + protected $numNonLeafStates = 602; protected $symbolToName = array( "EOF", @@ -58,6 +58,7 @@ class Php7 extends \PhpParser\ParserAbstract "T_SL_EQUAL", "T_SR_EQUAL", "T_POW_EQUAL", + "T_COALESCE_EQUAL", "'?'", "':'", "T_COALESCE", @@ -133,6 +134,7 @@ class Php7 extends \PhpParser\ParserAbstract "T_CONTINUE", "T_GOTO", "T_FUNCTION", + "T_FN", "T_CONST", "T_RETURN", "T_TRY", @@ -190,449 +192,462 @@ class Php7 extends \PhpParser\ParserAbstract ); protected $tokenToSymbol = array( - 0, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 53, 155, 157, 156, 52, 35, 157, - 151, 152, 50, 47, 7, 48, 49, 51, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 29, 148, - 41, 15, 43, 28, 65, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 67, 157, 154, 34, 157, 153, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 149, 33, 150, 55, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 1, 2, 3, 4, + 0, 159, 159, 159, 159, 159, 159, 159, 159, 159, + 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, + 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, + 159, 159, 159, 54, 157, 159, 158, 53, 36, 159, + 153, 154, 51, 48, 7, 49, 50, 52, 159, 159, + 159, 159, 159, 159, 159, 159, 159, 159, 30, 150, + 42, 15, 44, 29, 66, 159, 159, 159, 159, 159, + 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, + 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, + 159, 68, 159, 156, 35, 159, 155, 159, 159, 159, + 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, + 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, + 159, 159, 159, 151, 34, 152, 56, 159, 159, 159, + 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, + 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, + 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, + 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, + 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, + 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, + 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, + 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, + 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, + 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, + 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, + 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, + 159, 159, 159, 159, 159, 159, 1, 2, 3, 4, 5, 6, 8, 9, 10, 11, 12, 13, 14, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, - 27, 30, 31, 32, 36, 37, 38, 39, 40, 42, - 44, 45, 46, 54, 56, 57, 58, 59, 60, 61, - 62, 63, 64, 66, 68, 69, 70, 71, 72, 73, - 74, 75, 76, 77, 78, 79, 80, 81, 157, 157, - 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 27, 28, 31, 32, 33, 37, 38, 39, 40, 41, + 43, 45, 46, 47, 55, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 67, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, 82, 159, + 159, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, - 132, 133, 134, 135, 136, 137, 157, 157, 157, 157, - 157, 157, 138, 139, 140, 141, 142, 143, 144, 145, - 146, 147 + 132, 133, 134, 135, 136, 137, 138, 139, 159, 159, + 159, 159, 159, 159, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149 ); protected $action = array( - 586, 587, 588, 589, 590, 218, 591, 592, 593, 629, - 630, 665, 32, 102, 103, 104, 105, 106, 107, 108, - 109, 110, 111, 112, 113,-32766,-32766,-32766, 881, 882, - 883, 880, 879, 878, 0,-32766,-32766,-32766,-32766,-32766, - -32766, 663, 824, 117, 24,-32766, 428,-32766,-32766,-32766, - -32766,-32766, 594, 914, 916,-32766, 9,-32766,-32766,-32766, - -32766,-32766,-32766, 857, 250, 350, 595, 596, 597, 598, - 599, 600, 601, 119, 250, 661, 881, 882, 883, 880, - 879, 878, 602, 603, 604, 605, 606, 607, 608, 609, - 610, 611, 612, 632, 633, 634, 635, 636, 624, 625, - 626, 627, 628, 613, 614, 615, 616, 617, 618, 619, - 655, 656, 657, 658, 659, 660, 620, 621, 622, 623, - 653, 644, 642, 643, 639, 640, 800, 631, 637, 638, - 645, 646, 648, 647, 649, 650, 45, 46, 405, 47, - 48, 641, 652, 651, -233, 49, 50, 231, 51,-32767, - -32767,-32767,-32767, 93, 94, 95, 96, 97,-32766,-32766, - -32766, 42, -451, 25, -293, -293, 828, 829, 98, 99, - 100, 260, 241, 230, -453, 1047, 828, 829,-32766, 1013, - 873, 52, 53, 486, 101, 670, 242, 54, -238, 55, - 223, 224, 56, 57, 58, 59, 60, 61, 62, 63, - -452, 25, 234, 64, 357,-32766,-32766,-32766, 990, 1014, - 1015, 407, -271, 1047, -488, 665, 265, 1013,-32766,-32766, - -32766, 746, 248, -451, 250,-32766, 420,-32766,-32766,-32766, - -32766, 388, -258, 1078, 277, -453, 365, -451,-32766, 1077, - -32766,-32766,-32766, 116, -451, 801, 291, 68, 665, -453, - 428, 292, 267, 1065, 417, 418, -453, -489, -456, 373, - 997, -452, 557, 419, 420, 1050, 1019, 1020, 1021, 1022, - 1016, 1017, 245, 764, -451, -452, 217, 429, 1023, 1018, - 362, 295, -452, 1047, -455, 66, 1009, 257,-32766, 262, - 267, 406, -136, -136, -136, -4, 746, 686, 687, 299, - 668, 735, 266, 1090, 37, 20, 408, -136, 409, -136, - 410, -136, 411, -136, 429, 412, 229, 362, 490, 38, - 39, 358, 359, 355, 40, 413, 828, 829, 65, 663, - 44, 290, 669, 414, 415, -451, -492, 33, 1047, 416, - 122, 346, 721, 769, 360, 361, 353, 1099, -91, -451, - 1100, 389,-32766,-32766,-32766, 354, -451, 121, 665, -488, - 267, 28, 226, 379, 1047, 228, 406, 746, 748, 555, - -136, 990,-32766, 219,-32766,-32766, 735, -258, 233, 37, - 20, 408, 351, 409, -495, 410, -495, 411, 665, 451, - 412, 249, 232, 428, 38, 39, 358, 359, 342, 40, - 413, 125, -489, 65, 256, 294, 290, 665, 414, 415, - 25, 30, 118, 74, 416, 267, 356, 678, 769, 360, - 361, 568, 1047, 428, 25, 127, 1013, 540, 123,-32766, - -32766,-32766, -176, 834, 124, -177, 1047, 406, 279, 746, - 1013, 267, 428, 748, 555, -4, 1027, 735, 665, 474, - 37, 20, 408, 281, 409, 990, 410, 115, 411,-32766, - -32766, 412, -218, -218, -218, 38, 39, 358, 359, 990, - 40, 413, 419, 420, 65, -491, 225, 290, 229, 414, - 415, -492, 569, 428, 114, 416, 419, 420, 721, 769, - 360, 361, 131, 541, 68, 133, 362, 130, 317, 267, - 859, 134, 227, 529, 530, 997, 517, 21, 68, 406, - 95, 96, 97, 267, 748, 555, -218, 120, 665, 735, - 665, 129, 37, 20, 408, 745, 409, 244, 410, -82, - 411, 686, 687, 412, -217, -217, -217, 38, 39, 358, - 359, 572, 40, 413, 665, 760, 65, 241, 746, 290, - 101, 414, 415, 428, 43, 428, 1066, 416, 398, 8, - 721, 769, 360, 361, 508, 509, 828, 829, 128, 75, - 76, 77, 858, 578, 665, 1101, 570, -176, -291, 428, - -177, 537, 666, 1047, 523, 663, 748, 555, -217, 31, - 123, 78, 79, 80, 81, 82, 83, 84, 85, 86, - 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, - 97, 98, 99, 100, 887, 241, 990, 746, 406, 668, - -491, 455, 460,-32766, 518, 532, -80, 101, 735, 533, - 370, 37, 20, 408, 549, 409, 377, 410, 10, 411, - 507, 990, 412, 770, 524, 566, 38, 39, 358, 746, - 771, 40, 413, 261, 1029, 65, 264, 1026, 290, 12, - 267, 293, 373, -410, 258, 5, 416, 970, 347, 0, - 335, 348, 331, 259, 0, 0, 0, 563, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 406, 0, 0, - 0, 0, 0, 0, 0, 748, 555, 735, 330, 324, - 37, 20, 408, 457, 409, 762, 410, 853, 411, 556, - 870, 412, 726, 577, 36, 38, 39, 358, 746, 406, - 40, 413, 35, 576, 65, 803, 863, 290, 866, 735, - 787, 865, 37, 20, 408, 416, 409, 862, 410, 782, - 411, 724, 795, 412, 784, 854, 561, 38, 39, 358, - 746, 794, 40, 413, 864, 793, 65, 558, 341, 290, - 340, 560, 276, 275, 748, 555, 571, 416, 567, 565, - 564, 559, 514, 792, 753, 763, 755, 689, 562, 978, - 766, 1097, 1048, 722, 1096, 1098, 681, 768, 406, 746, - 680, 690, 767, 691, 688, 1095, 786, 555, 735, 1063, - 1041, 37, 20, 408, 1055, 409, 1060, 410, 573, 411, - 41, 34, 412, 27, 26, 23, 38, 39, 358, -454, - 406, 40, 413, -455, -456, 65, -478, -480, 290, 237, - 735, 345, 343, 37, 20, 408, 416, 409, 278, 410, - 240, 411, 239, 238, 412, 222, 221, 135, 38, 39, - 358, 132, 126, 40, 413, 73, 72, 65, 71, 406, - 290, 70, 69, 67, 1028, 748, 555, 954, 416, 735, - 957, 548, 37, 20, 408, 503, 409, 484, 410, 313, - 411, 252, 22, 412, 18, 13, -236, 38, 39, 358, - 982, 835, 40, 413, 1011, 953, 65, 748, 555, 290, - -32766,-32766,-32766, 1001, 546, 403, 396, 416, 394, 390, - 314, 19, 17, 16, -91, 15, 14, -233, -234, 0, - -32766, -422,-32766,-32766,-32766,-32766,-32766,-32766,-32767,-32767, - -32767,-32767,-32767, 1010, 1093, 1054, 748, 555, 1040, 1039 + 607, 608, 609, 610, 611, 685, 612, 613, 614, 650, + 651, 0, 32, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115,-32767,-32767,-32767,-32767, + 94, 95, 96, 97, 98,-32766,-32766,-32766, 687, 491, + -497, 904, 905, 906, 903, 902, 901, 904, 905, 906, + 903, 902, 901, 615, 938, 940,-32766, 9,-32766,-32766, + -32766,-32766,-32766,-32766,-32766,-32766,-32766, 616, 617, 618, + 619, 620, 621, 622, 333, 1104, 683,-32766,-32766,-32766, + 846, 1103, 119, 623, 624, 625, 626, 627, 628, 629, + 630, 631, 632, 633, 653, 654, 655, 656, 657, 645, + 646, 647, 675, 648, 649, 634, 635, 636, 637, 638, + 639, 640, 677, 678, 679, 680, 681, 682, 641, 642, + 643, 644, 674, 665, 663, 664, 660, 661, 402, 652, + 658, 659, 666, 667, 669, 668, 670, 671, 45, 46, + 421, 47, 48, 662, 673, 672, 27, 49, 50, 233, + 51,-32766,-32766,-32766, 96, 97, 98, 24,-32766,-32766, + -32766, -458, 261, 121, 1023,-32766,-32766,-32766, 1091, 1073, + -32766,-32766,-32766, 1039,-32766,-32766,-32766,-32766,-32766,-32766, + -496,-32766,-32766,-32766, 52, 53,-32766, -497,-32766,-32766, + 54, 687, 55, 231, 232, 56, 57, 58, 59, 60, + 61, 62, 63, 1016, 24, 242, 64, 369,-32766,-32766, + -32766, 226, 1040, 1041, 423, 1076, 1073, -493, 880, 508, + 1039, 436, 1023, -458, 768, 1073, 239, 333, -500,-32766, + -500,-32766,-32766,-32766,-32766, 856, 253, -458, 276, 378, + 372, 786, 68, 1073, -458, 685, -461, 278, 1126, 403, + 289, 1127, 288, 99, 100, 101, 303, 252, 433, 434, + 822,-32766, 69, 261, 237, 850, 851, 435, 436, 102, + 1045, 1046, 1047, 1048, 1042, 1043, 256, 1016, -456, -456, + 306, 444, 1049, 1044, 375, 133, 561, -239, 363, 66, + 237, 268, 692, 273, 278, 422, -137, -137, -137, -4, + 768, 1073, 310, 278, 1035, 757, 687, 362, 37, 20, + 424, -137, 425, -137, 426, -137, 427, -137, 127, 428, + -295, 278, -295, 38, 39, 370, 371, -496, 271, 40, + 429, 277, 687, 65, 261, 1016, 302, 896, 430, 431, + -456, -456, 333, -494, 432, 44, 42, 743, 791, 373, + 374, -457, -234, 562, -456, -456, 375,-32766,-32766,-32766, + 882, -456, -456, 124, -493, 75, 850, 851, 333, -273, + -260, 422, 768, 770, 576, -137, 261, 125,-32766, 278, + 823, 757, 857, 1073, 37, 20, 424, 240, 425, -178, + 426, 589, 427, 393, 503, 428, 687, 235, 241, 38, + 39, 370, 371, 125, 354, 40, 429, 260, 259, 65, + 267, 687, 302, -457, 430, 431, -296, -177, -296, 24, + 432, 305, 365, 700, 791, 373, 374, -457, 120, 118, + 24, 1073, 30, 366, -457, 1039, -460, 850, 851, 687, + 367, 691, 1073, 422, 291, 768, 1039, 333, -83, 770, + 576, -4, 467, 757, 126, 368, 37, 20, 424, -92, + 425, 278, 426, 444, 427, 1016, 375, 428, -219, -219, + -219, 38, 39, 370, 371, 333, 1016, 40, 429, 850, + 851, 65, 435, 436, 302, 236, 430, 431, 225, 708, + -494, 709, 432, 435, 436, 743, 791, 373, 374, 690, + 387, 136, 1117, 578, 68, 413, 238, 8, 33, 278, + 1053, 227, 708, 687, 709, 68, 422, -260, 535, 21, + 278, 770, 576, -219, 550, 551, 757, 687, 116, 37, + 20, 424, 117, 425, 358, 426, -178, 427, 132, 328, + 428, -218, -218, -218, 38, 39, 370, 371, 687, 333, + 40, 429, 122, 768, 65, 383, 384, 302, 123, 430, + 431, 29, 234, 333, -177, 432, 528, 529, 743, 791, + 373, 374, 129, 850, 851, 135, 76, 77, 78, 1092, + 881, 599, 582, 254, 333, 137, 138, 782, 590, 593, + 293, 767, 131, 252, 770, 576, -218, 31, 102, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, + 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, + 100, 101, 43, 252, 422, 558, 768, 687, 690,-32766, + 471, 130, 476, 685, 757, 102, 553, 37, 20, 424, + 526, 425, 688, 426, 272, 427, 910, 1016, 428, 792, + 1128, 793, 38, 39, 370, 583, 269, 570, 40, 429, + 536, 1052, 65, 275, 1055, 302, -415, 541, 270, -81, + 10, 391, 768, 432, 542, 554, 784, 594, 5, 0, + 12, 577, 0, 0, 304, 0, 0, 0, 0, 336, + 342, 0, 0, 0, 0, 0, 0, 422, 0, 0, + 0, 584, 770, 576, 0, 0, 0, 757, 0, 0, + 37, 20, 424, 343, 425, 0, 426, 0, 427, 768, + 0, 428, 0, 0, 0, 38, 39, 370, 347, 387, + 473, 40, 429, 359, 360, 65, 744, 35, 302, 36, + 597, 598, 748, 422, 825, 809, 432, 816, 587, 876, + 877, 806, 817, 757, 746, 804, 37, 20, 424, 885, + 425, 888, 426, 889, 427, 768, 886, 428, 887, 893, + -485, 38, 39, 370, 579, 770, 576, 40, 429, 581, + 585, 65, 586, 588, 302, 592, 286, 287, 352, 353, + 422, 580, 432, 1123, 591, 1125, 703, 790, 702, 712, + 757, 789, 713, 37, 20, 424, 710, 425, 1124, 426, + 788, 427, 768, 1004, 428, 711, 777, 785, 38, 39, + 370, 808, 576, -483, 40, 429, 775, 814, 65, 815, + 1122, 302, 1074, 1067, 1081, 1086, 422, 1089, -237, 432, + -461, -460, -459, 23, 25, 28, 757, 34, 41, 37, + 20, 424, 67, 425, 70, 426, 71, 427, 72, 73, + 428, 74, 128, 134, 38, 39, 370, 139, 770, 576, + 40, 429, 229, 230, 65, 246, 247, 302, 248, 249, + 250, 251, 290, 422, 355, 432, 357, -427, -235, -234, + 14, 15, 16, 757, 17, 19, 37, 20, 424, 325, + 425, 404, 426, 406, 427, 409, 411, 428, 412, 419, + 567, 38, 39, 370, 770, 576, 1027, 40, 429, 977, + 1037, 65, 858, 1008, 302,-32766,-32766,-32766, -92, 13, + 18, 22, 432, 263, 324, 501, 522, 569, 981, 978, + 0, 994, 0, 1036, 1065, 1066,-32766, 1080,-32766,-32766, + -32766,-32766,-32766,-32766,-32767,-32767,-32767,-32767,-32767, 1120, + 532, 770, 576, 1054 ); protected $actionCheck = array( - 2, 3, 4, 5, 6, 13, 8, 9, 10, 11, - 12, 77, 15, 16, 17, 18, 19, 20, 21, 22, - 23, 24, 25, 26, 27, 8, 9, 10, 112, 113, - 114, 115, 116, 117, 0, 8, 9, 10, 8, 9, - 10, 77, 1, 13, 7, 28, 112, 30, 31, 32, - 33, 34, 54, 56, 57, 28, 7, 30, 31, 32, - 33, 34, 35, 1, 28, 7, 68, 69, 70, 71, - 72, 73, 74, 7, 28, 77, 112, 113, 114, 115, - 116, 117, 84, 85, 86, 87, 88, 89, 90, 91, + 2, 3, 4, 5, 6, 78, 8, 9, 10, 11, + 12, 0, 15, 16, 17, 18, 19, 20, 21, 22, + 23, 24, 25, 26, 27, 28, 42, 43, 44, 45, + 46, 47, 48, 49, 50, 8, 9, 10, 78, 79, + 7, 114, 115, 116, 117, 118, 119, 114, 115, 116, + 117, 118, 119, 55, 57, 58, 29, 7, 31, 32, + 33, 34, 35, 36, 8, 9, 10, 69, 70, 71, + 72, 73, 74, 75, 114, 1, 78, 8, 9, 10, + 1, 7, 13, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 126, 127, 29, 129, 130, 131, - 132, 133, 134, 135, 136, 137, 2, 3, 4, 5, - 6, 143, 144, 145, 152, 11, 12, 7, 14, 41, - 42, 43, 44, 45, 46, 47, 48, 49, 8, 9, - 10, 67, 67, 67, 102, 103, 130, 131, 50, 51, - 52, 109, 54, 35, 67, 79, 130, 131, 28, 83, - 118, 47, 48, 1, 66, 1, 7, 53, 152, 55, - 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, - 67, 67, 68, 69, 70, 8, 9, 10, 112, 75, - 76, 77, 150, 79, 7, 77, 7, 83, 8, 9, - 10, 1, 128, 128, 28, 28, 130, 30, 31, 32, - 33, 29, 7, 1, 7, 128, 102, 142, 28, 7, - 30, 31, 32, 149, 149, 148, 112, 151, 77, 142, - 112, 7, 156, 1, 120, 121, 149, 7, 151, 146, - 1, 128, 149, 129, 130, 1, 132, 133, 134, 135, - 136, 137, 138, 1, 67, 142, 94, 143, 144, 145, - 146, 7, 149, 79, 151, 151, 1, 153, 8, 155, - 156, 71, 72, 73, 74, 0, 1, 102, 103, 7, - 79, 81, 67, 82, 84, 85, 86, 87, 88, 89, - 90, 91, 92, 93, 143, 95, 35, 146, 48, 99, - 100, 101, 102, 7, 104, 105, 130, 131, 108, 77, - 67, 111, 148, 113, 114, 128, 7, 13, 79, 119, - 29, 146, 122, 123, 124, 125, 7, 77, 152, 142, - 80, 149, 8, 9, 10, 7, 149, 15, 77, 152, - 156, 140, 141, 128, 79, 35, 71, 1, 148, 149, - 150, 112, 28, 13, 30, 31, 81, 152, 35, 84, - 85, 86, 123, 88, 152, 90, 154, 92, 77, 82, - 95, 128, 35, 112, 99, 100, 101, 102, 103, 104, - 105, 149, 152, 108, 109, 142, 111, 77, 113, 114, - 67, 7, 149, 149, 119, 156, 7, 122, 123, 124, - 125, 149, 79, 112, 67, 15, 83, 77, 147, 8, - 9, 10, 7, 152, 149, 7, 79, 71, 143, 1, - 83, 156, 112, 148, 149, 150, 139, 81, 77, 78, - 84, 85, 86, 33, 88, 112, 90, 15, 92, 8, - 9, 95, 96, 97, 98, 99, 100, 101, 102, 112, - 104, 105, 129, 130, 108, 7, 35, 111, 35, 113, - 114, 152, 29, 112, 15, 119, 129, 130, 122, 123, - 124, 125, 15, 143, 151, 15, 146, 97, 98, 156, - 150, 15, 35, 72, 73, 1, 72, 73, 151, 71, - 47, 48, 49, 156, 148, 149, 150, 15, 77, 81, - 77, 29, 84, 85, 86, 29, 88, 29, 90, 29, - 92, 102, 103, 95, 96, 97, 98, 99, 100, 101, - 102, 29, 104, 105, 77, 35, 108, 54, 1, 111, - 66, 113, 114, 112, 67, 112, 152, 119, 102, 103, - 122, 123, 124, 125, 106, 107, 130, 131, 67, 8, - 9, 10, 148, 149, 77, 80, 29, 152, 79, 112, - 152, 74, 77, 79, 93, 77, 148, 149, 150, 28, - 147, 30, 31, 32, 33, 34, 35, 36, 37, 38, - 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, - 49, 50, 51, 52, 79, 54, 112, 1, 71, 79, - 152, 82, 86, 82, 87, 91, 94, 66, 81, 96, - 102, 84, 85, 86, 89, 88, 94, 90, 94, 92, - 109, 112, 95, 123, 96, 29, 99, 100, 101, 1, - 123, 104, 105, 110, 139, 108, 126, 139, 111, 142, - 156, 142, 146, 142, 126, 142, 119, 153, 146, -1, - 146, 146, 146, 127, -1, -1, -1, 29, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 71, -1, -1, - -1, -1, -1, -1, -1, 148, 149, 81, 146, 146, - 84, 85, 86, 146, 88, 147, 90, 148, 92, 149, - 148, 95, 148, 148, 148, 99, 100, 101, 1, 71, - 104, 105, 148, 148, 108, 148, 148, 111, 148, 81, - 148, 148, 84, 85, 86, 119, 88, 148, 90, 148, - 92, 148, 148, 95, 148, 148, 29, 99, 100, 101, - 1, 148, 104, 105, 148, 150, 108, 149, 149, 111, - 149, 149, 149, 149, 148, 149, 149, 119, 149, 149, - 149, 149, 154, 150, 150, 150, 150, 150, 29, 150, - 150, 150, 150, 150, 150, 150, 150, 150, 71, 1, - 150, 150, 150, 150, 150, 150, 148, 149, 81, 150, - 150, 84, 85, 86, 150, 88, 150, 90, 150, 92, - 151, 151, 95, 151, 151, 151, 99, 100, 101, 151, - 71, 104, 105, 151, 151, 108, 151, 151, 111, 151, - 81, 151, 151, 84, 85, 86, 119, 88, 151, 90, - 151, 92, 151, 151, 95, 151, 151, 151, 99, 100, - 101, 151, 151, 104, 105, 151, 151, 108, 151, 71, - 111, 151, 151, 151, 155, 148, 149, 152, 119, 81, - 152, 152, 84, 85, 86, 152, 88, 152, 90, 152, - 92, 152, 152, 95, 152, 152, 152, 99, 100, 101, - 152, 152, 104, 105, 152, 152, 108, 148, 149, 111, - 8, 9, 10, 152, 152, 152, 152, 119, 152, 152, - 152, 152, 152, 152, 152, 152, 152, 152, 152, -1, - 28, 153, 30, 31, 32, 33, 34, 35, 36, 37, - 38, 39, 40, 154, 154, 154, 148, 149, 154, 154 + 122, 123, 124, 125, 126, 127, 128, 129, 30, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 2, 3, + 4, 5, 6, 145, 146, 147, 7, 11, 12, 36, + 14, 8, 9, 10, 48, 49, 50, 68, 8, 9, + 10, 68, 29, 7, 1, 8, 9, 10, 1, 80, + 8, 9, 29, 84, 31, 32, 33, 34, 35, 29, + 7, 31, 32, 33, 48, 49, 29, 154, 31, 32, + 54, 78, 56, 57, 58, 59, 60, 61, 62, 63, + 64, 65, 66, 114, 68, 69, 70, 71, 8, 9, + 10, 13, 76, 77, 78, 1, 80, 7, 1, 49, + 84, 132, 1, 130, 1, 80, 7, 114, 154, 29, + 156, 31, 32, 33, 34, 1, 7, 144, 7, 103, + 104, 1, 153, 80, 151, 78, 153, 158, 78, 151, + 114, 81, 7, 51, 52, 53, 7, 55, 122, 123, + 30, 8, 149, 29, 36, 132, 133, 131, 132, 67, + 134, 135, 136, 137, 138, 139, 140, 114, 68, 68, + 7, 145, 146, 147, 148, 13, 78, 154, 125, 153, + 36, 155, 1, 157, 158, 72, 73, 74, 75, 0, + 1, 80, 7, 158, 1, 82, 78, 7, 85, 86, + 87, 88, 89, 90, 91, 92, 93, 94, 151, 96, + 103, 158, 105, 100, 101, 102, 103, 154, 111, 106, + 107, 68, 78, 110, 29, 114, 113, 120, 115, 116, + 130, 130, 114, 7, 121, 68, 68, 124, 125, 126, + 127, 68, 154, 145, 144, 144, 148, 8, 9, 10, + 152, 151, 151, 30, 154, 151, 132, 133, 114, 152, + 7, 72, 1, 150, 151, 152, 29, 149, 29, 158, + 150, 82, 154, 80, 85, 86, 87, 36, 89, 7, + 91, 151, 93, 130, 1, 96, 78, 36, 36, 100, + 101, 102, 103, 149, 105, 106, 107, 130, 130, 110, + 111, 78, 113, 130, 115, 116, 103, 7, 105, 68, + 121, 144, 7, 124, 125, 126, 127, 144, 151, 151, + 68, 80, 7, 7, 151, 84, 153, 132, 133, 78, + 7, 150, 80, 72, 145, 1, 84, 114, 30, 150, + 151, 152, 83, 82, 151, 7, 85, 86, 87, 154, + 89, 158, 91, 145, 93, 114, 148, 96, 97, 98, + 99, 100, 101, 102, 103, 114, 114, 106, 107, 132, + 133, 110, 131, 132, 113, 36, 115, 116, 95, 103, + 154, 105, 121, 131, 132, 124, 125, 126, 127, 80, + 148, 13, 83, 151, 153, 103, 36, 105, 13, 158, + 141, 13, 103, 78, 105, 153, 72, 154, 73, 74, + 158, 150, 151, 152, 73, 74, 82, 78, 15, 85, + 86, 87, 15, 89, 148, 91, 154, 93, 98, 99, + 96, 97, 98, 99, 100, 101, 102, 103, 78, 114, + 106, 107, 15, 1, 110, 103, 104, 113, 15, 115, + 116, 142, 143, 114, 154, 121, 108, 109, 124, 125, + 126, 127, 15, 132, 133, 15, 8, 9, 10, 154, + 150, 151, 30, 30, 114, 15, 15, 36, 30, 30, + 34, 30, 30, 55, 150, 151, 152, 29, 67, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, + 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, + 52, 53, 68, 55, 72, 75, 1, 78, 80, 83, + 83, 68, 87, 78, 82, 67, 92, 85, 86, 87, + 111, 89, 78, 91, 112, 93, 80, 114, 96, 125, + 81, 125, 100, 101, 102, 30, 128, 90, 106, 107, + 88, 141, 110, 128, 141, 113, 144, 94, 129, 95, + 95, 95, 1, 121, 97, 97, 149, 152, 144, -1, + 144, 151, -1, -1, 144, -1, -1, -1, -1, 148, + 148, -1, -1, -1, -1, -1, -1, 72, -1, -1, + -1, 30, 150, 151, -1, -1, -1, 82, -1, -1, + 85, 86, 87, 148, 89, -1, 91, -1, 93, 1, + -1, 96, -1, -1, -1, 100, 101, 102, 148, 148, + 148, 106, 107, 148, 148, 110, 152, 150, 113, 150, + 150, 150, 150, 72, 150, 150, 121, 150, 30, 150, + 150, 150, 150, 82, 150, 150, 85, 86, 87, 150, + 89, 150, 91, 150, 93, 1, 150, 96, 150, 150, + 153, 100, 101, 102, 151, 150, 151, 106, 107, 151, + 151, 110, 151, 151, 113, 151, 151, 151, 151, 151, + 72, 151, 121, 152, 30, 152, 152, 152, 152, 152, + 82, 152, 152, 85, 86, 87, 152, 89, 152, 91, + 152, 93, 1, 152, 96, 152, 152, 152, 100, 101, + 102, 150, 151, 153, 106, 107, 152, 152, 110, 152, + 152, 113, 152, 152, 152, 152, 72, 152, 154, 121, + 153, 153, 153, 153, 153, 153, 82, 153, 153, 85, + 86, 87, 153, 89, 153, 91, 153, 93, 153, 153, + 96, 153, 153, 153, 100, 101, 102, 153, 150, 151, + 106, 107, 153, 153, 110, 153, 153, 113, 153, 153, + 153, 153, 153, 72, 153, 121, 153, 155, 154, 154, + 154, 154, 154, 82, 154, 154, 85, 86, 87, 154, + 89, 154, 91, 154, 93, 154, 154, 96, 154, 154, + 154, 100, 101, 102, 150, 151, 154, 106, 107, 154, + 154, 110, 154, 154, 113, 8, 9, 10, 154, 154, + 154, 154, 121, 154, 154, 154, 154, 154, 154, 154, + -1, 155, -1, 156, 156, 156, 29, 156, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 156, + 156, 150, 151, 157 ); protected $actionBase = array( - 0, 220, 295, 366, 438, 285, 350, 606, -2, -2, - -36, -2, -2, 749, 616, 616, 547, 616, 717, 648, - 788, 788, 788, 281, 443, 441, 441, 467, 371, 441, - 467, 311, 330, 138, -66, -66, -66, -66, -66, -66, - -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, - -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, - -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, - -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, - -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, - -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, - -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, - -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, - -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, - -66, -66, -66, -66, -66, -66, 184, 184, 97, 182, - 324, 729, 718, 725, 732, 733, 727, 715, 360, 645, - 632, 492, 650, 654, 656, 649, 723, 618, 730, 719, - 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, - 561, 561, 561, 561, 561, 561, 280, 30, 451, 421, - 421, 421, 421, 421, 421, 421, 421, 421, 421, 421, - 421, 421, 421, 421, 421, 421, 421, 421, 150, 150, - 150, 344, 210, 207, 197, 17, 95, 27, 892, 892, - 892, 892, 892, 108, 108, 108, 108, 357, 357, 343, - 62, 96, 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 259, 463, 463, 36, 36, 36, - 36, 504, 196, 499, 46, 307, 515, 709, 252, 252, - 436, 107, 133, 118, 118, 118, 195, 539, 529, 529, - 529, 529, 221, 221, 529, 529, 270, 264, 232, 95, - 95, 263, 95, 95, 95, 429, 429, 429, 171, 113, - 541, 171, 562, 622, 548, 623, 533, 605, 94, 522, - 204, 528, 525, 204, 204, 204, 458, 434, 431, 762, - 184, 521, 184, 184, 184, 184, 678, 184, 184, 184, - 184, 184, 184, 202, 184, 41, 424, 97, 272, 272, - 420, 272, 493, 235, 614, 425, 404, 493, 493, 493, - 613, 611, 250, 225, -8, 609, 428, 456, 468, 329, - 497, 497, 508, 508, 535, 510, 497, 497, 497, 497, - 497, 664, 664, 508, 540, 508, 535, 659, 508, 510, - 508, 508, 497, 508, 664, 510, 66, 339, 244, 274, - 510, 348, 538, 497, 530, 530, 316, 508, 140, 508, - 37, 546, 664, 664, 546, 179, 510, 209, 575, 565, - 531, 558, 227, 498, 498, 58, 531, 409, 510, 498, - 49, 540, 292, 498, 34, 712, 711, 500, 710, 660, - 707, 681, 705, 560, 520, 527, 695, 694, 704, 662, - 663, 496, 557, 469, 442, 523, 487, 668, 528, 516, - 484, 484, 484, 487, 673, 484, 484, 484, 484, 484, - 484, 484, 484, 779, 519, 536, 502, 553, 542, 342, - 608, 518, 557, 557, 633, 768, 514, 505, 678, 751, - 701, 574, 410, 759, 692, 658, 552, 526, 691, 758, - 743, 612, 469, 742, 634, 501, 635, 557, 636, 484, - 675, 676, 785, 784, 672, 781, 764, 757, 524, 637, - 495, 780, 640, 739, 621, 620, 566, 763, 734, 756, - 641, 754, 642, 564, 537, 766, 491, 680, 687, 619, - 643, 644, 559, 477, 631, 630, 629, 700, 577, 761, - 534, 760, 765, 582, 603, 480, 627, 486, 597, 696, - 453, 507, 596, 594, 738, 626, 689, 593, 625, 752, - 532, 516, 517, 543, 544, 545, 617, 753, 512, 591, - 589, 583, 580, 624, 578, 0, 0, 0, 0, 0, + 0, 223, 299, 371, 444, 303, 208, 618, -2, -2, + -73, -2, -2, 625, 718, 718, 764, 718, 552, 671, + 811, 811, 811, 228, 113, 113, 113, 254, 361, -40, + 361, 333, 449, 470, 435, 435, 435, 435, 435, 435, + 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, + 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, + 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, + 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, + 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, + 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, + 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, + 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, + 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, + 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, + 291, 291, 230, 393, 495, 779, 784, 781, 776, 775, + 780, 785, 498, 678, 680, 562, 681, 682, 683, 685, + 782, 804, 777, 783, 568, 568, 568, 568, 568, 568, + 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, + 568, 253, 69, 162, 56, 56, 56, 56, 56, 56, + 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, + 56, 56, 56, 56, 56, 56, 349, 349, 349, 157, + 210, 150, 200, 211, 143, 27, 917, 917, 917, 917, + 917, -16, -16, -16, -16, 351, 351, 362, 217, 89, + 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, + 89, 89, 163, 313, 106, 106, 133, 133, 133, 133, + 133, 133, 221, 305, 234, 347, 369, 523, 806, 167, + 167, 441, 93, 283, 202, 202, 202, 386, 547, 533, + 533, 533, 533, 419, 419, 533, 533, 170, 214, 74, + 211, 211, 277, 211, 211, 211, 409, 409, 409, 452, + 318, 352, 546, 318, 619, 640, 577, 675, 578, 677, + 278, 585, 145, 586, 145, 145, 145, 458, 445, 451, + 774, 291, 522, 291, 291, 291, 291, 722, 291, 291, + 291, 291, 291, 291, 98, 291, 79, 430, 230, 240, + 240, 556, 240, 452, 538, 263, 635, 410, 425, 538, + 538, 538, 636, 637, 336, 363, 198, 638, 382, 402, + 173, 33, 549, 549, 555, 555, 566, 551, 549, 549, + 549, 549, 549, 690, 690, 555, 548, 555, 566, 695, + 555, 551, 551, 555, 555, 549, 555, 690, 551, 156, + 415, 249, 273, 551, 551, 426, 528, 549, 535, 535, + 433, 555, 219, 555, 139, 539, 690, 690, 539, 229, + 551, 231, 590, 591, 529, 527, 553, 245, 553, 553, + 300, 529, 553, 551, 553, 448, 50, 548, 295, 553, + 11, 699, 701, 418, 703, 694, 705, 731, 706, 530, + 524, 526, 719, 720, 708, 692, 691, 561, 582, 513, + 517, 534, 554, 689, 581, 531, 531, 531, 554, 687, + 531, 531, 531, 531, 531, 531, 531, 531, 787, 540, + 545, 723, 537, 541, 576, 543, 623, 520, 582, 582, + 584, 732, 786, 564, 722, 762, 709, 587, 557, 741, + 725, 525, 542, 565, 726, 727, 745, 765, 628, 513, + 766, 641, 563, 643, 582, 644, 531, 670, 617, 788, + 789, 688, 791, 736, 747, 749, 580, 645, 569, 803, + 646, 768, 629, 631, 589, 737, 684, 751, 647, 752, + 754, 649, 592, 572, 734, 573, 733, 272, 729, 632, + 650, 654, 656, 658, 661, 710, 594, 738, 544, 740, + 735, 595, 597, 560, 663, 488, 599, 570, 571, 600, + 714, 558, 550, 601, 602, 769, 664, 728, 604, 665, + 756, 574, 581, 536, 532, 575, 567, 634, 755, 559, + 605, 609, 611, 613, 674, 616, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 136, 136, 136, 136, -2, -2, -2, + 0, 0, -2, 0, 0, 136, 136, 136, 136, 136, + 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, + 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, + 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, + 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, + 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, + 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, + 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, + 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, + 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, + 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, + 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, + 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, + 136, 136, 568, 568, 568, 568, 568, 568, 568, 568, + 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, + 568, 568, 568, 568, 568, 568, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 134, 134, 134, 134, -2, -2, -2, 0, - 0, -2, 0, 0, 134, 134, 134, 134, 134, 134, - 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, - 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, - 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, - 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, - 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, - 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, - 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, - 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, - 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, - 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, - 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, - 134, 134, 134, 134, 134, 134, 134, 561, 561, 561, - 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, - 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, - 561, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 561, 561, 561, - 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, - 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, - 561, 561, 561, 561, -3, 561, 561, -3, 561, 561, - 561, 561, 561, 561, 118, 118, 118, 118, 171, 171, - 171, -84, 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 118, 118, 171, 171, - 171, 171, 171, 171, -84, 171, 221, 221, 221, 204, - 204, 171, 0, 0, 0, 0, 0, 497, 221, 171, - 171, 171, 171, 0, 0, 171, 171, 540, 204, 0, - 0, 0, 0, 0, 0, 0, 497, 497, 497, 0, - 497, 221, 0, 272, 184, 400, 400, 400, 400, 0, - 497, 0, 540, 497, 0, 0, 0, 0, 0, 0, - 510, 0, 664, 0, 0, 0, 0, 508, 0, 0, - 0, 0, 0, 0, 0, 0, 540, 0, 0, 0, - 0, 540, 0, 484, 0, 505, 0, 0, 484, 484, - 484, 505, 505, 0, 0, 0, 505 + 0, 0, 0, 568, 568, 568, 568, 568, 568, 568, + 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, + 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, + 568, 568, -3, 568, 568, -3, 568, 568, 568, 568, + 568, 568, 568, 202, 202, 202, 202, 318, 318, 318, + -67, 318, 318, 318, 318, 318, 318, 318, 318, 318, + 318, 318, 318, 318, 318, -67, 202, 202, 318, 318, + 318, 318, 318, 318, 318, 318, 318, 318, 419, 419, + 419, 145, 145, 318, 0, 0, 0, 0, 0, 549, + 419, 318, 318, 318, 318, 0, 0, 318, 318, 548, + 145, 0, 0, 0, 0, 0, 0, 0, 549, 549, + 549, 548, 0, 549, 419, 0, 240, 291, 440, 440, + 440, 440, 0, 549, 0, 549, 0, 0, 0, 0, + 0, 0, 551, 0, 690, 0, 0, 0, 0, 555, + 0, 0, 0, 0, 0, 0, 0, 0, 548, 0, + 0, 0, 0, 548, 0, 0, 531, 0, 564, 0, + 0, 531, 531, 531, 564, 564, 0, 0, 0, 564 ); protected $actionDefault = array( - 3,32767,32767,32767,32767,32767,32767,32767,32767, 91, + 3,32767,32767,32767,32767,32767,32767,32767,32767, 92, 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767,32767, 93, 504, 504, 494,32767, 504, - 494,32767,32767,32767, 312, 312, 312,32767, 449, 449, - 449, 449, 449, 449, 449,32767,32767,32767,32767,32767, - 391,32767,32767,32767,32767,32767,32767,32767,32767,32767, + 32767,32767,32767,32767, 510, 510, 510, 94, 499,32767, + 499,32767,32767,32767, 314, 314, 314,32767, 454, 454, + 454, 454, 454, 454, 454,32767,32767,32767,32767,32767, + 394,32767,32767,32767,32767,32767,32767,32767,32767,32767, 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767,32767,32767,32767,32767,32767,32767, 91, 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, + 32767, 92,32767,32767,32767,32767,32767,32767,32767,32767, 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 501,32767,32767,32767,32767,32767,32767,32767,32767,32767, + 32767,32767,32767,32767, 506,32767,32767,32767,32767,32767, 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 374, 375, 377, 378, 311, 450, 257, 500, 310, 129, - 268, 259, 210, 308, 242, 133, 339, 392, 341, 390, - 394, 340, 317, 321, 322, 323, 324, 325, 326, 327, - 328, 329, 330, 331, 332, 315, 316, 393, 371, 370, - 369, 337, 338, 314, 342, 344, 314, 343, 360, 361, - 358, 359, 362, 363, 364, 365, 366,32767,32767,32767, + 32767,32767,32767,32767, 377, 378, 380, 381, 313, 455, + 509, 259, 505, 312, 130, 270, 261, 211, 243, 310, + 134, 342, 395, 344, 393, 397, 343, 319, 323, 324, + 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, + 335, 317, 318, 396, 398, 399, 374, 373, 372, 340, + 316, 341, 345, 316, 347, 346, 363, 364, 361, 362, + 365, 366, 367, 368, 369,32767,32767,32767,32767,32767, + 32767,32767,32767,32767,32767,32767,32767,32767,32767, 94, + 32767,32767,32767, 293, 354, 355, 250, 250, 250, 250, + 250, 250,32767, 250,32767, 250,32767,32767,32767,32767, + 32767,32767, 448, 371, 349, 350, 348,32767, 426,32767, + 32767,32767,32767,32767, 428,32767, 92,32767,32767,32767, + 337, 339, 420, 508, 320, 507,32767,32767, 94, 414, 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 32767, 93,32767,32767,32767, 351, 352, 249, 249, 249, - 249,32767, 249, 294,32767,32767,32767,32767,32767,32767, - 32767, 443, 368, 346, 347, 345,32767, 421,32767,32767, - 32767,32767,32767, 423,32767, 91,32767,32767,32767, 334, - 336, 415, 503, 318, 502,32767,32767, 93,32767,32767, - 32767,32767,32767,32767,32767,32767,32767,32767, 418,32767, - 32767, 409, 91,32767,32767, 91, 173, 229, 231, 178, - 32767, 426,32767,32767,32767,32767,32767,32767,32767,32767, + 423,32767,32767, 92,32767,32767, 92, 174, 230, 232, + 179,32767, 431,32767,32767,32767,32767,32767,32767,32767, 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 32767,32767, 356, 511,32767, 451,32767, 348, 349, 350, - 32767,32767, 451, 451, 451,32767, 451,32767, 451, 451, - 32767,32767,32767,32767,32767, 178,32767,32767,32767,32767, - 93, 424, 424, 91, 91, 91, 91, 419,32767, 178, - 32767,32767,32767,32767,32767, 178, 90, 90, 90, 90, - 178, 90, 193,32767, 191, 191, 90,32767, 92,32767, - 92, 195,32767, 465, 195, 90, 178, 90, 215, 215, - 400, 180, 92, 251, 251, 92, 400, 90, 178, 251, - 90,32767, 90, 251,32767,32767,32767, 84,32767,32767, + 32767,32767,32767, 414, 359, 517,32767, 456,32767, 351, + 352, 353,32767,32767, 456, 456, 456,32767, 456,32767, + 456, 456,32767,32767,32767,32767,32767, 179,32767,32767, + 32767,32767, 94, 429, 429, 92, 92, 92, 92, 424, + 32767, 179, 179,32767,32767,32767,32767,32767, 179, 91, + 91, 91, 91, 179, 179, 91, 194,32767, 192, 192, + 91,32767, 93,32767, 93, 196,32767, 470, 196, 91, + 179, 91, 216, 216, 405, 181, 252, 93, 252, 252, + 93, 405, 252, 179, 252, 91, 91,32767, 91, 252, + 32767,32767,32767, 85,32767,32767,32767,32767,32767,32767, + 32767,32767,32767,32767,32767,32767,32767,32767, 416,32767, + 436,32767, 449, 468,32767, 357, 358, 360,32767, 458, + 382, 383, 384, 385, 386, 387, 388, 390,32767, 419, + 32767,32767,32767, 87, 121, 269,32767, 515, 87, 417, + 32767, 515,32767,32767,32767,32767,32767,32767,32767,32767, + 32767,32767, 87, 87,32767,32767,32767,32767,32767, 495, + 32767, 516,32767, 456, 418,32767, 356, 432, 475,32767, + 32767, 457,32767,32767,32767,32767, 87,32767,32767,32767, + 32767,32767,32767,32767,32767,32767, 436,32767,32767,32767, + 32767,32767,32767,32767, 456,32767,32767,32767,32767,32767, 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 32767,32767, 411,32767, 431,32767, 444, 463, 409,32767, - 354, 355, 357,32767, 453, 379, 380, 381, 382, 383, - 384, 385, 387,32767, 414,32767,32767, 86, 120, 267, - 32767, 509, 86, 412,32767, 509,32767,32767,32767,32767, - 32767,32767,32767,32767,32767,32767, 86, 86,32767,32767, - 32767,32767, 490,32767, 510,32767, 451, 413,32767, 353, - 427, 470,32767,32767, 452,32767,32767,32767, 86,32767, - 32767,32767,32767,32767,32767,32767,32767,32767, 431,32767, - 32767,32767,32767,32767,32767, 451,32767,32767,32767,32767, - 32767,32767,32767, 307,32767,32767,32767,32767,32767,32767, - 32767,32767, 451,32767,32767, 241,32767,32767,32767,32767, + 456,32767,32767, 242,32767,32767,32767, 309,32767,32767, 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 84, 60,32767, 287,32767,32767,32767,32767,32767,32767, - 32767,32767,32767,32767,32767, 135, 135, 3, 270, 3, - 270, 135, 135, 135, 270, 270, 135, 135, 135, 135, - 135, 135, 135, 168, 223, 226, 215, 215, 279, 135, - 135 + 32767, 85, 60,32767, 289,32767,32767,32767,32767,32767, + 32767,32767,32767,32767,32767,32767, 136, 136, 3, 272, + 3, 272, 136, 136, 136, 272, 272, 136, 136, 136, + 136, 136, 136, 136, 169, 224, 227, 216, 216, 281, + 136, 136 ); protected $goto = array( - 166, 166, 140, 140, 148, 149, 140, 148, 151, 182, - 167, 164, 164, 164, 164, 165, 165, 165, 165, 165, - 165, 165, 160, 161, 162, 163, 179, 177, 180, 430, - 431, 322, 432, 435, 436, 437, 438, 439, 440, 441, - 442, 901, 137, 141, 142, 143, 144, 145, 139, 146, - 147, 150, 176, 178, 181, 198, 201, 202, 204, 205, - 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, - 235, 236, 253, 254, 255, 327, 328, 329, 479, 183, - 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, - 194, 195, 196, 152, 197, 153, 168, 169, 170, 199, - 171, 154, 155, 156, 172, 157, 200, 138, 173, 158, - 174, 175, 159, 542, 203, 447, 551, 203, 743, 444, - 304, 308, 459, 482, 483, 485, 444, 493, 496, 519, - 1087, 1087, 987, 481, 452, 452, 452, 472, 452, 698, - 472, 677, 692, 779, 779, 779, 779, 1087, 467, 773, - 780, 452, 433, 433, 433, 285, 433, 433, 433, 433, - 433, 433, 433, 433, 433, 433, 433, 433, 433, 434, - 434, 434, 676, 434, 434, 434, 434, 434, 434, 434, - 434, 434, 434, 434, 434, 434, 480, 869, 554, 319, - 664, 263, 536, 867, 321, 988, 247, 502, 282, 452, - 452, 515, 516, 1057, 1058, 466, 488, 452, 452, 452, - 3, 4, 465, 989, 1043, 712, 785, 575, 504, 506, - 837, 453, 520, 535, 538, 813, 545, 553, 809, 498, - 498, 1012, 477, 1012, 1012, 1012, 1012, 1012, 1012, 1012, - 1012, 1012, 1012, 1012, 1012, 1012, 703, 675, 976, 765, - 738, 977, 739, 1086, 1086, 499, 501, 547, 802, 783, - 783, 781, 783, 574, 679, 445, 811, 806, 473, 1079, - 1086, 876, 1102, 777, 316, 550, 478, 1067, 492, 703, - 302, 684, 703, 734, 729, 730, 744, 1089, 685, 731, - 682, 732, 733, 683, 877, 737, 306, 449, 521, 470, - 948, 833, 458, 821, 334, 522, 338, 468, 325, 325, - 269, 270, 272, 476, 332, 273, 333, 274, 336, 505, - 339, 525, 1056, 391, 826, 289, 539, 816, 816, 1074, - 694, 694, 510, 283, 312, 11, 704, 704, 704, 706, - 693, 991, 286, 287, 827, 827, 827, 827, 991, 827, - 696, 827, 699, 579, 1062, 1062, 526, 827, 842, 846, - 449, 984, 1053, 708, 790, 991, 991, 991, 991, 1053, - 979, 991, 991, 384, 399, 886, 1064, 1064, 707, 695, - 841, 495, 845, 0, 0, 751, 0, 788, 752, 0, - 0, 0, 0, 0, 0, 1049, 818, 0, 778, 0, - 0, 0, 0, 0, 0, 0, 0, 986, 884, 0, - 0, 711, 464, 983, 0, 0, 0, 0, 844, 0, - 0, 1051, 1051, 844, 0, 0, 0, 0, 0, 0, + 171, 144, 144, 144, 171, 152, 153, 152, 155, 187, + 172, 168, 168, 168, 168, 169, 169, 169, 169, 169, + 169, 169, 164, 165, 166, 167, 184, 182, 185, 445, + 446, 334, 447, 450, 451, 452, 453, 454, 455, 456, + 457, 924, 141, 145, 146, 147, 170, 148, 149, 143, + 150, 151, 154, 181, 183, 186, 206, 209, 211, 212, + 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, + 224, 244, 245, 264, 265, 266, 339, 340, 341, 496, + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 156, 203, 157, 173, 174, + 175, 207, 176, 158, 159, 160, 177, 161, 208, 142, + 204, 162, 178, 205, 179, 180, 163, 563, 210, 463, + 210, 516, 516, 1038, 572, 1038, 1038, 1038, 1038, 1038, + 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 468, 468, + 468, 514, 537, 468, 297, 489, 521, 489, 498, 274, + 533, 534, 698, 483, 258, 468, 448, 448, 448, 725, + 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, + 448, 448, 448, 449, 449, 449, 699, 449, 449, 449, + 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, + 1114, 1114, 734, 725, 899, 725, 315, 319, 475, 499, + 500, 502, 1083, 1084, 468, 468, 760, 1114, 761, 900, + 482, 506, 468, 468, 468, 329, 330, 686, 481, 545, + 495, 332, 510, 596, 523, 525, 294, 469, 538, 556, + 559, 835, 566, 574, 831, 765, 729, 717, 864, 494, + 807, 868, 490, 860, 716, 716, 810, 697, 1013, 1105, + 726, 726, 726, 728, 715, 840, 1093, 800, 824, 805, + 805, 803, 805, 595, 313, 460, 833, 828, 459, 3, + 4, 907, 733, 539, 1009, 487, 317, 461, 459, 497, + 892, 575, 972, 474, 843, 557, 890, 1129, 484, 485, + 505, 517, 519, 520, 568, 801, 801, 801, 801, 465, + 855, 795, 802, 1002, 787, 405, 1003, 799, 327, 571, + 356, 1082, 530, 1014, 848, 346, 540, 350, 11, 337, + 337, 280, 281, 283, 493, 344, 284, 345, 285, 348, + 524, 351, 1015, 1069, 1113, 1113, 543, 301, 298, 299, + 721, 560, 838, 838, 1100, 295, 865, 718, 600, 323, + 544, 1113, 1010, 1017, 511, 1005, 869, 849, 849, 849, + 849, 849, 849, 1017, 849, 849, 849, 720, 730, 1116, + 714, 812, 849, 1088, 1088, 909, 465, 398, 513, 414, + 1017, 1017, 1017, 1017, 0, 1079, 1017, 1017, 0, 701, + 0, 0, 0, 0, 0, 1079, 0, 0, 0, 0, + 0, 773, 1090, 1090, 774, 706, 0, 756, 751, 752, + 766, 0, 707, 753, 704, 754, 755, 705, 0, 759, + 0, 1075, 0, 0, 0, 0, 0, 1012, 0, 0, + 0, 480, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 867, 0, 1077, 1077, 867, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 446, 462, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 446, - 0, 462, 0, 0, 305, 0, 450, 372, 0, 374, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 702, 0, 1094 + 0, 0, 0, 0, 0, 0, 0, 0, 462, 478, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 462, + 0, 478, 0, 0, 316, 0, 0, 466, 386, 0, + 388, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 724, 0, 1121 ); protected $gotoCheck = array( @@ -647,82 +662,84 @@ class Php7 extends \PhpParser\ParserAbstract 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, - 33, 33, 33, 63, 56, 10, 8, 56, 13, 75, - 49, 49, 49, 49, 49, 49, 75, 15, 46, 46, - 148, 148, 92, 97, 10, 10, 10, 85, 10, 15, - 85, 18, 15, 75, 75, 75, 75, 148, 10, 75, - 75, 10, 135, 135, 135, 80, 135, 135, 135, 135, - 135, 135, 135, 135, 135, 135, 135, 135, 135, 137, - 137, 137, 17, 137, 137, 137, 137, 137, 137, 137, - 137, 137, 137, 137, 137, 137, 7, 7, 7, 69, - 5, 134, 7, 7, 69, 92, 134, 73, 69, 10, - 10, 73, 73, 141, 141, 10, 10, 10, 10, 10, - 37, 37, 39, 92, 92, 36, 40, 39, 39, 39, - 94, 10, 39, 39, 39, 39, 39, 39, 39, 86, - 86, 86, 10, 86, 86, 86, 86, 86, 86, 86, - 86, 86, 86, 86, 86, 86, 26, 16, 67, 67, - 55, 67, 55, 147, 147, 68, 68, 68, 16, 16, - 16, 16, 16, 16, 13, 16, 16, 16, 136, 146, - 147, 111, 12, 76, 76, 76, 2, 143, 2, 26, - 52, 13, 26, 13, 13, 13, 13, 147, 13, 13, - 13, 13, 13, 13, 111, 13, 65, 12, 54, 53, - 118, 90, 65, 88, 56, 56, 56, 65, 56, 56, + 33, 33, 33, 33, 33, 33, 33, 63, 56, 10, + 56, 86, 86, 86, 8, 86, 86, 86, 86, 86, + 86, 86, 86, 86, 86, 86, 86, 86, 10, 10, + 10, 46, 46, 10, 80, 85, 73, 85, 97, 134, + 73, 73, 17, 10, 134, 10, 135, 135, 135, 26, + 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, + 135, 135, 135, 137, 137, 137, 18, 137, 137, 137, + 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, + 148, 148, 36, 26, 111, 26, 49, 49, 49, 49, + 49, 49, 141, 141, 10, 10, 55, 148, 55, 111, + 10, 10, 10, 10, 10, 69, 69, 5, 39, 69, + 2, 69, 2, 39, 39, 39, 69, 10, 39, 39, + 39, 39, 39, 39, 39, 13, 14, 14, 14, 10, + 40, 14, 136, 94, 26, 26, 14, 16, 92, 146, + 26, 26, 26, 26, 26, 14, 143, 14, 16, 16, + 16, 16, 16, 16, 52, 16, 16, 16, 75, 37, + 37, 14, 14, 54, 14, 53, 65, 65, 75, 7, + 7, 7, 118, 65, 88, 7, 7, 12, 65, 65, + 68, 68, 68, 68, 68, 75, 75, 75, 75, 12, + 90, 75, 75, 67, 67, 65, 67, 76, 76, 76, + 89, 139, 24, 92, 91, 56, 56, 56, 65, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, - 56, 12, 139, 65, 91, 20, 12, 85, 85, 85, - 26, 26, 24, 11, 19, 65, 26, 26, 26, 26, - 26, 63, 80, 80, 63, 63, 63, 63, 63, 63, - 28, 63, 30, 82, 8, 8, 23, 63, 96, 99, - 12, 127, 97, 32, 79, 63, 63, 63, 63, 97, - 124, 63, 63, 71, 122, 114, 97, 97, 14, 14, - 14, 72, 14, -1, -1, 63, -1, 14, 63, -1, - -1, -1, -1, -1, -1, 97, 14, -1, 14, -1, - -1, -1, -1, -1, -1, -1, -1, 12, 14, -1, - -1, 14, 8, 14, -1, -1, -1, -1, 97, -1, - -1, 97, 97, 97, -1, -1, -1, -1, -1, -1, + 56, 56, 92, 92, 147, 147, 12, 20, 80, 80, + 30, 12, 85, 85, 85, 11, 96, 28, 82, 19, + 23, 147, 127, 63, 15, 124, 99, 63, 63, 63, + 63, 63, 63, 63, 63, 63, 63, 15, 32, 147, + 15, 79, 63, 8, 8, 114, 12, 71, 72, 122, + 63, 63, 63, 63, -1, 97, 63, 63, -1, 13, + -1, -1, -1, -1, -1, 97, -1, -1, -1, -1, + -1, 63, 97, 97, 63, 13, -1, 13, 13, 13, + 13, -1, 13, 13, 13, 13, 13, 13, -1, 13, + -1, 97, -1, -1, -1, -1, -1, 12, -1, -1, + -1, 8, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 97, -1, 97, 97, 97, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8, 8, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8, - -1, 8, -1, -1, 8, -1, 8, 8, -1, 8, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 8, -1, 8 + -1, 8, -1, -1, 8, -1, -1, 8, 8, -1, + 8, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 8, -1, 8 ); protected $gotoBase = array( - 0, 0, -281, 0, 0, 180, 0, 181, 106, 0, - -141, 54, 6, -19, 11, -253, 245, 170, 139, 45, - 69, 0, 0, 15, 56, 0, -10, 0, 58, 0, - 75, 0, 10, -23, 0, 0, 206, -369, 0, -344, - 197, 0, 0, 0, 0, 0, 93, 0, 0, 81, - 0, 0, 243, 77, 80, 235, 87, 0, 0, 0, - 0, 0, 0, 107, 0, -63, 0, -70, 17, -205, - 0, -2, -3, -363, 0, -115, 14, 0, 0, 9, - -234, 0, 36, 0, 0, 110, 12, 0, 61, 0, - 57, 74, -169, 0, 196, 0, 63, 128, 0, 5, + 0, 0, -358, 0, 0, 207, 0, 274, 114, 0, + -148, 54, 10, 94, -144, -40, 245, 150, 174, 48, + 70, 0, 0, -3, 25, 0, -108, 0, 44, 0, + 52, 0, 3, -23, 0, 0, 183, -331, 0, -359, + 221, 0, 0, 0, 0, 0, 106, 0, 0, 157, + 0, 0, 227, 45, 47, 191, 90, 0, 0, 0, + 0, 0, 0, 111, 0, -95, 0, -26, 43, -193, + 0, -12, -20, -435, 0, 26, 37, 0, 0, 4, + -259, 0, 20, 0, 0, 117, -104, 0, 31, 55, + 46, 53, -64, 0, 216, 0, 40, 143, 0, -10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 51, 0, 0, 19, 0, 0, 0, 59, 0, - 0, 0, -22, 0, 18, 0, 0, 16, 0, 0, - 0, 0, 0, 0, -66, -65, 242, -48, 0, 73, - 0, -90, 0, 247, 0, 0, 240, 7, -116, 0, + 0, -34, 0, 0, 7, 0, 0, 0, 30, 0, + 0, 0, -32, 0, -9, 0, 0, -5, 0, 0, + 0, 0, 0, 0, -119, -69, 217, -52, 0, 51, + 0, -102, 0, 226, 0, 0, 223, 77, -67, 0, 0 ); protected $gotoDefault = array( - -32768, 404, 582, 2, 583, 654, 662, 527, 421, 552, - 422, 448, 323, 736, 890, 756, 718, 719, 720, 309, - 349, 300, 307, 511, 500, 395, 705, 368, 697, 392, - 700, 367, 709, 136, 528, 400, 713, 1, 715, 454, - 747, 297, 723, 298, 531, 725, 461, 727, 728, 303, - 310, 311, 894, 469, 497, 740, 206, 463, 741, 296, - 742, 750, 320, 301, 378, 401, 315, 871, 487, 318, - 363, 381, 494, 489, 471, 998, 775, 387, 376, 789, - 284, 797, 580, 805, 808, 423, 424, 385, 820, 386, - 831, 825, 1006, 380, 836, 369, 843, 1038, 371, 847, - 220, 850, 344, 512, 337, 855, 856, 6, 861, 543, - 544, 7, 243, 397, 885, 513, 366, 900, 352, 967, - 969, 456, 393, 980, 375, 534, 402, 985, 1042, 364, - 425, 382, 271, 288, 246, 426, 443, 251, 427, 383, - 1045, 1052, 326, 1068, 268, 29, 1080, 1088, 280, 475, - 491 + -32768, 420, 603, 2, 604, 676, 684, 548, 437, 573, + 438, 464, 335, 758, 913, 778, 740, 741, 742, 320, + 361, 311, 318, 531, 518, 410, 727, 381, 719, 407, + 722, 380, 731, 140, 549, 416, 735, 1, 737, 470, + 769, 308, 745, 309, 552, 747, 477, 749, 750, 314, + 321, 322, 917, 486, 515, 762, 213, 479, 763, 307, + 764, 772, 331, 312, 392, 417, 326, 894, 504, 527, + 376, 395, 512, 507, 488, 1024, 797, 401, 390, 811, + 296, 819, 601, 827, 830, 439, 440, 399, 842, 400, + 853, 847, 1032, 394, 859, 382, 866, 1064, 385, 870, + 228, 873, 255, 546, 349, 878, 879, 6, 884, 564, + 565, 7, 243, 415, 908, 547, 379, 923, 364, 991, + 993, 472, 408, 1006, 389, 555, 418, 1011, 1068, 377, + 441, 396, 282, 300, 257, 442, 458, 262, 443, 397, + 1071, 1078, 338, 1094, 279, 26, 1106, 1115, 292, 492, + 509 ); protected $ruleToNonTerminal = array( @@ -733,31 +750,31 @@ class Php7 extends \PhpParser\ParserAbstract 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, - 7, 7, 8, 9, 10, 10, 11, 12, 13, 13, - 14, 14, 15, 15, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 20, 20, 21, 21, 21, - 21, 23, 25, 25, 19, 27, 27, 24, 29, 29, - 26, 26, 28, 28, 30, 30, 22, 31, 31, 32, - 34, 35, 35, 36, 37, 37, 39, 38, 38, 38, - 38, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, + 6, 7, 7, 8, 9, 10, 10, 11, 12, 13, + 13, 14, 14, 15, 15, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 20, 20, 21, 21, + 21, 21, 23, 25, 25, 19, 27, 27, 24, 29, + 29, 26, 26, 28, 28, 30, 30, 22, 31, 31, + 32, 34, 35, 35, 36, 37, 37, 39, 38, 38, + 38, 38, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 16, 16, 59, 59, - 62, 62, 61, 60, 60, 53, 64, 64, 65, 65, - 66, 66, 67, 67, 17, 18, 18, 18, 70, 70, - 70, 71, 71, 74, 74, 72, 72, 76, 77, 77, - 47, 47, 55, 55, 58, 58, 58, 57, 78, 78, - 79, 48, 48, 48, 48, 80, 80, 81, 81, 82, - 82, 45, 45, 41, 41, 83, 43, 43, 84, 42, - 42, 44, 44, 54, 54, 54, 54, 68, 68, 87, - 87, 88, 88, 88, 90, 90, 91, 91, 91, 89, - 89, 69, 69, 92, 92, 93, 93, 94, 94, 94, - 50, 95, 95, 96, 51, 98, 98, 99, 99, 100, - 100, 73, 101, 101, 101, 101, 101, 106, 106, 107, - 107, 108, 108, 108, 108, 108, 109, 110, 110, 105, - 105, 102, 102, 104, 104, 112, 112, 111, 111, 111, - 111, 111, 111, 103, 113, 113, 115, 114, 114, 52, - 116, 116, 46, 46, 33, 33, 33, 33, 33, 33, + 40, 40, 40, 40, 40, 40, 40, 16, 16, 59, + 59, 62, 62, 61, 60, 60, 53, 64, 64, 65, + 65, 66, 66, 67, 67, 17, 18, 18, 18, 70, + 70, 70, 71, 71, 74, 74, 72, 72, 76, 77, + 77, 47, 47, 55, 55, 58, 58, 58, 57, 78, + 78, 79, 48, 48, 48, 48, 80, 80, 81, 81, + 82, 82, 45, 45, 41, 41, 83, 43, 43, 84, + 42, 42, 44, 44, 54, 54, 54, 54, 68, 68, + 87, 87, 88, 88, 88, 90, 90, 91, 91, 91, + 89, 89, 69, 69, 69, 92, 92, 93, 93, 94, + 94, 94, 50, 95, 95, 96, 51, 98, 98, 99, + 99, 100, 100, 73, 101, 101, 101, 101, 101, 106, + 106, 107, 107, 108, 108, 108, 108, 108, 109, 110, + 110, 105, 105, 102, 102, 104, 104, 112, 112, 111, + 111, 111, 111, 111, 111, 103, 113, 113, 115, 114, + 114, 52, 116, 116, 46, 46, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, @@ -765,20 +782,20 @@ class Php7 extends \PhpParser\ParserAbstract 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, - 33, 33, 33, 33, 33, 33, 33, 123, 117, 117, - 122, 122, 125, 126, 126, 127, 128, 128, 128, 75, - 75, 63, 63, 63, 118, 118, 118, 130, 130, 119, - 119, 121, 121, 121, 124, 124, 135, 135, 135, 86, - 137, 137, 137, 120, 120, 120, 120, 120, 120, 120, - 120, 120, 120, 120, 120, 120, 120, 120, 120, 49, - 49, 133, 133, 133, 129, 129, 129, 138, 138, 138, - 138, 138, 138, 56, 56, 56, 97, 97, 97, 97, - 141, 140, 132, 132, 132, 132, 132, 132, 131, 131, - 131, 139, 139, 139, 139, 85, 142, 142, 143, 143, - 143, 143, 143, 143, 143, 136, 145, 145, 144, 144, - 146, 146, 146, 146, 146, 134, 134, 134, 134, 148, - 149, 147, 147, 147, 147, 147, 147, 147, 150, 150, - 150, 150 + 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, + 33, 33, 123, 117, 117, 122, 122, 125, 126, 126, + 127, 128, 128, 128, 75, 75, 63, 63, 63, 118, + 118, 118, 130, 130, 119, 119, 121, 121, 121, 124, + 124, 135, 135, 135, 86, 137, 137, 137, 120, 120, + 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, + 120, 120, 120, 120, 49, 49, 133, 133, 133, 129, + 129, 129, 138, 138, 138, 138, 138, 138, 56, 56, + 56, 97, 97, 97, 97, 141, 140, 132, 132, 132, + 132, 132, 132, 131, 131, 131, 139, 139, 139, 139, + 85, 142, 142, 143, 143, 143, 143, 143, 143, 143, + 136, 145, 145, 144, 144, 146, 146, 146, 146, 146, + 146, 134, 134, 134, 134, 148, 149, 147, 147, 147, + 147, 147, 147, 147, 150, 150, 150, 150 ); protected $ruleToLength = array( @@ -790,51 +807,51 @@ class Php7 extends \PhpParser\ParserAbstract 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, - 0, 1, 0, 1, 1, 1, 1, 1, 3, 5, - 4, 3, 4, 2, 3, 1, 1, 7, 8, 6, - 7, 2, 3, 1, 2, 3, 1, 2, 3, 1, - 1, 3, 1, 2, 1, 2, 2, 3, 1, 3, - 2, 3, 1, 3, 2, 0, 1, 1, 1, 1, - 1, 3, 7, 10, 5, 7, 9, 5, 3, 3, - 3, 3, 3, 3, 1, 2, 5, 7, 9, 6, - 5, 6, 3, 3, 2, 1, 1, 1, 0, 2, - 1, 3, 8, 0, 4, 2, 1, 3, 0, 1, - 0, 1, 3, 1, 8, 7, 6, 5, 1, 2, - 2, 0, 2, 0, 2, 0, 2, 2, 1, 3, - 1, 4, 1, 4, 1, 1, 4, 2, 1, 3, - 3, 3, 4, 4, 5, 0, 2, 4, 3, 1, - 1, 1, 4, 0, 2, 5, 0, 2, 6, 0, - 2, 0, 3, 1, 2, 1, 1, 2, 0, 1, - 3, 4, 6, 4, 1, 2, 1, 1, 1, 0, - 1, 0, 2, 2, 4, 1, 3, 1, 2, 2, - 2, 3, 1, 1, 2, 3, 1, 1, 3, 2, - 0, 1, 3, 4, 9, 3, 1, 1, 3, 0, - 2, 4, 5, 4, 4, 4, 3, 1, 1, 1, - 1, 1, 1, 0, 1, 1, 2, 1, 1, 1, - 1, 1, 1, 2, 1, 3, 1, 1, 3, 2, - 3, 1, 0, 1, 1, 3, 3, 3, 4, 1, - 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 2, 2, 2, 2, 3, 3, 3, + 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, + 1, 0, 1, 0, 1, 1, 1, 1, 1, 3, + 5, 4, 3, 4, 2, 3, 1, 1, 7, 8, + 6, 7, 2, 3, 1, 2, 3, 1, 2, 3, + 1, 1, 3, 1, 2, 1, 2, 2, 3, 1, + 3, 2, 3, 1, 3, 2, 0, 1, 1, 1, + 1, 1, 3, 7, 10, 5, 7, 9, 5, 3, + 3, 3, 3, 3, 3, 1, 2, 5, 7, 9, + 6, 5, 6, 3, 3, 2, 1, 1, 1, 0, + 2, 1, 3, 8, 0, 4, 2, 1, 3, 0, + 1, 0, 1, 3, 1, 8, 7, 6, 5, 1, + 2, 2, 0, 2, 0, 2, 0, 2, 2, 1, + 3, 1, 4, 1, 4, 1, 1, 4, 2, 1, + 3, 3, 3, 4, 4, 5, 0, 2, 4, 3, + 1, 1, 1, 4, 0, 2, 5, 0, 2, 6, + 0, 2, 0, 3, 1, 2, 1, 1, 2, 0, + 1, 3, 4, 6, 4, 1, 2, 1, 1, 1, + 0, 1, 0, 2, 2, 2, 4, 1, 3, 1, + 2, 2, 2, 3, 1, 1, 2, 3, 1, 1, + 3, 2, 0, 1, 4, 4, 9, 3, 1, 1, + 3, 0, 2, 4, 5, 4, 4, 4, 3, 1, + 1, 1, 1, 1, 1, 0, 1, 1, 2, 1, + 1, 1, 1, 1, 1, 2, 1, 3, 1, 1, + 3, 2, 3, 1, 0, 1, 1, 3, 3, 3, + 4, 1, 2, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 2, 2, 2, 2, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 5, - 4, 3, 4, 4, 2, 2, 4, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 1, 3, - 2, 1, 2, 4, 2, 8, 9, 7, 3, 2, - 0, 4, 2, 1, 3, 2, 2, 2, 4, 1, - 1, 1, 2, 3, 1, 1, 1, 1, 1, 0, - 3, 0, 1, 1, 0, 1, 1, 3, 3, 3, - 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 3, 2, 3, 3, 0, - 1, 1, 3, 1, 1, 3, 1, 1, 4, 4, - 4, 1, 4, 1, 1, 3, 1, 4, 2, 2, - 1, 3, 1, 4, 4, 3, 3, 3, 1, 3, - 1, 1, 3, 1, 1, 4, 3, 1, 1, 2, - 1, 3, 4, 3, 0, 1, 1, 1, 3, 1, - 3, 1, 4, 2, 0, 2, 2, 1, 2, 1, - 1, 1, 4, 3, 3, 3, 6, 3, 1, 1, - 2, 1 + 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, + 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 5, 4, 3, 4, 4, 2, 2, 4, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 1, 3, 2, 1, 2, 4, 2, 8, 9, + 8, 9, 7, 3, 2, 0, 4, 2, 1, 3, + 2, 2, 2, 4, 1, 1, 1, 2, 3, 1, + 1, 1, 1, 1, 0, 3, 0, 1, 1, 0, + 1, 1, 3, 3, 3, 4, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 3, 2, 3, 3, 0, 1, 1, 3, 1, 1, + 3, 1, 1, 4, 4, 4, 1, 4, 1, 1, + 3, 1, 4, 2, 2, 1, 3, 1, 4, 4, + 3, 3, 3, 1, 3, 1, 1, 3, 1, 1, + 4, 3, 1, 1, 2, 1, 3, 4, 3, 0, + 1, 1, 1, 3, 1, 3, 1, 4, 2, 2, + 0, 2, 2, 1, 2, 1, 1, 1, 4, 3, + 3, 3, 6, 3, 1, 1, 2, 1 ); protected function initReduceCallbacks() { @@ -852,7 +869,7 @@ protected function initReduceCallbacks() { $this->semValue = array(); }, 4 => function ($stackPos) { - $startAttributes = $this->lookaheadStartAttributes; if (isset($startAttributes['comments'])) { $nop = new Stmt\Nop($startAttributes + $this->endAttributes); } else { $nop = null; }; + $startAttributes = $this->lookaheadStartAttributes; if (isset($startAttributes['comments'])) { $nop = new Stmt\Nop($this->createZeroLengthAttributes($startAttributes)); } else { $nop = null; }; if ($nop !== null) { $this->semStack[$stackPos-(1-1)][] = $nop; } $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 5 => function ($stackPos) { @@ -1081,7 +1098,7 @@ protected function initReduceCallbacks() { $this->semValue = $this->semStack[$stackPos]; }, 80 => function ($stackPos) { - $this->semValue = new Node\Identifier($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos]; }, 81 => function ($stackPos) { $this->semValue = new Node\Identifier($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); @@ -1093,19 +1110,19 @@ protected function initReduceCallbacks() { $this->semValue = new Node\Identifier($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 84 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)]); + $this->semValue = new Node\Identifier($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 85 => function ($stackPos) { - $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; + $this->semValue = array($this->semStack[$stackPos-(1-1)]); }, 86 => function ($stackPos) { - $this->semValue = new Name($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; }, 87 => function ($stackPos) { - $this->semValue = new Expr\Variable(substr($this->semStack[$stackPos-(1-1)], 1), $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = new Name($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 88 => function ($stackPos) { - /* nothing */ + $this->semValue = new Expr\Variable(substr($this->semStack[$stackPos-(1-1)], 1), $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 89 => function ($stackPos) { /* nothing */ @@ -1114,16 +1131,16 @@ protected function initReduceCallbacks() { /* nothing */ }, 91 => function ($stackPos) { - $this->emitError(new Error('A trailing comma is not allowed here', $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes)); + /* nothing */ }, 92 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos]; + $this->emitError(new Error('A trailing comma is not allowed here', $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes)); }, 93 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos]; }, 94 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = $this->semStack[$stackPos]; }, 95 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; @@ -1132,134 +1149,134 @@ protected function initReduceCallbacks() { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 97 => function ($stackPos) { - $this->semValue = new Stmt\HaltCompiler($this->lexer->handleHaltCompiler(), $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 98 => function ($stackPos) { + $this->semValue = new Stmt\HaltCompiler($this->lexer->handleHaltCompiler(), $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 99 => function ($stackPos) { $this->semValue = new Stmt\Namespace_($this->semStack[$stackPos-(3-2)], null, $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); $this->semValue->setAttribute('kind', Stmt\Namespace_::KIND_SEMICOLON); $this->checkNamespace($this->semValue); }, - 99 => function ($stackPos) { + 100 => function ($stackPos) { $this->semValue = new Stmt\Namespace_($this->semStack[$stackPos-(5-2)], $this->semStack[$stackPos-(5-4)], $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes); $this->semValue->setAttribute('kind', Stmt\Namespace_::KIND_BRACED); $this->checkNamespace($this->semValue); }, - 100 => function ($stackPos) { + 101 => function ($stackPos) { $this->semValue = new Stmt\Namespace_(null, $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); $this->semValue->setAttribute('kind', Stmt\Namespace_::KIND_BRACED); $this->checkNamespace($this->semValue); }, - 101 => function ($stackPos) { - $this->semValue = new Stmt\Use_($this->semStack[$stackPos-(3-2)], Stmt\Use_::TYPE_NORMAL, $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); - }, 102 => function ($stackPos) { - $this->semValue = new Stmt\Use_($this->semStack[$stackPos-(4-3)], $this->semStack[$stackPos-(4-2)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semValue = new Stmt\Use_($this->semStack[$stackPos-(3-2)], Stmt\Use_::TYPE_NORMAL, $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 103 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(2-1)]; + $this->semValue = new Stmt\Use_($this->semStack[$stackPos-(4-3)], $this->semStack[$stackPos-(4-2)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 104 => function ($stackPos) { - $this->semValue = new Stmt\Const_($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos-(2-1)]; }, 105 => function ($stackPos) { - $this->semValue = Stmt\Use_::TYPE_FUNCTION; + $this->semValue = new Stmt\Const_($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 106 => function ($stackPos) { - $this->semValue = Stmt\Use_::TYPE_CONSTANT; + $this->semValue = Stmt\Use_::TYPE_FUNCTION; }, 107 => function ($stackPos) { - $this->semValue = new Stmt\GroupUse(new Name($this->semStack[$stackPos-(7-3)], $this->startAttributeStack[$stackPos-(7-3)] + $this->endAttributeStack[$stackPos-(7-3)]), $this->semStack[$stackPos-(7-6)], $this->semStack[$stackPos-(7-2)], $this->startAttributeStack[$stackPos-(7-1)] + $this->endAttributes); + $this->semValue = Stmt\Use_::TYPE_CONSTANT; }, 108 => function ($stackPos) { - $this->semValue = new Stmt\GroupUse(new Name($this->semStack[$stackPos-(8-4)], $this->startAttributeStack[$stackPos-(8-4)] + $this->endAttributeStack[$stackPos-(8-4)]), $this->semStack[$stackPos-(8-7)], $this->semStack[$stackPos-(8-2)], $this->startAttributeStack[$stackPos-(8-1)] + $this->endAttributes); + $this->semValue = new Stmt\GroupUse(new Name($this->semStack[$stackPos-(7-3)], $this->startAttributeStack[$stackPos-(7-3)] + $this->endAttributeStack[$stackPos-(7-3)]), $this->semStack[$stackPos-(7-6)], $this->semStack[$stackPos-(7-2)], $this->startAttributeStack[$stackPos-(7-1)] + $this->endAttributes); }, 109 => function ($stackPos) { - $this->semValue = new Stmt\GroupUse(new Name($this->semStack[$stackPos-(6-2)], $this->startAttributeStack[$stackPos-(6-2)] + $this->endAttributeStack[$stackPos-(6-2)]), $this->semStack[$stackPos-(6-5)], Stmt\Use_::TYPE_UNKNOWN, $this->startAttributeStack[$stackPos-(6-1)] + $this->endAttributes); + $this->semValue = new Stmt\GroupUse(new Name($this->semStack[$stackPos-(8-4)], $this->startAttributeStack[$stackPos-(8-4)] + $this->endAttributeStack[$stackPos-(8-4)]), $this->semStack[$stackPos-(8-7)], $this->semStack[$stackPos-(8-2)], $this->startAttributeStack[$stackPos-(8-1)] + $this->endAttributes); }, 110 => function ($stackPos) { - $this->semValue = new Stmt\GroupUse(new Name($this->semStack[$stackPos-(7-3)], $this->startAttributeStack[$stackPos-(7-3)] + $this->endAttributeStack[$stackPos-(7-3)]), $this->semStack[$stackPos-(7-6)], Stmt\Use_::TYPE_UNKNOWN, $this->startAttributeStack[$stackPos-(7-1)] + $this->endAttributes); + $this->semValue = new Stmt\GroupUse(new Name($this->semStack[$stackPos-(6-2)], $this->startAttributeStack[$stackPos-(6-2)] + $this->endAttributeStack[$stackPos-(6-2)]), $this->semStack[$stackPos-(6-5)], Stmt\Use_::TYPE_UNKNOWN, $this->startAttributeStack[$stackPos-(6-1)] + $this->endAttributes); }, 111 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(2-1)]; + $this->semValue = new Stmt\GroupUse(new Name($this->semStack[$stackPos-(7-3)], $this->startAttributeStack[$stackPos-(7-3)] + $this->endAttributeStack[$stackPos-(7-3)]), $this->semStack[$stackPos-(7-6)], Stmt\Use_::TYPE_UNKNOWN, $this->startAttributeStack[$stackPos-(7-1)] + $this->endAttributes); }, 112 => function ($stackPos) { - $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; + $this->semValue = $this->semStack[$stackPos-(2-1)]; }, 113 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)]); + $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; }, 114 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(2-1)]; + $this->semValue = array($this->semStack[$stackPos-(1-1)]); }, 115 => function ($stackPos) { - $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; + $this->semValue = $this->semStack[$stackPos-(2-1)]; }, 116 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)]); + $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; }, 117 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(2-1)]; + $this->semValue = array($this->semStack[$stackPos-(1-1)]); }, 118 => function ($stackPos) { - $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; + $this->semValue = $this->semStack[$stackPos-(2-1)]; }, 119 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)]); + $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; }, 120 => function ($stackPos) { - $this->semValue = new Stmt\UseUse($this->semStack[$stackPos-(1-1)], null, Stmt\Use_::TYPE_UNKNOWN, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); $this->checkUseUse($this->semValue, $stackPos-(1-1)); + $this->semValue = array($this->semStack[$stackPos-(1-1)]); }, 121 => function ($stackPos) { - $this->semValue = new Stmt\UseUse($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], Stmt\Use_::TYPE_UNKNOWN, $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); $this->checkUseUse($this->semValue, $stackPos-(3-3)); + $this->semValue = new Stmt\UseUse($this->semStack[$stackPos-(1-1)], null, Stmt\Use_::TYPE_UNKNOWN, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); $this->checkUseUse($this->semValue, $stackPos-(1-1)); }, 122 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = new Stmt\UseUse($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], Stmt\Use_::TYPE_UNKNOWN, $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); $this->checkUseUse($this->semValue, $stackPos-(3-3)); }, 123 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(2-2)]; + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 124 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; $this->semValue->type = Stmt\Use_::TYPE_NORMAL; + $this->semValue = $this->semStack[$stackPos-(2-2)]; }, 125 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(2-2)]; $this->semValue->type = $this->semStack[$stackPos-(2-1)]; + $this->semValue = $this->semStack[$stackPos-(1-1)]; $this->semValue->type = Stmt\Use_::TYPE_NORMAL; }, 126 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(2-1)]; + $this->semValue = $this->semStack[$stackPos-(2-2)]; $this->semValue->type = $this->semStack[$stackPos-(2-1)]; }, 127 => function ($stackPos) { - $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; + $this->semValue = $this->semStack[$stackPos-(2-1)]; }, 128 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)]); + $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; }, 129 => function ($stackPos) { - $this->semValue = new Node\Const_($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = array($this->semStack[$stackPos-(1-1)]); }, 130 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(2-1)]; + $this->semValue = new Node\Const_($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 131 => function ($stackPos) { - $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; + $this->semValue = $this->semStack[$stackPos-(2-1)]; }, 132 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)]); + $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; }, 133 => function ($stackPos) { - $this->semValue = new Node\Const_($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = array($this->semStack[$stackPos-(1-1)]); }, 134 => function ($stackPos) { - if (is_array($this->semStack[$stackPos-(2-2)])) { $this->semValue = array_merge($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)]); } else { $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; }; + $this->semValue = new Node\Const_($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 135 => function ($stackPos) { - $this->semValue = array(); + if (is_array($this->semStack[$stackPos-(2-2)])) { $this->semValue = array_merge($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)]); } else { $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; }; }, 136 => function ($stackPos) { - $startAttributes = $this->lookaheadStartAttributes; if (isset($startAttributes['comments'])) { $nop = new Stmt\Nop($startAttributes + $this->endAttributes); } else { $nop = null; }; - if ($nop !== null) { $this->semStack[$stackPos-(1-1)][] = $nop; } $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = array(); }, 137 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $startAttributes = $this->lookaheadStartAttributes; if (isset($startAttributes['comments'])) { $nop = new Stmt\Nop($this->createZeroLengthAttributes($startAttributes)); } else { $nop = null; }; + if ($nop !== null) { $this->semStack[$stackPos-(1-1)][] = $nop; } $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 138 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; @@ -1268,9 +1285,12 @@ protected function initReduceCallbacks() { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 140 => function ($stackPos) { - throw new Error('__HALT_COMPILER() can only be used from the outermost scope', $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 141 => function ($stackPos) { + throw new Error('__HALT_COMPILER() can only be used from the outermost scope', $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 142 => function ($stackPos) { if ($this->semStack[$stackPos-(3-2)]) { $this->semValue = $this->semStack[$stackPos-(3-2)]; $attrs = $this->startAttributeStack[$stackPos-(3-1)]; $stmts = $this->semValue; if (!empty($attrs['comments'])) {$stmts[0]->setAttribute('comments', array_merge($attrs['comments'], $stmts[0]->getAttribute('comments', []))); }; @@ -1280,1159 +1300,1174 @@ protected function initReduceCallbacks() { } }, - 142 => function ($stackPos) { + 143 => function ($stackPos) { $this->semValue = new Stmt\If_($this->semStack[$stackPos-(7-3)], ['stmts' => is_array($this->semStack[$stackPos-(7-5)]) ? $this->semStack[$stackPos-(7-5)] : array($this->semStack[$stackPos-(7-5)]), 'elseifs' => $this->semStack[$stackPos-(7-6)], 'else' => $this->semStack[$stackPos-(7-7)]], $this->startAttributeStack[$stackPos-(7-1)] + $this->endAttributes); }, - 143 => function ($stackPos) { + 144 => function ($stackPos) { $this->semValue = new Stmt\If_($this->semStack[$stackPos-(10-3)], ['stmts' => $this->semStack[$stackPos-(10-6)], 'elseifs' => $this->semStack[$stackPos-(10-7)], 'else' => $this->semStack[$stackPos-(10-8)]], $this->startAttributeStack[$stackPos-(10-1)] + $this->endAttributes); }, - 144 => function ($stackPos) { + 145 => function ($stackPos) { $this->semValue = new Stmt\While_($this->semStack[$stackPos-(5-3)], $this->semStack[$stackPos-(5-5)], $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes); }, - 145 => function ($stackPos) { + 146 => function ($stackPos) { $this->semValue = new Stmt\Do_($this->semStack[$stackPos-(7-5)], is_array($this->semStack[$stackPos-(7-2)]) ? $this->semStack[$stackPos-(7-2)] : array($this->semStack[$stackPos-(7-2)]), $this->startAttributeStack[$stackPos-(7-1)] + $this->endAttributes); }, - 146 => function ($stackPos) { + 147 => function ($stackPos) { $this->semValue = new Stmt\For_(['init' => $this->semStack[$stackPos-(9-3)], 'cond' => $this->semStack[$stackPos-(9-5)], 'loop' => $this->semStack[$stackPos-(9-7)], 'stmts' => $this->semStack[$stackPos-(9-9)]], $this->startAttributeStack[$stackPos-(9-1)] + $this->endAttributes); }, - 147 => function ($stackPos) { + 148 => function ($stackPos) { $this->semValue = new Stmt\Switch_($this->semStack[$stackPos-(5-3)], $this->semStack[$stackPos-(5-5)], $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes); }, - 148 => function ($stackPos) { + 149 => function ($stackPos) { $this->semValue = new Stmt\Break_($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, - 149 => function ($stackPos) { + 150 => function ($stackPos) { $this->semValue = new Stmt\Continue_($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, - 150 => function ($stackPos) { + 151 => function ($stackPos) { $this->semValue = new Stmt\Return_($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, - 151 => function ($stackPos) { + 152 => function ($stackPos) { $this->semValue = new Stmt\Global_($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, - 152 => function ($stackPos) { + 153 => function ($stackPos) { $this->semValue = new Stmt\Static_($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, - 153 => function ($stackPos) { + 154 => function ($stackPos) { $this->semValue = new Stmt\Echo_($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, - 154 => function ($stackPos) { + 155 => function ($stackPos) { $this->semValue = new Stmt\InlineHTML($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, - 155 => function ($stackPos) { + 156 => function ($stackPos) { $this->semValue = new Stmt\Expression($this->semStack[$stackPos-(2-1)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, - 156 => function ($stackPos) { + 157 => function ($stackPos) { $this->semValue = new Stmt\Unset_($this->semStack[$stackPos-(5-3)], $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes); }, - 157 => function ($stackPos) { + 158 => function ($stackPos) { $this->semValue = new Stmt\Foreach_($this->semStack[$stackPos-(7-3)], $this->semStack[$stackPos-(7-5)][0], ['keyVar' => null, 'byRef' => $this->semStack[$stackPos-(7-5)][1], 'stmts' => $this->semStack[$stackPos-(7-7)]], $this->startAttributeStack[$stackPos-(7-1)] + $this->endAttributes); }, - 158 => function ($stackPos) { + 159 => function ($stackPos) { $this->semValue = new Stmt\Foreach_($this->semStack[$stackPos-(9-3)], $this->semStack[$stackPos-(9-7)][0], ['keyVar' => $this->semStack[$stackPos-(9-5)], 'byRef' => $this->semStack[$stackPos-(9-7)][1], 'stmts' => $this->semStack[$stackPos-(9-9)]], $this->startAttributeStack[$stackPos-(9-1)] + $this->endAttributes); }, - 159 => function ($stackPos) { + 160 => function ($stackPos) { $this->semValue = new Stmt\Foreach_($this->semStack[$stackPos-(6-3)], new Expr\Error($this->startAttributeStack[$stackPos-(6-4)] + $this->endAttributeStack[$stackPos-(6-4)]), ['stmts' => $this->semStack[$stackPos-(6-6)]], $this->startAttributeStack[$stackPos-(6-1)] + $this->endAttributes); }, - 160 => function ($stackPos) { + 161 => function ($stackPos) { $this->semValue = new Stmt\Declare_($this->semStack[$stackPos-(5-3)], $this->semStack[$stackPos-(5-5)], $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes); }, - 161 => function ($stackPos) { + 162 => function ($stackPos) { $this->semValue = new Stmt\TryCatch($this->semStack[$stackPos-(6-3)], $this->semStack[$stackPos-(6-5)], $this->semStack[$stackPos-(6-6)], $this->startAttributeStack[$stackPos-(6-1)] + $this->endAttributes); $this->checkTryCatch($this->semValue); }, - 162 => function ($stackPos) { + 163 => function ($stackPos) { $this->semValue = new Stmt\Throw_($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, - 163 => function ($stackPos) { + 164 => function ($stackPos) { $this->semValue = new Stmt\Goto_($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, - 164 => function ($stackPos) { + 165 => function ($stackPos) { $this->semValue = new Stmt\Label($this->semStack[$stackPos-(2-1)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, - 165 => function ($stackPos) { + 166 => function ($stackPos) { $this->semValue = array(); /* means: no statement */ }, - 166 => function ($stackPos) { + 167 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, - 167 => function ($stackPos) { + 168 => function ($stackPos) { $startAttributes = $this->startAttributeStack[$stackPos-(1-1)]; if (isset($startAttributes['comments'])) { $this->semValue = new Stmt\Nop($startAttributes + $this->endAttributes); } else { $this->semValue = null; }; if ($this->semValue === null) $this->semValue = array(); /* means: no statement */ }, - 168 => function ($stackPos) { + 169 => function ($stackPos) { $this->semValue = array(); }, - 169 => function ($stackPos) { + 170 => function ($stackPos) { $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; }, - 170 => function ($stackPos) { + 171 => function ($stackPos) { $this->semValue = array($this->semStack[$stackPos-(1-1)]); }, - 171 => function ($stackPos) { + 172 => function ($stackPos) { $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; }, - 172 => function ($stackPos) { + 173 => function ($stackPos) { $this->semValue = new Stmt\Catch_($this->semStack[$stackPos-(8-3)], $this->semStack[$stackPos-(8-4)], $this->semStack[$stackPos-(8-7)], $this->startAttributeStack[$stackPos-(8-1)] + $this->endAttributes); }, - 173 => function ($stackPos) { + 174 => function ($stackPos) { $this->semValue = null; }, - 174 => function ($stackPos) { + 175 => function ($stackPos) { $this->semValue = new Stmt\Finally_($this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, - 175 => function ($stackPos) { + 176 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(2-1)]; }, - 176 => function ($stackPos) { + 177 => function ($stackPos) { $this->semValue = array($this->semStack[$stackPos-(1-1)]); }, - 177 => function ($stackPos) { + 178 => function ($stackPos) { $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; }, - 178 => function ($stackPos) { + 179 => function ($stackPos) { $this->semValue = false; }, - 179 => function ($stackPos) { + 180 => function ($stackPos) { $this->semValue = true; }, - 180 => function ($stackPos) { + 181 => function ($stackPos) { $this->semValue = false; }, - 181 => function ($stackPos) { + 182 => function ($stackPos) { $this->semValue = true; }, - 182 => function ($stackPos) { + 183 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(3-2)]; }, - 183 => function ($stackPos) { + 184 => function ($stackPos) { $this->semValue = []; }, - 184 => function ($stackPos) { + 185 => function ($stackPos) { $this->semValue = new Stmt\Function_($this->semStack[$stackPos-(8-3)], ['byRef' => $this->semStack[$stackPos-(8-2)], 'params' => $this->semStack[$stackPos-(8-5)], 'returnType' => $this->semStack[$stackPos-(8-7)], 'stmts' => $this->semStack[$stackPos-(8-8)]], $this->startAttributeStack[$stackPos-(8-1)] + $this->endAttributes); }, - 185 => function ($stackPos) { + 186 => function ($stackPos) { $this->semValue = new Stmt\Class_($this->semStack[$stackPos-(7-2)], ['type' => $this->semStack[$stackPos-(7-1)], 'extends' => $this->semStack[$stackPos-(7-3)], 'implements' => $this->semStack[$stackPos-(7-4)], 'stmts' => $this->semStack[$stackPos-(7-6)]], $this->startAttributeStack[$stackPos-(7-1)] + $this->endAttributes); $this->checkClass($this->semValue, $stackPos-(7-2)); }, - 186 => function ($stackPos) { + 187 => function ($stackPos) { $this->semValue = new Stmt\Interface_($this->semStack[$stackPos-(6-2)], ['extends' => $this->semStack[$stackPos-(6-3)], 'stmts' => $this->semStack[$stackPos-(6-5)]], $this->startAttributeStack[$stackPos-(6-1)] + $this->endAttributes); $this->checkInterface($this->semValue, $stackPos-(6-2)); }, - 187 => function ($stackPos) { + 188 => function ($stackPos) { $this->semValue = new Stmt\Trait_($this->semStack[$stackPos-(5-2)], ['stmts' => $this->semStack[$stackPos-(5-4)]], $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes); }, - 188 => function ($stackPos) { + 189 => function ($stackPos) { $this->semValue = 0; }, - 189 => function ($stackPos) { + 190 => function ($stackPos) { $this->semValue = Stmt\Class_::MODIFIER_ABSTRACT; }, - 190 => function ($stackPos) { + 191 => function ($stackPos) { $this->semValue = Stmt\Class_::MODIFIER_FINAL; }, - 191 => function ($stackPos) { + 192 => function ($stackPos) { $this->semValue = null; }, - 192 => function ($stackPos) { + 193 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(2-2)]; }, - 193 => function ($stackPos) { + 194 => function ($stackPos) { $this->semValue = array(); }, - 194 => function ($stackPos) { + 195 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(2-2)]; }, - 195 => function ($stackPos) { + 196 => function ($stackPos) { $this->semValue = array(); }, - 196 => function ($stackPos) { + 197 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(2-2)]; }, - 197 => function ($stackPos) { + 198 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(2-1)]; }, - 198 => function ($stackPos) { + 199 => function ($stackPos) { $this->semValue = array($this->semStack[$stackPos-(1-1)]); }, - 199 => function ($stackPos) { + 200 => function ($stackPos) { $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; }, - 200 => function ($stackPos) { + 201 => function ($stackPos) { $this->semValue = is_array($this->semStack[$stackPos-(1-1)]) ? $this->semStack[$stackPos-(1-1)] : array($this->semStack[$stackPos-(1-1)]); }, - 201 => function ($stackPos) { + 202 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(4-2)]; }, - 202 => function ($stackPos) { + 203 => function ($stackPos) { $this->semValue = is_array($this->semStack[$stackPos-(1-1)]) ? $this->semStack[$stackPos-(1-1)] : array($this->semStack[$stackPos-(1-1)]); }, - 203 => function ($stackPos) { + 204 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(4-2)]; }, - 204 => function ($stackPos) { + 205 => function ($stackPos) { $this->semValue = is_array($this->semStack[$stackPos-(1-1)]) ? $this->semStack[$stackPos-(1-1)] : array($this->semStack[$stackPos-(1-1)]); }, - 205 => function ($stackPos) { + 206 => function ($stackPos) { $this->semValue = null; }, - 206 => function ($stackPos) { + 207 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(4-2)]; }, - 207 => function ($stackPos) { + 208 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(2-1)]; }, - 208 => function ($stackPos) { + 209 => function ($stackPos) { $this->semValue = array($this->semStack[$stackPos-(1-1)]); }, - 209 => function ($stackPos) { + 210 => function ($stackPos) { $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; }, - 210 => function ($stackPos) { + 211 => function ($stackPos) { $this->semValue = new Stmt\DeclareDeclare($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, - 211 => function ($stackPos) { + 212 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(3-2)]; }, - 212 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(4-3)]; - }, 213 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(4-2)]; + $this->semValue = $this->semStack[$stackPos-(4-3)]; }, 214 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(5-3)]; + $this->semValue = $this->semStack[$stackPos-(4-2)]; }, 215 => function ($stackPos) { - $this->semValue = array(); + $this->semValue = $this->semStack[$stackPos-(5-3)]; }, 216 => function ($stackPos) { - $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; + $this->semValue = array(); }, 217 => function ($stackPos) { - $this->semValue = new Stmt\Case_($this->semStack[$stackPos-(4-2)], $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; }, 218 => function ($stackPos) { - $this->semValue = new Stmt\Case_(null, $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Stmt\Case_($this->semStack[$stackPos-(4-2)], $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 219 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos]; + $this->semValue = new Stmt\Case_(null, $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 220 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos]; }, 221 => function ($stackPos) { - $this->semValue = is_array($this->semStack[$stackPos-(1-1)]) ? $this->semStack[$stackPos-(1-1)] : array($this->semStack[$stackPos-(1-1)]); + $this->semValue = $this->semStack[$stackPos]; }, 222 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(4-2)]; + $this->semValue = is_array($this->semStack[$stackPos-(1-1)]) ? $this->semStack[$stackPos-(1-1)] : array($this->semStack[$stackPos-(1-1)]); }, 223 => function ($stackPos) { - $this->semValue = array(); + $this->semValue = $this->semStack[$stackPos-(4-2)]; }, 224 => function ($stackPos) { - $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; + $this->semValue = array(); }, 225 => function ($stackPos) { - $this->semValue = new Stmt\ElseIf_($this->semStack[$stackPos-(5-3)], is_array($this->semStack[$stackPos-(5-5)]) ? $this->semStack[$stackPos-(5-5)] : array($this->semStack[$stackPos-(5-5)]), $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes); + $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; }, 226 => function ($stackPos) { - $this->semValue = array(); + $this->semValue = new Stmt\ElseIf_($this->semStack[$stackPos-(5-3)], is_array($this->semStack[$stackPos-(5-5)]) ? $this->semStack[$stackPos-(5-5)] : array($this->semStack[$stackPos-(5-5)]), $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes); }, 227 => function ($stackPos) { - $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; + $this->semValue = array(); }, 228 => function ($stackPos) { - $this->semValue = new Stmt\ElseIf_($this->semStack[$stackPos-(6-3)], $this->semStack[$stackPos-(6-6)], $this->startAttributeStack[$stackPos-(6-1)] + $this->endAttributes); + $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; }, 229 => function ($stackPos) { - $this->semValue = null; + $this->semValue = new Stmt\ElseIf_($this->semStack[$stackPos-(6-3)], $this->semStack[$stackPos-(6-6)], $this->startAttributeStack[$stackPos-(6-1)] + $this->endAttributes); }, 230 => function ($stackPos) { - $this->semValue = new Stmt\Else_(is_array($this->semStack[$stackPos-(2-2)]) ? $this->semStack[$stackPos-(2-2)] : array($this->semStack[$stackPos-(2-2)]), $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = null; }, 231 => function ($stackPos) { - $this->semValue = null; + $this->semValue = new Stmt\Else_(is_array($this->semStack[$stackPos-(2-2)]) ? $this->semStack[$stackPos-(2-2)] : array($this->semStack[$stackPos-(2-2)]), $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 232 => function ($stackPos) { - $this->semValue = new Stmt\Else_($this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = null; }, 233 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)], false); + $this->semValue = new Stmt\Else_($this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 234 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(2-2)], true); + $this->semValue = array($this->semStack[$stackPos-(1-1)], false); }, 235 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)], false); + $this->semValue = array($this->semStack[$stackPos-(2-2)], true); }, 236 => function ($stackPos) { $this->semValue = array($this->semStack[$stackPos-(1-1)], false); }, 237 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(2-1)]; + $this->semValue = array($this->semStack[$stackPos-(1-1)], false); }, 238 => function ($stackPos) { - $this->semValue = array(); + $this->semValue = $this->semStack[$stackPos-(2-1)]; }, 239 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)]); + $this->semValue = array(); }, 240 => function ($stackPos) { - $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; + $this->semValue = array($this->semStack[$stackPos-(1-1)]); }, 241 => function ($stackPos) { - $this->semValue = new Node\Param($this->semStack[$stackPos-(4-4)], null, $this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-2)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); $this->checkParam($this->semValue); + $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; }, 242 => function ($stackPos) { - $this->semValue = new Node\Param($this->semStack[$stackPos-(6-4)], $this->semStack[$stackPos-(6-6)], $this->semStack[$stackPos-(6-1)], $this->semStack[$stackPos-(6-2)], $this->semStack[$stackPos-(6-3)], $this->startAttributeStack[$stackPos-(6-1)] + $this->endAttributes); $this->checkParam($this->semValue); + $this->semValue = new Node\Param($this->semStack[$stackPos-(4-4)], null, $this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-2)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); $this->checkParam($this->semValue); }, 243 => function ($stackPos) { - $this->semValue = new Node\Param(new Expr\Error($this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes), null, $this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-2)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semValue = new Node\Param($this->semStack[$stackPos-(6-4)], $this->semStack[$stackPos-(6-6)], $this->semStack[$stackPos-(6-1)], $this->semStack[$stackPos-(6-2)], $this->semStack[$stackPos-(6-3)], $this->startAttributeStack[$stackPos-(6-1)] + $this->endAttributes); $this->checkParam($this->semValue); }, 244 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = new Node\Param(new Expr\Error($this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes), null, $this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-2)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 245 => function ($stackPos) { - $this->semValue = new Node\NullableType($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 246 => function ($stackPos) { - $this->semValue = $this->handleBuiltinTypes($this->semStack[$stackPos-(1-1)]); + $this->semValue = new Node\NullableType($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 247 => function ($stackPos) { - $this->semValue = new Node\Identifier('array', $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = $this->handleBuiltinTypes($this->semStack[$stackPos-(1-1)]); }, 248 => function ($stackPos) { - $this->semValue = new Node\Identifier('callable', $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = new Node\Identifier('array', $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 249 => function ($stackPos) { - $this->semValue = null; + $this->semValue = new Node\Identifier('callable', $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 250 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = null; }, 251 => function ($stackPos) { - $this->semValue = null; + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 252 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(2-2)]; + $this->semValue = null; }, 253 => function ($stackPos) { - $this->semValue = array(); + $this->semValue = $this->semStack[$stackPos-(2-2)]; }, 254 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(4-2)]; + $this->semValue = null; }, 255 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)]); + $this->semValue = array(); }, 256 => function ($stackPos) { - $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; + $this->semValue = $this->semStack[$stackPos-(4-2)]; }, 257 => function ($stackPos) { - $this->semValue = new Node\Arg($this->semStack[$stackPos-(1-1)], false, false, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = array($this->semStack[$stackPos-(1-1)]); }, 258 => function ($stackPos) { - $this->semValue = new Node\Arg($this->semStack[$stackPos-(2-2)], true, false, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; }, 259 => function ($stackPos) { - $this->semValue = new Node\Arg($this->semStack[$stackPos-(2-2)], false, true, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Node\Arg($this->semStack[$stackPos-(1-1)], false, false, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 260 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(2-1)]; + $this->semValue = new Node\Arg($this->semStack[$stackPos-(2-2)], true, false, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 261 => function ($stackPos) { - $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; + $this->semValue = new Node\Arg($this->semStack[$stackPos-(2-2)], false, true, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 262 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)]); + $this->semValue = $this->semStack[$stackPos-(2-1)]; }, 263 => function ($stackPos) { - $this->semValue = new Expr\Variable($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; }, 264 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(2-1)]; + $this->semValue = array($this->semStack[$stackPos-(1-1)]); }, 265 => function ($stackPos) { - $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; + $this->semValue = new Expr\Variable($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 266 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)]); + $this->semValue = $this->semStack[$stackPos-(2-1)]; }, 267 => function ($stackPos) { - $this->semValue = new Stmt\StaticVar($this->semStack[$stackPos-(1-1)], null, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; }, 268 => function ($stackPos) { - $this->semValue = new Stmt\StaticVar($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = array($this->semStack[$stackPos-(1-1)]); }, 269 => function ($stackPos) { - if ($this->semStack[$stackPos-(2-2)] !== null) { $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; } + $this->semValue = new Stmt\StaticVar($this->semStack[$stackPos-(1-1)], null, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 270 => function ($stackPos) { - $this->semValue = array(); + $this->semValue = new Stmt\StaticVar($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 271 => function ($stackPos) { - $startAttributes = $this->lookaheadStartAttributes; if (isset($startAttributes['comments'])) { $nop = new Stmt\Nop($startAttributes + $this->endAttributes); } else { $nop = null; }; - if ($nop !== null) { $this->semStack[$stackPos-(1-1)][] = $nop; } $this->semValue = $this->semStack[$stackPos-(1-1)]; + if ($this->semStack[$stackPos-(2-2)] !== null) { $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; } }, 272 => function ($stackPos) { - $this->semValue = new Stmt\Property($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); $this->checkProperty($this->semValue, $stackPos-(3-1)); + $this->semValue = array(); }, 273 => function ($stackPos) { - $this->semValue = new Stmt\ClassConst($this->semStack[$stackPos-(4-3)], $this->semStack[$stackPos-(4-1)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); $this->checkClassConst($this->semValue, $stackPos-(4-1)); + $startAttributes = $this->lookaheadStartAttributes; if (isset($startAttributes['comments'])) { $nop = new Stmt\Nop($this->createZeroLengthAttributes($startAttributes)); } else { $nop = null; }; + if ($nop !== null) { $this->semStack[$stackPos-(1-1)][] = $nop; } $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 274 => function ($stackPos) { - $this->semValue = new Stmt\ClassMethod($this->semStack[$stackPos-(9-4)], ['type' => $this->semStack[$stackPos-(9-1)], 'byRef' => $this->semStack[$stackPos-(9-3)], 'params' => $this->semStack[$stackPos-(9-6)], 'returnType' => $this->semStack[$stackPos-(9-8)], 'stmts' => $this->semStack[$stackPos-(9-9)]], $this->startAttributeStack[$stackPos-(9-1)] + $this->endAttributes); - $this->checkClassMethod($this->semValue, $stackPos-(9-1)); + $attrs = $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes; + $this->semValue = new Stmt\Property($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $attrs, $this->semStack[$stackPos-(4-2)]); $this->checkProperty($this->semValue, $stackPos-(4-1)); }, 275 => function ($stackPos) { - $this->semValue = new Stmt\TraitUse($this->semStack[$stackPos-(3-2)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Stmt\ClassConst($this->semStack[$stackPos-(4-3)], $this->semStack[$stackPos-(4-1)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); $this->checkClassConst($this->semValue, $stackPos-(4-1)); }, 276 => function ($stackPos) { - $this->semValue = null; /* will be skipped */ + $this->semValue = new Stmt\ClassMethod($this->semStack[$stackPos-(9-4)], ['type' => $this->semStack[$stackPos-(9-1)], 'byRef' => $this->semStack[$stackPos-(9-3)], 'params' => $this->semStack[$stackPos-(9-6)], 'returnType' => $this->semStack[$stackPos-(9-8)], 'stmts' => $this->semStack[$stackPos-(9-9)]], $this->startAttributeStack[$stackPos-(9-1)] + $this->endAttributes); + $this->checkClassMethod($this->semValue, $stackPos-(9-1)); }, 277 => function ($stackPos) { - $this->semValue = array(); + $this->semValue = new Stmt\TraitUse($this->semStack[$stackPos-(3-2)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 278 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(3-2)]; + $this->semValue = null; /* will be skipped */ }, 279 => function ($stackPos) { $this->semValue = array(); }, 280 => function ($stackPos) { - $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; + $this->semValue = $this->semStack[$stackPos-(3-2)]; }, 281 => function ($stackPos) { - $this->semValue = new Stmt\TraitUseAdaptation\Precedence($this->semStack[$stackPos-(4-1)][0], $this->semStack[$stackPos-(4-1)][1], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semValue = array(); }, 282 => function ($stackPos) { - $this->semValue = new Stmt\TraitUseAdaptation\Alias($this->semStack[$stackPos-(5-1)][0], $this->semStack[$stackPos-(5-1)][1], $this->semStack[$stackPos-(5-3)], $this->semStack[$stackPos-(5-4)], $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes); + $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; }, 283 => function ($stackPos) { - $this->semValue = new Stmt\TraitUseAdaptation\Alias($this->semStack[$stackPos-(4-1)][0], $this->semStack[$stackPos-(4-1)][1], $this->semStack[$stackPos-(4-3)], null, $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semValue = new Stmt\TraitUseAdaptation\Precedence($this->semStack[$stackPos-(4-1)][0], $this->semStack[$stackPos-(4-1)][1], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 284 => function ($stackPos) { - $this->semValue = new Stmt\TraitUseAdaptation\Alias($this->semStack[$stackPos-(4-1)][0], $this->semStack[$stackPos-(4-1)][1], null, $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semValue = new Stmt\TraitUseAdaptation\Alias($this->semStack[$stackPos-(5-1)][0], $this->semStack[$stackPos-(5-1)][1], $this->semStack[$stackPos-(5-3)], $this->semStack[$stackPos-(5-4)], $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes); }, 285 => function ($stackPos) { - $this->semValue = new Stmt\TraitUseAdaptation\Alias($this->semStack[$stackPos-(4-1)][0], $this->semStack[$stackPos-(4-1)][1], null, $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semValue = new Stmt\TraitUseAdaptation\Alias($this->semStack[$stackPos-(4-1)][0], $this->semStack[$stackPos-(4-1)][1], $this->semStack[$stackPos-(4-3)], null, $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 286 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)]); + $this->semValue = new Stmt\TraitUseAdaptation\Alias($this->semStack[$stackPos-(4-1)][0], $this->semStack[$stackPos-(4-1)][1], null, $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 287 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = new Stmt\TraitUseAdaptation\Alias($this->semStack[$stackPos-(4-1)][0], $this->semStack[$stackPos-(4-1)][1], null, $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 288 => function ($stackPos) { - $this->semValue = array(null, $this->semStack[$stackPos-(1-1)]); + $this->semValue = array($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)]); }, 289 => function ($stackPos) { - $this->semValue = null; + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 290 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = array(null, $this->semStack[$stackPos-(1-1)]); }, 291 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = null; }, 292 => function ($stackPos) { - $this->semValue = 0; + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 293 => function ($stackPos) { - $this->semValue = 0; + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 294 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = 0; }, 295 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = 0; }, 296 => function ($stackPos) { - $this->checkModifier($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)], $stackPos-(2-2)); $this->semValue = $this->semStack[$stackPos-(2-1)] | $this->semStack[$stackPos-(2-2)]; + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 297 => function ($stackPos) { - $this->semValue = Stmt\Class_::MODIFIER_PUBLIC; + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 298 => function ($stackPos) { - $this->semValue = Stmt\Class_::MODIFIER_PROTECTED; + $this->checkModifier($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)], $stackPos-(2-2)); $this->semValue = $this->semStack[$stackPos-(2-1)] | $this->semStack[$stackPos-(2-2)]; }, 299 => function ($stackPos) { - $this->semValue = Stmt\Class_::MODIFIER_PRIVATE; + $this->semValue = Stmt\Class_::MODIFIER_PUBLIC; }, 300 => function ($stackPos) { - $this->semValue = Stmt\Class_::MODIFIER_STATIC; + $this->semValue = Stmt\Class_::MODIFIER_PROTECTED; }, 301 => function ($stackPos) { - $this->semValue = Stmt\Class_::MODIFIER_ABSTRACT; + $this->semValue = Stmt\Class_::MODIFIER_PRIVATE; }, 302 => function ($stackPos) { - $this->semValue = Stmt\Class_::MODIFIER_FINAL; + $this->semValue = Stmt\Class_::MODIFIER_STATIC; }, 303 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(2-1)]; + $this->semValue = Stmt\Class_::MODIFIER_ABSTRACT; }, 304 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)]); + $this->semValue = Stmt\Class_::MODIFIER_FINAL; }, 305 => function ($stackPos) { - $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; + $this->semValue = $this->semStack[$stackPos-(2-1)]; }, 306 => function ($stackPos) { - $this->semValue = new Node\VarLikeIdentifier(substr($this->semStack[$stackPos-(1-1)], 1), $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = array($this->semStack[$stackPos-(1-1)]); }, 307 => function ($stackPos) { - $this->semValue = new Stmt\PropertyProperty($this->semStack[$stackPos-(1-1)], null, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; }, 308 => function ($stackPos) { - $this->semValue = new Stmt\PropertyProperty($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Node\VarLikeIdentifier(substr($this->semStack[$stackPos-(1-1)], 1), $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 309 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(2-1)]; + $this->semValue = new Stmt\PropertyProperty($this->semStack[$stackPos-(1-1)], null, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 310 => function ($stackPos) { - $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; + $this->semValue = new Stmt\PropertyProperty($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 311 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)]); + $this->semValue = $this->semStack[$stackPos-(2-1)]; }, 312 => function ($stackPos) { - $this->semValue = array(); + $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; }, 313 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = array($this->semStack[$stackPos-(1-1)]); }, 314 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = array(); }, 315 => function ($stackPos) { - $this->semValue = new Expr\Assign($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 316 => function ($stackPos) { - $this->semValue = new Expr\Assign($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 317 => function ($stackPos) { $this->semValue = new Expr\Assign($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 318 => function ($stackPos) { - $this->semValue = new Expr\AssignRef($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semValue = new Expr\Assign($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 319 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = new Expr\Assign($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 320 => function ($stackPos) { - $this->semValue = new Expr\Clone_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\AssignRef($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 321 => function ($stackPos) { - $this->semValue = new Expr\AssignOp\Plus($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 322 => function ($stackPos) { - $this->semValue = new Expr\AssignOp\Minus($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\Clone_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 323 => function ($stackPos) { - $this->semValue = new Expr\AssignOp\Mul($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\AssignOp\Plus($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 324 => function ($stackPos) { - $this->semValue = new Expr\AssignOp\Div($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\AssignOp\Minus($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 325 => function ($stackPos) { - $this->semValue = new Expr\AssignOp\Concat($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\AssignOp\Mul($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 326 => function ($stackPos) { - $this->semValue = new Expr\AssignOp\Mod($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\AssignOp\Div($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 327 => function ($stackPos) { - $this->semValue = new Expr\AssignOp\BitwiseAnd($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\AssignOp\Concat($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 328 => function ($stackPos) { - $this->semValue = new Expr\AssignOp\BitwiseOr($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\AssignOp\Mod($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 329 => function ($stackPos) { - $this->semValue = new Expr\AssignOp\BitwiseXor($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\AssignOp\BitwiseAnd($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 330 => function ($stackPos) { - $this->semValue = new Expr\AssignOp\ShiftLeft($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\AssignOp\BitwiseOr($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 331 => function ($stackPos) { - $this->semValue = new Expr\AssignOp\ShiftRight($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\AssignOp\BitwiseXor($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 332 => function ($stackPos) { - $this->semValue = new Expr\AssignOp\Pow($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\AssignOp\ShiftLeft($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 333 => function ($stackPos) { - $this->semValue = new Expr\PostInc($this->semStack[$stackPos-(2-1)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\AssignOp\ShiftRight($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 334 => function ($stackPos) { - $this->semValue = new Expr\PreInc($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\AssignOp\Pow($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 335 => function ($stackPos) { - $this->semValue = new Expr\PostDec($this->semStack[$stackPos-(2-1)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\AssignOp\Coalesce($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 336 => function ($stackPos) { - $this->semValue = new Expr\PreDec($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\PostInc($this->semStack[$stackPos-(2-1)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 337 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\BooleanOr($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\PreInc($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 338 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\BooleanAnd($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\PostDec($this->semStack[$stackPos-(2-1)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 339 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\LogicalOr($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\PreDec($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 340 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\LogicalAnd($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\BooleanOr($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 341 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\LogicalXor($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\BooleanAnd($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 342 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\BitwiseOr($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\LogicalOr($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 343 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\BitwiseAnd($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\LogicalAnd($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 344 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\BitwiseXor($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\LogicalXor($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 345 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Concat($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\BitwiseOr($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 346 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Plus($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\BitwiseAnd($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 347 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Minus($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\BitwiseXor($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 348 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Mul($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\Concat($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 349 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Div($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\Plus($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 350 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Mod($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\Minus($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 351 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\ShiftLeft($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\Mul($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 352 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\ShiftRight($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\Div($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 353 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Pow($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\Mod($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 354 => function ($stackPos) { - $this->semValue = new Expr\UnaryPlus($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\ShiftLeft($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 355 => function ($stackPos) { - $this->semValue = new Expr\UnaryMinus($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\ShiftRight($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 356 => function ($stackPos) { - $this->semValue = new Expr\BooleanNot($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\Pow($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 357 => function ($stackPos) { - $this->semValue = new Expr\BitwiseNot($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\UnaryPlus($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 358 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Identical($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\UnaryMinus($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 359 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\NotIdentical($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BooleanNot($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 360 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Equal($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BitwiseNot($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 361 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\NotEqual($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\Identical($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 362 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Spaceship($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\NotIdentical($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 363 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Smaller($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\Equal($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 364 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\SmallerOrEqual($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\NotEqual($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 365 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Greater($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\Spaceship($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 366 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\GreaterOrEqual($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\Smaller($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 367 => function ($stackPos) { - $this->semValue = new Expr\Instanceof_($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\SmallerOrEqual($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 368 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(3-2)]; + $this->semValue = new Expr\BinaryOp\Greater($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 369 => function ($stackPos) { - $this->semValue = new Expr\Ternary($this->semStack[$stackPos-(5-1)], $this->semStack[$stackPos-(5-3)], $this->semStack[$stackPos-(5-5)], $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\GreaterOrEqual($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 370 => function ($stackPos) { - $this->semValue = new Expr\Ternary($this->semStack[$stackPos-(4-1)], null, $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semValue = new Expr\Instanceof_($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 371 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Coalesce($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos-(3-2)]; }, 372 => function ($stackPos) { - $this->semValue = new Expr\Isset_($this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semValue = new Expr\Ternary($this->semStack[$stackPos-(5-1)], $this->semStack[$stackPos-(5-3)], $this->semStack[$stackPos-(5-5)], $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes); }, 373 => function ($stackPos) { - $this->semValue = new Expr\Empty_($this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semValue = new Expr\Ternary($this->semStack[$stackPos-(4-1)], null, $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 374 => function ($stackPos) { - $this->semValue = new Expr\Include_($this->semStack[$stackPos-(2-2)], Expr\Include_::TYPE_INCLUDE, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\Coalesce($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 375 => function ($stackPos) { - $this->semValue = new Expr\Include_($this->semStack[$stackPos-(2-2)], Expr\Include_::TYPE_INCLUDE_ONCE, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\Isset_($this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 376 => function ($stackPos) { - $this->semValue = new Expr\Eval_($this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semValue = new Expr\Empty_($this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 377 => function ($stackPos) { - $this->semValue = new Expr\Include_($this->semStack[$stackPos-(2-2)], Expr\Include_::TYPE_REQUIRE, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\Include_($this->semStack[$stackPos-(2-2)], Expr\Include_::TYPE_INCLUDE, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 378 => function ($stackPos) { - $this->semValue = new Expr\Include_($this->semStack[$stackPos-(2-2)], Expr\Include_::TYPE_REQUIRE_ONCE, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\Include_($this->semStack[$stackPos-(2-2)], Expr\Include_::TYPE_INCLUDE_ONCE, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 379 => function ($stackPos) { - $this->semValue = new Expr\Cast\Int_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\Eval_($this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 380 => function ($stackPos) { - $this->semValue = new Expr\Cast\Double($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\Include_($this->semStack[$stackPos-(2-2)], Expr\Include_::TYPE_REQUIRE, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 381 => function ($stackPos) { - $this->semValue = new Expr\Cast\String_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\Include_($this->semStack[$stackPos-(2-2)], Expr\Include_::TYPE_REQUIRE_ONCE, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 382 => function ($stackPos) { - $this->semValue = new Expr\Cast\Array_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\Cast\Int_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 383 => function ($stackPos) { - $this->semValue = new Expr\Cast\Object_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $attrs = $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes; + $attrs['kind'] = $this->getFloatCastKind($this->semStack[$stackPos-(2-1)]); + $this->semValue = new Expr\Cast\Double($this->semStack[$stackPos-(2-2)], $attrs); }, 384 => function ($stackPos) { - $this->semValue = new Expr\Cast\Bool_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\Cast\String_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 385 => function ($stackPos) { - $this->semValue = new Expr\Cast\Unset_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\Cast\Array_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 386 => function ($stackPos) { - $attrs = $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes; - $attrs['kind'] = strtolower($this->semStack[$stackPos-(2-1)]) === 'exit' ? Expr\Exit_::KIND_EXIT : Expr\Exit_::KIND_DIE; - $this->semValue = new Expr\Exit_($this->semStack[$stackPos-(2-2)], $attrs); + $this->semValue = new Expr\Cast\Object_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 387 => function ($stackPos) { - $this->semValue = new Expr\ErrorSuppress($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\Cast\Bool_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 388 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = new Expr\Cast\Unset_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 389 => function ($stackPos) { - $this->semValue = new Expr\ShellExec($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $attrs = $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes; + $attrs['kind'] = strtolower($this->semStack[$stackPos-(2-1)]) === 'exit' ? Expr\Exit_::KIND_EXIT : Expr\Exit_::KIND_DIE; + $this->semValue = new Expr\Exit_($this->semStack[$stackPos-(2-2)], $attrs); }, 390 => function ($stackPos) { - $this->semValue = new Expr\Print_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\ErrorSuppress($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 391 => function ($stackPos) { - $this->semValue = new Expr\Yield_(null, null, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 392 => function ($stackPos) { - $this->semValue = new Expr\Yield_($this->semStack[$stackPos-(2-2)], null, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\ShellExec($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 393 => function ($stackPos) { - $this->semValue = new Expr\Yield_($this->semStack[$stackPos-(4-4)], $this->semStack[$stackPos-(4-2)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semValue = new Expr\Print_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 394 => function ($stackPos) { - $this->semValue = new Expr\YieldFrom($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\Yield_(null, null, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 395 => function ($stackPos) { - $this->semValue = new Expr\Closure(['static' => false, 'byRef' => $this->semStack[$stackPos-(8-2)], 'params' => $this->semStack[$stackPos-(8-4)], 'uses' => $this->semStack[$stackPos-(8-6)], 'returnType' => $this->semStack[$stackPos-(8-7)], 'stmts' => $this->semStack[$stackPos-(8-8)]], $this->startAttributeStack[$stackPos-(8-1)] + $this->endAttributes); + $this->semValue = new Expr\Yield_($this->semStack[$stackPos-(2-2)], null, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 396 => function ($stackPos) { - $this->semValue = new Expr\Closure(['static' => true, 'byRef' => $this->semStack[$stackPos-(9-3)], 'params' => $this->semStack[$stackPos-(9-5)], 'uses' => $this->semStack[$stackPos-(9-7)], 'returnType' => $this->semStack[$stackPos-(9-8)], 'stmts' => $this->semStack[$stackPos-(9-9)]], $this->startAttributeStack[$stackPos-(9-1)] + $this->endAttributes); + $this->semValue = new Expr\Yield_($this->semStack[$stackPos-(4-4)], $this->semStack[$stackPos-(4-2)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 397 => function ($stackPos) { - $this->semValue = array(new Stmt\Class_(null, ['type' => 0, 'extends' => $this->semStack[$stackPos-(7-3)], 'implements' => $this->semStack[$stackPos-(7-4)], 'stmts' => $this->semStack[$stackPos-(7-6)]], $this->startAttributeStack[$stackPos-(7-1)] + $this->endAttributes), $this->semStack[$stackPos-(7-2)]); - $this->checkClass($this->semValue[0], -1); + $this->semValue = new Expr\YieldFrom($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 398 => function ($stackPos) { - $this->semValue = new Expr\New_($this->semStack[$stackPos-(3-2)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\ArrowFunction(['static' => false, 'byRef' => $this->semStack[$stackPos-(8-2)], 'params' => $this->semStack[$stackPos-(8-4)], 'returnType' => $this->semStack[$stackPos-(8-6)], 'expr' => $this->semStack[$stackPos-(8-8)]], $this->startAttributeStack[$stackPos-(8-1)] + $this->endAttributes); }, 399 => function ($stackPos) { - list($class, $ctorArgs) = $this->semStack[$stackPos-(2-2)]; $this->semValue = new Expr\New_($class, $ctorArgs, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\ArrowFunction(['static' => true, 'byRef' => $this->semStack[$stackPos-(9-3)], 'params' => $this->semStack[$stackPos-(9-5)], 'returnType' => $this->semStack[$stackPos-(9-7)], 'expr' => $this->semStack[$stackPos-(9-9)]], $this->startAttributeStack[$stackPos-(9-1)] + $this->endAttributes); }, 400 => function ($stackPos) { - $this->semValue = array(); + $this->semValue = new Expr\Closure(['static' => false, 'byRef' => $this->semStack[$stackPos-(8-2)], 'params' => $this->semStack[$stackPos-(8-4)], 'uses' => $this->semStack[$stackPos-(8-6)], 'returnType' => $this->semStack[$stackPos-(8-7)], 'stmts' => $this->semStack[$stackPos-(8-8)]], $this->startAttributeStack[$stackPos-(8-1)] + $this->endAttributes); }, 401 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(4-3)]; + $this->semValue = new Expr\Closure(['static' => true, 'byRef' => $this->semStack[$stackPos-(9-3)], 'params' => $this->semStack[$stackPos-(9-5)], 'uses' => $this->semStack[$stackPos-(9-7)], 'returnType' => $this->semStack[$stackPos-(9-8)], 'stmts' => $this->semStack[$stackPos-(9-9)]], $this->startAttributeStack[$stackPos-(9-1)] + $this->endAttributes); }, 402 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(2-1)]; + $this->semValue = array(new Stmt\Class_(null, ['type' => 0, 'extends' => $this->semStack[$stackPos-(7-3)], 'implements' => $this->semStack[$stackPos-(7-4)], 'stmts' => $this->semStack[$stackPos-(7-6)]], $this->startAttributeStack[$stackPos-(7-1)] + $this->endAttributes), $this->semStack[$stackPos-(7-2)]); + $this->checkClass($this->semValue[0], -1); }, 403 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)]); + $this->semValue = new Expr\New_($this->semStack[$stackPos-(3-2)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 404 => function ($stackPos) { - $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; + list($class, $ctorArgs) = $this->semStack[$stackPos-(2-2)]; $this->semValue = new Expr\New_($class, $ctorArgs, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 405 => function ($stackPos) { - $this->semValue = new Expr\ClosureUse($this->semStack[$stackPos-(2-2)], $this->semStack[$stackPos-(2-1)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = array(); }, 406 => function ($stackPos) { - $this->semValue = new Expr\FuncCall($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos-(4-3)]; }, 407 => function ($stackPos) { - $this->semValue = new Expr\FuncCall($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos-(2-1)]; }, 408 => function ($stackPos) { - $this->semValue = new Expr\StaticCall($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semValue = array($this->semStack[$stackPos-(1-1)]); }, 409 => function ($stackPos) { - $this->semValue = new Name($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; }, 410 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = new Expr\ClosureUse($this->semStack[$stackPos-(2-2)], $this->semStack[$stackPos-(2-1)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 411 => function ($stackPos) { - $this->semValue = new Name($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = new Expr\FuncCall($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 412 => function ($stackPos) { - $this->semValue = new Name\FullyQualified($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\FuncCall($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 413 => function ($stackPos) { - $this->semValue = new Name\Relative($this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\StaticCall($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 414 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = new Name($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 415 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 416 => function ($stackPos) { - $this->semValue = new Expr\Error($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); $this->errorState = 2; + $this->semValue = new Name($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 417 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = new Name\FullyQualified($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 418 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = new Name\Relative($this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 419 => function ($stackPos) { - $this->semValue = null; + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 420 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(3-2)]; + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 421 => function ($stackPos) { - $this->semValue = array(); + $this->semValue = new Expr\Error($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); $this->errorState = 2; }, 422 => function ($stackPos) { - $this->semValue = array(new Scalar\EncapsedStringPart(Scalar\String_::parseEscapeSequences($this->semStack[$stackPos-(1-1)], '`'), $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes)); + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 423 => function ($stackPos) { - foreach ($this->semStack[$stackPos-(1-1)] as $s) { if ($s instanceof Node\Scalar\EncapsedStringPart) { $s->value = Node\Scalar\String_::parseEscapeSequences($s->value, '`', true); } }; $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 424 => function ($stackPos) { - $this->semValue = array(); + $this->semValue = null; }, 425 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = $this->semStack[$stackPos-(3-2)]; }, 426 => function ($stackPos) { - $this->semValue = new Expr\ConstFetch($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = array(); }, 427 => function ($stackPos) { - $this->semValue = new Expr\ClassConstFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = array(new Scalar\EncapsedStringPart(Scalar\String_::parseEscapeSequences($this->semStack[$stackPos-(1-1)], '`'), $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes)); }, 428 => function ($stackPos) { - $this->semValue = new Expr\ClassConstFetch($this->semStack[$stackPos-(3-1)], new Expr\Error($this->startAttributeStack[$stackPos-(3-3)] + $this->endAttributeStack[$stackPos-(3-3)]), $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); $this->errorState = 2; + foreach ($this->semStack[$stackPos-(1-1)] as $s) { if ($s instanceof Node\Scalar\EncapsedStringPart) { $s->value = Node\Scalar\String_::parseEscapeSequences($s->value, '`', true); } }; $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 429 => function ($stackPos) { - $attrs = $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes; $attrs['kind'] = Expr\Array_::KIND_SHORT; - $this->semValue = new Expr\Array_($this->semStack[$stackPos-(3-2)], $attrs); + $this->semValue = array(); }, 430 => function ($stackPos) { - $attrs = $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes; $attrs['kind'] = Expr\Array_::KIND_LONG; - $this->semValue = new Expr\Array_($this->semStack[$stackPos-(4-3)], $attrs); + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 431 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = new Expr\ConstFetch($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 432 => function ($stackPos) { - $attrs = $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes; $attrs['kind'] = ($this->semStack[$stackPos-(1-1)][0] === "'" || ($this->semStack[$stackPos-(1-1)][1] === "'" && ($this->semStack[$stackPos-(1-1)][0] === 'b' || $this->semStack[$stackPos-(1-1)][0] === 'B')) ? Scalar\String_::KIND_SINGLE_QUOTED : Scalar\String_::KIND_DOUBLE_QUOTED); - $this->semValue = new Scalar\String_(Scalar\String_::parse($this->semStack[$stackPos-(1-1)]), $attrs); + $this->semValue = new Expr\ClassConstFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 433 => function ($stackPos) { - $this->semValue = $this->parseLNumber($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = new Expr\ClassConstFetch($this->semStack[$stackPos-(3-1)], new Expr\Error($this->startAttributeStack[$stackPos-(3-3)] + $this->endAttributeStack[$stackPos-(3-3)]), $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); $this->errorState = 2; }, 434 => function ($stackPos) { - $this->semValue = new Scalar\DNumber(Scalar\DNumber::parse($this->semStack[$stackPos-(1-1)]), $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $attrs = $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes; $attrs['kind'] = Expr\Array_::KIND_SHORT; + $this->semValue = new Expr\Array_($this->semStack[$stackPos-(3-2)], $attrs); }, 435 => function ($stackPos) { - $this->semValue = new Scalar\MagicConst\Line($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $attrs = $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes; $attrs['kind'] = Expr\Array_::KIND_LONG; + $this->semValue = new Expr\Array_($this->semStack[$stackPos-(4-3)], $attrs); }, 436 => function ($stackPos) { - $this->semValue = new Scalar\MagicConst\File($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 437 => function ($stackPos) { - $this->semValue = new Scalar\MagicConst\Dir($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $attrs = $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes; $attrs['kind'] = ($this->semStack[$stackPos-(1-1)][0] === "'" || ($this->semStack[$stackPos-(1-1)][1] === "'" && ($this->semStack[$stackPos-(1-1)][0] === 'b' || $this->semStack[$stackPos-(1-1)][0] === 'B')) ? Scalar\String_::KIND_SINGLE_QUOTED : Scalar\String_::KIND_DOUBLE_QUOTED); + $this->semValue = new Scalar\String_(Scalar\String_::parse($this->semStack[$stackPos-(1-1)]), $attrs); }, 438 => function ($stackPos) { - $this->semValue = new Scalar\MagicConst\Class_($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = $this->parseLNumber($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 439 => function ($stackPos) { - $this->semValue = new Scalar\MagicConst\Trait_($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = new Scalar\DNumber(Scalar\DNumber::parse($this->semStack[$stackPos-(1-1)]), $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 440 => function ($stackPos) { - $this->semValue = new Scalar\MagicConst\Method($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = new Scalar\MagicConst\Line($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 441 => function ($stackPos) { - $this->semValue = new Scalar\MagicConst\Function_($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = new Scalar\MagicConst\File($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 442 => function ($stackPos) { - $this->semValue = new Scalar\MagicConst\Namespace_($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = new Scalar\MagicConst\Dir($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 443 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = new Scalar\MagicConst\Class_($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 444 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = new Scalar\MagicConst\Trait_($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 445 => function ($stackPos) { - $attrs = $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes; $attrs['kind'] = strpos($this->semStack[$stackPos-(3-1)], "'") === false ? Scalar\String_::KIND_HEREDOC : Scalar\String_::KIND_NOWDOC; preg_match('/\A[bB]?<<<[ \t]*[\'"]?([a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*)[\'"]?(?:\r\n|\n|\r)\z/', $this->semStack[$stackPos-(3-1)], $matches); $attrs['docLabel'] = $matches[1];; - $this->semValue = new Scalar\String_(Scalar\String_::parseDocString($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-2)]), $attrs); + $this->semValue = new Scalar\MagicConst\Method($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 446 => function ($stackPos) { - $attrs = $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes; $attrs['kind'] = strpos($this->semStack[$stackPos-(2-1)], "'") === false ? Scalar\String_::KIND_HEREDOC : Scalar\String_::KIND_NOWDOC; preg_match('/\A[bB]?<<<[ \t]*[\'"]?([a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*)[\'"]?(?:\r\n|\n|\r)\z/', $this->semStack[$stackPos-(2-1)], $matches); $attrs['docLabel'] = $matches[1];; - $this->semValue = new Scalar\String_('', $attrs); + $this->semValue = new Scalar\MagicConst\Function_($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 447 => function ($stackPos) { - $attrs = $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes; $attrs['kind'] = Scalar\String_::KIND_DOUBLE_QUOTED; - foreach ($this->semStack[$stackPos-(3-2)] as $s) { if ($s instanceof Node\Scalar\EncapsedStringPart) { $s->value = Node\Scalar\String_::parseEscapeSequences($s->value, '"', true); } }; $this->semValue = new Scalar\Encapsed($this->semStack[$stackPos-(3-2)], $attrs); + $this->semValue = new Scalar\MagicConst\Namespace_($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 448 => function ($stackPos) { - $attrs = $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes; $attrs['kind'] = strpos($this->semStack[$stackPos-(3-1)], "'") === false ? Scalar\String_::KIND_HEREDOC : Scalar\String_::KIND_NOWDOC; preg_match('/\A[bB]?<<<[ \t]*[\'"]?([a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*)[\'"]?(?:\r\n|\n|\r)\z/', $this->semStack[$stackPos-(3-1)], $matches); $attrs['docLabel'] = $matches[1];; - foreach ($this->semStack[$stackPos-(3-2)] as $s) { if ($s instanceof Node\Scalar\EncapsedStringPart) { $s->value = Node\Scalar\String_::parseEscapeSequences($s->value, null, true); } } $s->value = preg_replace('~(\r\n|\n|\r)\z~', '', $s->value); if ('' === $s->value) array_pop($this->semStack[$stackPos-(3-2)]);; $this->semValue = new Scalar\Encapsed($this->semStack[$stackPos-(3-2)], $attrs); + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 449 => function ($stackPos) { - $this->semValue = null; + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 450 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = $this->parseDocString($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-2)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes, $this->startAttributeStack[$stackPos-(3-3)] + $this->endAttributeStack[$stackPos-(3-3)], true); }, 451 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = $this->parseDocString($this->semStack[$stackPos-(2-1)], '', $this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes, $this->startAttributeStack[$stackPos-(2-2)] + $this->endAttributeStack[$stackPos-(2-2)], true); }, 452 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(3-2)]; + $attrs = $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes; $attrs['kind'] = Scalar\String_::KIND_DOUBLE_QUOTED; + foreach ($this->semStack[$stackPos-(3-2)] as $s) { if ($s instanceof Node\Scalar\EncapsedStringPart) { $s->value = Node\Scalar\String_::parseEscapeSequences($s->value, '"', true); } }; $this->semValue = new Scalar\Encapsed($this->semStack[$stackPos-(3-2)], $attrs); }, 453 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = $this->parseDocString($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-2)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes, $this->startAttributeStack[$stackPos-(3-3)] + $this->endAttributeStack[$stackPos-(3-3)], true); }, 454 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = null; }, 455 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(3-2)]; + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 456 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 457 => function ($stackPos) { - $this->semValue = new Expr\Variable($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos-(3-2)]; }, 458 => function ($stackPos) { - $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 459 => function ($stackPos) { - $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 460 => function ($stackPos) { - $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos-(3-2)]; }, 461 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 462 => function ($stackPos) { - $this->semValue = new Expr\MethodCall($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semValue = new Expr\Variable($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 463 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 464 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 465 => function ($stackPos) { - $this->semValue = new Expr\PropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 466 => function ($stackPos) { - $this->semValue = substr($this->semStack[$stackPos-(1-1)], 1); + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 467 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(4-3)]; + $this->semValue = new Expr\MethodCall($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 468 => function ($stackPos) { - $this->semValue = new Expr\Variable($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 469 => function ($stackPos) { - $this->semValue = new Expr\Error($this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); $this->errorState = 2; + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 470 => function ($stackPos) { - $var = $this->semStack[$stackPos-(1-1)]; $this->semValue = \is_string($var) ? new Node\VarLikeIdentifier($var, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes) : $var; + $this->semValue = new Expr\PropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 471 => function ($stackPos) { - $this->semValue = new Expr\StaticPropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = substr($this->semStack[$stackPos-(1-1)], 1); }, 472 => function ($stackPos) { - $this->semValue = new Expr\Variable($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos-(4-3)]; }, 473 => function ($stackPos) { - $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semValue = new Expr\Variable($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 474 => function ($stackPos) { - $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semValue = new Expr\Error($this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); $this->errorState = 2; }, 475 => function ($stackPos) { - $this->semValue = new Expr\PropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $var = $this->semStack[$stackPos-(1-1)]; $this->semValue = \is_string($var) ? new Node\VarLikeIdentifier($var, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes) : $var; }, 476 => function ($stackPos) { $this->semValue = new Expr\StaticPropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 477 => function ($stackPos) { - $this->semValue = new Expr\StaticPropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\Variable($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 478 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 479 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(3-2)]; + $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 480 => function ($stackPos) { - $this->semValue = new Expr\Variable($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = new Expr\PropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 481 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = new Expr\StaticPropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 482 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(3-2)]; + $this->semValue = new Expr\StaticPropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 483 => function ($stackPos) { - $this->semValue = new Expr\Variable($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 484 => function ($stackPos) { - $this->semValue = new Expr\Error($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); $this->errorState = 2; + $this->semValue = $this->semStack[$stackPos-(3-2)]; }, 485 => function ($stackPos) { - $this->semValue = new Expr\List_($this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semValue = new Expr\Variable($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 486 => function ($stackPos) { - $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 487 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)]); + $this->semValue = $this->semStack[$stackPos-(3-2)]; }, 488 => function ($stackPos) { - $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(1-1)], null, false, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = new Expr\Variable($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 489 => function ($stackPos) { - $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(2-2)], null, true, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\Error($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); $this->errorState = 2; }, 490 => function ($stackPos) { - $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(1-1)], null, false, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = new Expr\List_($this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 491 => function ($stackPos) { - $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(3-3)], $this->semStack[$stackPos-(3-1)], false, $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; }, 492 => function ($stackPos) { - $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(4-4)], $this->semStack[$stackPos-(4-1)], true, $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semValue = array($this->semStack[$stackPos-(1-1)]); }, 493 => function ($stackPos) { - $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(3-3)], $this->semStack[$stackPos-(3-1)], false, $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(1-1)], null, false, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 494 => function ($stackPos) { - $this->semValue = null; + $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(2-2)], null, true, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 495 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; $end = count($this->semValue)-1; if ($this->semValue[$end] === null) array_pop($this->semValue); + $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(1-1)], null, false, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 496 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos]; + $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(3-3)], $this->semStack[$stackPos-(3-1)], false, $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 497 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos]; + $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(4-4)], $this->semStack[$stackPos-(4-1)], true, $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 498 => function ($stackPos) { - $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; + $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(3-3)], $this->semStack[$stackPos-(3-1)], false, $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 499 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)]); + $this->semValue = null; }, 500 => function ($stackPos) { - $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(3-3)], $this->semStack[$stackPos-(3-1)], false, $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos-(1-1)]; $end = count($this->semValue)-1; if ($this->semValue[$end] === null) array_pop($this->semValue); }, 501 => function ($stackPos) { - $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(1-1)], null, false, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos]; }, 502 => function ($stackPos) { - $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(4-4)], $this->semStack[$stackPos-(4-1)], true, $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + /* do nothing -- prevent default action of $$=$this->semStack[$1]. See $551. */ }, 503 => function ($stackPos) { - $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(2-2)], null, true, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; }, 504 => function ($stackPos) { - $this->semValue = null; + $this->semValue = array($this->semStack[$stackPos-(1-1)]); }, 505 => function ($stackPos) { - $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; + $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(3-3)], $this->semStack[$stackPos-(3-1)], false, $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 506 => function ($stackPos) { - $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; + $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(1-1)], null, false, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 507 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)]); + $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(4-4)], $this->semStack[$stackPos-(4-1)], true, $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 508 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)]); + $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(2-2)], null, true, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 509 => function ($stackPos) { - $this->semValue = new Scalar\EncapsedStringPart($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(2-2)], null, false, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes, true, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 510 => function ($stackPos) { - $this->semValue = new Expr\Variable($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = null; }, 511 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; }, 512 => function ($stackPos) { - $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; }, 513 => function ($stackPos) { - $this->semValue = new Expr\PropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = array($this->semStack[$stackPos-(1-1)]); }, 514 => function ($stackPos) { - $this->semValue = new Expr\Variable($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = array($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)]); }, 515 => function ($stackPos) { - $this->semValue = new Expr\Variable($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Scalar\EncapsedStringPart($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 516 => function ($stackPos) { - $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(6-2)], $this->semStack[$stackPos-(6-4)], $this->startAttributeStack[$stackPos-(6-1)] + $this->endAttributes); + $this->semValue = new Expr\Variable($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 517 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(3-2)]; + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 518 => function ($stackPos) { - $this->semValue = new Scalar\String_($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 519 => function ($stackPos) { - $this->semValue = $this->parseNumString($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = new Expr\PropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 520 => function ($stackPos) { - $this->semValue = $this->parseNumString('-' . $this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\Variable($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 521 => function ($stackPos) { + $this->semValue = new Expr\Variable($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 522 => function ($stackPos) { + $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(6-2)], $this->semStack[$stackPos-(6-4)], $this->startAttributeStack[$stackPos-(6-1)] + $this->endAttributes); + }, + 523 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(3-2)]; + }, + 524 => function ($stackPos) { + $this->semValue = new Scalar\String_($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 525 => function ($stackPos) { + $this->semValue = $this->parseNumString($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 526 => function ($stackPos) { + $this->semValue = $this->parseNumString('-' . $this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + }, + 527 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, ]; diff --git a/vendor/nikic/php-parser/lib/PhpParser/Parser/Tokens.php b/vendor/nikic/php-parser/lib/PhpParser/Parser/Tokens.php index 861663fae020de94ede3233577ec0fb549bef736..50c5bf5747ec882c947c35e49215896229ba1e4e 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Parser/Tokens.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Parser/Tokens.php @@ -30,115 +30,117 @@ final class Tokens const T_SL_EQUAL = 278; const T_SR_EQUAL = 279; const T_POW_EQUAL = 280; - const T_COALESCE = 281; - const T_BOOLEAN_OR = 282; - const T_BOOLEAN_AND = 283; - const T_IS_EQUAL = 284; - const T_IS_NOT_EQUAL = 285; - const T_IS_IDENTICAL = 286; - const T_IS_NOT_IDENTICAL = 287; - const T_SPACESHIP = 288; - const T_IS_SMALLER_OR_EQUAL = 289; - const T_IS_GREATER_OR_EQUAL = 290; - const T_SL = 291; - const T_SR = 292; - const T_INSTANCEOF = 293; - const T_INC = 294; - const T_DEC = 295; - const T_INT_CAST = 296; - const T_DOUBLE_CAST = 297; - const T_STRING_CAST = 298; - const T_ARRAY_CAST = 299; - const T_OBJECT_CAST = 300; - const T_BOOL_CAST = 301; - const T_UNSET_CAST = 302; - const T_POW = 303; - const T_NEW = 304; - const T_CLONE = 305; - const T_EXIT = 306; - const T_IF = 307; - const T_ELSEIF = 308; - const T_ELSE = 309; - const T_ENDIF = 310; - const T_LNUMBER = 311; - const T_DNUMBER = 312; - const T_STRING = 313; - const T_STRING_VARNAME = 314; - const T_VARIABLE = 315; - const T_NUM_STRING = 316; - const T_INLINE_HTML = 317; - const T_CHARACTER = 318; - const T_BAD_CHARACTER = 319; - const T_ENCAPSED_AND_WHITESPACE = 320; - const T_CONSTANT_ENCAPSED_STRING = 321; - const T_ECHO = 322; - const T_DO = 323; - const T_WHILE = 324; - const T_ENDWHILE = 325; - const T_FOR = 326; - const T_ENDFOR = 327; - const T_FOREACH = 328; - const T_ENDFOREACH = 329; - const T_DECLARE = 330; - const T_ENDDECLARE = 331; - const T_AS = 332; - const T_SWITCH = 333; - const T_ENDSWITCH = 334; - const T_CASE = 335; - const T_DEFAULT = 336; - const T_BREAK = 337; - const T_CONTINUE = 338; - const T_GOTO = 339; - const T_FUNCTION = 340; - const T_CONST = 341; - const T_RETURN = 342; - const T_TRY = 343; - const T_CATCH = 344; - const T_FINALLY = 345; - const T_THROW = 346; - const T_USE = 347; - const T_INSTEADOF = 348; - const T_GLOBAL = 349; - const T_STATIC = 350; - const T_ABSTRACT = 351; - const T_FINAL = 352; - const T_PRIVATE = 353; - const T_PROTECTED = 354; - const T_PUBLIC = 355; - const T_VAR = 356; - const T_UNSET = 357; - const T_ISSET = 358; - const T_EMPTY = 359; - const T_HALT_COMPILER = 360; - const T_CLASS = 361; - const T_TRAIT = 362; - const T_INTERFACE = 363; - const T_EXTENDS = 364; - const T_IMPLEMENTS = 365; - const T_OBJECT_OPERATOR = 366; - const T_LIST = 367; - const T_ARRAY = 368; - const T_CALLABLE = 369; - const T_CLASS_C = 370; - const T_TRAIT_C = 371; - const T_METHOD_C = 372; - const T_FUNC_C = 373; - const T_LINE = 374; - const T_FILE = 375; - const T_COMMENT = 376; - const T_DOC_COMMENT = 377; - const T_OPEN_TAG = 378; - const T_OPEN_TAG_WITH_ECHO = 379; - const T_CLOSE_TAG = 380; - const T_WHITESPACE = 381; - const T_START_HEREDOC = 382; - const T_END_HEREDOC = 383; - const T_DOLLAR_OPEN_CURLY_BRACES = 384; - const T_CURLY_OPEN = 385; - const T_PAAMAYIM_NEKUDOTAYIM = 386; - const T_NAMESPACE = 387; - const T_NS_C = 388; - const T_DIR = 389; - const T_NS_SEPARATOR = 390; - const T_ELLIPSIS = 391; + const T_COALESCE_EQUAL = 281; + const T_COALESCE = 282; + const T_BOOLEAN_OR = 283; + const T_BOOLEAN_AND = 284; + const T_IS_EQUAL = 285; + const T_IS_NOT_EQUAL = 286; + const T_IS_IDENTICAL = 287; + const T_IS_NOT_IDENTICAL = 288; + const T_SPACESHIP = 289; + const T_IS_SMALLER_OR_EQUAL = 290; + const T_IS_GREATER_OR_EQUAL = 291; + const T_SL = 292; + const T_SR = 293; + const T_INSTANCEOF = 294; + const T_INC = 295; + const T_DEC = 296; + const T_INT_CAST = 297; + const T_DOUBLE_CAST = 298; + const T_STRING_CAST = 299; + const T_ARRAY_CAST = 300; + const T_OBJECT_CAST = 301; + const T_BOOL_CAST = 302; + const T_UNSET_CAST = 303; + const T_POW = 304; + const T_NEW = 305; + const T_CLONE = 306; + const T_EXIT = 307; + const T_IF = 308; + const T_ELSEIF = 309; + const T_ELSE = 310; + const T_ENDIF = 311; + const T_LNUMBER = 312; + const T_DNUMBER = 313; + const T_STRING = 314; + const T_STRING_VARNAME = 315; + const T_VARIABLE = 316; + const T_NUM_STRING = 317; + const T_INLINE_HTML = 318; + const T_CHARACTER = 319; + const T_BAD_CHARACTER = 320; + const T_ENCAPSED_AND_WHITESPACE = 321; + const T_CONSTANT_ENCAPSED_STRING = 322; + const T_ECHO = 323; + const T_DO = 324; + const T_WHILE = 325; + const T_ENDWHILE = 326; + const T_FOR = 327; + const T_ENDFOR = 328; + const T_FOREACH = 329; + const T_ENDFOREACH = 330; + const T_DECLARE = 331; + const T_ENDDECLARE = 332; + const T_AS = 333; + const T_SWITCH = 334; + const T_ENDSWITCH = 335; + const T_CASE = 336; + const T_DEFAULT = 337; + const T_BREAK = 338; + const T_CONTINUE = 339; + const T_GOTO = 340; + const T_FUNCTION = 341; + const T_FN = 342; + const T_CONST = 343; + const T_RETURN = 344; + const T_TRY = 345; + const T_CATCH = 346; + const T_FINALLY = 347; + const T_THROW = 348; + const T_USE = 349; + const T_INSTEADOF = 350; + const T_GLOBAL = 351; + const T_STATIC = 352; + const T_ABSTRACT = 353; + const T_FINAL = 354; + const T_PRIVATE = 355; + const T_PROTECTED = 356; + const T_PUBLIC = 357; + const T_VAR = 358; + const T_UNSET = 359; + const T_ISSET = 360; + const T_EMPTY = 361; + const T_HALT_COMPILER = 362; + const T_CLASS = 363; + const T_TRAIT = 364; + const T_INTERFACE = 365; + const T_EXTENDS = 366; + const T_IMPLEMENTS = 367; + const T_OBJECT_OPERATOR = 368; + const T_LIST = 369; + const T_ARRAY = 370; + const T_CALLABLE = 371; + const T_CLASS_C = 372; + const T_TRAIT_C = 373; + const T_METHOD_C = 374; + const T_FUNC_C = 375; + const T_LINE = 376; + const T_FILE = 377; + const T_COMMENT = 378; + const T_DOC_COMMENT = 379; + const T_OPEN_TAG = 380; + const T_OPEN_TAG_WITH_ECHO = 381; + const T_CLOSE_TAG = 382; + const T_WHITESPACE = 383; + const T_START_HEREDOC = 384; + const T_END_HEREDOC = 385; + const T_DOLLAR_OPEN_CURLY_BRACES = 386; + const T_CURLY_OPEN = 387; + const T_PAAMAYIM_NEKUDOTAYIM = 388; + const T_NAMESPACE = 389; + const T_NS_C = 390; + const T_DIR = 391; + const T_NS_SEPARATOR = 392; + const T_ELLIPSIS = 393; } diff --git a/vendor/nikic/php-parser/lib/PhpParser/ParserAbstract.php b/vendor/nikic/php-parser/lib/PhpParser/ParserAbstract.php index dab6aea7adf10772264e7d6491965f6f5e334312..975e17c6bb7e3dada824e9e12cc43c9ff0efc5c3 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/ParserAbstract.php +++ b/vendor/nikic/php-parser/lib/PhpParser/ParserAbstract.php @@ -7,8 +7,10 @@ * turn is based on work by Masato Bito. */ use PhpParser\Node\Expr; +use PhpParser\Node\Expr\Cast\Double; use PhpParser\Node\Name; use PhpParser\Node\Param; +use PhpParser\Node\Scalar\Encapsed; use PhpParser\Node\Scalar\LNumber; use PhpParser\Node\Scalar\String_; use PhpParser\Node\Stmt\Class_; @@ -679,6 +681,20 @@ protected function getAttributesAt(int $pos) : array { return $this->startAttributeStack[$pos] + $this->endAttributeStack[$pos]; } + protected function getFloatCastKind(string $cast): int + { + $cast = strtolower($cast); + if (strpos($cast, 'float') !== false) { + return Double::KIND_FLOAT; + } + + if (strpos($cast, 'real') !== false) { + return Double::KIND_REAL; + } + + return Double::KIND_DOUBLE; + } + protected function parseLNumber($str, $attributes, $allowInvalidOctal = false) { try { return LNumber::fromString($str, $attributes, $allowInvalidOctal); @@ -710,6 +726,139 @@ protected function parseNumString(string $str, array $attributes) { return new LNumber($num, $attributes); } + protected function stripIndentation( + string $string, int $indentLen, string $indentChar, + bool $newlineAtStart, bool $newlineAtEnd, array $attributes + ) { + if ($indentLen === 0) { + return $string; + } + + $start = $newlineAtStart ? '(?:(?<=\n)|\A)' : '(?<=\n)'; + $end = $newlineAtEnd ? '(?:(?=[\r\n])|\z)' : '(?=[\r\n])'; + $regex = '/' . $start . '([ \t]*)(' . $end . ')?/'; + return preg_replace_callback( + $regex, + function ($matches) use ($indentLen, $indentChar, $attributes) { + $prefix = substr($matches[1], 0, $indentLen); + if (false !== strpos($prefix, $indentChar === " " ? "\t" : " ")) { + $this->emitError(new Error( + 'Invalid indentation - tabs and spaces cannot be mixed', $attributes + )); + } elseif (strlen($prefix) < $indentLen && !isset($matches[2])) { + $this->emitError(new Error( + 'Invalid body indentation level ' . + '(expecting an indentation level of at least ' . $indentLen . ')', + $attributes + )); + } + return substr($matches[0], strlen($prefix)); + }, + $string + ); + } + + protected function parseDocString( + string $startToken, $contents, string $endToken, + array $attributes, array $endTokenAttributes, bool $parseUnicodeEscape + ) { + $kind = strpos($startToken, "'") === false + ? String_::KIND_HEREDOC : String_::KIND_NOWDOC; + + $regex = '/\A[bB]?<<<[ \t]*[\'"]?([a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*)[\'"]?(?:\r\n|\n|\r)\z/'; + $result = preg_match($regex, $startToken, $matches); + assert($result === 1); + $label = $matches[1]; + + $result = preg_match('/\A[ \t]*/', $endToken, $matches); + assert($result === 1); + $indentation = $matches[0]; + + $attributes['kind'] = $kind; + $attributes['docLabel'] = $label; + $attributes['docIndentation'] = $indentation; + + $indentHasSpaces = false !== strpos($indentation, " "); + $indentHasTabs = false !== strpos($indentation, "\t"); + if ($indentHasSpaces && $indentHasTabs) { + $this->emitError(new Error( + 'Invalid indentation - tabs and spaces cannot be mixed', + $endTokenAttributes + )); + + // Proceed processing as if this doc string is not indented + $indentation = ''; + } + + $indentLen = \strlen($indentation); + $indentChar = $indentHasSpaces ? " " : "\t"; + + if (\is_string($contents)) { + if ($contents === '') { + return new String_('', $attributes); + } + + $contents = $this->stripIndentation( + $contents, $indentLen, $indentChar, true, true, $attributes + ); + $contents = preg_replace('~(\r\n|\n|\r)\z~', '', $contents); + + if ($kind === String_::KIND_HEREDOC) { + $contents = String_::parseEscapeSequences($contents, null, $parseUnicodeEscape); + } + + return new String_($contents, $attributes); + } else { + assert(count($contents) > 0); + if (!$contents[0] instanceof Node\Scalar\EncapsedStringPart) { + // If there is no leading encapsed string part, pretend there is an empty one + $this->stripIndentation( + '', $indentLen, $indentChar, true, false, $contents[0]->getAttributes() + ); + } + + $newContents = []; + foreach ($contents as $i => $part) { + if ($part instanceof Node\Scalar\EncapsedStringPart) { + $isLast = $i === \count($contents) - 1; + $part->value = $this->stripIndentation( + $part->value, $indentLen, $indentChar, + $i === 0, $isLast, $part->getAttributes() + ); + $part->value = String_::parseEscapeSequences($part->value, null, $parseUnicodeEscape); + if ($isLast) { + $part->value = preg_replace('~(\r\n|\n|\r)\z~', '', $part->value); + } + if ('' === $part->value) { + continue; + } + } + $newContents[] = $part; + } + return new Encapsed($newContents, $attributes); + } + } + + /** + * Create attributes for a zero-length node with the given start attributes. + * + * @param array $startAttributes + * @return array + */ + protected function createZeroLengthAttributes(array $startAttributes) { + $attributes = $startAttributes; + if (isset($startAttributes['startLine'])) { + $attributes['endLine'] = $startAttributes['startLine']; + } + if (isset($startAttributes['startTokenPos'])) { + $attributes['endTokenPos'] = $startAttributes['startTokenPos'] - 1; + } + if (isset($startAttributes['startFilePos'])) { + $attributes['endFilePos'] = $startAttributes['startFilePos'] - 1; + } + return $attributes; + } + protected function checkModifier($a, $b, $modifierPos) { // Jumping through some hoops here because verifyModifier() is also used elsewhere try { diff --git a/vendor/nikic/php-parser/lib/PhpParser/PrettyPrinter/Standard.php b/vendor/nikic/php-parser/lib/PhpParser/PrettyPrinter/Standard.php index 96963307d26f1174097cf6e50217276f659ac207..78ee7d0032483fe4dc4e4bd9d5f3c7f1b0d9ba11 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/PrettyPrinter/Standard.php +++ b/vendor/nikic/php-parser/lib/PhpParser/PrettyPrinter/Standard.php @@ -260,6 +260,10 @@ protected function pExpr_AssignOp_Pow(AssignOp\Pow $node) { return $this->pInfixOp(AssignOp\Pow::class, $node->var, ' **= ', $node->expr); } + protected function pExpr_AssignOp_Coalesce(AssignOp\Coalesce $node) { + return $this->pInfixOp(AssignOp\Coalesce::class, $node->var, ' ??= ', $node->expr); + } + // Binary expressions protected function pExpr_BinaryOp_Plus(BinaryOp\Plus $node) { @@ -435,7 +439,15 @@ protected function pExpr_Cast_Int(Cast\Int_ $node) { } protected function pExpr_Cast_Double(Cast\Double $node) { - return $this->pPrefixOp(Cast\Double::class, '(double) ', $node->expr); + $kind = $node->getAttribute('kind', Cast\Double::KIND_DOUBLE); + if ($kind === Cast\Double::KIND_DOUBLE) { + $cast = '(double)'; + } elseif ($kind === Cast\Double::KIND_FLOAT) { + $cast = '(float)'; + } elseif ($kind === Cast\Double::KIND_REAL) { + $cast = '(real)'; + } + return $this->pPrefixOp(Cast\Double::class, $cast . ' ', $node->expr); } protected function pExpr_Cast_String(Cast\String_ $node) { @@ -533,7 +545,9 @@ protected function pExpr_Array(Expr\Array_ $node) { protected function pExpr_ArrayItem(Expr\ArrayItem $node) { return (null !== $node->key ? $this->p($node->key) . ' => ' : '') - . ($node->byRef ? '&' : '') . $this->p($node->value); + . ($node->byRef ? '&' : '') + . ($node->unpack ? '...' : '') + . $this->p($node->value); } protected function pExpr_ArrayDimFetch(Expr\ArrayDimFetch $node) { @@ -570,6 +584,15 @@ protected function pExpr_Closure(Expr\Closure $node) { . ' {' . $this->pStmts($node->stmts) . $this->nl . '}'; } + protected function pExpr_ArrowFunction(Expr\ArrowFunction $node) { + return ($node->static ? 'static ' : '') + . 'fn' . ($node->byRef ? '&' : '') + . '(' . $this->pCommaSeparated($node->params) . ')' + . (null !== $node->returnType ? ': ' . $this->p($node->returnType) : '') + . ' => ' + . $this->p($node->expr); + } + protected function pExpr_ClosureUse(Expr\ClosureUse $node) { return ($node->byRef ? '&' : '') . $this->p($node->var); } @@ -680,7 +703,9 @@ protected function pStmt_TraitUseAdaptation_Alias(Stmt\TraitUseAdaptation\Alias } protected function pStmt_Property(Stmt\Property $node) { - return (0 === $node->flags ? 'var ' : $this->pModifiers($node->flags)) . $this->pCommaSeparated($node->props) . ';'; + return (0 === $node->flags ? 'var ' : $this->pModifiers($node->flags)) + . ($node->type ? $this->p($node->type) . ' ' : '') + . $this->pCommaSeparated($node->props) . ';'; } protected function pStmt_PropertyProperty(Stmt\PropertyProperty $node) { diff --git a/vendor/nikic/php-parser/lib/PhpParser/PrettyPrinterAbstract.php b/vendor/nikic/php-parser/lib/PhpParser/PrettyPrinterAbstract.php index 2339c75a3db2bf20be714970bf56d1521e659248..90f10c4624b8556006a5d39802de7b1d58036c42 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/PrettyPrinterAbstract.php +++ b/vendor/nikic/php-parser/lib/PhpParser/PrettyPrinterAbstract.php @@ -9,7 +9,6 @@ use PhpParser\Node\Expr\AssignOp; use PhpParser\Node\Expr\BinaryOp; use PhpParser\Node\Expr\Cast; -use PhpParser\Node\Name; use PhpParser\Node\Scalar; use PhpParser\Node\Stmt; @@ -83,6 +82,7 @@ abstract class PrettyPrinterAbstract AssignOp\ShiftLeft::class => [160, 1], AssignOp\ShiftRight::class => [160, 1], AssignOp\Pow::class => [160, 1], + AssignOp\Coalesce::class => [160, 1], Expr\YieldFrom::class => [165, 1], Expr\Print_::class => [168, 1], BinaryOp\LogicalAnd::class => [170, -1], @@ -120,7 +120,7 @@ abstract class PrettyPrinterAbstract */ protected $removalMap; /** - * @var mixed[] Map from "{$node->getType()}->{$subNode}" to [$find, $extraLeft, $extraRight]. + * @var mixed[] Map from "{$node->getType()}->{$subNode}" to [$find, $beforeToken, $extraLeft, $extraRight]. * $find is an optional token after which the insertion occurs. $extraLeft/Right * are optionally added before/after the main insertions. */ @@ -130,6 +130,7 @@ abstract class PrettyPrinterAbstract * between elements of this list subnode. */ protected $listInsertionMap; + protected $emptyListInsertionMap; /** @var int[] Map from "{$node->getType()}->{$subNode}" to token before which the modifiers * should be reprinted. */ protected $modifierChangeMap; @@ -479,6 +480,7 @@ public function printFormatPreserving(array $stmts, array $origStmts, array $ori $this->initializeRemovalMap(); $this->initializeInsertionMap(); $this->initializeListInsertionMap(); + $this->initializeEmptyListInsertionMap(); $this->initializeModifierChangeMap(); $this->resetState(); @@ -487,7 +489,7 @@ public function printFormatPreserving(array $stmts, array $origStmts, array $ori $this->preprocessNodes($stmts); $pos = 0; - $result = $this->pArray($stmts, $origStmts, $pos, 0, 'stmts', null, "\n"); + $result = $this->pArray($stmts, $origStmts, $pos, 0, 'File', 'stmts', null); if (null !== $result) { $result .= $this->origTokens->getTokenCode($pos, count($origTokens), 0); } else { @@ -568,9 +570,8 @@ protected function p(Node $node, $parentFormatPreserved = false) : string { if (is_array($subNode) && is_array($origSubNode)) { // Array subnode changed, we might be able to reconstruct it $listResult = $this->pArray( - $subNode, $origSubNode, $pos, $indentAdjustment, $subNodeName, - $fixupInfo[$subNodeName] ?? null, - $this->listInsertionMap[$type . '->' . $subNodeName] ?? null + $subNode, $origSubNode, $pos, $indentAdjustment, $type, $subNodeName, + $fixupInfo[$subNodeName] ?? null ); if (null === $listResult) { return $this->pFallback($fallbackNode); @@ -617,12 +618,14 @@ protected function p(Node $node, $parentFormatPreserved = false) : string { return $this->pFallback($fallbackNode); } - list($findToken, $extraLeft, $extraRight) = $this->insertionMap[$key]; + list($findToken, $beforeToken, $extraLeft, $extraRight) = $this->insertionMap[$key]; if (null !== $findToken) { - $subStartPos = $this->origTokens->findRight($pos, $findToken) + 1; + $subStartPos = $this->origTokens->findRight($pos, $findToken) + + (int) !$beforeToken; } else { $subStartPos = $pos; } + if (null === $extraLeft && null !== $extraRight) { // If inserting on the right only, skipping whitespace looks better $subStartPos = $this->origTokens->skipRightWhitespace($subStartPos); @@ -687,18 +690,21 @@ protected function p(Node $node, $parentFormatPreserved = false) : string { * @param array $origNodes Original nodes * @param int $pos Current token position (updated by reference) * @param int $indentAdjustment Adjustment for indentation + * @param string $parentNodeType Type of the containing node. * @param string $subNodeName Name of array subnode. * @param null|int $fixup Fixup information for array item nodes - * @param null|string $insertStr Separator string to use for insertions * * @return null|string Result of pretty print or null if cannot preserve formatting */ protected function pArray( array $nodes, array $origNodes, int &$pos, int $indentAdjustment, - string $subNodeName, $fixup, $insertStr + string $parentNodeType, string $subNodeName, $fixup ) { $diff = $this->nodeListDiffer->diffWithReplacements($origNodes, $nodes); + $mapKey = $parentNodeType . '->' . $subNodeName; + $insertStr = $this->listInsertionMap[$mapKey] ?? null; + $beforeFirstKeepOrReplace = true; $delayedAdd = []; $lastElemIndentLevel = $this->indentLevel; @@ -871,8 +877,27 @@ protected function pArray( } if (!empty($delayedAdd)) { - // TODO Handle insertion into empty list - return null; + if (!isset($this->emptyListInsertionMap[$mapKey])) { + return null; + } + + list($findToken, $extraLeft, $extraRight) = $this->emptyListInsertionMap[$mapKey]; + if (null !== $findToken) { + $insertPos = $this->origTokens->findRight($pos, $findToken) + 1; + $result .= $this->origTokens->getTokenCode($pos, $insertPos, $indentAdjustment); + $pos = $insertPos; + } + + $first = true; + $result .= $extraLeft; + foreach ($delayedAdd as $delayedAddNode) { + if (!$first) { + $result .= $insertStr; + } + $result .= $this->p($delayedAddNode, true); + $first = false; + } + $result .= $extraRight; } return $result; @@ -1155,7 +1180,7 @@ protected function initializeFixupMap() { Expr\Assign::class, Expr\AssignRef::class, AssignOp\Plus::class, AssignOp\Minus::class, AssignOp\Mul::class, AssignOp\Div::class, AssignOp\Concat::class, AssignOp\Mod::class, AssignOp\BitwiseAnd::class, AssignOp\BitwiseOr::class, AssignOp\BitwiseXor::class, - AssignOp\ShiftLeft::class, AssignOp\ShiftRight::class, AssignOp\Pow::class, + AssignOp\ShiftLeft::class, AssignOp\ShiftRight::class, AssignOp\Pow::class, AssignOp\Coalesce::class ]; foreach ($assignOps as $assignOp) { $this->fixupMap[$assignOp] = [ @@ -1193,6 +1218,7 @@ protected function initializeRemovalMap() { $this->removalMap = [ 'Expr_ArrayDimFetch->dim' => $stripBoth, 'Expr_ArrayItem->key' => $stripDoubleArrow, + 'Expr_ArrowFunction->returnType' => $stripColon, 'Expr_Closure->returnType' => $stripColon, 'Expr_Exit->expr' => $stripBoth, 'Expr_Ternary->if' => $stripBoth, @@ -1209,6 +1235,7 @@ protected function initializeRemovalMap() { 'Stmt_Function->returnType' => $stripColon, 'Stmt_If->else' => $stripLeft, 'Stmt_Namespace->name' => $stripLeft, + 'Stmt_Property->type' => $stripRight, 'Stmt_PropertyProperty->default' => $stripEquals, 'Stmt_Return->expr' => $stripBoth, 'Stmt_StaticVar->default' => $stripEquals, @@ -1225,29 +1252,32 @@ protected function initializeInsertionMap() { if ($this->insertionMap) return; // TODO: "yield" where both key and value are inserted doesn't work + // [$find, $beforeToken, $extraLeft, $extraRight] $this->insertionMap = [ - 'Expr_ArrayDimFetch->dim' => ['[', null, null], - 'Expr_ArrayItem->key' => [null, null, ' => '], - 'Expr_Closure->returnType' => [')', ' : ', null], - 'Expr_Ternary->if' => ['?', ' ', ' '], - 'Expr_Yield->key' => [\T_YIELD, null, ' => '], - 'Expr_Yield->value' => [\T_YIELD, ' ', null], - 'Param->type' => [null, null, ' '], - 'Param->default' => [null, ' = ', null], - 'Stmt_Break->num' => [\T_BREAK, ' ', null], - 'Stmt_ClassMethod->returnType' => [')', ' : ', null], - 'Stmt_Class->extends' => [null, ' extends ', null], + 'Expr_ArrayDimFetch->dim' => ['[', false, null, null], + 'Expr_ArrayItem->key' => [null, false, null, ' => '], + 'Expr_ArrowFunction->returnType' => [')', false, ' : ', null], + 'Expr_Closure->returnType' => [')', false, ' : ', null], + 'Expr_Ternary->if' => ['?', false, ' ', ' '], + 'Expr_Yield->key' => [\T_YIELD, false, null, ' => '], + 'Expr_Yield->value' => [\T_YIELD, false, ' ', null], + 'Param->type' => [null, false, null, ' '], + 'Param->default' => [null, false, ' = ', null], + 'Stmt_Break->num' => [\T_BREAK, false, ' ', null], + 'Stmt_ClassMethod->returnType' => [')', false, ' : ', null], + 'Stmt_Class->extends' => [null, false, ' extends ', null], 'Expr_PrintableNewAnonClass->extends' => [null, ' extends ', null], - 'Stmt_Continue->num' => [\T_CONTINUE, ' ', null], - 'Stmt_Foreach->keyVar' => [\T_AS, null, ' => '], - 'Stmt_Function->returnType' => [')', ' : ', null], - 'Stmt_If->else' => [null, ' ', null], - 'Stmt_Namespace->name' => [\T_NAMESPACE, ' ', null], - 'Stmt_PropertyProperty->default' => [null, ' = ', null], - 'Stmt_Return->expr' => [\T_RETURN, ' ', null], - 'Stmt_StaticVar->default' => [null, ' = ', null], - //'Stmt_TraitUseAdaptation_Alias->newName' => [T_AS, ' ', null], // TODO - 'Stmt_TryCatch->finally' => [null, ' ', null], + 'Stmt_Continue->num' => [\T_CONTINUE, false, ' ', null], + 'Stmt_Foreach->keyVar' => [\T_AS, false, null, ' => '], + 'Stmt_Function->returnType' => [')', false, ' : ', null], + 'Stmt_If->else' => [null, false, ' ', null], + 'Stmt_Namespace->name' => [\T_NAMESPACE, false, ' ', null], + 'Stmt_Property->type' => [\T_VARIABLE, true, null, ' '], + 'Stmt_PropertyProperty->default' => [null, false, ' = ', null], + 'Stmt_Return->expr' => [\T_RETURN, false, ' ', null], + 'Stmt_StaticVar->default' => [null, false, ' = ', null], + //'Stmt_TraitUseAdaptation_Alias->newName' => [T_AS, false, ' ', null], // TODO + 'Stmt_TryCatch->finally' => [null, false, ' ', null], // 'Expr_Exit->expr': Complicated due to optional () // 'Stmt_Case->cond': Conversion from default to case @@ -1270,6 +1300,7 @@ protected function initializeListInsertionMap() { // comma-separated lists 'Expr_Array->items' => ', ', + 'Expr_ArrowFunction->params' => ', ', 'Expr_Closure->params' => ', ', 'Expr_Closure->uses' => ', ', 'Expr_FuncCall->args' => ', ', @@ -1323,6 +1354,59 @@ protected function initializeListInsertionMap() { 'Stmt_TraitUse->adaptations' => "\n", 'Stmt_TryCatch->stmts' => "\n", 'Stmt_While->stmts' => "\n", + + // dummy for top-level context + 'File->stmts' => "\n", + ]; + } + + protected function initializeEmptyListInsertionMap() { + if ($this->emptyListInsertionMap) return; + + // TODO Insertion into empty statement lists. + + // [$find, $extraLeft, $extraRight] + $this->emptyListInsertionMap = [ + 'Expr_ArrowFunction->params' => ['(', '', ''], + 'Expr_Closure->uses' => [')', ' use(', ')'], + 'Expr_Closure->params' => ['(', '', ''], + 'Expr_FuncCall->args' => ['(', '', ''], + 'Expr_MethodCall->args' => ['(', '', ''], + 'Expr_New->args' => ['(', '', ''], + 'Expr_PrintableNewAnonClass->args' => ['(', '', ''], + 'Expr_PrintableNewAnonClass->implements' => [null, ' implements ', ''], + 'Expr_StaticCall->args' => ['(', '', ''], + 'Stmt_Class->implements' => [null, ' implements ', ''], + 'Stmt_ClassMethod->params' => ['(', '', ''], + 'Stmt_Interface->extends' => [null, ' extends ', ''], + 'Stmt_Function->params' => ['(', '', ''], + + /* These cannot be empty to start with: + * Expr_Isset->vars + * Stmt_Catch->types + * Stmt_Const->consts + * Stmt_ClassConst->consts + * Stmt_Declare->declares + * Stmt_Echo->exprs + * Stmt_Global->vars + * Stmt_GroupUse->uses + * Stmt_Property->props + * Stmt_StaticVar->vars + * Stmt_TraitUse->traits + * Stmt_TraitUseAdaptation_Precedence->insteadof + * Stmt_Unset->vars + * Stmt_Use->uses + */ + + /* TODO + * Stmt_If->elseifs + * Stmt_TryCatch->catches + * Expr_Array->items + * Expr_List->items + * Stmt_For->init + * Stmt_For->cond + * Stmt_For->loop + */ ]; } diff --git a/vendor/nikic/php-parser/phpunit.xml.dist b/vendor/nikic/php-parser/phpunit.xml.dist index b375637b940ba0bc6551340d2b8f122843649ad1..5271264cbf1c7e5b22b6068ea3a973237abfc1de 100644 --- a/vendor/nikic/php-parser/phpunit.xml.dist +++ b/vendor/nikic/php-parser/phpunit.xml.dist @@ -1,6 +1,8 @@ <?xml version="1.0" encoding="UTF-8"?> -<phpunit backupGlobals="false" +<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:noNamespaceSchemaLocation="vendor/phpunit/phpunit/phpunit.xsd" + backupGlobals="false" colors="true" beStrictAboutTestsThatDoNotTestAnything="false" bootstrap="./test/bootstrap.php"> diff --git a/vendor/nikic/php-parser/test/PhpParser/Builder/ClassTest.php b/vendor/nikic/php-parser/test/PhpParser/Builder/ClassTest.php index fe324d766ca9f1846ebc8472d2433df43f2876b8..2cfa78723112737b7c69c4e40181a1510db76ad6 100644 --- a/vendor/nikic/php-parser/test/PhpParser/Builder/ClassTest.php +++ b/vendor/nikic/php-parser/test/PhpParser/Builder/ClassTest.php @@ -6,9 +6,8 @@ use PhpParser\Node; use PhpParser\Node\Name; use PhpParser\Node\Stmt; -use PHPUnit\Framework\TestCase; -class ClassTest extends TestCase +class ClassTest extends \PHPUnit\Framework\TestCase { protected function createClassBuilder($class) { return new Class_($class); @@ -123,39 +122,31 @@ public function testDocComment() { ); } - /** - * @expectedException \LogicException - * @expectedExceptionMessage Unexpected node of type "Stmt_Echo" - */ public function testInvalidStmtError() { + $this->expectException(\LogicException::class); + $this->expectExceptionMessage('Unexpected node of type "Stmt_Echo"'); $this->createClassBuilder('Test') ->addStmt(new Stmt\Echo_([])) ; } - /** - * @expectedException \LogicException - * @expectedExceptionMessage Doc comment must be a string or an instance of PhpParser\Comment\Doc - */ public function testInvalidDocComment() { + $this->expectException(\LogicException::class); + $this->expectExceptionMessage('Doc comment must be a string or an instance of PhpParser\Comment\Doc'); $this->createClassBuilder('Test') ->setDocComment(new Comment('Test')); } - /** - * @expectedException \LogicException - * @expectedExceptionMessage Name cannot be empty - */ public function testEmptyName() { + $this->expectException(\LogicException::class); + $this->expectExceptionMessage('Name cannot be empty'); $this->createClassBuilder('Test') ->extend(''); } - /** - * @expectedException \LogicException - * @expectedExceptionMessage Name must be a string or an instance of Node\Name - */ public function testInvalidName() { + $this->expectException(\LogicException::class); + $this->expectExceptionMessage('Name must be a string or an instance of Node\Name'); $this->createClassBuilder('Test') ->extend(['Foo']); } diff --git a/vendor/nikic/php-parser/test/PhpParser/Builder/FunctionTest.php b/vendor/nikic/php-parser/test/PhpParser/Builder/FunctionTest.php index a2c62192240ab6642a8f95af24e8659057fc3863..c17045b83f39c399a99c971a343727fc8a3449d1 100644 --- a/vendor/nikic/php-parser/test/PhpParser/Builder/FunctionTest.php +++ b/vendor/nikic/php-parser/test/PhpParser/Builder/FunctionTest.php @@ -8,9 +8,8 @@ use PhpParser\Node\Expr\Variable; use PhpParser\Node\Scalar\String_; use PhpParser\Node\Stmt; -use PHPUnit\Framework\TestCase; -class FunctionTest extends TestCase +class FunctionTest extends \PHPUnit\Framework\TestCase { public function createFunctionBuilder($name) { return new Function_($name); @@ -92,29 +91,23 @@ public function testReturnType() { ], []), $node); } - /** - * @expectedException \LogicException - * @expectedExceptionMessage void type cannot be nullable - */ public function testInvalidNullableVoidType() { + $this->expectException(\LogicException::class); + $this->expectExceptionMessage('void type cannot be nullable'); $this->createFunctionBuilder('test')->setReturnType('?void'); } - /** - * @expectedException \LogicException - * @expectedExceptionMessage Expected parameter node, got "Name" - */ public function testInvalidParamError() { + $this->expectException(\LogicException::class); + $this->expectExceptionMessage('Expected parameter node, got "Name"'); $this->createFunctionBuilder('test') ->addParam(new Node\Name('foo')) ; } - /** - * @expectedException \LogicException - * @expectedExceptionMessage Expected statement or expression node - */ public function testAddNonStmt() { + $this->expectException(\LogicException::class); + $this->expectExceptionMessage('Expected statement or expression node'); $this->createFunctionBuilder('test') ->addStmt(new Node\Name('Test')); } diff --git a/vendor/nikic/php-parser/test/PhpParser/Builder/InterfaceTest.php b/vendor/nikic/php-parser/test/PhpParser/Builder/InterfaceTest.php index 2c926b6059fafd8080f2e0e5d61e6a7e93016618..7f7f56a2700f4cce8042c03e2638dda8cecc33ee 100644 --- a/vendor/nikic/php-parser/test/PhpParser/Builder/InterfaceTest.php +++ b/vendor/nikic/php-parser/test/PhpParser/Builder/InterfaceTest.php @@ -6,9 +6,8 @@ use PhpParser\Node; use PhpParser\Node\Scalar\DNumber; use PhpParser\Node\Stmt; -use PHPUnit\Framework\TestCase; -class InterfaceTest extends TestCase +class InterfaceTest extends \PHPUnit\Framework\TestCase { /** @var Interface_ */ protected $builder; @@ -79,11 +78,9 @@ public function testDocComment() { ]), $node); } - /** - * @expectedException \LogicException - * @expectedExceptionMessage Unexpected node of type "Stmt_PropertyProperty" - */ public function testInvalidStmtError() { + $this->expectException(\LogicException::class); + $this->expectExceptionMessage('Unexpected node of type "Stmt_PropertyProperty"'); $this->builder->addStmt(new Stmt\PropertyProperty('invalid')); } diff --git a/vendor/nikic/php-parser/test/PhpParser/Builder/MethodTest.php b/vendor/nikic/php-parser/test/PhpParser/Builder/MethodTest.php index 0decbed0d7636a2438a6a1638a29814f0fbb9247..529f0354973e72ecb8e2ad27dcf4a3484a267503 100644 --- a/vendor/nikic/php-parser/test/PhpParser/Builder/MethodTest.php +++ b/vendor/nikic/php-parser/test/PhpParser/Builder/MethodTest.php @@ -8,9 +8,8 @@ use PhpParser\Node\Expr\Variable; use PhpParser\Node\Scalar\String_; use PhpParser\Node\Stmt; -use PHPUnit\Framework\TestCase; -class MethodTest extends TestCase +class MethodTest extends \PHPUnit\Framework\TestCase { public function createMethodBuilder($name) { return new Method($name); @@ -135,33 +134,27 @@ public function testReturnType() { ], []), $node); } - /** - * @expectedException \LogicException - * @expectedExceptionMessage Cannot add statements to an abstract method - */ public function testAddStmtToAbstractMethodError() { + $this->expectException(\LogicException::class); + $this->expectExceptionMessage('Cannot add statements to an abstract method'); $this->createMethodBuilder('test') ->makeAbstract() ->addStmt(new Print_(new String_('test'))) ; } - /** - * @expectedException \LogicException - * @expectedExceptionMessage Cannot make method with statements abstract - */ public function testMakeMethodWithStmtsAbstractError() { + $this->expectException(\LogicException::class); + $this->expectExceptionMessage('Cannot make method with statements abstract'); $this->createMethodBuilder('test') ->addStmt(new Print_(new String_('test'))) ->makeAbstract() ; } - /** - * @expectedException \LogicException - * @expectedExceptionMessage Expected parameter node, got "Name" - */ public function testInvalidParamError() { + $this->expectException(\LogicException::class); + $this->expectExceptionMessage('Expected parameter node, got "Name"'); $this->createMethodBuilder('test') ->addParam(new Node\Name('foo')) ; diff --git a/vendor/nikic/php-parser/test/PhpParser/Builder/NamespaceTest.php b/vendor/nikic/php-parser/test/PhpParser/Builder/NamespaceTest.php index b8dce39c265e6d08ced65ae7f994f1ccf0990976..689001bcbe4bc3f28af0718fcf7573c0e140ade6 100644 --- a/vendor/nikic/php-parser/test/PhpParser/Builder/NamespaceTest.php +++ b/vendor/nikic/php-parser/test/PhpParser/Builder/NamespaceTest.php @@ -5,9 +5,8 @@ use PhpParser\Comment\Doc; use PhpParser\Node; use PhpParser\Node\Stmt; -use PHPUnit\Framework\TestCase; -class NamespaceTest extends TestCase +class NamespaceTest extends \PHPUnit\Framework\TestCase { protected function createNamespaceBuilder($fqn) { return new Namespace_($fqn); diff --git a/vendor/nikic/php-parser/test/PhpParser/Builder/ParamTest.php b/vendor/nikic/php-parser/test/PhpParser/Builder/ParamTest.php index d33189212ebec4f678f3c5233a71cff65105fc6b..c9cbfcac0fdf7cd8bf3834a0e3d041fb10dd16df 100644 --- a/vendor/nikic/php-parser/test/PhpParser/Builder/ParamTest.php +++ b/vendor/nikic/php-parser/test/PhpParser/Builder/ParamTest.php @@ -5,9 +5,8 @@ use PhpParser\Node; use PhpParser\Node\Expr; use PhpParser\Node\Scalar; -use PHPUnit\Framework\TestCase; -class ParamTest extends TestCase +class ParamTest extends \PHPUnit\Framework\TestCase { public function createParamBuilder($name) { return new Param($name); @@ -80,9 +79,9 @@ public function provideTestDefaultValues() { } /** - * @dataProvider provideTestTypeHints + * @dataProvider provideTestTypes */ - public function testTypeHints($typeHint, $expectedType) { + public function testTypes($typeHint, $expectedType) { $node = $this->createParamBuilder('test') ->setTypeHint($typeHint) ->getNode() @@ -100,7 +99,7 @@ public function testTypeHints($typeHint, $expectedType) { $this->assertEquals($expectedType, $type); } - public function provideTestTypeHints() { + public function provideTestTypes() { return [ ['array', new Node\Identifier('array')], ['callable', new Node\Identifier('callable')], @@ -129,20 +128,16 @@ public function provideTestTypeHints() { ]; } - /** - * @expectedException \LogicException - * @expectedExceptionMessage Parameter type cannot be void - */ public function testVoidTypeError() { - $this->createParamBuilder('test')->setTypeHint('void'); + $this->expectException(\LogicException::class); + $this->expectExceptionMessage('Parameter type cannot be void'); + $this->createParamBuilder('test')->setType('void'); } - /** - * @expectedException \LogicException - * @expectedExceptionMessage Type must be a string, or an instance of Name, Identifier or NullableType - */ public function testInvalidTypeError() { - $this->createParamBuilder('test')->setTypeHint(new \stdClass); + $this->expectException(\LogicException::class); + $this->expectExceptionMessage('Type must be a string, or an instance of Name, Identifier or NullableType'); + $this->createParamBuilder('test')->setType(new \stdClass); } public function testByRef() { diff --git a/vendor/nikic/php-parser/test/PhpParser/Builder/PropertyTest.php b/vendor/nikic/php-parser/test/PhpParser/Builder/PropertyTest.php index d7a5a70e26f494d2a45df4a0f088d2bfadb98ec4..a15cd43c769b9627e93f4f5d2f1ea666d300c2fc 100644 --- a/vendor/nikic/php-parser/test/PhpParser/Builder/PropertyTest.php +++ b/vendor/nikic/php-parser/test/PhpParser/Builder/PropertyTest.php @@ -7,9 +7,8 @@ use PhpParser\Node\Name; use PhpParser\Node\Scalar; use PhpParser\Node\Stmt; -use PHPUnit\Framework\TestCase; -class PropertyTest extends TestCase +class PropertyTest extends \PHPUnit\Framework\TestCase { public function createPropertyBuilder($name) { return new Property($name); diff --git a/vendor/nikic/php-parser/test/PhpParser/Builder/TraitTest.php b/vendor/nikic/php-parser/test/PhpParser/Builder/TraitTest.php index 666769dc3aa8be9eda95808c781380a8b744651e..4d99ef8870fe597fc6f299d98713153366c8f62b 100644 --- a/vendor/nikic/php-parser/test/PhpParser/Builder/TraitTest.php +++ b/vendor/nikic/php-parser/test/PhpParser/Builder/TraitTest.php @@ -5,9 +5,8 @@ use PhpParser\Comment; use PhpParser\Node\Name; use PhpParser\Node\Stmt; -use PHPUnit\Framework\TestCase; -class TraitTest extends TestCase +class TraitTest extends \PHPUnit\Framework\TestCase { protected function createTraitBuilder($class) { return new Trait_($class); @@ -37,11 +36,9 @@ public function testStmtAddition() { ]), $trait); } - /** - * @expectedException \LogicException - * @expectedExceptionMessage Unexpected node of type "Stmt_Echo" - */ public function testInvalidStmtError() { + $this->expectException(\LogicException::class); + $this->expectExceptionMessage('Unexpected node of type "Stmt_Echo"'); $this->createTraitBuilder('Test') ->addStmt(new Stmt\Echo_([])) ; diff --git a/vendor/nikic/php-parser/test/PhpParser/Builder/TraitUseAdaptationTest.php b/vendor/nikic/php-parser/test/PhpParser/Builder/TraitUseAdaptationTest.php new file mode 100644 index 0000000000000000000000000000000000000000..4961ccfac971c547eb93d4ab57d3c46efa2a9c60 --- /dev/null +++ b/vendor/nikic/php-parser/test/PhpParser/Builder/TraitUseAdaptationTest.php @@ -0,0 +1,106 @@ +<?php declare(strict_types=1); + +namespace PhpParser\Builder; + +use PhpParser\Node\Name; +use PhpParser\Node\Stmt; +use PhpParser\Node\Stmt\Class_; + +class TraitUseAdaptationTest extends \PHPUnit\Framework\TestCase +{ + protected function createTraitUseAdaptationBuilder($trait, $method) { + return new TraitUseAdaptation($trait, $method); + } + + public function testAsMake() { + $builder = $this->createTraitUseAdaptationBuilder(null, 'foo'); + + $this->assertEquals( + new Stmt\TraitUseAdaptation\Alias(null, 'foo', null, 'bar'), + (clone $builder)->as('bar')->getNode() + ); + + $this->assertEquals( + new Stmt\TraitUseAdaptation\Alias(null, 'foo', Class_::MODIFIER_PUBLIC, null), + (clone $builder)->makePublic()->getNode() + ); + + $this->assertEquals( + new Stmt\TraitUseAdaptation\Alias(null, 'foo', Class_::MODIFIER_PROTECTED, null), + (clone $builder)->makeProtected()->getNode() + ); + + $this->assertEquals( + new Stmt\TraitUseAdaptation\Alias(null, 'foo', Class_::MODIFIER_PRIVATE, null), + (clone $builder)->makePrivate()->getNode() + ); + } + + public function testInsteadof() { + $node = $this->createTraitUseAdaptationBuilder('SomeTrait', 'foo') + ->insteadof('AnotherTrait') + ->getNode() + ; + + $this->assertEquals( + new Stmt\TraitUseAdaptation\Precedence( + new Name('SomeTrait'), + 'foo', + [new Name('AnotherTrait')] + ), + $node + ); + } + + public function testAsOnNotAlias() { + $this->expectException(\LogicException::class); + $this->expectExceptionMessage('Cannot set alias for not alias adaptation buider'); + $this->createTraitUseAdaptationBuilder('Test', 'foo') + ->insteadof('AnotherTrait') + ->as('bar') + ; + } + + public function testInsteadofOnNotPrecedence() { + $this->expectException(\LogicException::class); + $this->expectExceptionMessage('Cannot add overwritten traits for not precedence adaptation buider'); + $this->createTraitUseAdaptationBuilder('Test', 'foo') + ->as('bar') + ->insteadof('AnotherTrait') + ; + } + + public function testInsteadofWithoutTrait() { + $this->expectException(\LogicException::class); + $this->expectExceptionMessage('Precedence adaptation must have trait'); + $this->createTraitUseAdaptationBuilder(null, 'foo') + ->insteadof('AnotherTrait') + ; + } + + public function testMakeOnNotAlias() { + $this->expectException(\LogicException::class); + $this->expectExceptionMessage('Cannot set access modifier for not alias adaptation buider'); + $this->createTraitUseAdaptationBuilder('Test', 'foo') + ->insteadof('AnotherTrait') + ->makePublic() + ; + } + + public function testMultipleMake() { + $this->expectException(\LogicException::class); + $this->expectExceptionMessage('Multiple access type modifiers are not allowed'); + $this->createTraitUseAdaptationBuilder(null, 'foo') + ->makePrivate() + ->makePublic() + ; + } + + public function testUndefinedType() { + $this->expectException(\LogicException::class); + $this->expectExceptionMessage('Type of adaptation is not defined'); + $this->createTraitUseAdaptationBuilder(null, 'foo') + ->getNode() + ; + } +} diff --git a/vendor/nikic/php-parser/test/PhpParser/Builder/TraitUseTest.php b/vendor/nikic/php-parser/test/PhpParser/Builder/TraitUseTest.php new file mode 100644 index 0000000000000000000000000000000000000000..8d20dfbd7c91bd5babb8ed82b0bb44bcab242393 --- /dev/null +++ b/vendor/nikic/php-parser/test/PhpParser/Builder/TraitUseTest.php @@ -0,0 +1,52 @@ +<?php declare(strict_types=1); + +namespace PhpParser\Builder; + +use PhpParser\Node\Name; +use PhpParser\Node\Stmt; + +class TraitUseTest extends \PHPUnit\Framework\TestCase +{ + protected function createTraitUseBuilder(...$traits) { + return new TraitUse(...$traits); + } + + public function testAnd() { + $node = $this->createTraitUseBuilder('SomeTrait') + ->and('AnotherTrait') + ->getNode() + ; + + $this->assertEquals( + new Stmt\TraitUse([ + new Name('SomeTrait'), + new Name('AnotherTrait') + ]), + $node + ); + } + + public function testWith() { + $node = $this->createTraitUseBuilder('SomeTrait') + ->with(new Stmt\TraitUseAdaptation\Alias(null, 'foo', null, 'bar')) + ->with((new TraitUseAdaptation(null, 'test'))->as('baz')) + ->getNode() + ; + + $this->assertEquals( + new Stmt\TraitUse([new Name('SomeTrait')], [ + new Stmt\TraitUseAdaptation\Alias(null, 'foo', null, 'bar'), + new Stmt\TraitUseAdaptation\Alias(null, 'test', null, 'baz') + ]), + $node + ); + } + + public function testInvalidAdaptationNode() { + $this->expectException(\LogicException::class); + $this->expectExceptionMessage('Adaptation must have type TraitUseAdaptation'); + $this->createTraitUseBuilder('Test') + ->with(new Stmt\Echo_([])) + ; + } +} diff --git a/vendor/nikic/php-parser/test/PhpParser/Builder/UseTest.php b/vendor/nikic/php-parser/test/PhpParser/Builder/UseTest.php index 85c1d77dfc8c291ff9e09cddfc874a5f7244c59c..f17da59b425b35c6e55ba8a560b71dc28615e882 100644 --- a/vendor/nikic/php-parser/test/PhpParser/Builder/UseTest.php +++ b/vendor/nikic/php-parser/test/PhpParser/Builder/UseTest.php @@ -1,11 +1,12 @@ <?php declare(strict_types=1); +namespace PhpParser\Builder; + use PhpParser\Builder; use PhpParser\Node\Name; use PhpParser\Node\Stmt; -use PHPUnit\Framework\TestCase; -class UseTest extends TestCase +class UseTest extends \PHPUnit\Framework\TestCase { protected function createUseBuilder($name, $type = Stmt\Use_::TYPE_NORMAL) { return new Builder\Use_($name, $type); @@ -26,5 +27,10 @@ public function testCreation() { $this->assertEquals(new Stmt\Use_([ new Stmt\UseUse(new Name('foo\bar'), 'foo') ], Stmt\Use_::TYPE_FUNCTION), $node); + + $node = $this->createUseBuilder('foo\BAR', Stmt\Use_::TYPE_CONSTANT)->as('FOO')->getNode(); + $this->assertEquals(new Stmt\Use_([ + new Stmt\UseUse(new Name('foo\BAR'), 'FOO') + ], Stmt\Use_::TYPE_CONSTANT), $node); } } diff --git a/vendor/nikic/php-parser/test/PhpParser/BuilderFactoryTest.php b/vendor/nikic/php-parser/test/PhpParser/BuilderFactoryTest.php index 465f600f5b286cdc8f13fae8dc2cd7e4724b011f..a80e1c58144ec21604e9c18d113ba3b832dfb048 100644 --- a/vendor/nikic/php-parser/test/PhpParser/BuilderFactoryTest.php +++ b/vendor/nikic/php-parser/test/PhpParser/BuilderFactoryTest.php @@ -2,7 +2,6 @@ namespace PhpParser; -use PhpParser\Builder; use PhpParser\Node\Arg; use PhpParser\Node\Expr; use PhpParser\Node\Expr\BinaryOp\Concat; @@ -10,10 +9,8 @@ use PhpParser\Node\Name; use PhpParser\Node\Scalar\LNumber; use PhpParser\Node\Scalar\String_; -use PHPUnit\Framework\TestCase; -use Symfony\Component\Yaml\Tests\A; -class BuilderFactoryTest extends TestCase +class BuilderFactoryTest extends \PHPUnit\Framework\TestCase { /** * @dataProvider provideTestFactory @@ -25,15 +22,17 @@ public function testFactory($methodName, $className) { public function provideTestFactory() { return [ - ['namespace', Builder\Namespace_::class], - ['class', Builder\Class_::class], - ['interface', Builder\Interface_::class], - ['trait', Builder\Trait_::class], - ['method', Builder\Method::class], - ['function', Builder\Function_::class], - ['property', Builder\Property::class], - ['param', Builder\Param::class], - ['use', Builder\Use_::class], + ['namespace', Builder\Namespace_::class], + ['class', Builder\Class_::class], + ['interface', Builder\Interface_::class], + ['trait', Builder\Trait_::class], + ['method', Builder\Method::class], + ['function', Builder\Function_::class], + ['property', Builder\Property::class], + ['param', Builder\Param::class], + ['use', Builder\Use_::class], + ['useFunction', Builder\Use_::class], + ['useConst', Builder\Use_::class], ]; } @@ -67,19 +66,15 @@ public function testConcat() { ); } - /** - * @expectedException \LogicException - * @expectedExceptionMessage Expected at least two expressions - */ public function testConcatOneError() { + $this->expectException(\LogicException::class); + $this->expectExceptionMessage('Expected at least two expressions'); (new BuilderFactory())->concat("a"); } - /** - * @expectedException \LogicException - * @expectedExceptionMessage Expected string or Expr - */ public function testConcatInvalidExpr() { + $this->expectException(\LogicException::class); + $this->expectExceptionMessage('Expected string or Expr'); (new BuilderFactory())->concat("a", 42); } @@ -188,47 +183,85 @@ public function testConstFetches() { ); } - /** - * @expectedException \LogicException - * @expectedExceptionMessage Expected string or instance of Node\Identifier - */ + public function testVar() { + $factory = new BuilderFactory(); + $this->assertEquals( + new Expr\Variable("foo"), + $factory->var("foo") + ); + $this->assertEquals( + new Expr\Variable(new Expr\Variable("foo")), + $factory->var($factory->var("foo")) + ); + } + + public function testPropertyFetch() { + $f = new BuilderFactory(); + $this->assertEquals( + new Expr\PropertyFetch(new Expr\Variable('foo'), 'bar'), + $f->propertyFetch($f->var('foo'), 'bar') + ); + $this->assertEquals( + new Expr\PropertyFetch(new Expr\Variable('foo'), 'bar'), + $f->propertyFetch($f->var('foo'), new Identifier('bar')) + ); + $this->assertEquals( + new Expr\PropertyFetch(new Expr\Variable('foo'), new Expr\Variable('bar')), + $f->propertyFetch($f->var('foo'), $f->var('bar')) + ); + } + public function testInvalidIdentifier() { + $this->expectException(\LogicException::class); + $this->expectExceptionMessage('Expected string or instance of Node\Identifier'); (new BuilderFactory())->classConstFetch('Foo', new Expr\Variable('foo')); } - /** - * @expectedException \LogicException - * @expectedExceptionMessage Expected string or instance of Node\Identifier or Node\Expr - */ public function testInvalidIdentifierOrExpr() { + $this->expectException(\LogicException::class); + $this->expectExceptionMessage('Expected string or instance of Node\Identifier or Node\Expr'); (new BuilderFactory())->staticCall('Foo', new Name('bar')); } - /** - * @expectedException \LogicException - * @expectedExceptionMessage Name must be a string or an instance of Node\Name or Node\Expr - */ public function testInvalidNameOrExpr() { + $this->expectException(\LogicException::class); + $this->expectExceptionMessage('Name must be a string or an instance of Node\Name or Node\Expr'); (new BuilderFactory())->funcCall(new Node\Stmt\Return_()); } + public function testInvalidVar() { + $this->expectException(\LogicException::class); + $this->expectExceptionMessage('Variable name must be string or Expr'); + (new BuilderFactory())->var(new Node\Stmt\Return_()); + } + public function testIntegration() { $factory = new BuilderFactory; $node = $factory->namespace('Name\Space') ->addStmt($factory->use('Foo\Bar\SomeOtherClass')) ->addStmt($factory->use('Foo\Bar')->as('A')) + ->addStmt($factory->useFunction('strlen')) + ->addStmt($factory->useConst('PHP_VERSION')) ->addStmt($factory ->class('SomeClass') ->extend('SomeOtherClass') ->implement('A\Few', '\Interfaces') ->makeAbstract() + ->addStmt($factory->useTrait('FirstTrait')) + + ->addStmt($factory->useTrait('SecondTrait', 'ThirdTrait') + ->and('AnotherTrait') + ->with($factory->traitUseAdaptation('foo')->as('bar')) + ->with($factory->traitUseAdaptation('AnotherTrait', 'baz')->as('test')) + ->with($factory->traitUseAdaptation('AnotherTrait', 'func')->insteadof('SecondTrait'))) + ->addStmt($factory->method('firstMethod')) ->addStmt($factory->method('someMethod') ->makePublic() ->makeAbstract() - ->addParam($factory->param('someParam')->setTypeHint('SomeClass')) + ->addParam($factory->param('someParam')->setType('SomeClass')) ->setDocComment('/** * This method does something. * @@ -254,8 +287,16 @@ public function testIntegration() { use Foo\Bar\SomeOtherClass; use Foo\Bar as A; +use function strlen; +use const PHP_VERSION; abstract class SomeClass extends SomeOtherClass implements A\Few, \Interfaces { + use FirstTrait; + use SecondTrait, ThirdTrait, AnotherTrait { + foo as bar; + AnotherTrait::baz as test; + AnotherTrait::func insteadof SecondTrait; + } protected $someProperty; private $anotherProperty = array(1, 2, 3); function firstMethod() diff --git a/vendor/nikic/php-parser/test/PhpParser/CodeParsingTest.php b/vendor/nikic/php-parser/test/PhpParser/CodeParsingTest.php index 3bdab812e32999d0d612ac508441e4bdc98c17a0..24e93dd522074967950c9cb4969e20fdeb4f7621 100644 --- a/vendor/nikic/php-parser/test/PhpParser/CodeParsingTest.php +++ b/vendor/nikic/php-parser/test/PhpParser/CodeParsingTest.php @@ -5,8 +5,6 @@ use PhpParser\Node\Expr; use PhpParser\Node\Stmt; -require_once __DIR__ . '/CodeTestAbstract.php'; - class CodeParsingTest extends CodeTestAbstract { /** @@ -52,7 +50,8 @@ public function createParsers(array $modes) { ]; } - private function getParseOutput(Parser $parser, $code, array $modes) { + // Must be public for updateTests.php + public function getParseOutput(Parser $parser, $code, array $modes) { $dumpPositions = isset($modes['positions']); $errors = new ErrorHandler\Collecting; @@ -78,9 +77,9 @@ public function provideTestParse() { private function formatErrorMessage(Error $e, $code) { if ($e->hasColumnInfo()) { return $e->getMessageWithColumnInfo($code); - } else { - return $e->getMessage(); } + + return $e->getMessage(); } private function checkAttributes($stmts) { diff --git a/vendor/nikic/php-parser/test/PhpParser/CodeTestAbstract.php b/vendor/nikic/php-parser/test/PhpParser/CodeTestAbstract.php index 5eaf9d1b26dc694e36ad1e76c54e8a2956855ed6..f5f408755cbb473052a878da2a82b5b9ee49b8e9 100644 --- a/vendor/nikic/php-parser/test/PhpParser/CodeTestAbstract.php +++ b/vendor/nikic/php-parser/test/PhpParser/CodeTestAbstract.php @@ -2,11 +2,7 @@ namespace PhpParser; -use PHPUnit\Framework\TestCase; - -require_once __DIR__ . '/CodeTestParser.php'; - -abstract class CodeTestAbstract extends TestCase +abstract class CodeTestAbstract extends \PHPUnit\Framework\TestCase { protected function getTests($directory, $fileExtension, $chunksPerTest = 2) { $parser = new CodeTestParser; diff --git a/vendor/nikic/php-parser/test/PhpParser/CommentTest.php b/vendor/nikic/php-parser/test/PhpParser/CommentTest.php index 7b6c2aabe9af015ddd63139590db6fc9f5891672..409841aae193bcc099cf7bca1d08afa742ce41bc 100644 --- a/vendor/nikic/php-parser/test/PhpParser/CommentTest.php +++ b/vendor/nikic/php-parser/test/PhpParser/CommentTest.php @@ -2,9 +2,7 @@ namespace PhpParser; -use PHPUnit\Framework\TestCase; - -class CommentTest extends TestCase +class CommentTest extends \PHPUnit\Framework\TestCase { public function testGetSet() { $comment = new Comment('/* Some comment */', 1, 10, 2); diff --git a/vendor/nikic/php-parser/test/PhpParser/ConstExprEvaluatorTest.php b/vendor/nikic/php-parser/test/PhpParser/ConstExprEvaluatorTest.php index d0a83fff9fbbf35fc49b50bd05d8a42578ec6f45..02d992e5992afb5f8a25a4816e26ee827f7a8b56 100644 --- a/vendor/nikic/php-parser/test/PhpParser/ConstExprEvaluatorTest.php +++ b/vendor/nikic/php-parser/test/PhpParser/ConstExprEvaluatorTest.php @@ -4,9 +4,8 @@ use PhpParser\Node\Expr; use PhpParser\Node\Scalar; -use PHPUnit\Framework\TestCase; -class ConstExprEvaluatorTest extends TestCase +class ConstExprEvaluatorTest extends \PHPUnit\Framework\TestCase { /** @dataProvider provideTestEvaluate */ public function testEvaluate($exprString, $expected) { @@ -73,11 +72,9 @@ public function provideTestEvaluate() { ]; } - /** - * @expectedException \PhpParser\ConstExprEvaluationException - * @expectedExceptionMessage Expression of type Expr_Variable cannot be evaluated - */ public function testEvaluateFails() { + $this->expectException(ConstExprEvaluationException::class); + $this->expectExceptionMessage('Expression of type Expr_Variable cannot be evaluated'); $evaluator = new ConstExprEvaluator(); $evaluator->evaluateDirectly(new Expr\Variable('a')); } diff --git a/vendor/nikic/php-parser/test/PhpParser/ErrorHandler/CollectingTest.php b/vendor/nikic/php-parser/test/PhpParser/ErrorHandler/CollectingTest.php index 842f131ddcad260491741d1b9ca540b404deeff1..a20101a8b627e3e158053e1bfb7effd711119ff6 100644 --- a/vendor/nikic/php-parser/test/PhpParser/ErrorHandler/CollectingTest.php +++ b/vendor/nikic/php-parser/test/PhpParser/ErrorHandler/CollectingTest.php @@ -3,9 +3,8 @@ namespace PhpParser\ErrorHandler; use PhpParser\Error; -use PHPUnit\Framework\TestCase; -class CollectingTest extends TestCase +class CollectingTest extends \PHPUnit\Framework\TestCase { public function testHandleError() { $errorHandler = new Collecting(); diff --git a/vendor/nikic/php-parser/test/PhpParser/ErrorHandler/ThrowingTest.php b/vendor/nikic/php-parser/test/PhpParser/ErrorHandler/ThrowingTest.php index 31d349ae42b14e270a059eb25402a049ae7dd119..be641ec7a947f306cf4ed480b6afb9a90653dfd4 100644 --- a/vendor/nikic/php-parser/test/PhpParser/ErrorHandler/ThrowingTest.php +++ b/vendor/nikic/php-parser/test/PhpParser/ErrorHandler/ThrowingTest.php @@ -3,15 +3,12 @@ namespace PhpParser\ErrorHandler; use PhpParser\Error; -use PHPUnit\Framework\TestCase; -class ThrowingTest extends TestCase +class ThrowingTest extends \PHPUnit\Framework\TestCase { - /** - * @expectedException \PhpParser\Error - * @expectedExceptionMessage Test - */ public function testHandleError() { + $this->expectException(Error::class); + $this->expectExceptionMessage('Test'); $errorHandler = new Throwing(); $errorHandler->handleError(new Error('Test')); } diff --git a/vendor/nikic/php-parser/test/PhpParser/ErrorTest.php b/vendor/nikic/php-parser/test/PhpParser/ErrorTest.php index 4b9d73a16065f4d5b070b34d6a75059855f969c6..cc2d3fa5c8d39efa6a8d9a203b2b9f0d31ad8f25 100644 --- a/vendor/nikic/php-parser/test/PhpParser/ErrorTest.php +++ b/vendor/nikic/php-parser/test/PhpParser/ErrorTest.php @@ -2,9 +2,7 @@ namespace PhpParser; -use PHPUnit\Framework\TestCase; - -class ErrorTest extends TestCase +class ErrorTest extends \PHPUnit\Framework\TestCase { public function testConstruct() { $attributes = [ @@ -94,11 +92,9 @@ public function testNoColumnInfo() { } } - /** - * @expectedException \RuntimeException - * @expectedExceptionMessage Invalid position information - */ public function testInvalidPosInfo() { + $this->expectException(\RuntimeException::class); + $this->expectExceptionMessage('Invalid position information'); $error = new Error('Some error', [ 'startFilePos' => 10, 'endFilePos' => 11, diff --git a/vendor/nikic/php-parser/test/PhpParser/Internal/DifferTest.php b/vendor/nikic/php-parser/test/PhpParser/Internal/DifferTest.php index 0cf878b6f45efb5d26215e8e5722634fa8e5fefc..6fac3fd365723e39d03bbdc44f21cda910d71f4c 100644 --- a/vendor/nikic/php-parser/test/PhpParser/Internal/DifferTest.php +++ b/vendor/nikic/php-parser/test/PhpParser/Internal/DifferTest.php @@ -2,9 +2,7 @@ namespace PhpParser\Internal; -use PHPUnit\Framework\TestCase; - -class DifferTest extends TestCase +class DifferTest extends \PHPUnit\Framework\TestCase { private function formatDiffString(array $diff) { $diffStr = ''; diff --git a/vendor/nikic/php-parser/test/PhpParser/JsonDecoderTest.php b/vendor/nikic/php-parser/test/PhpParser/JsonDecoderTest.php index 7ef60787bd7c361bdb894e54a67f02a2ad4efca4..d5cb05973e247b5b6f381f8ad9b7fc5766735244 100644 --- a/vendor/nikic/php-parser/test/PhpParser/JsonDecoderTest.php +++ b/vendor/nikic/php-parser/test/PhpParser/JsonDecoderTest.php @@ -2,9 +2,7 @@ namespace PhpParser; -use PHPUnit\Framework\TestCase; - -class JsonDecoderTest extends TestCase +class JsonDecoderTest extends \PHPUnit\Framework\TestCase { public function testRoundTrip() { $code = <<<'PHP' diff --git a/vendor/nikic/php-parser/test/PhpParser/Lexer/EmulativeTest.php b/vendor/nikic/php-parser/test/PhpParser/Lexer/EmulativeTest.php index 3a33ba820760ed02735fe316d305534b3ebbf853..a53c379b796dd978b1976b70898000636b338c15 100644 --- a/vendor/nikic/php-parser/test/PhpParser/Lexer/EmulativeTest.php +++ b/vendor/nikic/php-parser/test/PhpParser/Lexer/EmulativeTest.php @@ -2,11 +2,10 @@ namespace PhpParser\Lexer; +use PhpParser\ErrorHandler; use PhpParser\LexerTest; use PhpParser\Parser\Tokens; -require_once __DIR__ . '/../LexerTest.php'; - class EmulativeTest extends LexerTest { protected function getLexer(array $options = []) { @@ -27,7 +26,7 @@ public function testReplaceKeywords($keyword, $expectedToken) { /** * @dataProvider provideTestReplaceKeywords */ - public function testNoReplaceKeywordsAfterObjectOperator($keyword) { + public function testNoReplaceKeywordsAfterObjectOperator(string $keyword) { $lexer = $this->getLexer(); $lexer->startLexing('<?php ->' . $keyword); @@ -36,8 +35,23 @@ public function testNoReplaceKeywordsAfterObjectOperator($keyword) { $this->assertSame(0, $lexer->getNextToken()); } + /** + * @dataProvider provideTestReplaceKeywords + */ + public function testNoReplaceKeywordsAfterObjectOperatorWithSpaces(string $keyword) { + $lexer = $this->getLexer(); + $lexer->startLexing('<?php -> ' . $keyword); + + $this->assertSame(Tokens::T_OBJECT_OPERATOR, $lexer->getNextToken()); + $this->assertSame(Tokens::T_STRING, $lexer->getNextToken()); + $this->assertSame(0, $lexer->getNextToken()); + } + public function provideTestReplaceKeywords() { return [ + // PHP 7.4 + ['fn', Tokens::T_FN], + // PHP 5.5 ['finally', Tokens::T_FINALLY], ['yield', Tokens::T_YIELD], @@ -63,12 +77,11 @@ public function testLexNewFeatures($code, array $expectedTokens) { $lexer = $this->getLexer(); $lexer->startLexing('<?php ' . $code); - foreach ($expectedTokens as $expectedToken) { - list($expectedTokenType, $expectedTokenText) = $expectedToken; - $this->assertSame($expectedTokenType, $lexer->getNextToken($text)); - $this->assertSame($expectedTokenText, $text); + $tokens = []; + while (0 !== $token = $lexer->getNextToken($text)) { + $tokens[] = [$token, $text]; } - $this->assertSame(0, $lexer->getNextToken()); + $this->assertSame($expectedTokens, $tokens); } /** @@ -85,8 +98,35 @@ public function testLeaveStuffAloneInStrings($code) { $this->assertSame(0, $lexer->getNextToken()); } + /** + * @dataProvider provideTestLexNewFeatures + */ + public function testErrorAfterEmulation($code) { + $errorHandler = new ErrorHandler\Collecting; + $lexer = $this->getLexer(); + $lexer->startLexing('<?php ' . $code . "\0", $errorHandler); + + $errors = $errorHandler->getErrors(); + $this->assertCount(1, $errors); + + $error = $errors[0]; + $this->assertSame('Unexpected null byte', $error->getRawMessage()); + + $attrs = $error->getAttributes(); + $expPos = strlen('<?php ' . $code); + $expLine = 1 + substr_count('<?php ' . $code, "\n"); + $this->assertSame($expPos, $attrs['startFilePos']); + $this->assertSame($expPos, $attrs['endFilePos']); + $this->assertSame($expLine, $attrs['startLine']); + $this->assertSame($expLine, $attrs['endLine']); + } + public function provideTestLexNewFeatures() { return [ + // PHP 7.4 + ['??=', [ + [Tokens::T_COALESCE_EQUAL, '??='], + ]], ['yield from', [ [Tokens::T_YIELD_FROM, 'yield from'], ]], @@ -128,6 +168,43 @@ public function provideTestLexNewFeatures() { [Tokens::T_END_HEREDOC, 'NOWDOC'], [ord(';'), ';'], ]], + + // Flexible heredoc/nowdoc + ["<<<LABEL\nLABEL,", [ + [Tokens::T_START_HEREDOC, "<<<LABEL\n"], + [Tokens::T_END_HEREDOC, "LABEL"], + [ord(','), ','], + ]], + ["<<<LABEL\n LABEL,", [ + [Tokens::T_START_HEREDOC, "<<<LABEL\n"], + [Tokens::T_END_HEREDOC, " LABEL"], + [ord(','), ','], + ]], + ["<<<LABEL\n Foo\n LABEL;", [ + [Tokens::T_START_HEREDOC, "<<<LABEL\n"], + [Tokens::T_ENCAPSED_AND_WHITESPACE, " Foo\n"], + [Tokens::T_END_HEREDOC, " LABEL"], + [ord(';'), ';'], + ]], + ["<<<A\n A,<<<A\n A,", [ + [Tokens::T_START_HEREDOC, "<<<A\n"], + [Tokens::T_END_HEREDOC, " A"], + [ord(','), ','], + [Tokens::T_START_HEREDOC, "<<<A\n"], + [Tokens::T_END_HEREDOC, " A"], + [ord(','), ','], + ]], + ["<<<LABEL\nLABELNOPE\nLABEL\n", [ + [Tokens::T_START_HEREDOC, "<<<LABEL\n"], + [Tokens::T_ENCAPSED_AND_WHITESPACE, "LABELNOPE\n"], + [Tokens::T_END_HEREDOC, "LABEL"], + ]], + // Interpretation changed + ["<<<LABEL\n LABEL\nLABEL\n", [ + [Tokens::T_START_HEREDOC, "<<<LABEL\n"], + [Tokens::T_END_HEREDOC, " LABEL"], + [Tokens::T_STRING, "LABEL"], + ]], ]; } } diff --git a/vendor/nikic/php-parser/test/PhpParser/LexerTest.php b/vendor/nikic/php-parser/test/PhpParser/LexerTest.php index c34cc71e47ffa4095b42543b7d26a813d70d981b..f24c64d5126d842959428412ccc8c74eb3c4504e 100644 --- a/vendor/nikic/php-parser/test/PhpParser/LexerTest.php +++ b/vendor/nikic/php-parser/test/PhpParser/LexerTest.php @@ -3,9 +3,8 @@ namespace PhpParser; use PhpParser\Parser\Tokens; -use PHPUnit\Framework\TestCase; -class LexerTest extends TestCase +class LexerTest extends \PHPUnit\Framework\TestCase { /* To allow overwriting in parent class */ protected function getLexer(array $options = []) { @@ -235,11 +234,9 @@ public function provideTestHaltCompiler() { ]; } - /** - * @expectedException \PhpParser\Error - * @expectedExceptionMessage __HALT_COMPILER must be followed by "();" - */ public function testHandleHaltCompilerError() { + $this->expectException(Error::class); + $this->expectExceptionMessage('__HALT_COMPILER must be followed by "();"'); $lexer = $this->getLexer(); $lexer->startLexing('<?php ... __halt_compiler invalid ();'); diff --git a/vendor/nikic/php-parser/test/PhpParser/NameContextTest.php b/vendor/nikic/php-parser/test/PhpParser/NameContextTest.php index 41c3460d4eae92f4b85e1ee16495f628340ac5a9..ee8458b67ec4c10dcf83e2f77f7a147d03ce6db3 100644 --- a/vendor/nikic/php-parser/test/PhpParser/NameContextTest.php +++ b/vendor/nikic/php-parser/test/PhpParser/NameContextTest.php @@ -4,9 +4,8 @@ use PhpParser\Node\Name; use PhpParser\Node\Stmt\Use_; -use PHPUnit\Framework\TestCase; -class NameContextTest extends TestCase +class NameContextTest extends \PHPUnit\Framework\TestCase { /** * @dataProvider provideTestGetPossibleNames diff --git a/vendor/nikic/php-parser/test/PhpParser/Node/IdentifierTest.php b/vendor/nikic/php-parser/test/PhpParser/Node/IdentifierTest.php index fa2e72a861c07f0d0f7ce72f84737edbfda7baf9..2bd58fc8d018aee12642b58ad147c8f25f75c9a3 100644 --- a/vendor/nikic/php-parser/test/PhpParser/Node/IdentifierTest.php +++ b/vendor/nikic/php-parser/test/PhpParser/Node/IdentifierTest.php @@ -2,9 +2,7 @@ namespace PhpParser\Node; -use PHPUnit\Framework\TestCase; - -class IdentifierTest extends TestCase +class IdentifierTest extends \PHPUnit\Framework\TestCase { public function testToString() { $identifier = new Identifier('Foo'); diff --git a/vendor/nikic/php-parser/test/PhpParser/Node/NameTest.php b/vendor/nikic/php-parser/test/PhpParser/Node/NameTest.php index 8fe9ed63e0c37f6cfe10984c03e6445bd82b1dac..5e69ebba3cb35c4c0177cca6e4bd00cbe20a3299 100644 --- a/vendor/nikic/php-parser/test/PhpParser/Node/NameTest.php +++ b/vendor/nikic/php-parser/test/PhpParser/Node/NameTest.php @@ -2,9 +2,7 @@ namespace PhpParser\Node; -use PHPUnit\Framework\TestCase; - -class NameTest extends TestCase +class NameTest extends \PHPUnit\Framework\TestCase { public function testConstruct() { $name = new Name(['foo', 'bar']); @@ -51,35 +49,27 @@ public function testSlice() { $this->assertNull($name->slice(-2, -2)); } - /** - * @expectedException \OutOfBoundsException - * @expectedExceptionMessage Offset 4 is out of bounds - */ public function testSliceOffsetTooLarge() { + $this->expectException(\OutOfBoundsException::class); + $this->expectExceptionMessage('Offset 4 is out of bounds'); (new Name('foo\bar\baz'))->slice(4); } - /** - * @expectedException \OutOfBoundsException - * @expectedExceptionMessage Offset -4 is out of bounds - */ public function testSliceOffsetTooSmall() { + $this->expectException(\OutOfBoundsException::class); + $this->expectExceptionMessage('Offset -4 is out of bounds'); (new Name('foo\bar\baz'))->slice(-4); } - /** - * @expectedException \OutOfBoundsException - * @expectedExceptionMessage Length 4 is out of bounds - */ public function testSliceLengthTooLarge() { + $this->expectException(\OutOfBoundsException::class); + $this->expectExceptionMessage('Length 4 is out of bounds'); (new Name('foo\bar\baz'))->slice(0, 4); } - /** - * @expectedException \OutOfBoundsException - * @expectedExceptionMessage Length -4 is out of bounds - */ public function testSliceLengthTooSmall() { + $this->expectException(\OutOfBoundsException::class); + $this->expectExceptionMessage('Length -4 is out of bounds'); (new Name('foo\bar\baz'))->slice(0, -4); } @@ -131,27 +121,21 @@ public function testNameTypes() { $this->assertSame('namespace\foo', $name->toCodeString()); } - /** - * @expectedException \InvalidArgumentException - * @expectedExceptionMessage Expected string, array of parts or Name instance - */ public function testInvalidArg() { + $this->expectException(\InvalidArgumentException::class); + $this->expectExceptionMessage('Expected string, array of parts or Name instance'); Name::concat('foo', new \stdClass); } - /** - * @expectedException \InvalidArgumentException - * @expectedExceptionMessage Name cannot be empty - */ public function testInvalidEmptyString() { + $this->expectException(\InvalidArgumentException::class); + $this->expectExceptionMessage('Name cannot be empty'); new Name(''); } - /** - * @expectedException \InvalidArgumentException - * @expectedExceptionMessage Name cannot be empty - */ public function testInvalidEmptyArray() { + $this->expectException(\InvalidArgumentException::class); + $this->expectExceptionMessage('Name cannot be empty'); new Name([]); } diff --git a/vendor/nikic/php-parser/test/PhpParser/Node/Scalar/MagicConstTest.php b/vendor/nikic/php-parser/test/PhpParser/Node/Scalar/MagicConstTest.php index 42b94874a25062bbbaf54c7fee9f3a44754141d2..c8ae433b00b4c68d8880789a9f75b089ba2a5bdf 100644 --- a/vendor/nikic/php-parser/test/PhpParser/Node/Scalar/MagicConstTest.php +++ b/vendor/nikic/php-parser/test/PhpParser/Node/Scalar/MagicConstTest.php @@ -2,9 +2,7 @@ namespace PhpParser\Node\Scalar; -use PHPUnit\Framework\TestCase; - -class MagicConstTest extends TestCase +class MagicConstTest extends \PHPUnit\Framework\TestCase { /** * @dataProvider provideTestGetName diff --git a/vendor/nikic/php-parser/test/PhpParser/Node/Scalar/StringTest.php b/vendor/nikic/php-parser/test/PhpParser/Node/Scalar/StringTest.php index d7629f35876de971c096c155e1601de3a223b285..814a7758fc32ea82f8a0a87d93ea6d37b206c09c 100644 --- a/vendor/nikic/php-parser/test/PhpParser/Node/Scalar/StringTest.php +++ b/vendor/nikic/php-parser/test/PhpParser/Node/Scalar/StringTest.php @@ -2,9 +2,7 @@ namespace PhpParser\Node\Scalar; -use PHPUnit\Framework\TestCase; - -class StringTest extends TestCase +class StringTest extends \PHPUnit\Framework\TestCase { /** * @dataProvider provideTestParseEscapeSequences diff --git a/vendor/nikic/php-parser/test/PhpParser/Node/Stmt/ClassConstTest.php b/vendor/nikic/php-parser/test/PhpParser/Node/Stmt/ClassConstTest.php index a5b6ce4608b10794340ba599950aa82bb168a7fc..9a1b4697ca99cae5e7b4020dbfdeafea6ed7e658 100644 --- a/vendor/nikic/php-parser/test/PhpParser/Node/Stmt/ClassConstTest.php +++ b/vendor/nikic/php-parser/test/PhpParser/Node/Stmt/ClassConstTest.php @@ -2,9 +2,7 @@ namespace PhpParser\Node\Stmt; -use PHPUnit\Framework\TestCase; - -class ClassConstTest extends TestCase +class ClassConstTest extends \PHPUnit\Framework\TestCase { /** * @dataProvider provideModifiers diff --git a/vendor/nikic/php-parser/test/PhpParser/Node/Stmt/ClassMethodTest.php b/vendor/nikic/php-parser/test/PhpParser/Node/Stmt/ClassMethodTest.php index 4000495e608e03e5af8b1827c8d6c047b4ac9599..51c5f1c2cfa6f1918ca560f6b1ce7e902281d6bd 100644 --- a/vendor/nikic/php-parser/test/PhpParser/Node/Stmt/ClassMethodTest.php +++ b/vendor/nikic/php-parser/test/PhpParser/Node/Stmt/ClassMethodTest.php @@ -5,9 +5,8 @@ use PhpParser\Node\Expr\Variable; use PhpParser\Node\Name; use PhpParser\Node\Param; -use PHPUnit\Framework\TestCase; -class ClassMethodTest extends TestCase +class ClassMethodTest extends \PHPUnit\Framework\TestCase { /** * @dataProvider provideModifiers diff --git a/vendor/nikic/php-parser/test/PhpParser/Node/Stmt/ClassTest.php b/vendor/nikic/php-parser/test/PhpParser/Node/Stmt/ClassTest.php index 5d2b5dc03e25998badd372282b78d740b6f7c6d5..9b7c7de1cc4442ba74a7e295061cef24cc4bf22a 100644 --- a/vendor/nikic/php-parser/test/PhpParser/Node/Stmt/ClassTest.php +++ b/vendor/nikic/php-parser/test/PhpParser/Node/Stmt/ClassTest.php @@ -2,9 +2,7 @@ namespace PhpParser\Node\Stmt; -use PHPUnit\Framework\TestCase; - -class ClassTest extends TestCase +class ClassTest extends \PHPUnit\Framework\TestCase { public function testIsAbstract() { $class = new Class_('Foo', ['type' => Class_::MODIFIER_ABSTRACT]); diff --git a/vendor/nikic/php-parser/test/PhpParser/Node/Stmt/InterfaceTest.php b/vendor/nikic/php-parser/test/PhpParser/Node/Stmt/InterfaceTest.php index e3e90e47cd67461f3b8c66efeeed2281c02230d7..da6e8eb6fed37143f0189c7228f596ad9d298955 100644 --- a/vendor/nikic/php-parser/test/PhpParser/Node/Stmt/InterfaceTest.php +++ b/vendor/nikic/php-parser/test/PhpParser/Node/Stmt/InterfaceTest.php @@ -3,9 +3,8 @@ namespace PhpParser\Node\Stmt; use PhpParser\Node; -use PHPUnit\Framework\TestCase; -class InterfaceTest extends TestCase +class InterfaceTest extends \PHPUnit\Framework\TestCase { public function testGetMethods() { $methods = [ diff --git a/vendor/nikic/php-parser/test/PhpParser/Node/Stmt/PropertyTest.php b/vendor/nikic/php-parser/test/PhpParser/Node/Stmt/PropertyTest.php index 39387f96fd6e582415ba9b8bc5ada975b24b7c0a..e5d69fba5de027402baee0c16fc96737c2333f24 100644 --- a/vendor/nikic/php-parser/test/PhpParser/Node/Stmt/PropertyTest.php +++ b/vendor/nikic/php-parser/test/PhpParser/Node/Stmt/PropertyTest.php @@ -2,9 +2,7 @@ namespace PhpParser\Node\Stmt; -use PHPUnit\Framework\TestCase; - -class PropertyTest extends TestCase +class PropertyTest extends \PHPUnit\Framework\TestCase { /** * @dataProvider provideModifiers diff --git a/vendor/nikic/php-parser/test/PhpParser/NodeAbstractTest.php b/vendor/nikic/php-parser/test/PhpParser/NodeAbstractTest.php index c8c785db6591de28f773ee1af50550310fb01799..071b8f2a3a66ffc7c3f0e8e300de59a342b45243 100644 --- a/vendor/nikic/php-parser/test/PhpParser/NodeAbstractTest.php +++ b/vendor/nikic/php-parser/test/PhpParser/NodeAbstractTest.php @@ -2,8 +2,6 @@ namespace PhpParser; -use PHPUnit\Framework\TestCase; - class DummyNode extends NodeAbstract { public $subNode1; @@ -25,7 +23,7 @@ public function getType() : string { } } -class NodeAbstractTest extends TestCase +class NodeAbstractTest extends \PHPUnit\Framework\TestCase { public function provideNodes() { $attributes = [ diff --git a/vendor/nikic/php-parser/test/PhpParser/NodeDumperTest.php b/vendor/nikic/php-parser/test/PhpParser/NodeDumperTest.php index 64d53117aa394800e892521b7420af18dfc20b3b..036c3d1ee55ec09d5d5ed281d8ef3383a8754ae6 100644 --- a/vendor/nikic/php-parser/test/PhpParser/NodeDumperTest.php +++ b/vendor/nikic/php-parser/test/PhpParser/NodeDumperTest.php @@ -2,9 +2,7 @@ namespace PhpParser; -use PHPUnit\Framework\TestCase; - -class NodeDumperTest extends TestCase +class NodeDumperTest extends \PHPUnit\Framework\TestCase { private function canonicalize($string) { return str_replace("\r\n", "\n", $string); @@ -55,6 +53,7 @@ public function provideTestDump() { value: Foo ) byRef: false + unpack: false ) ) )' @@ -98,11 +97,9 @@ public function testDumpWithPositions() { $this->assertSame($this->canonicalize($expected), $this->canonicalize($dump)); } - /** - * @expectedException \InvalidArgumentException - * @expectedExceptionMessage Can only dump nodes and arrays. - */ public function testError() { + $this->expectException(\InvalidArgumentException::class); + $this->expectExceptionMessage('Can only dump nodes and arrays.'); $dumper = new NodeDumper; $dumper->dump(new \stdClass); } diff --git a/vendor/nikic/php-parser/test/PhpParser/NodeFinderTest.php b/vendor/nikic/php-parser/test/PhpParser/NodeFinderTest.php index daf42729a6df127c1344d707f17fa66c6d6bcb4b..909738a738b2035dcba09697391945b7dba9e8e5 100644 --- a/vendor/nikic/php-parser/test/PhpParser/NodeFinderTest.php +++ b/vendor/nikic/php-parser/test/PhpParser/NodeFinderTest.php @@ -3,9 +3,8 @@ namespace PhpParser; use PhpParser\Node\Expr; -use PHPUnit\Framework\TestCase; -class NodeFinderTest extends TestCase +class NodeFinderTest extends \PHPUnit\Framework\TestCase { private function getStmtsAndVars() { $assign = new Expr\Assign(new Expr\Variable('a'), new Expr\BinaryOp\Concat( diff --git a/vendor/nikic/php-parser/test/PhpParser/NodeTraverserTest.php b/vendor/nikic/php-parser/test/PhpParser/NodeTraverserTest.php index 61c8e25bb08e19269d7ddcdbafca14a70cde0bfa..2daa9ceaf0c0d2fcc098eec8bc02bb71d7926149 100644 --- a/vendor/nikic/php-parser/test/PhpParser/NodeTraverserTest.php +++ b/vendor/nikic/php-parser/test/PhpParser/NodeTraverserTest.php @@ -4,10 +4,8 @@ use PhpParser\Node\Expr; use PhpParser\Node\Scalar\String_; -use PhpParser\NodeVisitor; -use PHPUnit\Framework\TestCase; -class NodeTraverserTest extends TestCase +class NodeTraverserTest extends \PHPUnit\Framework\TestCase { public function testNonModifying() { $str1Node = new String_('Foo'); @@ -43,32 +41,32 @@ public function testModifying() { // replace empty statements with string1 node $visitor1->expects($this->at(0))->method('beforeTraverse')->with([]) - ->will($this->returnValue([$str1Node])); + ->willReturn([$str1Node]); $visitor2->expects($this->at(0))->method('beforeTraverse')->with([$str1Node]); // replace string1 node with print node $visitor1->expects($this->at(1))->method('enterNode')->with($str1Node) - ->will($this->returnValue($printNode)); + ->willReturn($printNode); $visitor2->expects($this->at(1))->method('enterNode')->with($printNode); // replace string1 node with string2 node $visitor1->expects($this->at(2))->method('enterNode')->with($str1Node) - ->will($this->returnValue($str2Node)); + ->willReturn($str2Node); $visitor2->expects($this->at(2))->method('enterNode')->with($str2Node); // replace string2 node with string1 node again $visitor1->expects($this->at(3))->method('leaveNode')->with($str2Node) - ->will($this->returnValue($str1Node)); + ->willReturn($str1Node); $visitor2->expects($this->at(3))->method('leaveNode')->with($str1Node); // replace print node with string1 node again $visitor1->expects($this->at(4))->method('leaveNode')->with($printNode) - ->will($this->returnValue($str1Node)); + ->willReturn($str1Node); $visitor2->expects($this->at(4))->method('leaveNode')->with($str1Node); // replace string1 node with empty statements again $visitor1->expects($this->at(5))->method('afterTraverse')->with([$str1Node]) - ->will($this->returnValue([])); + ->willReturn([]); $visitor2->expects($this->at(5))->method('afterTraverse')->with([]); $traverser = new NodeTraverser; @@ -87,7 +85,7 @@ public function testRemove() { // remove the string1 node, leave the string2 node $visitor->expects($this->at(2))->method('leaveNode')->with($str1Node) - ->will($this->returnValue(NodeTraverser::REMOVE_NODE)); + ->willReturn(NodeTraverser::REMOVE_NODE); $traverser = new NodeTraverser; $traverser->addVisitor($visitor); @@ -106,7 +104,7 @@ public function testMerge() { // replace strMiddle with strR1 and strR2 by merge $visitor->expects($this->at(4))->method('leaveNode')->with($strMiddle) - ->will($this->returnValue([$strR1, $strR2])); + ->willReturn([$strR1, $strR2]); $traverser = new NodeTraverser; $traverser->addVisitor($visitor); @@ -117,11 +115,9 @@ public function testMerge() { ); } - /** - * @expectedException \LogicException - * @expectedExceptionMessage Invalid node structure: Contains nested arrays - */ public function testInvalidDeepArray() { + $this->expectException(\LogicException::class); + $this->expectExceptionMessage('Invalid node structure: Contains nested arrays'); $strNode = new String_('Foo'); $stmts = [[[$strNode]]]; @@ -141,7 +137,7 @@ public function testDontTraverseChildren() { $visitor2 = $this->getMockBuilder(NodeVisitor::class)->getMock(); $visitor1->expects($this->at(1))->method('enterNode')->with($printNode) - ->will($this->returnValue(NodeTraverser::DONT_TRAVERSE_CHILDREN)); + ->willReturn(NodeTraverser::DONT_TRAVERSE_CHILDREN); $visitor2->expects($this->at(1))->method('enterNode')->with($printNode); $visitor1->expects($this->at(2))->method('leaveNode')->with($printNode); @@ -152,7 +148,7 @@ public function testDontTraverseChildren() { $visitor1->expects($this->at(4))->method('enterNode')->with($mulNode); $visitor2->expects($this->at(4))->method('enterNode')->with($mulNode) - ->will($this->returnValue(NodeTraverser::DONT_TRAVERSE_CHILDREN)); + ->willReturn(NodeTraverser::DONT_TRAVERSE_CHILDREN); $visitor1->expects($this->at(5))->method('leaveNode')->with($mulNode); $visitor2->expects($this->at(5))->method('leaveNode')->with($mulNode); @@ -167,6 +163,42 @@ public function testDontTraverseChildren() { $this->assertEquals($stmts, $traverser->traverse($stmts)); } + public function testDontTraverseCurrentAndChildren() { + // print 'str'; -($foo * $foo); + $strNode = new String_('str'); + $printNode = new Expr\Print_($strNode); + $varNode = new Expr\Variable('foo'); + $mulNode = new Expr\BinaryOp\Mul($varNode, $varNode); + $divNode = new Expr\BinaryOp\Div($varNode, $varNode); + $negNode = new Expr\UnaryMinus($mulNode); + $stmts = [$printNode, $negNode]; + + $visitor1 = $this->getMockBuilder(NodeVisitor::class)->getMock(); + $visitor2 = $this->getMockBuilder(NodeVisitor::class)->getMock(); + + $visitor1->expects($this->at(1))->method('enterNode')->with($printNode) + ->willReturn(NodeTraverser::DONT_TRAVERSE_CURRENT_AND_CHILDREN); + $visitor1->expects($this->at(2))->method('leaveNode')->with($printNode); + + $visitor1->expects($this->at(3))->method('enterNode')->with($negNode); + $visitor2->expects($this->at(1))->method('enterNode')->with($negNode); + + $visitor1->expects($this->at(4))->method('enterNode')->with($mulNode) + ->willReturn(NodeTraverser::DONT_TRAVERSE_CURRENT_AND_CHILDREN); + $visitor1->expects($this->at(5))->method('leaveNode')->with($mulNode)->willReturn($divNode); + + $visitor1->expects($this->at(6))->method('leaveNode')->with($negNode); + $visitor2->expects($this->at(2))->method('leaveNode')->with($negNode); + + $traverser = new NodeTraverser; + $traverser->addVisitor($visitor1); + $traverser->addVisitor($visitor2); + + $resultStmts = $traverser->traverse($stmts); + + $this->assertInstanceOf(Expr\BinaryOp\Div::class, $resultStmts[1]->expr); + } + public function testStopTraversal() { $varNode1 = new Expr\Variable('a'); $varNode2 = new Expr\Variable('b'); @@ -178,7 +210,7 @@ public function testStopTraversal() { // From enterNode() with array parent $visitor = $this->getMockBuilder(NodeVisitor::class)->getMock(); $visitor->expects($this->at(1))->method('enterNode')->with($mulNode) - ->will($this->returnValue(NodeTraverser::STOP_TRAVERSAL)); + ->willReturn(NodeTraverser::STOP_TRAVERSAL); $visitor->expects($this->at(2))->method('afterTraverse'); $traverser = new NodeTraverser; $traverser->addVisitor($visitor); @@ -187,7 +219,7 @@ public function testStopTraversal() { // From enterNode with Node parent $visitor = $this->getMockBuilder(NodeVisitor::class)->getMock(); $visitor->expects($this->at(2))->method('enterNode')->with($varNode1) - ->will($this->returnValue(NodeTraverser::STOP_TRAVERSAL)); + ->willReturn(NodeTraverser::STOP_TRAVERSAL); $visitor->expects($this->at(3))->method('afterTraverse'); $traverser = new NodeTraverser; $traverser->addVisitor($visitor); @@ -196,7 +228,7 @@ public function testStopTraversal() { // From leaveNode with Node parent $visitor = $this->getMockBuilder(NodeVisitor::class)->getMock(); $visitor->expects($this->at(3))->method('leaveNode')->with($varNode1) - ->will($this->returnValue(NodeTraverser::STOP_TRAVERSAL)); + ->willReturn(NodeTraverser::STOP_TRAVERSAL); $visitor->expects($this->at(4))->method('afterTraverse'); $traverser = new NodeTraverser; $traverser->addVisitor($visitor); @@ -205,7 +237,7 @@ public function testStopTraversal() { // From leaveNode with array parent $visitor = $this->getMockBuilder(NodeVisitor::class)->getMock(); $visitor->expects($this->at(6))->method('leaveNode')->with($mulNode) - ->will($this->returnValue(NodeTraverser::STOP_TRAVERSAL)); + ->willReturn(NodeTraverser::STOP_TRAVERSAL); $visitor->expects($this->at(7))->method('afterTraverse'); $traverser = new NodeTraverser; $traverser->addVisitor($visitor); @@ -214,9 +246,9 @@ public function testStopTraversal() { // Check that pending array modifications are still carried out $visitor = $this->getMockBuilder(NodeVisitor::class)->getMock(); $visitor->expects($this->at(6))->method('leaveNode')->with($mulNode) - ->will($this->returnValue(NodeTraverser::REMOVE_NODE)); + ->willReturn(NodeTraverser::REMOVE_NODE); $visitor->expects($this->at(7))->method('enterNode')->with($printNode) - ->will($this->returnValue(NodeTraverser::STOP_TRAVERSAL)); + ->willReturn(NodeTraverser::STOP_TRAVERSAL); $visitor->expects($this->at(8))->method('afterTraverse'); $traverser = new NodeTraverser; $traverser->addVisitor($visitor); diff --git a/vendor/nikic/php-parser/test/PhpParser/NodeVisitor/FindingVisitorTest.php b/vendor/nikic/php-parser/test/PhpParser/NodeVisitor/FindingVisitorTest.php index 2e87600b6975787a27517165c1dde76a65dad40d..27cb6dd4801bef527f4cf1811061a03b3ca45279 100644 --- a/vendor/nikic/php-parser/test/PhpParser/NodeVisitor/FindingVisitorTest.php +++ b/vendor/nikic/php-parser/test/PhpParser/NodeVisitor/FindingVisitorTest.php @@ -5,9 +5,8 @@ use PhpParser\Node; use PhpParser\Node\Expr; use PhpParser\NodeTraverser; -use PHPUnit\Framework\TestCase; -class FindingVisitorTest extends TestCase +class FindingVisitorTest extends \PHPUnit\Framework\TestCase { public function testFindVariables() { $traverser = new NodeTraverser(); diff --git a/vendor/nikic/php-parser/test/PhpParser/NodeVisitor/FirstFindingVisitorTest.php b/vendor/nikic/php-parser/test/PhpParser/NodeVisitor/FirstFindingVisitorTest.php index 78bc1c7a077a7578810d09c773f0bf7dfc3006d9..9ae8932f92372874ee0d58d42558005090a6ee06 100644 --- a/vendor/nikic/php-parser/test/PhpParser/NodeVisitor/FirstFindingVisitorTest.php +++ b/vendor/nikic/php-parser/test/PhpParser/NodeVisitor/FirstFindingVisitorTest.php @@ -5,9 +5,8 @@ use PhpParser\Node; use PhpParser\Node\Expr; use PhpParser\NodeTraverser; -use PHPUnit\Framework\TestCase; -class FirstFindingVisitorTest extends TestCase +class FirstFindingVisitorTest extends \PHPUnit\Framework\TestCase { public function testFindFirstVariable() { $traverser = new NodeTraverser(); diff --git a/vendor/nikic/php-parser/test/PhpParser/NodeVisitor/NameResolverTest.php b/vendor/nikic/php-parser/test/PhpParser/NodeVisitor/NameResolverTest.php index 1ffd15aa8876b363fd12449098512921a8c995cd..571eaaea39e2e6ec256b9b7fcf35d61c50b0cfe0 100644 --- a/vendor/nikic/php-parser/test/PhpParser/NodeVisitor/NameResolverTest.php +++ b/vendor/nikic/php-parser/test/PhpParser/NodeVisitor/NameResolverTest.php @@ -7,16 +7,15 @@ use PhpParser\Node\Expr; use PhpParser\Node\Name; use PhpParser\Node\Stmt; -use PHPUnit\Framework\TestCase; -class NameResolverTest extends TestCase +class NameResolverTest extends \PHPUnit\Framework\TestCase { private function canonicalize($string) { return str_replace("\r\n", "\n", $string); } /** - * @covers PhpParser\NodeVisitor\NameResolver + * @covers \PhpParser\NodeVisitor\NameResolver */ public function testResolveNames() { $code = <<<'EOC' @@ -95,6 +94,13 @@ public function testResolveNames() { C; E; K; + + class ClassWithTypeProperties + { + public float $php = 7.4; + public ?Foo $person; + protected static ?bool $probability; + } } EOC; $expectedCode = <<<'EOC' @@ -163,6 +169,12 @@ public function testResolveNames() { \Y\T\B\C; \Y\T\D\E; \Z\T\K; + class ClassWithTypeProperties + { + public float $php = 7.4; + public ?\Baz\Foo $person; + protected static ?bool $probability; + } } EOC; @@ -181,7 +193,7 @@ public function testResolveNames() { } /** - * @covers PhpParser\NodeVisitor\NameResolver + * @covers \PhpParser\NodeVisitor\NameResolver */ public function testResolveLocations() { $code = <<<'EOC' @@ -200,8 +212,8 @@ interface A extends C, D { public function a(A $a) : A; } -function fn(A $a) : A {} -function fn2(array $a) : array {} +function f(A $a) : A {} +function f2(array $a) : array {} function(A $a) : A {}; function fn3(?A $a) : ?A {} @@ -237,10 +249,10 @@ interface A extends \NS\C, \NS\D { public function a(\NS\A $a) : \NS\A; } -function fn(\NS\A $a) : \NS\A +function f(\NS\A $a) : \NS\A { } -function fn2(array $a) : array +function f2(array $a) : array { } function (\NS\A $a) : \NS\A { diff --git a/vendor/nikic/php-parser/test/PhpParser/Parser/MultipleTest.php b/vendor/nikic/php-parser/test/PhpParser/Parser/MultipleTest.php index f7decb76c0a6c7cebbe3f4fea5168c548684b871..f89e7bf6280b56781797c035484f6cd26aaf50a7 100644 --- a/vendor/nikic/php-parser/test/PhpParser/Parser/MultipleTest.php +++ b/vendor/nikic/php-parser/test/PhpParser/Parser/MultipleTest.php @@ -9,8 +9,6 @@ use PhpParser\Node\Stmt; use PhpParser\ParserTest; -require_once __DIR__ . '/../ParserTest.php'; - class MultipleTest extends ParserTest { // This provider is for the generic parser tests, just pick an arbitrary order here @@ -84,11 +82,11 @@ public function testThrownError() { $parserA = $this->getMockBuilder(\PhpParser\Parser::class)->getMock(); $parserA->expects($this->at(0)) - ->method('parse')->will($this->throwException(new Error('FAIL A'))); + ->method('parse')->willThrowException(new Error('FAIL A')); $parserB = $this->getMockBuilder(\PhpParser\Parser::class)->getMock(); $parserB->expects($this->at(0)) - ->method('parse')->will($this->throwException(new Error('FAIL B'))); + ->method('parse')->willThrowException(new Error('FAIL B')); $parser = new Multiple([$parserA, $parserB]); $parser->parse('dummy'); diff --git a/vendor/nikic/php-parser/test/PhpParser/Parser/Php5Test.php b/vendor/nikic/php-parser/test/PhpParser/Parser/Php5Test.php index bb36a25179938903fe829aaf277bba99b38335c8..4386b5129a5cc258a87f85041f1098d4aba0327c 100644 --- a/vendor/nikic/php-parser/test/PhpParser/Parser/Php5Test.php +++ b/vendor/nikic/php-parser/test/PhpParser/Parser/Php5Test.php @@ -5,8 +5,6 @@ use PhpParser\Lexer; use PhpParser\ParserTest; -require_once __DIR__ . '/../ParserTest.php'; - class Php5Test extends ParserTest { protected function getParser(Lexer $lexer) { diff --git a/vendor/nikic/php-parser/test/PhpParser/Parser/Php7Test.php b/vendor/nikic/php-parser/test/PhpParser/Parser/Php7Test.php index e2e4b3a272a2aac4e43ba2c7594d4dfd5197dce5..22a4c5190cf923a3f17f0e0ea47580e28db99028 100644 --- a/vendor/nikic/php-parser/test/PhpParser/Parser/Php7Test.php +++ b/vendor/nikic/php-parser/test/PhpParser/Parser/Php7Test.php @@ -5,8 +5,6 @@ use PhpParser\Lexer; use PhpParser\ParserTest; -require_once __DIR__ . '/../ParserTest.php'; - class Php7Test extends ParserTest { protected function getParser(Lexer $lexer) { diff --git a/vendor/nikic/php-parser/test/PhpParser/ParserFactoryTest.php b/vendor/nikic/php-parser/test/PhpParser/ParserFactoryTest.php index 2c3ea2b70e159799911c69b279b4e82a3f901023..d50981f2a1297d425ebf704600d35158bcae678c 100644 --- a/vendor/nikic/php-parser/test/PhpParser/ParserFactoryTest.php +++ b/vendor/nikic/php-parser/test/PhpParser/ParserFactoryTest.php @@ -4,9 +4,8 @@ /* This test is very weak, because PHPUnit's assertEquals assertion is way too slow dealing with the * large objects involved here. So we just do some basic instanceof tests instead. */ -use PHPUnit\Framework\TestCase; -class ParserFactoryTest extends TestCase +class ParserFactoryTest extends \PHPUnit\Framework\TestCase { /** @dataProvider provideTestCreate */ public function testCreate($kind, $lexer, $expected) { diff --git a/vendor/nikic/php-parser/test/PhpParser/ParserTest.php b/vendor/nikic/php-parser/test/PhpParser/ParserTest.php index 9c4412dc19b29568ac82ac7bdd736af13c480efe..0f7f1b79f200038aa279ff23dec13271c1f85295 100644 --- a/vendor/nikic/php-parser/test/PhpParser/ParserTest.php +++ b/vendor/nikic/php-parser/test/PhpParser/ParserTest.php @@ -6,36 +6,29 @@ use PhpParser\Node\Scalar; use PhpParser\Node\Scalar\String_; use PhpParser\Node\Stmt; -use PHPUnit\Framework\TestCase; -abstract class ParserTest extends TestCase +abstract class ParserTest extends \PHPUnit\Framework\TestCase { /** @returns Parser */ abstract protected function getParser(Lexer $lexer); - /** - * @expectedException \PhpParser\Error - * @expectedExceptionMessage Syntax error, unexpected EOF on line 1 - */ public function testParserThrowsSyntaxError() { + $this->expectException(Error::class); + $this->expectExceptionMessage('Syntax error, unexpected EOF on line 1'); $parser = $this->getParser(new Lexer()); $parser->parse('<?php foo'); } - /** - * @expectedException \PhpParser\Error - * @expectedExceptionMessage Cannot use foo as self because 'self' is a special class name on line 1 - */ public function testParserThrowsSpecialError() { + $this->expectException(Error::class); + $this->expectExceptionMessage('Cannot use foo as self because \'self\' is a special class name on line 1'); $parser = $this->getParser(new Lexer()); $parser->parse('<?php use foo as self;'); } - /** - * @expectedException \PhpParser\Error - * @expectedExceptionMessage Unterminated comment on line 1 - */ public function testParserThrowsLexerError() { + $this->expectException(Error::class); + $this->expectExceptionMessage('Unterminated comment on line 1'); $parser = $this->getParser(new Lexer()); $parser->parse('<?php /*'); } @@ -109,11 +102,9 @@ function test($a) { ], $var->getAttributes()); } - /** - * @expectedException \RangeException - * @expectedExceptionMessage The lexer returned an invalid token (id=999, value=foobar) - */ public function testInvalidToken() { + $this->expectException(\RangeException::class); + $this->expectExceptionMessage('The lexer returned an invalid token (id=999, value=foobar)'); $lexer = new InvalidTokenLexer; $parser = $this->getParser($lexer); $parser->parse('dummy'); @@ -123,7 +114,7 @@ public function testInvalidToken() { * @dataProvider provideTestExtraAttributes */ public function testExtraAttributes($code, $expectedAttributes) { - $parser = $this->getParser(new Lexer); + $parser = $this->getParser(new Lexer\Emulative); $stmts = $parser->parse("<?php $code;"); $node = $stmts[0] instanceof Stmt\Expression ? $stmts[0]->expr : $stmts[0]; $attributes = $node->getAttributes(); @@ -152,17 +143,20 @@ public function provideTestExtraAttributes() { ['"foo$bar"', ['kind' => String_::KIND_DOUBLE_QUOTED]], ['b"foo$bar"', ['kind' => String_::KIND_DOUBLE_QUOTED]], ['B"foo$bar"', ['kind' => String_::KIND_DOUBLE_QUOTED]], - ["<<<'STR'\nSTR\n", ['kind' => String_::KIND_NOWDOC, 'docLabel' => 'STR']], - ["<<<STR\nSTR\n", ['kind' => String_::KIND_HEREDOC, 'docLabel' => 'STR']], - ["<<<\"STR\"\nSTR\n", ['kind' => String_::KIND_HEREDOC, 'docLabel' => 'STR']], - ["b<<<'STR'\nSTR\n", ['kind' => String_::KIND_NOWDOC, 'docLabel' => 'STR']], - ["B<<<'STR'\nSTR\n", ['kind' => String_::KIND_NOWDOC, 'docLabel' => 'STR']], - ["<<< \t 'STR'\nSTR\n", ['kind' => String_::KIND_NOWDOC, 'docLabel' => 'STR']], - ["<<<'\xff'\n\xff\n", ['kind' => String_::KIND_NOWDOC, 'docLabel' => "\xff"]], - ["<<<\"STR\"\n\$a\nSTR\n", ['kind' => String_::KIND_HEREDOC, 'docLabel' => 'STR']], - ["b<<<\"STR\"\n\$a\nSTR\n", ['kind' => String_::KIND_HEREDOC, 'docLabel' => 'STR']], - ["B<<<\"STR\"\n\$a\nSTR\n", ['kind' => String_::KIND_HEREDOC, 'docLabel' => 'STR']], - ["<<< \t \"STR\"\n\$a\nSTR\n", ['kind' => String_::KIND_HEREDOC, 'docLabel' => 'STR']], + ["<<<'STR'\nSTR\n", ['kind' => String_::KIND_NOWDOC, 'docLabel' => 'STR', 'docIndentation' => '']], + ["<<<STR\nSTR\n", ['kind' => String_::KIND_HEREDOC, 'docLabel' => 'STR', 'docIndentation' => '']], + ["<<<\"STR\"\nSTR\n", ['kind' => String_::KIND_HEREDOC, 'docLabel' => 'STR', 'docIndentation' => '']], + ["b<<<'STR'\nSTR\n", ['kind' => String_::KIND_NOWDOC, 'docLabel' => 'STR', 'docIndentation' => '']], + ["B<<<'STR'\nSTR\n", ['kind' => String_::KIND_NOWDOC, 'docLabel' => 'STR', 'docIndentation' => '']], + ["<<< \t 'STR'\nSTR\n", ['kind' => String_::KIND_NOWDOC, 'docLabel' => 'STR', 'docIndentation' => '']], + ["<<<'\xff'\n\xff\n", ['kind' => String_::KIND_NOWDOC, 'docLabel' => "\xff", 'docIndentation' => '']], + ["<<<\"STR\"\n\$a\nSTR\n", ['kind' => String_::KIND_HEREDOC, 'docLabel' => 'STR', 'docIndentation' => '']], + ["b<<<\"STR\"\n\$a\nSTR\n", ['kind' => String_::KIND_HEREDOC, 'docLabel' => 'STR', 'docIndentation' => '']], + ["B<<<\"STR\"\n\$a\nSTR\n", ['kind' => String_::KIND_HEREDOC, 'docLabel' => 'STR', 'docIndentation' => '']], + ["<<< \t \"STR\"\n\$a\nSTR\n", ['kind' => String_::KIND_HEREDOC, 'docLabel' => 'STR', 'docIndentation' => '']], + ["<<<STR\n STR\n", ['kind' => String_::KIND_HEREDOC, 'docLabel' => 'STR', 'docIndentation' => ' ']], + ["<<<STR\n\tSTR\n", ['kind' => String_::KIND_HEREDOC, 'docLabel' => 'STR', 'docIndentation' => "\t"]], + ["<<<'STR'\n Foo\n STR\n", ['kind' => String_::KIND_NOWDOC, 'docLabel' => 'STR', 'docIndentation' => ' ']], ["die", ['kind' => Expr\Exit_::KIND_DIE]], ["die('done')", ['kind' => Expr\Exit_::KIND_DIE]], ["exit", ['kind' => Expr\Exit_::KIND_EXIT]], @@ -172,6 +166,10 @@ public function provideTestExtraAttributes() { ["namespace Foo;", ['kind' => Stmt\Namespace_::KIND_SEMICOLON]], ["namespace Foo {}", ['kind' => Stmt\Namespace_::KIND_BRACED]], ["namespace {}", ['kind' => Stmt\Namespace_::KIND_BRACED]], + ["(float) 5.0", ['kind' => Expr\Cast\Double::KIND_FLOAT]], + ["(double) 5.0", ['kind' => Expr\Cast\Double::KIND_DOUBLE]], + ["(real) 5.0", ['kind' => Expr\Cast\Double::KIND_REAL]], + [" ( REAL ) 5.0", ['kind' => Expr\Cast\Double::KIND_REAL]], ]; } } diff --git a/vendor/nikic/php-parser/test/PhpParser/PrettyPrinterTest.php b/vendor/nikic/php-parser/test/PhpParser/PrettyPrinterTest.php index b1555719430ce146e5da084209b953233fb91315..e5b8a1aeae608675cdc47a16c569f9ac4900317b 100644 --- a/vendor/nikic/php-parser/test/PhpParser/PrettyPrinterTest.php +++ b/vendor/nikic/php-parser/test/PhpParser/PrettyPrinterTest.php @@ -12,8 +12,6 @@ use PhpParser\Node\Stmt; use PhpParser\PrettyPrinter\Standard; -require_once __DIR__ . '/CodeTestAbstract.php'; - class PrettyPrinterTest extends CodeTestAbstract { protected function doTestPrettyPrintMethod($method, $name, $code, $expected, $modeLine) { @@ -184,11 +182,9 @@ public function provideTestUnnaturalLiterals() { ]; } - /** - * @expectedException \LogicException - * @expectedExceptionMessage Cannot pretty-print AST with Error nodes - */ public function testPrettyPrintWithError() { + $this->expectException(\LogicException::class); + $this->expectExceptionMessage('Cannot pretty-print AST with Error nodes'); $stmts = [new Stmt\Expression( new Expr\PropertyFetch(new Expr\Variable('a'), new Expr\Error()) )]; @@ -196,11 +192,9 @@ public function testPrettyPrintWithError() { $prettyPrinter->prettyPrint($stmts); } - /** - * @expectedException \LogicException - * @expectedExceptionMessage Cannot pretty-print AST with Error nodes - */ public function testPrettyPrintWithErrorInClassConstFetch() { + $this->expectException(\LogicException::class); + $this->expectExceptionMessage('Cannot pretty-print AST with Error nodes'); $stmts = [new Stmt\Expression( new Expr\ClassConstFetch(new Name('Foo'), new Expr\Error()) )]; @@ -208,11 +202,9 @@ public function testPrettyPrintWithErrorInClassConstFetch() { $prettyPrinter->prettyPrint($stmts); } - /** - * @expectedException \LogicException - * @expectedExceptionMessage Cannot directly print EncapsedStringPart - */ public function testPrettyPrintEncapsedStringPart() { + $this->expectException(\LogicException::class); + $this->expectExceptionMessage('Cannot directly print EncapsedStringPart'); $expr = new Node\Scalar\EncapsedStringPart('foo'); $prettyPrinter = new PrettyPrinter\Standard; $prettyPrinter->prettyPrintExpr($expr); diff --git a/vendor/nikic/php-parser/test/code/formatPreservation/addingPropertyType.test b/vendor/nikic/php-parser/test/code/formatPreservation/addingPropertyType.test new file mode 100644 index 0000000000000000000000000000000000000000..2ef332b27eb4f652b958eae225a904f219c12f17 --- /dev/null +++ b/vendor/nikic/php-parser/test/code/formatPreservation/addingPropertyType.test @@ -0,0 +1,39 @@ +Adding property type +----- +<?php + +class A +{ + + public $a + = 1; +} +----- +$stmts[0]->stmts[0]->type = new Node\Identifier('string'); +----- +<?php + +class A +{ + + public string $a + = 1; +} +----- +<?php + +class A +{ + public + $b; +} +----- +$stmts[0]->stmts[0]->type = new Node\Identifier('int'); +----- +<?php + +class A +{ + public + int $b; +} diff --git a/vendor/nikic/php-parser/test/code/formatPreservation/anonClasses.test b/vendor/nikic/php-parser/test/code/formatPreservation/anonClasses.test index 7551059f75224fad89a1c7ab5598a4ca17971ff5..b7896f22fba9131c600f8feefdb8b4da9448981d 100644 --- a/vendor/nikic/php-parser/test/code/formatPreservation/anonClasses.test +++ b/vendor/nikic/php-parser/test/code/formatPreservation/anonClasses.test @@ -13,4 +13,16 @@ $new->args[] = new Expr\Variable('y'); <?php new class ($x, $y) -{ }; \ No newline at end of file +{ }; +----- +<?php +new class +{}; +----- +// Ignore name assigned to anon class +$new = $stmts[0]->expr; +$new->class->name = new Node\Identifier('Anon1'); +----- +<?php +new class +{}; \ No newline at end of file diff --git a/vendor/nikic/php-parser/test/code/formatPreservation/array_spread.test b/vendor/nikic/php-parser/test/code/formatPreservation/array_spread.test new file mode 100644 index 0000000000000000000000000000000000000000..ce83e1651a9b66d6612dec9fd5797c85b55e32cb --- /dev/null +++ b/vendor/nikic/php-parser/test/code/formatPreservation/array_spread.test @@ -0,0 +1,29 @@ +Array spread +----- +<?php +$items = [ +...$value +]; +----- +$array = $stmts[0]->expr->expr; +$array->items[] = new Expr\ArrayItem(new Expr\Variable('b')); +----- +<?php +$items = [ +...$value, $b +]; +----- +<?php +$items = +[ +... $value +]; +----- +$array = $stmts[0]->expr->expr; +$array->items[] = new Expr\ArrayItem(new Expr\Variable('c'), null, false, [], true); +----- +<?php +$items = +[ +... $value, ...$c +]; \ No newline at end of file diff --git a/vendor/nikic/php-parser/test/code/formatPreservation/arrow_function.test b/vendor/nikic/php-parser/test/code/formatPreservation/arrow_function.test new file mode 100644 index 0000000000000000000000000000000000000000..eeff36f7bb322b68a407c3a60d0042b35808e222 --- /dev/null +++ b/vendor/nikic/php-parser/test/code/formatPreservation/arrow_function.test @@ -0,0 +1,97 @@ +Arrow function +----- +<?php +fn($a) +=> +$a; +----- +$stmts[0]->expr->expr = new Expr\Variable('b'); +----- +<?php +fn($a) +=> +$b; +----- +<?php +fn( +$a +) => $a; +----- +$stmts[0]->expr->params[] = new Node\Param(new Expr\Variable('b')); +----- +<?php +fn( +$a, $b +) => $a; +----- +<?php +fn( +$a +) +=> +$a; +----- +// TODO: Format preserving currently not supported +$stmts[0]->expr->params = []; +----- +<?php +fn() => $a; +----- +<?php +fn($a) +: int +=> $a; +----- +$stmts[0]->expr->returnType = new Node\Identifier('bool'); +----- +<?php +fn($a) +: bool +=> $a; +----- +<?php +fn($a) +: int +=> $a; +----- +$stmts[0]->expr->returnType = null; +----- +<?php +fn($a) +=> $a; +----- +<?php +fn($a) +: int +=> $a; + +static fn($a) +: int +=> $a; +----- +// TODO: Format preserving currently not supported +$stmts[0]->expr->static = true; +$stmts[1]->expr->static = false; +----- +<?php +static fn($a): int => $a; + +fn($a): int => $a; +----- +<?php +fn($a) +: int +=> $a; + +fn&($a) +: int +=> $a; +----- +// TODO: Format preserving currently not supported +$stmts[0]->expr->byRef = true; +$stmts[1]->expr->byRef = false; +----- +<?php +fn&($a): int => $a; + +fn($a): int => $a; diff --git a/vendor/nikic/php-parser/test/code/formatPreservation/emptyListInsertion.test b/vendor/nikic/php-parser/test/code/formatPreservation/emptyListInsertion.test new file mode 100644 index 0000000000000000000000000000000000000000..ad3137bf68b30492c1697a8eb078c582839f7375 --- /dev/null +++ b/vendor/nikic/php-parser/test/code/formatPreservation/emptyListInsertion.test @@ -0,0 +1,110 @@ +Inserting into an empty list +----- +<?php +class +Test {} + +interface +Test {} +----- +$stmts[0]->implements[] = new Node\Name('Iface'); +$stmts[0]->implements[] = new Node\Name('Iface2'); +$stmts[1]->extends[] = new Node\Name('Iface'); +$stmts[1]->extends[] = new Node\Name('Iface2'); +----- +<?php +class +Test implements Iface, Iface2 {} + +interface +Test extends Iface, Iface2 {} +----- +<?php +function test +() {} + +class Test { + public function + test + () {} +} + +function +() {}; + +fn() +=> 42; +----- +$stmts[0]->params[] = new Node\Param(new Node\Expr\Variable('a')); +$stmts[0]->params[] = new Node\Param(new Node\Expr\Variable('b')); +$stmts[1]->stmts[0]->params[] = new Node\Param(new Node\Expr\Variable('a')); +$stmts[1]->stmts[0]->params[] = new Node\Param(new Node\Expr\Variable('b')); +$stmts[2]->expr->params[] = new Node\Param(new Node\Expr\Variable('a')); +$stmts[2]->expr->params[] = new Node\Param(new Node\Expr\Variable('b')); +$stmts[2]->expr->uses[] = new Node\Expr\Variable('c'); +$stmts[2]->expr->uses[] = new Node\Expr\Variable('d'); +$stmts[3]->expr->params[] = new Node\Param(new Node\Expr\Variable('a')); +$stmts[3]->expr->params[] = new Node\Param(new Node\Expr\Variable('b')); +----- +<?php +function test +($a, $b) {} + +class Test { + public function + test + ($a, $b) {} +} + +function +($a, $b) use($c, $d) {}; + +fn($a, $b) +=> 42; +----- +<?php +foo +(); + +$foo-> +bar(); + +Foo +::bar (); + +new +Foo +(); + +new class +() +extends Foo {}; +----- +$stmts[0]->expr->args[] = new Node\Expr\Variable('a'); +$stmts[0]->expr->args[] = new Node\Expr\Variable('b'); +$stmts[1]->expr->args[] = new Node\Expr\Variable('a'); +$stmts[1]->expr->args[] = new Node\Expr\Variable('b'); +$stmts[2]->expr->args[] = new Node\Expr\Variable('a'); +$stmts[2]->expr->args[] = new Node\Expr\Variable('b'); +$stmts[3]->expr->args[] = new Node\Expr\Variable('a'); +$stmts[3]->expr->args[] = new Node\Expr\Variable('b'); +$stmts[4]->expr->args[] = new Node\Expr\Variable('a'); +$stmts[4]->expr->args[] = new Node\Expr\Variable('b'); +----- +<?php +foo +($a, $b); + +$foo-> +bar($a, $b); + +Foo +::bar ($a, $b); + +new +Foo +($a, $b); + +new class +($a, $b) +extends Foo {}; \ No newline at end of file diff --git a/vendor/nikic/php-parser/test/code/formatPreservation/listInsertion.test b/vendor/nikic/php-parser/test/code/formatPreservation/listInsertion.test index b23bfd58139e7de465bdd67b1b58c548a886e7bd..9211958d7db57e849620ff6dc50ef86868fa9da3 100644 --- a/vendor/nikic/php-parser/test/code/formatPreservation/listInsertion.test +++ b/vendor/nikic/php-parser/test/code/formatPreservation/listInsertion.test @@ -73,13 +73,10 @@ function test($param0, Foo $param1) {} function test() {} ----- $stmts[0]->params[] = new Node\Param(new Expr\Variable('param0')); -/* Insertion into empty list not handled yet */ ----- <?php -function test($param0) -{ -} +function test($param0) {} ----- <?php diff --git a/vendor/nikic/php-parser/test/code/formatPreservation/removingPropertyType.test b/vendor/nikic/php-parser/test/code/formatPreservation/removingPropertyType.test new file mode 100644 index 0000000000000000000000000000000000000000..37b174c10de034897e7358ed423a7296d47e4d70 --- /dev/null +++ b/vendor/nikic/php-parser/test/code/formatPreservation/removingPropertyType.test @@ -0,0 +1,22 @@ +Removing property type +----- +<?php + +class B +{ + + public + ?float + $b; +} +----- +$stmts[0]->stmts[0]->type = null; +----- +<?php + +class B +{ + + public + $b; +} diff --git a/vendor/nikic/php-parser/test/code/parser/commentAtEndOfClass.test b/vendor/nikic/php-parser/test/code/parser/commentAtEndOfClass.test index 389df2bea9d3defb0ed752a6f5ed32440da457e4..8096b73bd73e2c90bf3f3933b442c438dea4766a 100644 --- a/vendor/nikic/php-parser/test/code/parser/commentAtEndOfClass.test +++ b/vendor/nikic/php-parser/test/code/parser/commentAtEndOfClass.test @@ -18,6 +18,7 @@ array( stmts: array( 0: Stmt_Property( flags: MODIFIER_PROTECTED (2) + type: null props: array( 0: Stmt_PropertyProperty( name: VarLikeIdentifier( diff --git a/vendor/nikic/php-parser/test/code/parser/errorHandling/recovery.test b/vendor/nikic/php-parser/test/code/parser/errorHandling/recovery.test index 67c0ffeeb3316c6843ac41cf2ed3311fbf852922..a9fd49d0d657b41531a7626c81b8fac4a01f87ab 100644 --- a/vendor/nikic/php-parser/test/code/parser/errorHandling/recovery.test +++ b/vendor/nikic/php-parser/test/code/parser/errorHandling/recovery.test @@ -756,6 +756,7 @@ array( ) 3: Stmt_Property( flags: MODIFIER_PUBLIC (1) + type: null props: array( 0: Stmt_PropertyProperty( name: VarLikeIdentifier( @@ -975,6 +976,7 @@ array( stmts: array( 0: Stmt_Property( flags: MODIFIER_PUBLIC (1) + type: null props: array( 0: Stmt_PropertyProperty( name: VarLikeIdentifier( @@ -1302,6 +1304,7 @@ array( ) ) byRef: false + unpack: false ) 1: Expr_ArrayItem( key: null @@ -1316,6 +1319,7 @@ array( ) ) byRef: false + unpack: false ) ) ) @@ -1334,6 +1338,7 @@ array( name: value ) byRef: false + unpack: false ) 1: Expr_ArrayItem( key: null @@ -1341,6 +1346,7 @@ array( name: oopsAnotherValue ) byRef: false + unpack: false ) ) ) @@ -1361,6 +1367,7 @@ array( name: value ) byRef: false + unpack: false ) 1: Expr_ArrayItem( key: null @@ -1368,9 +1375,43 @@ array( name: oopsAnotherValue ) byRef: false + unpack: false ) ) ) ) ) -) \ No newline at end of file +) +----- +<?php +function foo() : +{ + return $a; +} +----- +!!php7 +Syntax error, unexpected '{' from 3:1 to 3:1 +array( + 0: Stmt_Function( + byRef: false + name: Identifier( + name: foo + ) + params: array( + ) + returnType: null + stmts: array( + 0: Stmt_Return( + expr: Expr_Variable( + name: a + ) + ) + ) + ) +) +----- +<?php +$a = ["a "thing"]; +----- +!!php7 +Syntax error, unexpected T_STRING, expecting ',' or ')' or ']' from 2:11 to 2:15 \ No newline at end of file diff --git a/vendor/nikic/php-parser/test/code/parser/expr/arrayDef.test b/vendor/nikic/php-parser/test/code/parser/expr/arrayDef.test index 510a93f8aea5e9ca2be39e3d09264b104066ecde..0339a56761b7c3cccd34b0f59c975be2fd8dafd7 100644 --- a/vendor/nikic/php-parser/test/code/parser/expr/arrayDef.test +++ b/vendor/nikic/php-parser/test/code/parser/expr/arrayDef.test @@ -29,6 +29,7 @@ array( value: a ) byRef: false + unpack: false ) ) ) @@ -42,6 +43,7 @@ array( value: a ) byRef: false + unpack: false ) ) ) @@ -55,6 +57,7 @@ array( value: a ) byRef: false + unpack: false ) 1: Expr_ArrayItem( key: null @@ -62,6 +65,7 @@ array( value: b ) byRef: false + unpack: false ) ) ) @@ -75,6 +79,7 @@ array( value: a ) byRef: false + unpack: false ) 1: Expr_ArrayItem( key: null @@ -82,6 +87,7 @@ array( name: b ) byRef: true + unpack: false ) 2: Expr_ArrayItem( key: Scalar_String( @@ -91,6 +97,7 @@ array( value: d ) byRef: false + unpack: false ) 3: Expr_ArrayItem( key: Scalar_String( @@ -100,6 +107,7 @@ array( name: f ) byRef: true + unpack: false ) ) ) @@ -125,6 +133,7 @@ array( value: 1 ) byRef: false + unpack: false ) 1: Expr_ArrayItem( key: null @@ -132,6 +141,7 @@ array( value: 2 ) byRef: false + unpack: false ) 2: Expr_ArrayItem( key: null @@ -139,6 +149,7 @@ array( value: 3 ) byRef: false + unpack: false ) ) ) @@ -154,6 +165,7 @@ array( value: b ) byRef: false + unpack: false ) ) ) diff --git a/vendor/nikic/php-parser/test/code/parser/expr/arrayDestructuring.test b/vendor/nikic/php-parser/test/code/parser/expr/arrayDestructuring.test index 7865e6ffb0ec9798f57be08e4038300dc7de0c33..cfec0d13b1084ce556f3322785ee45fba08b38be 100644 --- a/vendor/nikic/php-parser/test/code/parser/expr/arrayDestructuring.test +++ b/vendor/nikic/php-parser/test/code/parser/expr/arrayDestructuring.test @@ -19,6 +19,7 @@ array( name: a ) byRef: false + unpack: false ) 1: Expr_ArrayItem( key: null @@ -26,6 +27,7 @@ array( name: b ) byRef: false + unpack: false ) ) ) @@ -37,6 +39,7 @@ array( name: c ) byRef: false + unpack: false ) 1: Expr_ArrayItem( key: null @@ -44,6 +47,7 @@ array( name: d ) byRef: false + unpack: false ) ) ) @@ -60,6 +64,7 @@ array( name: a ) byRef: false + unpack: false ) 2: null 3: null @@ -69,6 +74,7 @@ array( name: b ) byRef: false + unpack: false ) 5: null ) @@ -97,14 +103,17 @@ array( name: a ) byRef: false + unpack: false ) ) ) byRef: false + unpack: false ) ) ) byRef: false + unpack: false ) 2: Expr_ArrayItem( key: null @@ -112,6 +121,7 @@ array( name: b ) byRef: false + unpack: false ) ) ) @@ -132,6 +142,7 @@ array( name: b ) byRef: false + unpack: false ) 1: Expr_ArrayItem( key: Scalar_String( @@ -141,6 +152,7 @@ array( name: a ) byRef: false + unpack: false ) ) ) diff --git a/vendor/nikic/php-parser/test/code/parser/expr/arraySpread.test b/vendor/nikic/php-parser/test/code/parser/expr/arraySpread.test new file mode 100644 index 0000000000000000000000000000000000000000..ed2edce3de9fb08b190cf72eada003a7e5d0df05 --- /dev/null +++ b/vendor/nikic/php-parser/test/code/parser/expr/arraySpread.test @@ -0,0 +1,432 @@ +Spread array +----- +<?php +$array = [1, 2, 3]; + +function getArr() { + return [4, 5]; +} + +function arrGen() { + for($i = 11; $i < 15; $i++) { + yield $i; + } +} + +[...[]]; +[...[1, 2, 3]]; +[...$array]; +[...getArr()]; +[...arrGen()]; +[...new ArrayIterator(['a', 'b', 'c'])]; +[0, ...$array, ...getArr(), 6, 7, 8, 9, 10, ...arrGen()]; +[0, ...$array, ...$array, 'end']; +----- +array( + 0: Stmt_Expression( + expr: Expr_Assign( + var: Expr_Variable( + name: array + ) + expr: Expr_Array( + items: array( + 0: Expr_ArrayItem( + key: null + value: Scalar_LNumber( + value: 1 + ) + byRef: false + unpack: false + ) + 1: Expr_ArrayItem( + key: null + value: Scalar_LNumber( + value: 2 + ) + byRef: false + unpack: false + ) + 2: Expr_ArrayItem( + key: null + value: Scalar_LNumber( + value: 3 + ) + byRef: false + unpack: false + ) + ) + ) + ) + ) + 1: Stmt_Function( + byRef: false + name: Identifier( + name: getArr + ) + params: array( + ) + returnType: null + stmts: array( + 0: Stmt_Return( + expr: Expr_Array( + items: array( + 0: Expr_ArrayItem( + key: null + value: Scalar_LNumber( + value: 4 + ) + byRef: false + unpack: false + ) + 1: Expr_ArrayItem( + key: null + value: Scalar_LNumber( + value: 5 + ) + byRef: false + unpack: false + ) + ) + ) + ) + ) + ) + 2: Stmt_Function( + byRef: false + name: Identifier( + name: arrGen + ) + params: array( + ) + returnType: null + stmts: array( + 0: Stmt_For( + init: array( + 0: Expr_Assign( + var: Expr_Variable( + name: i + ) + expr: Scalar_LNumber( + value: 11 + ) + ) + ) + cond: array( + 0: Expr_BinaryOp_Smaller( + left: Expr_Variable( + name: i + ) + right: Scalar_LNumber( + value: 15 + ) + ) + ) + loop: array( + 0: Expr_PostInc( + var: Expr_Variable( + name: i + ) + ) + ) + stmts: array( + 0: Stmt_Expression( + expr: Expr_Yield( + key: null + value: Expr_Variable( + name: i + ) + ) + ) + ) + ) + ) + ) + 3: Stmt_Expression( + expr: Expr_Array( + items: array( + 0: Expr_ArrayItem( + key: null + value: Expr_Array( + items: array( + ) + ) + byRef: false + unpack: true + ) + ) + ) + ) + 4: Stmt_Expression( + expr: Expr_Array( + items: array( + 0: Expr_ArrayItem( + key: null + value: Expr_Array( + items: array( + 0: Expr_ArrayItem( + key: null + value: Scalar_LNumber( + value: 1 + ) + byRef: false + unpack: false + ) + 1: Expr_ArrayItem( + key: null + value: Scalar_LNumber( + value: 2 + ) + byRef: false + unpack: false + ) + 2: Expr_ArrayItem( + key: null + value: Scalar_LNumber( + value: 3 + ) + byRef: false + unpack: false + ) + ) + ) + byRef: false + unpack: true + ) + ) + ) + ) + 5: Stmt_Expression( + expr: Expr_Array( + items: array( + 0: Expr_ArrayItem( + key: null + value: Expr_Variable( + name: array + ) + byRef: false + unpack: true + ) + ) + ) + ) + 6: Stmt_Expression( + expr: Expr_Array( + items: array( + 0: Expr_ArrayItem( + key: null + value: Expr_FuncCall( + name: Name( + parts: array( + 0: getArr + ) + ) + args: array( + ) + ) + byRef: false + unpack: true + ) + ) + ) + ) + 7: Stmt_Expression( + expr: Expr_Array( + items: array( + 0: Expr_ArrayItem( + key: null + value: Expr_FuncCall( + name: Name( + parts: array( + 0: arrGen + ) + ) + args: array( + ) + ) + byRef: false + unpack: true + ) + ) + ) + ) + 8: Stmt_Expression( + expr: Expr_Array( + items: array( + 0: Expr_ArrayItem( + key: null + value: Expr_New( + class: Name( + parts: array( + 0: ArrayIterator + ) + ) + args: array( + 0: Arg( + value: Expr_Array( + items: array( + 0: Expr_ArrayItem( + key: null + value: Scalar_String( + value: a + ) + byRef: false + unpack: false + ) + 1: Expr_ArrayItem( + key: null + value: Scalar_String( + value: b + ) + byRef: false + unpack: false + ) + 2: Expr_ArrayItem( + key: null + value: Scalar_String( + value: c + ) + byRef: false + unpack: false + ) + ) + ) + byRef: false + unpack: false + ) + ) + ) + byRef: false + unpack: true + ) + ) + ) + ) + 9: Stmt_Expression( + expr: Expr_Array( + items: array( + 0: Expr_ArrayItem( + key: null + value: Scalar_LNumber( + value: 0 + ) + byRef: false + unpack: false + ) + 1: Expr_ArrayItem( + key: null + value: Expr_Variable( + name: array + ) + byRef: false + unpack: true + ) + 2: Expr_ArrayItem( + key: null + value: Expr_FuncCall( + name: Name( + parts: array( + 0: getArr + ) + ) + args: array( + ) + ) + byRef: false + unpack: true + ) + 3: Expr_ArrayItem( + key: null + value: Scalar_LNumber( + value: 6 + ) + byRef: false + unpack: false + ) + 4: Expr_ArrayItem( + key: null + value: Scalar_LNumber( + value: 7 + ) + byRef: false + unpack: false + ) + 5: Expr_ArrayItem( + key: null + value: Scalar_LNumber( + value: 8 + ) + byRef: false + unpack: false + ) + 6: Expr_ArrayItem( + key: null + value: Scalar_LNumber( + value: 9 + ) + byRef: false + unpack: false + ) + 7: Expr_ArrayItem( + key: null + value: Scalar_LNumber( + value: 10 + ) + byRef: false + unpack: false + ) + 8: Expr_ArrayItem( + key: null + value: Expr_FuncCall( + name: Name( + parts: array( + 0: arrGen + ) + ) + args: array( + ) + ) + byRef: false + unpack: true + ) + ) + ) + ) + 10: Stmt_Expression( + expr: Expr_Array( + items: array( + 0: Expr_ArrayItem( + key: null + value: Scalar_LNumber( + value: 0 + ) + byRef: false + unpack: false + ) + 1: Expr_ArrayItem( + key: null + value: Expr_Variable( + name: array + ) + byRef: false + unpack: true + ) + 2: Expr_ArrayItem( + key: null + value: Expr_Variable( + name: array + ) + byRef: false + unpack: true + ) + 3: Expr_ArrayItem( + key: null + value: Scalar_String( + value: end + ) + byRef: false + unpack: false + ) + ) + ) + ) +) \ No newline at end of file diff --git a/vendor/nikic/php-parser/test/code/parser/expr/arrow_function.test b/vendor/nikic/php-parser/test/code/parser/expr/arrow_function.test new file mode 100644 index 0000000000000000000000000000000000000000..1beec451e4282bc4777336e62c113a8ced749fc7 --- /dev/null +++ b/vendor/nikic/php-parser/test/code/parser/expr/arrow_function.test @@ -0,0 +1,145 @@ +Arrow Functions +----- +<?php +fn(bool $a) => $a; +fn($x = 42) => $x; +static fn(&$x) => $x; +fn&($x) => $x; +fn($x, ...$rest) => $rest; +fn(): int => $x; +----- +!!php7 +array( + 0: Stmt_Expression( + expr: Expr_ArrowFunction( + static: false + byRef: false + params: array( + 0: Param( + type: Identifier( + name: bool + ) + byRef: false + variadic: false + var: Expr_Variable( + name: a + ) + default: null + ) + ) + returnType: null + expr: Expr_Variable( + name: a + ) + ) + ) + 1: Stmt_Expression( + expr: Expr_ArrowFunction( + static: false + byRef: false + params: array( + 0: Param( + type: null + byRef: false + variadic: false + var: Expr_Variable( + name: x + ) + default: Scalar_LNumber( + value: 42 + ) + ) + ) + returnType: null + expr: Expr_Variable( + name: x + ) + ) + ) + 2: Stmt_Expression( + expr: Expr_ArrowFunction( + static: true + byRef: false + params: array( + 0: Param( + type: null + byRef: true + variadic: false + var: Expr_Variable( + name: x + ) + default: null + ) + ) + returnType: null + expr: Expr_Variable( + name: x + ) + ) + ) + 3: Stmt_Expression( + expr: Expr_ArrowFunction( + static: false + byRef: true + params: array( + 0: Param( + type: null + byRef: false + variadic: false + var: Expr_Variable( + name: x + ) + default: null + ) + ) + returnType: null + expr: Expr_Variable( + name: x + ) + ) + ) + 4: Stmt_Expression( + expr: Expr_ArrowFunction( + static: false + byRef: false + params: array( + 0: Param( + type: null + byRef: false + variadic: false + var: Expr_Variable( + name: x + ) + default: null + ) + 1: Param( + type: null + byRef: false + variadic: true + var: Expr_Variable( + name: rest + ) + default: null + ) + ) + returnType: null + expr: Expr_Variable( + name: rest + ) + ) + ) + 5: Stmt_Expression( + expr: Expr_ArrowFunction( + static: false + byRef: false + params: array( + ) + returnType: Identifier( + name: int + ) + expr: Expr_Variable( + name: x + ) + ) + ) +) diff --git a/vendor/nikic/php-parser/test/code/parser/expr/assign.test b/vendor/nikic/php-parser/test/code/parser/expr/assign.test index 33335f89d247064073f4d457d6982c4b71186981..423f48af2f960e5d75608608f76168e06f3a991b 100644 --- a/vendor/nikic/php-parser/test/code/parser/expr/assign.test +++ b/vendor/nikic/php-parser/test/code/parser/expr/assign.test @@ -17,6 +17,7 @@ $a += $b; $a <<= $b; $a >>= $b; $a **= $b; +$a ??= $b; // chained assign $a = $b *= $c **= $d; @@ -185,6 +186,16 @@ array( ) ) 13: Stmt_Expression( + expr: Expr_AssignOp_Coalesce( + var: Expr_Variable( + name: a + ) + expr: Expr_Variable( + name: b + ) + ) + ) + 14: Stmt_Expression( expr: Expr_Assign( var: Expr_Variable( name: a @@ -213,7 +224,7 @@ array( 0: // chained assign ) ) - 14: Stmt_Expression( + 15: Stmt_Expression( expr: Expr_AssignRef( var: Expr_Variable( name: a @@ -232,7 +243,7 @@ array( 0: // by ref assign ) ) - 15: Stmt_Expression( + 16: Stmt_Expression( expr: Expr_Assign( var: Expr_List( items: array( @@ -242,6 +253,7 @@ array( name: a ) byRef: false + unpack: false ) ) comments: array( @@ -259,7 +271,7 @@ array( 0: // list() assign ) ) - 16: Stmt_Expression( + 17: Stmt_Expression( expr: Expr_Assign( var: Expr_List( items: array( @@ -269,6 +281,7 @@ array( name: a ) byRef: false + unpack: false ) 1: null 2: Expr_ArrayItem( @@ -277,6 +290,7 @@ array( name: b ) byRef: false + unpack: false ) ) ) @@ -285,7 +299,7 @@ array( ) ) ) - 17: Stmt_Expression( + 18: Stmt_Expression( expr: Expr_Assign( var: Expr_List( items: array( @@ -295,6 +309,7 @@ array( name: a ) byRef: false + unpack: false ) 1: Expr_ArrayItem( key: null @@ -307,10 +322,12 @@ array( name: c ) byRef: false + unpack: false ) ) ) byRef: false + unpack: false ) 2: Expr_ArrayItem( key: null @@ -318,6 +335,7 @@ array( name: d ) byRef: false + unpack: false ) ) ) @@ -326,7 +344,7 @@ array( ) ) ) - 18: Stmt_Expression( + 19: Stmt_Expression( expr: Expr_PreInc( var: Expr_Variable( name: a @@ -339,21 +357,21 @@ array( 0: // inc/dec ) ) - 19: Stmt_Expression( + 20: Stmt_Expression( expr: Expr_PostInc( var: Expr_Variable( name: a ) ) ) - 20: Stmt_Expression( + 21: Stmt_Expression( expr: Expr_PreDec( var: Expr_Variable( name: a ) ) ) - 21: Stmt_Expression( + 22: Stmt_Expression( expr: Expr_PostDec( var: Expr_Variable( name: a diff --git a/vendor/nikic/php-parser/test/code/parser/expr/constant_expr.test b/vendor/nikic/php-parser/test/code/parser/expr/constant_expr.test index d774de71e226254ff53c36820566e80e28ae37b9..0f9815f94e8a30f9dfab43a5a3e672d1f8a40731 100644 --- a/vendor/nikic/php-parser/test/code/parser/expr/constant_expr.test +++ b/vendor/nikic/php-parser/test/code/parser/expr/constant_expr.test @@ -544,6 +544,7 @@ array( value: 1 ) byRef: false + unpack: false ) 1: Expr_ArrayItem( key: null @@ -551,6 +552,7 @@ array( value: 2 ) byRef: false + unpack: false ) 2: Expr_ArrayItem( key: null @@ -558,6 +560,7 @@ array( value: 3 ) byRef: false + unpack: false ) ) ) diff --git a/vendor/nikic/php-parser/test/code/parser/expr/fetchAndCall/constantDeref.test b/vendor/nikic/php-parser/test/code/parser/expr/fetchAndCall/constantDeref.test index 4d14c09ad95291f557317838d43e81a4e39dfe15..557532f1b75ccb777b3acd7718fd9359231a3934 100644 --- a/vendor/nikic/php-parser/test/code/parser/expr/fetchAndCall/constantDeref.test +++ b/vendor/nikic/php-parser/test/code/parser/expr/fetchAndCall/constantDeref.test @@ -56,6 +56,7 @@ array( value: 1 ) byRef: false + unpack: false ) 1: Expr_ArrayItem( key: null @@ -63,6 +64,7 @@ array( value: 2 ) byRef: false + unpack: false ) 2: Expr_ArrayItem( key: null @@ -70,6 +72,7 @@ array( value: 3 ) byRef: false + unpack: false ) ) ) @@ -90,6 +93,7 @@ array( value: 1 ) byRef: false + unpack: false ) 1: Expr_ArrayItem( key: null @@ -97,6 +101,7 @@ array( value: 2 ) byRef: false + unpack: false ) 2: Expr_ArrayItem( key: null @@ -104,6 +109,7 @@ array( value: 3 ) byRef: false + unpack: false ) ) ) @@ -130,6 +136,7 @@ array( value: 1 ) byRef: false + unpack: false ) 1: Expr_ArrayItem( key: null @@ -137,6 +144,7 @@ array( value: 2 ) byRef: false + unpack: false ) 2: Expr_ArrayItem( key: null @@ -144,6 +152,7 @@ array( value: 3 ) byRef: false + unpack: false ) ) ) @@ -164,6 +173,7 @@ array( value: 1 ) byRef: false + unpack: false ) 1: Expr_ArrayItem( key: null @@ -171,6 +181,7 @@ array( value: 2 ) byRef: false + unpack: false ) 2: Expr_ArrayItem( key: null @@ -178,6 +189,7 @@ array( value: 3 ) byRef: false + unpack: false ) ) ) diff --git a/vendor/nikic/php-parser/test/code/parser/expr/issetAndEmpty.test b/vendor/nikic/php-parser/test/code/parser/expr/issetAndEmpty.test index cd074b1a4b19825f8e67cc16762ec9e5a5ac3c86..989b3a5547829dae07396854b28f6662e2a4903c 100644 --- a/vendor/nikic/php-parser/test/code/parser/expr/issetAndEmpty.test +++ b/vendor/nikic/php-parser/test/code/parser/expr/issetAndEmpty.test @@ -63,6 +63,7 @@ array( value: 1 ) byRef: false + unpack: false ) 1: Expr_ArrayItem( key: null @@ -70,6 +71,7 @@ array( value: 2 ) byRef: false + unpack: false ) 2: Expr_ArrayItem( key: null @@ -77,6 +79,7 @@ array( value: 3 ) byRef: false + unpack: false ) ) ) diff --git a/vendor/nikic/php-parser/test/code/parser/expr/listReferences.test b/vendor/nikic/php-parser/test/code/parser/expr/listReferences.test index fd9b1e87cebee588a060444923eeb24095c7d50e..436d45ffa350b7880e2cdc0f0a25f3f550a4b10d 100644 --- a/vendor/nikic/php-parser/test/code/parser/expr/listReferences.test +++ b/vendor/nikic/php-parser/test/code/parser/expr/listReferences.test @@ -19,6 +19,7 @@ array( name: v ) byRef: true + unpack: false ) ) ) @@ -39,6 +40,7 @@ array( name: v ) byRef: true + unpack: false ) ) ) @@ -57,6 +59,7 @@ array( name: v ) byRef: true + unpack: false ) ) ) @@ -77,6 +80,7 @@ array( name: v ) byRef: true + unpack: false ) ) ) diff --git a/vendor/nikic/php-parser/test/code/parser/expr/listWithKeys.test b/vendor/nikic/php-parser/test/code/parser/expr/listWithKeys.test index d0cfbb5ffb824395a82090b48badddaed49af203..e2eeedf0d9e350f6e20f5aba079b6fb53723ba16 100644 --- a/vendor/nikic/php-parser/test/code/parser/expr/listWithKeys.test +++ b/vendor/nikic/php-parser/test/code/parser/expr/listWithKeys.test @@ -19,6 +19,7 @@ array( name: b ) byRef: false + unpack: false ) ) ) @@ -32,6 +33,7 @@ array( value: b ) byRef: false + unpack: false ) ) ) @@ -55,10 +57,12 @@ array( name: c ) byRef: false + unpack: false ) ) ) byRef: false + unpack: false ) 1: Expr_ArrayItem( key: Scalar_String( @@ -68,6 +72,7 @@ array( name: e ) byRef: false + unpack: false ) ) ) diff --git a/vendor/nikic/php-parser/test/code/parser/expr/uvs/indirectCall.test b/vendor/nikic/php-parser/test/code/parser/expr/uvs/indirectCall.test index 2f36cc7af11040034105bfb965d8db8ef49f0c5d..39db60c0356de60c64302141e4d6b594cdf220fb 100644 --- a/vendor/nikic/php-parser/test/code/parser/expr/uvs/indirectCall.test +++ b/vendor/nikic/php-parser/test/code/parser/expr/uvs/indirectCall.test @@ -144,6 +144,7 @@ array( value: udef ) byRef: false + unpack: false ) 1: Expr_ArrayItem( key: null @@ -151,6 +152,7 @@ array( value: id ) byRef: false + unpack: false ) ) ) @@ -345,6 +347,7 @@ array( name: obj ) byRef: false + unpack: false ) 1: Expr_ArrayItem( key: null @@ -352,6 +355,7 @@ array( value: id ) byRef: false + unpack: false ) ) ) diff --git a/vendor/nikic/php-parser/test/code/parser/expr/uvs/isset.test b/vendor/nikic/php-parser/test/code/parser/expr/uvs/isset.test index 68133a8646562c44da5396b3df057646f8090340..828fd9b1f5feab34efcc998e0a6509def8978732 100644 --- a/vendor/nikic/php-parser/test/code/parser/expr/uvs/isset.test +++ b/vendor/nikic/php-parser/test/code/parser/expr/uvs/isset.test @@ -21,6 +21,7 @@ array( value: 0 ) byRef: false + unpack: false ) 1: Expr_ArrayItem( key: null @@ -28,6 +29,7 @@ array( value: 1 ) byRef: false + unpack: false ) ) ) @@ -57,6 +59,7 @@ array( value: b ) byRef: false + unpack: false ) ) ) diff --git a/vendor/nikic/php-parser/test/code/parser/expr/uvs/misc.test b/vendor/nikic/php-parser/test/code/parser/expr/uvs/misc.test index 73b515f08c92dbf87e65803ad90468fb21aa0035..801eb37c06a5f798e0bc1fe0c2fa3c3356c79314 100644 --- a/vendor/nikic/php-parser/test/code/parser/expr/uvs/misc.test +++ b/vendor/nikic/php-parser/test/code/parser/expr/uvs/misc.test @@ -105,6 +105,7 @@ array( value: 0 ) byRef: false + unpack: false ) 1: Expr_ArrayItem( key: null @@ -112,6 +113,7 @@ array( value: 1 ) byRef: false + unpack: false ) ) ) diff --git a/vendor/nikic/php-parser/test/code/parser/exprStmtMode.test b/vendor/nikic/php-parser/test/code/parser/exprStmtMode.test deleted file mode 100644 index 759e9e5455050f5eba6d7c1516d73b60faaf1ba7..0000000000000000000000000000000000000000 --- a/vendor/nikic/php-parser/test/code/parser/exprStmtMode.test +++ /dev/null @@ -1,57 +0,0 @@ -Expression statement mode ------ -<?php -$a = $b; -yield $x; ------ -!!exprStmts -array( - 0: Stmt_Expression( - expr: Expr_Assign( - var: Expr_Variable( - name: a - ) - expr: Expr_Variable( - name: b - ) - ) - ) - 1: Stmt_Expression( - expr: Expr_Yield( - key: null - value: Expr_Variable( - name: x - ) - ) - ) -) ------ -<?php -$a = $b -$c = $d ------ -!!exprStmts -Syntax error, unexpected T_VARIABLE from 3:1 to 3:2 -Syntax error, unexpected EOF from 3:8 to 3:8 -array( - 0: Stmt_Expression( - expr: Expr_Assign( - var: Expr_Variable( - name: a - ) - expr: Expr_Variable( - name: b - ) - ) - ) - 1: Stmt_Expression( - expr: Expr_Assign( - var: Expr_Variable( - name: c - ) - expr: Expr_Variable( - name: d - ) - ) - ) -) \ No newline at end of file diff --git a/vendor/nikic/php-parser/test/code/parser/nopPositions.test b/vendor/nikic/php-parser/test/code/parser/nopPositions.test new file mode 100644 index 0000000000000000000000000000000000000000..a981329be3757c1f72ca4f90baaa586f40909565 --- /dev/null +++ b/vendor/nikic/php-parser/test/code/parser/nopPositions.test @@ -0,0 +1,13 @@ +Positions for leading nop statement +----- +<?php +/* Comment */ +----- +!!positions +array( + 0: Stmt_Nop[2:14 - 2:13]( + comments: array( + 0: /* Comment */ + ) + ) +) \ No newline at end of file diff --git a/vendor/nikic/php-parser/test/code/parser/scalar/flexibleDocString.test b/vendor/nikic/php-parser/test/code/parser/scalar/flexibleDocString.test new file mode 100644 index 0000000000000000000000000000000000000000..17d728dd0e2cf2b7b00391579430ba1f616c0092 --- /dev/null +++ b/vendor/nikic/php-parser/test/code/parser/scalar/flexibleDocString.test @@ -0,0 +1,361 @@ +Flexible heredoc/nowdoc (PHP 7.3) +----- +<?php + +$ary = [ + <<<FOO +Test +FOO, + <<<'BAR' + Test + BAR, +]; + +<<<'END' + END; + +<<<END + + END; + +<<<END +@@{ " " }@@ + END; + +<<<'END' + a + b + + c + + d + e + END; + +<<<END + a + b + $test + d + e + END; + +<<<'END' + + a + + b + + c + + d + +e + +END; + +<<<END + a\r\n +\ta\n + b\r\n + $test\n + d\r\n +e\n +END; + +<<<BAR + $one- + BAR; + +<<<BAR + $two - + BAR; + +<<<BAR + $three - + BAR; + +<<<BAR + $four-$four + BAR; + +<<<BAR + $five-$five- + BAR; + +<<<BAR + $six-$six-$six + BAR; + +<<<BAR + $seven + - + BAR; + +<<<BAR + $eight + - + BAR; + +<<<BAR +$nine +BAR; + +<<<BAR + - + BAR; + +<<<BAR + - + BAR; +----- +array( + 0: Stmt_Expression( + expr: Expr_Assign( + var: Expr_Variable( + name: ary + ) + expr: Expr_Array( + items: array( + 0: Expr_ArrayItem( + key: null + value: Scalar_String( + value: Test + ) + byRef: false + unpack: false + ) + 1: Expr_ArrayItem( + key: null + value: Scalar_String( + value: Test + ) + byRef: false + unpack: false + ) + ) + ) + ) + ) + 1: Stmt_Expression( + expr: Scalar_String( + value: + ) + ) + 2: Stmt_Expression( + expr: Scalar_String( + value: + ) + ) + 3: Stmt_Expression( + expr: Scalar_String( + value: + ) + ) + 4: Stmt_Expression( + expr: Scalar_String( + value: a + b + + c + + d + e + ) + ) + 5: Stmt_Expression( + expr: Scalar_Encapsed( + parts: array( + 0: Scalar_EncapsedStringPart( + value: a + b + + ) + 1: Expr_Variable( + name: test + ) + 2: Scalar_EncapsedStringPart( + value: + d + e + ) + ) + ) + ) + 6: Stmt_Expression( + expr: Scalar_String( + value: + a + + b + + c + + d + + e + + ) + ) + 7: Stmt_Expression( + expr: Scalar_Encapsed( + parts: array( + 0: Scalar_EncapsedStringPart( + value: a + + @@{ "\t" }@@a + + b + + + ) + 1: Expr_Variable( + name: test + ) + 2: Scalar_EncapsedStringPart( + value: + + d + + e + + ) + ) + ) + ) + 8: Stmt_Expression( + expr: Scalar_Encapsed( + parts: array( + 0: Expr_Variable( + name: one + ) + 1: Scalar_EncapsedStringPart( + value: - + ) + ) + ) + ) + 9: Stmt_Expression( + expr: Scalar_Encapsed( + parts: array( + 0: Expr_Variable( + name: two + ) + 1: Scalar_EncapsedStringPart( + value: - + ) + ) + ) + ) + 10: Stmt_Expression( + expr: Scalar_Encapsed( + parts: array( + 0: Expr_Variable( + name: three + ) + 1: Scalar_EncapsedStringPart( + value: - + ) + ) + ) + ) + 11: Stmt_Expression( + expr: Scalar_Encapsed( + parts: array( + 0: Expr_Variable( + name: four + ) + 1: Scalar_EncapsedStringPart( + value: - + ) + 2: Expr_Variable( + name: four + ) + ) + ) + ) + 12: Stmt_Expression( + expr: Scalar_Encapsed( + parts: array( + 0: Expr_Variable( + name: five + ) + 1: Scalar_EncapsedStringPart( + value: - + ) + 2: Expr_Variable( + name: five + ) + 3: Scalar_EncapsedStringPart( + value: - + ) + ) + ) + ) + 13: Stmt_Expression( + expr: Scalar_Encapsed( + parts: array( + 0: Expr_Variable( + name: six + ) + 1: Scalar_EncapsedStringPart( + value: - + ) + 2: Expr_Variable( + name: six + ) + 3: Scalar_EncapsedStringPart( + value: - + ) + 4: Expr_Variable( + name: six + ) + ) + ) + ) + 14: Stmt_Expression( + expr: Scalar_Encapsed( + parts: array( + 0: Expr_Variable( + name: seven + ) + 1: Scalar_EncapsedStringPart( + value: + - + ) + ) + ) + ) + 15: Stmt_Expression( + expr: Scalar_Encapsed( + parts: array( + 0: Expr_Variable( + name: eight + ) + 1: Scalar_EncapsedStringPart( + value: + - + ) + ) + ) + ) + 16: Stmt_Expression( + expr: Scalar_Encapsed( + parts: array( + 0: Expr_Variable( + name: nine + ) + ) + ) + ) + 17: Stmt_Expression( + expr: Scalar_String( + value: - + ) + ) + 18: Stmt_Expression( + expr: Scalar_String( + value: - + ) + ) +) \ No newline at end of file diff --git a/vendor/nikic/php-parser/test/code/parser/scalar/flexibleDocStringErrors.test b/vendor/nikic/php-parser/test/code/parser/scalar/flexibleDocStringErrors.test new file mode 100644 index 0000000000000000000000000000000000000000..25b7484b240f335c42e627d17b45d5bbacc2f37d --- /dev/null +++ b/vendor/nikic/php-parser/test/code/parser/scalar/flexibleDocStringErrors.test @@ -0,0 +1,117 @@ +Error conditions for flexible doc strings +----- +<?php + +<<<A + @@{ "\t" }@@A; + +<<<A + FooBar + @@{ "\t" }@@A; + +echo <<<END +@@{ "\t" }@@ X +@@{ "\t\t" }@@END; + +echo <<<END + a + b + c + END; + +<<<END +\ta +@@{ "\t" }@@END; + +<<<TEST + Foo +$var + TEST; + +<<<TEST +$var + TEST; + +echo <<<END + a +$a + END; +----- +Invalid indentation - tabs and spaces cannot be mixed from 4:1 to 4:3 +Invalid indentation - tabs and spaces cannot be mixed from 8:1 to 8:3 +Invalid indentation - tabs and spaces cannot be mixed from 10:6 to 12:5 +Invalid body indentation level (expecting an indentation level of at least 5) from 14:6 to 18:8 +Invalid body indentation level (expecting an indentation level of at least 1) from 20:1 to 22:4 +Invalid body indentation level (expecting an indentation level of at least 2) from 25:1 to 26:0 +Invalid body indentation level (expecting an indentation level of at least 1) from 30:1 to 30:4 +Invalid body indentation level (expecting an indentation level of at least 1) from 34:1 to 35:0 +array( + 0: Stmt_Expression( + expr: Scalar_String( + value: + ) + ) + 1: Stmt_Expression( + expr: Scalar_String( + value: FooBar + ) + ) + 2: Stmt_Echo( + exprs: array( + 0: Scalar_String( + value: X + ) + ) + ) + 3: Stmt_Echo( + exprs: array( + 0: Scalar_String( + value: a + b + c + ) + ) + ) + 4: Stmt_Expression( + expr: Scalar_String( + value: a + ) + ) + 5: Stmt_Expression( + expr: Scalar_Encapsed( + parts: array( + 0: Scalar_EncapsedStringPart( + value: Foo + + ) + 1: Expr_Variable( + name: var + ) + ) + ) + ) + 6: Stmt_Expression( + expr: Scalar_Encapsed( + parts: array( + 0: Expr_Variable( + name: var + ) + ) + ) + ) + 7: Stmt_Echo( + exprs: array( + 0: Scalar_Encapsed( + parts: array( + 0: Scalar_EncapsedStringPart( + value: a + + ) + 1: Expr_Variable( + name: a + ) + ) + ) + ) + ) +) \ No newline at end of file diff --git a/vendor/nikic/php-parser/test/code/parser/semiReserved.test b/vendor/nikic/php-parser/test/code/parser/semiReserved.test index 7446a875e18c297ce7c908d47a26e6c1020073ec..70cf063dfcf87efcfdcf9a63bc2a67a65c22c9c1 100644 --- a/vendor/nikic/php-parser/test/code/parser/semiReserved.test +++ b/vendor/nikic/php-parser/test/code/parser/semiReserved.test @@ -112,6 +112,7 @@ array( ) 4: Stmt_Property( flags: MODIFIER_PUBLIC (1) + type: null props: array( 0: Stmt_PropertyProperty( name: VarLikeIdentifier( @@ -123,6 +124,7 @@ array( ) 5: Stmt_Property( flags: MODIFIER_PUBLIC (1) + type: null props: array( 0: Stmt_PropertyProperty( name: VarLikeIdentifier( diff --git a/vendor/nikic/php-parser/test/code/parser/stmt/class/anonymous.test b/vendor/nikic/php-parser/test/code/parser/stmt/class/anonymous.test index a676db68ae51d52ea84ab21bf62c8039d5d47ea4..9aaaff9382943b55ef47b376ebc55a557ce8a125 100644 --- a/vendor/nikic/php-parser/test/code/parser/stmt/class/anonymous.test +++ b/vendor/nikic/php-parser/test/code/parser/stmt/class/anonymous.test @@ -89,6 +89,7 @@ array( stmts: array( 0: Stmt_Property( flags: MODIFIER_PUBLIC (1) + type: null props: array( 0: Stmt_PropertyProperty( name: VarLikeIdentifier( diff --git a/vendor/nikic/php-parser/test/code/parser/stmt/class/implicitPublic.test b/vendor/nikic/php-parser/test/code/parser/stmt/class/implicitPublic.test index bd43dce9c3df9e0efb4f83110b6b59d3501974c1..92737af7add6f1a8f55787c2acda533f9f53601c 100644 --- a/vendor/nikic/php-parser/test/code/parser/stmt/class/implicitPublic.test +++ b/vendor/nikic/php-parser/test/code/parser/stmt/class/implicitPublic.test @@ -24,6 +24,7 @@ array( stmts: array( 0: Stmt_Property( flags: 0 + type: null props: array( 0: Stmt_PropertyProperty( name: VarLikeIdentifier( @@ -35,6 +36,7 @@ array( ) 1: Stmt_Property( flags: MODIFIER_STATIC (8) + type: null props: array( 0: Stmt_PropertyProperty( name: VarLikeIdentifier( diff --git a/vendor/nikic/php-parser/test/code/parser/stmt/class/modifier.test b/vendor/nikic/php-parser/test/code/parser/stmt/class/modifier.test index cbeb57e115562e69329ce61d56c4c0336bc973ce..797ef4e83e670567d30de6ebccbc227adc05ecdb 100644 --- a/vendor/nikic/php-parser/test/code/parser/stmt/class/modifier.test +++ b/vendor/nikic/php-parser/test/code/parser/stmt/class/modifier.test @@ -15,6 +15,7 @@ array( stmts: array( 0: Stmt_Property( flags: MODIFIER_PUBLIC (1) + type: null props: array( 0: Stmt_PropertyProperty( name: VarLikeIdentifier( @@ -43,6 +44,7 @@ array( stmts: array( 0: Stmt_Property( flags: MODIFIER_PUBLIC | MODIFIER_PROTECTED (3) + type: null props: array( 0: Stmt_PropertyProperty( name: VarLikeIdentifier( @@ -99,6 +101,7 @@ array( stmts: array( 0: Stmt_Property( flags: MODIFIER_STATIC (8) + type: null props: array( 0: Stmt_PropertyProperty( name: VarLikeIdentifier( @@ -207,6 +210,7 @@ array( stmts: array( 0: Stmt_Property( flags: MODIFIER_ABSTRACT (16) + type: null props: array( 0: Stmt_PropertyProperty( name: VarLikeIdentifier( @@ -235,6 +239,7 @@ array( stmts: array( 0: Stmt_Property( flags: MODIFIER_FINAL (32) + type: null props: array( 0: Stmt_PropertyProperty( name: VarLikeIdentifier( diff --git a/vendor/nikic/php-parser/test/code/parser/stmt/class/php4Style.test b/vendor/nikic/php-parser/test/code/parser/stmt/class/php4Style.test index d6070b889a977af4a766e41d7c3353eedb8a6b18..8906ef132576a23985d02b69bd033eb6a317000d 100644 --- a/vendor/nikic/php-parser/test/code/parser/stmt/class/php4Style.test +++ b/vendor/nikic/php-parser/test/code/parser/stmt/class/php4Style.test @@ -20,6 +20,7 @@ array( stmts: array( 0: Stmt_Property( flags: 0 + type: null props: array( 0: Stmt_PropertyProperty( name: VarLikeIdentifier( diff --git a/vendor/nikic/php-parser/test/code/parser/stmt/class/propertyTypes.test b/vendor/nikic/php-parser/test/code/parser/stmt/class/propertyTypes.test new file mode 100644 index 0000000000000000000000000000000000000000..55955f3f9bd377978568ecb482a3d13ecfba3ef7 --- /dev/null +++ b/vendor/nikic/php-parser/test/code/parser/stmt/class/propertyTypes.test @@ -0,0 +1,70 @@ +Class declaration +----- +<?php + +class A { + public string $a; + protected static D $b; + private ?float $c; +} +----- +!!php7 +array( + 0: Stmt_Class( + flags: 0 + name: Identifier( + name: A + ) + extends: null + implements: array( + ) + stmts: array( + 0: Stmt_Property( + flags: MODIFIER_PUBLIC (1) + type: Identifier( + name: string + ) + props: array( + 0: Stmt_PropertyProperty( + name: VarLikeIdentifier( + name: a + ) + default: null + ) + ) + ) + 1: Stmt_Property( + flags: MODIFIER_PROTECTED | MODIFIER_STATIC (10) + type: Name( + parts: array( + 0: D + ) + ) + props: array( + 0: Stmt_PropertyProperty( + name: VarLikeIdentifier( + name: b + ) + default: null + ) + ) + ) + 2: Stmt_Property( + flags: MODIFIER_PRIVATE (4) + type: NullableType( + type: Identifier( + name: float + ) + ) + props: array( + 0: Stmt_PropertyProperty( + name: VarLikeIdentifier( + name: c + ) + default: null + ) + ) + ) + ) + ) +) diff --git a/vendor/nikic/php-parser/test/code/parser/stmt/class/simple.test b/vendor/nikic/php-parser/test/code/parser/stmt/class/simple.test index 9247eec9faca1d9f89e3cee6d6c9a72ab7b16d25..c0bd53f3c9ecc71482b53ae0b9118a828751f23f 100644 --- a/vendor/nikic/php-parser/test/code/parser/stmt/class/simple.test +++ b/vendor/nikic/php-parser/test/code/parser/stmt/class/simple.test @@ -63,6 +63,7 @@ array( ) 1: Stmt_Property( flags: MODIFIER_PUBLIC (1) + type: null props: array( 0: Stmt_PropertyProperty( name: VarLikeIdentifier( @@ -84,6 +85,7 @@ array( ) 2: Stmt_Property( flags: MODIFIER_PROTECTED (2) + type: null props: array( 0: Stmt_PropertyProperty( name: VarLikeIdentifier( @@ -95,6 +97,7 @@ array( ) 3: Stmt_Property( flags: MODIFIER_PRIVATE (4) + type: null props: array( 0: Stmt_PropertyProperty( name: VarLikeIdentifier( diff --git a/vendor/nikic/php-parser/test/code/parser/stmt/function/defaultValues.test b/vendor/nikic/php-parser/test/code/parser/stmt/function/defaultValues.test index 6ae96fa65970ef2ac0fb9af0b67bdd8aaad9b13d..505cddfdc7c7ae702e308583913cd7d0895d4633 100644 --- a/vendor/nikic/php-parser/test/code/parser/stmt/function/defaultValues.test +++ b/vendor/nikic/php-parser/test/code/parser/stmt/function/defaultValues.test @@ -130,6 +130,7 @@ array( value: foo ) byRef: false + unpack: false ) ) ) @@ -149,6 +150,7 @@ array( value: foo ) byRef: false + unpack: false ) 1: Expr_ArrayItem( key: Scalar_String( @@ -158,6 +160,7 @@ array( value: baz ) byRef: false + unpack: false ) ) ) diff --git a/vendor/nikic/php-parser/test/code/parser/stmt/generator/yieldPrecedence.test b/vendor/nikic/php-parser/test/code/parser/stmt/generator/yieldPrecedence.test index 1f843c314e8a1e32d23644d85c0adb233c66a840..ce2b6374d65962a89130acfb276167c05262a64f 100644 --- a/vendor/nikic/php-parser/test/code/parser/stmt/generator/yieldPrecedence.test +++ b/vendor/nikic/php-parser/test/code/parser/stmt/generator/yieldPrecedence.test @@ -108,6 +108,7 @@ array( ) ) byRef: false + unpack: false ) ) ) @@ -195,6 +196,7 @@ array( ) ) byRef: false + unpack: false ) ) ) @@ -236,6 +238,7 @@ array( ) ) byRef: false + unpack: false ) ) ) diff --git a/vendor/nikic/php-parser/test/code/parser/stmt/loop/foreach.test b/vendor/nikic/php-parser/test/code/parser/stmt/loop/foreach.test index 464c859558f679b214d294a82b862e6a263e8371..2dc802fc0c17d2040d3dc3fe30cc18d6373d93d1 100644 --- a/vendor/nikic/php-parser/test/code/parser/stmt/loop/foreach.test +++ b/vendor/nikic/php-parser/test/code/parser/stmt/loop/foreach.test @@ -87,6 +87,7 @@ array( name: a ) byRef: false + unpack: false ) 1: Expr_ArrayItem( key: null @@ -94,6 +95,7 @@ array( name: b ) byRef: false + unpack: false ) ) ) @@ -116,6 +118,7 @@ array( name: b ) byRef: false + unpack: false ) 1: null 2: Expr_ArrayItem( @@ -124,6 +127,7 @@ array( name: c ) byRef: false + unpack: false ) ) ) diff --git a/vendor/nikic/php-parser/test/code/prettyPrinter/expr/arraySpread.test b/vendor/nikic/php-parser/test/code/prettyPrinter/expr/arraySpread.test new file mode 100644 index 0000000000000000000000000000000000000000..5e8393ff27933f3b4d0583ed5abbac2dc927ede9 --- /dev/null +++ b/vendor/nikic/php-parser/test/code/prettyPrinter/expr/arraySpread.test @@ -0,0 +1,8 @@ +Array spread +----- +<?php + +[$a, $b] = [...$c, ...$d]; +----- +!!php7 +[$a, $b] = [...$c, ...$d]; diff --git a/vendor/nikic/php-parser/test/code/prettyPrinter/expr/arrow_function.test b/vendor/nikic/php-parser/test/code/prettyPrinter/expr/arrow_function.test new file mode 100644 index 0000000000000000000000000000000000000000..fe8d8791b59e3974426ebf82dee1508900c88d0b --- /dev/null +++ b/vendor/nikic/php-parser/test/code/prettyPrinter/expr/arrow_function.test @@ -0,0 +1,18 @@ +Arrow function +----- +<?php + +fn($a) => $a; +fn($x = 42) => $x; +fn(&$x) => $x; +fn&($x) => $x; +static fn($x, ...$rest) => $rest; +fn(): int => $x; +----- +!!php7 +fn($a) => $a; +fn($x = 42) => $x; +fn(&$x) => $x; +fn&($x) => $x; +static fn($x, ...$rest) => $rest; +fn(): int => $x; diff --git a/vendor/nikic/php-parser/test/code/prettyPrinter/expr/operators.test b/vendor/nikic/php-parser/test/code/prettyPrinter/expr/operators.test index 72b68418f4bea075a16316a04367030032c552ee..2b5ab01d6b6e3157e351003ca5bfe5344141058e 100644 --- a/vendor/nikic/php-parser/test/code/prettyPrinter/expr/operators.test +++ b/vendor/nikic/php-parser/test/code/prettyPrinter/expr/operators.test @@ -19,6 +19,9 @@ $a--; (float) $a; (double) $a; (real) $a; +( float) $a; +(double ) $a; +( REAL ) $a; (string) $a; (binary) $a; (array) $a; @@ -53,9 +56,9 @@ $a || $b; $a ? $b : $c; $a ?: $c; $a ?? $c; - $a = $b; $a **= $b; +$a ??= $c; $a *= $b; $a /= $b; $a %= $b; @@ -87,9 +90,12 @@ $a--; +$a; (int) $a; (int) $a; +(float) $a; (double) $a; +(real) $a; +(float) $a; (double) $a; -(double) $a; +(real) $a; (string) $a; (string) $a; (array) $a; @@ -125,6 +131,7 @@ $a ?: $c; $a ?? $c; $a = $b; $a **= $b; +$a ??= $c; $a *= $b; $a /= $b; $a %= $b; diff --git a/vendor/nikic/php-parser/test/code/prettyPrinter/stmt/properties.test b/vendor/nikic/php-parser/test/code/prettyPrinter/stmt/properties.test new file mode 100644 index 0000000000000000000000000000000000000000..5a78ec49299321d8af3afbb9e6277679fb7132d5 --- /dev/null +++ b/vendor/nikic/php-parser/test/code/prettyPrinter/stmt/properties.test @@ -0,0 +1,20 @@ +Class properties +----- +<?php + +class A +{ + public $a; + public string $b; + protected static ?float $c = 5.0; + private static ?self $d; +} +----- +!!php7 +class A +{ + public $a; + public string $b; + protected static ?float $c = 5.0; + private static ?self $d; +} diff --git a/vendor/nikic/php-parser/test/updateTests.php b/vendor/nikic/php-parser/test/updateTests.php index d4de79c185332d6b37ec9388f63c22f51918102e..40d0d0a965a0971df5943d7bda7be4d3f4db6cc9 100644 --- a/vendor/nikic/php-parser/test/updateTests.php +++ b/vendor/nikic/php-parser/test/updateTests.php @@ -21,7 +21,7 @@ foreach ($tests as list($modeLine, list($input, $expected))) { $modes = null !== $modeLine ? array_fill_keys(explode(',', $modeLine), true) : []; list($parser5, $parser7) = $codeParsingTest->createParsers($modes); - $output = isset($modes['php5']) + list(, $output) = isset($modes['php5']) ? $codeParsingTest->getParseOutput($parser5, $input, $modes) : $codeParsingTest->getParseOutput($parser7, $input, $modes); $newTests[] = [$modeLine, [$input, $output]]; diff --git a/vendor/nikic/php-parser/test_old/run-php-src.sh b/vendor/nikic/php-parser/test_old/run-php-src.sh index 0d37f851de5d1ed1b2a1a758c383a5d16815a9d8..d4f38894694252caa6d49b7549d265f02d6d4633 100755 --- a/vendor/nikic/php-parser/test_old/run-php-src.sh +++ b/vendor/nikic/php-parser/test_old/run-php-src.sh @@ -1,4 +1,4 @@ -wget -q https://github.com/php/php-src/archive/php-7.1.0.tar.gz +wget -q https://github.com/php/php-src/archive/PHP-7.4.tar.gz mkdir -p ./data/php-src -tar -xzf ./php-7.1.0.tar.gz -C ./data/php-src --strip-components=1 +tar -xzf ./PHP-7.4.tar.gz -C ./data/php-src --strip-components=1 php -n test_old/run.php --verbose --no-progress PHP7 ./data/php-src diff --git a/vendor/nikic/php-parser/test_old/run.php b/vendor/nikic/php-parser/test_old/run.php index 2d7cdaccb6e973c94a777f4857fd80b3c685b724..8b74ab479bc8f80c03897bfe34b0006813b9d921 100644 --- a/vendor/nikic/php-parser/test_old/run.php +++ b/vendor/nikic/php-parser/test_old/run.php @@ -59,9 +59,24 @@ function showHelp($error) { switch ($testType) { case 'Symfony': - $version = 'Php5'; + $version = 'Php7'; $fileFilter = function($path) { - return preg_match('~\.php(?:\.cache)?$~', $path) && false === strpos($path, 'skeleton'); + if (!preg_match('~\.php$~', $path)) { + return false; + } + + if (preg_match('~(?: +# invalid php code + dependency-injection.Tests.Fixtures.xml.xml_with_wrong_ext +# difference in nop statement +| framework-bundle.Resources.views.Form.choice_widget_options\.html +# difference due to INF +| yaml.Tests.InlineTest +)\.php$~x', $path)) { + return false; + } + + return true; }; $codeExtractor = function($file, $code) { return $code; @@ -77,26 +92,31 @@ function showHelp($error) { if (preg_match('~(?: # skeleton files ext.gmp.tests.001 -| ext.skeleton.tests.001 +| ext.skeleton.tests.00\d # multibyte encoded files | ext.mbstring.tests.zend_multibyte-01 | Zend.tests.multibyte.multibyte_encoding_001 | Zend.tests.multibyte.multibyte_encoding_004 | Zend.tests.multibyte.multibyte_encoding_005 +# invalid code due to missing WS after opening tag +| tests.run-test.bug75042-3 # pretty print difference due to INF vs 1e1000 | ext.standard.tests.general_functions.bug27678 | tests.lang.bug24640 +| Zend.tests.bug74947 # pretty print differences due to negative LNumbers | Zend.tests.neg_num_string | Zend.tests.bug72918 # pretty print difference due to nop statements | ext.mbstring.tests.htmlent | ext.standard.tests.file.fread_basic +# its too hard to emulate these on old PHP versions +| Zend.tests.flexible-heredoc-complex-test[1-4] )\.phpt$~x', $file)) { return null; } - if (!preg_match('~--FILE--\s*(.*?)--[A-Z]+--~s', $code, $matches)) { + if (!preg_match('~--FILE--\s*(.*?)\n--[A-Z]+--~s', $code, $matches)) { return null; } if (preg_match('~--EXPECT(?:F|REGEX)?--\s*(?:Parse|Fatal) error~', $code)) { diff --git a/vendor/psy/psysh/box.json.dist b/vendor/psy/psysh/box.json.dist index 32305a525982b29bdd9333456518e05ef0e54187..e302f265eb993e47f1991a5f669d6e6b01b792ed 100644 --- a/vendor/psy/psysh/box.json.dist +++ b/vendor/psy/psysh/box.json.dist @@ -4,7 +4,6 @@ "compactors": [ "KevinGH\\Box\\Compactor\\Php" ], - "chmod": "0755", "blacklist": [ "grammar", "test_old", diff --git a/vendor/psy/psysh/composer.json b/vendor/psy/psysh/composer.json index 7df60cf4834cd2663e1a481f465afb412daf66ce..4588ba60a5f4aa5759b70846e26dad0f7eb602a2 100644 --- a/vendor/psy/psysh/composer.json +++ b/vendor/psy/psysh/composer.json @@ -20,7 +20,7 @@ "symfony/var-dumper": "~2.7|~3.0|~4.0", "nikic/php-parser": "~1.3|~2.0|~3.0|~4.0", "dnoegel/php-xdg-base-dir": "0.1", - "jakub-onderka/php-console-highlighter": "0.3.*" + "jakub-onderka/php-console-highlighter": "0.3.*|0.4.*" }, "require-dev": { "phpunit/phpunit": "~4.8.35|~5.0|~6.0|~7.0", diff --git a/vendor/psy/psysh/src/CodeCleaner/ListPass.php b/vendor/psy/psysh/src/CodeCleaner/ListPass.php index aefc7ad27a3f6f7a67c5b74f6b9c4d90d1995d77..b0d1d73e408fec1043e9145a2cafb730d977afe4 100644 --- a/vendor/psy/psysh/src/CodeCleaner/ListPass.php +++ b/vendor/psy/psysh/src/CodeCleaner/ListPass.php @@ -12,10 +12,15 @@ namespace Psy\CodeCleaner; use PhpParser\Node; +use PhpParser\Node\Expr; use PhpParser\Node\Expr\Array_; +use PhpParser\Node\Expr\ArrayDimFetch; use PhpParser\Node\Expr\ArrayItem; use PhpParser\Node\Expr\Assign; +use PhpParser\Node\Expr\FuncCall; use PhpParser\Node\Expr\List_; +use PhpParser\Node\Expr\MethodCall; +use PhpParser\Node\Expr\PropertyFetch; use PhpParser\Node\Expr\Variable; use Psy\Exception\ParseErrorException; @@ -74,9 +79,7 @@ public function enterNode(Node $node) throw new ParseErrorException($msg, $item->key->getLine()); } - $value = ($item instanceof ArrayItem) ? $item->value : $item; - - if (!$value instanceof Variable) { + if (!self::isValidArrayItem($item)) { $msg = 'Assignments can only happen to writable values'; throw new ParseErrorException($msg, $item->getLine()); } @@ -86,4 +89,24 @@ public function enterNode(Node $node) throw new ParseErrorException('Cannot use empty list'); } } + + /** + * Validate whether a given item in an array is valid for short assignment. + * + * @param Expr $item + * + * @return bool + */ + private static function isValidArrayItem(Expr $item) + { + $value = ($item instanceof ArrayItem) ? $item->value : $item; + + while ($value instanceof ArrayDimFetch || $value instanceof PropertyFetch) { + $value = $value->var; + } + + // We just kind of give up if it's a method call. We can't tell if it's + // valid via static analysis. + return $value instanceof Variable || $value instanceof MethodCall || $value instanceof FuncCall; + } } diff --git a/vendor/psy/psysh/src/CodeCleaner/RequirePass.php b/vendor/psy/psysh/src/CodeCleaner/RequirePass.php index 3e27184a1befe760b954fef1e0b34f24906976fe..31c156a37d1f2cd170905caa5cc1a841c480ee1f 100644 --- a/vendor/psy/psysh/src/CodeCleaner/RequirePass.php +++ b/vendor/psy/psysh/src/CodeCleaner/RequirePass.php @@ -81,10 +81,9 @@ public static function resolve($file, $lineNumber = null) // So we're duplicating some of the logics here. if (E_WARNING & \error_reporting()) { ErrorException::throwException(E_WARNING, 'Filename cannot be empty', null, $lineNumber); - } else { - // @todo trigger an error as fallback? this is pretty ugly… - // trigger_error('Filename cannot be empty', E_USER_WARNING); } + // @todo trigger an error as fallback? this is pretty ugly… + // trigger_error('Filename cannot be empty', E_USER_WARNING); } if ($file === '' || !\stream_resolve_include_path($file)) { diff --git a/vendor/psy/psysh/src/CodeCleaner/ValidClassNamePass.php b/vendor/psy/psysh/src/CodeCleaner/ValidClassNamePass.php index 022289dabe5772913ec8b9743f36e47539f4c59a..9578c9a86f7939e971cf1c3d32f422c900294636 100644 --- a/vendor/psy/psysh/src/CodeCleaner/ValidClassNamePass.php +++ b/vendor/psy/psysh/src/CodeCleaner/ValidClassNamePass.php @@ -248,6 +248,21 @@ protected function ensureClassOrInterfaceExists($name, $stmt) } } + /** + * Ensure that a referenced class _or trait_ exists. + * + * @throws FatalErrorException + * + * @param string $name + * @param Stmt $stmt + */ + protected function ensureClassOrTraitExists($name, $stmt) + { + if (!$this->classExists($name) && !$this->traitExists($name)) { + throw $this->createError(\sprintf('Class \'%s\' not found', $name), $stmt); + } + } + /** * Ensure that a statically called method exists. * @@ -259,7 +274,7 @@ protected function ensureClassOrInterfaceExists($name, $stmt) */ protected function ensureMethodExists($class, $name, $stmt) { - $this->ensureClassExists($class, $stmt); + $this->ensureClassOrTraitExists($class, $stmt); // let's pretend all calls to self, parent and static are valid if (\in_array(\strtolower($class), ['self', 'parent', 'static'])) { diff --git a/vendor/psy/psysh/src/ExecutionLoopClosure.php b/vendor/psy/psysh/src/ExecutionLoopClosure.php index 94d3ce2e742f7c2815f3b699eec6eb6d8ceee670..5b8238cf632364ac80f3eb5a9b09aaf3fc656380 100644 --- a/vendor/psy/psysh/src/ExecutionLoopClosure.php +++ b/vendor/psy/psysh/src/ExecutionLoopClosure.php @@ -41,7 +41,9 @@ public function __construct(Shell $__psysh__) try { // Pull in any new execution scope variables - \extract($__psysh__->getScopeVariablesDiff(\get_defined_vars())); + if ($__psysh__->getLastExecSuccess()) { + \extract($__psysh__->getScopeVariablesDiff(\get_defined_vars())); + } // Buffer stdout; we'll need it later \ob_start([$__psysh__, 'writeStdout'], 1); diff --git a/vendor/psy/psysh/src/Readline/Transient.php b/vendor/psy/psysh/src/Readline/Transient.php index e238fdf494affafd5c4eddb1c309e663329c8ab1..6623bd9818f31a94918072c465f3cd3b4c83b058 100644 --- a/vendor/psy/psysh/src/Readline/Transient.php +++ b/vendor/psy/psysh/src/Readline/Transient.php @@ -106,7 +106,7 @@ public function readline($prompt = null) { echo $prompt; - return \rtrim(\fgets($this->getStdin(), 1024)); + return \rtrim(\fgets($this->getStdin()), "\n\r"); } /** diff --git a/vendor/psy/psysh/src/Shell.php b/vendor/psy/psysh/src/Shell.php index 6f7c79bd6853d591ab6e5e2a552d44fee7df4267..7a0fbac28a88bddab3e6b05c54bdfec51bcc2cba 100644 --- a/vendor/psy/psysh/src/Shell.php +++ b/vendor/psy/psysh/src/Shell.php @@ -47,7 +47,7 @@ */ class Shell extends Application { - const VERSION = 'v0.9.7'; + const VERSION = 'v0.9.9'; const PROMPT = '>>> '; const BUFF_PROMPT = '... '; @@ -73,6 +73,7 @@ class Shell extends Application private $autoCompleter; private $matchers = []; private $commandsMatcher; + private $lastExecSuccess = true; /** * Create a new Psy Shell. @@ -963,6 +964,8 @@ public function writeStdout($out, $phase = PHP_OUTPUT_HANDLER_END) */ public function writeReturnValue($ret) { + $this->lastExecSuccess = true; + if ($ret instanceof NoReturnValue) { return; } @@ -986,11 +989,24 @@ public function writeReturnValue($ret) */ public function writeException(\Exception $e) { + $this->lastExecSuccess = false; $this->context->setLastException($e); $this->output->writeln($this->formatException($e)); $this->resetCodeBuffer(); } + /** + * Check whether the last exec was successful. + * + * Returns true if a return value was logged rather than an exception. + * + * @return bool + */ + public function getLastExecSuccess() + { + return $this->lastExecSuccess; + } + /** * Helper for formatting an exception for writeException(). * diff --git a/vendor/psy/psysh/test/CodeCleaner/Fixtures/TraitWithStatic.php b/vendor/psy/psysh/test/CodeCleaner/Fixtures/TraitWithStatic.php new file mode 100644 index 0000000000000000000000000000000000000000..132dc061cb462ebd500e7f7fadfd2075470ce596 --- /dev/null +++ b/vendor/psy/psysh/test/CodeCleaner/Fixtures/TraitWithStatic.php @@ -0,0 +1,20 @@ +<?php + +/* + * This file is part of Psy Shell. + * + * (c) 2012-2018 Justin Hileman + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Psy\Test\CodeCleaner\Fixtures; + +trait TraitWithStatic +{ + public static function doStuff() + { + // Don't actually do stuff. + } +} diff --git a/vendor/psy/psysh/test/CodeCleaner/ListPassTest.php b/vendor/psy/psysh/test/CodeCleaner/ListPassTest.php index fd955a6aa514a27d60141035e31d32c644034760..b7a360d69070cc782e7c5855636180a45515f746 100644 --- a/vendor/psy/psysh/test/CodeCleaner/ListPassTest.php +++ b/vendor/psy/psysh/test/CodeCleaner/ListPassTest.php @@ -56,6 +56,8 @@ public function invalidStatements() ['[] = []', $errorShortListAssign], ['[$a] = [1]', $errorShortListAssign], ['list("a" => $a) = array("a" => 1)', $errorAssocListAssign], + ['[$a[0], $a[1]] = [1, 2]', $errorShortListAssign], + ['[$a->b, $a->c] = [1, 2]', $errorShortListAssign], ]); } @@ -64,6 +66,7 @@ public function invalidStatements() ['["a"] = [1]', $errorNonVariableAssign], ['[] = []', $errorEmptyList], ['[,] = [1,2]', $errorEmptyList], + ['[,,] = [1,2,3]', $errorEmptyList], ]); } @@ -96,6 +99,14 @@ public function validStatements() ['[,$b] = [1,2,3]'], ['[$a,,$c] = [1,2,3]'], ['[$a,,,] = [1,2,3]'], + ['[$a[0], $a[1]] = [1, 2]'], + ['[$a[0][0][0], $a[0][0][1]] = [1, 2]'], + ['[$a->b, $a->c] = [1, 2]'], + ['[$a->b[0], $a->c[1]] = [1, 2]'], + ['[$a[0]->b[0], $a[0]->c[1]] = [1, 2]'], + ['[$a[$b->c + $b->d]] = [1]'], + ['[$a->c()->d, $a->c()->e] = [1, 2]'], + ['[x()->a, x()->b] = [1, 2]'], ]); } diff --git a/vendor/psy/psysh/test/CodeCleaner/ValidClassNamePassTest.php b/vendor/psy/psysh/test/CodeCleaner/ValidClassNamePassTest.php index 3736f351eb8d8cc410ccb61867db0d28cc181e9f..2d9ed60b5813080095a645cab36d0b347b4383cf 100644 --- a/vendor/psy/psysh/test/CodeCleaner/ValidClassNamePassTest.php +++ b/vendor/psy/psysh/test/CodeCleaner/ValidClassNamePassTest.php @@ -172,6 +172,7 @@ class Kappa {} ['DateTime::$someMethod()'], ['Psy\Test\CodeCleaner\Fixtures\ClassWithStatic::doStuff()'], ['Psy\Test\CodeCleaner\Fixtures\ClassWithCallStatic::doStuff()'], + ['Psy\Test\CodeCleaner\Fixtures\TraitWithStatic::doStuff()'], // Allow `self` and `static` as class names. [' diff --git a/vendor/psy/psysh/vendor-bin/box/composer.json b/vendor/psy/psysh/vendor-bin/box/composer.json index a5ef20620f77fc16852f2149ce31d7fa9d014660..13b78794fb924b103539b8aeb6e26a04fef492e6 100644 --- a/vendor/psy/psysh/vendor-bin/box/composer.json +++ b/vendor/psy/psysh/vendor-bin/box/composer.json @@ -2,6 +2,6 @@ "minimum-stability": "dev", "prefer-stable": true, "require": { - "humbug/box": "^3.0@alpha" + "humbug/box": "^3.1" } } diff --git a/vendor/symfony/console/Application.php b/vendor/symfony/console/Application.php index 6cc5f5c580ecf645298894a294658f330fe50a74..4d10c31699731e18a93422a6e445ba1f6c6c3b69 100644 --- a/vendor/symfony/console/Application.php +++ b/vendor/symfony/console/Application.php @@ -596,6 +596,15 @@ public function find($name) $this->init(); $aliases = []; + + foreach ($this->commands as $command) { + foreach ($command->getAliases() as $alias) { + if (!$this->has($alias)) { + $this->commands[$alias] = $command; + } + } + } + $allCommands = $this->commandLoader ? array_merge($this->commandLoader->getNames(), array_keys($this->commands)) : array_keys($this->commands); $expr = preg_replace_callback('{([^:]+|)}', function ($matches) { return preg_quote($matches[1]).'[^:]*'; }, $name); $commands = preg_grep('{^'.$expr.'}', $allCommands); diff --git a/vendor/symfony/console/Helper/QuestionHelper.php b/vendor/symfony/console/Helper/QuestionHelper.php index 677aa764d4a0f5efa51131e089a2f062815791f5..2d910f435611590613d48f40e198327bd6544644 100644 --- a/vendor/symfony/console/Helper/QuestionHelper.php +++ b/vendor/symfony/console/Helper/QuestionHelper.php @@ -239,6 +239,7 @@ protected function writeError(OutputInterface $output, \Exception $error) */ private function autocomplete(OutputInterface $output, Question $question, $inputStream, array $autocomplete) { + $fullChoice = ''; $ret = ''; $i = 0; @@ -265,6 +266,7 @@ private function autocomplete(OutputInterface $output, Question $question, $inpu } elseif ("\177" === $c) { // Backspace Character if (0 === $numMatches && 0 !== $i) { --$i; + $fullChoice = substr($fullChoice, 0, -1); // Move cursor backwards $output->write("\033[1D"); } @@ -301,8 +303,10 @@ private function autocomplete(OutputInterface $output, Question $question, $inpu if ($numMatches > 0 && -1 !== $ofs) { $ret = $matches[$ofs]; // Echo out remaining chars for current match - $output->write(substr($ret, $i)); - $i = \strlen($ret); + $remainingCharacters = substr($ret, \strlen(trim($this->mostRecentlyEnteredValue($fullChoice)))); + $output->write($remainingCharacters); + $fullChoice .= $remainingCharacters; + $i = \strlen($fullChoice); } if ("\n" === $c) { @@ -321,14 +325,21 @@ private function autocomplete(OutputInterface $output, Question $question, $inpu $output->write($c); $ret .= $c; + $fullChoice .= $c; ++$i; + $tempRet = $ret; + + if ($question instanceof ChoiceQuestion && $question->isMultiselect()) { + $tempRet = $this->mostRecentlyEnteredValue($fullChoice); + } + $numMatches = 0; $ofs = 0; foreach ($autocomplete as $value) { // If typed characters match the beginning chunk of value (e.g. [AcmeDe]moBundle) - if (0 === strpos($value, $ret)) { + if (0 === strpos($value, $tempRet)) { $matches[$numMatches++] = $value; } } @@ -340,8 +351,9 @@ private function autocomplete(OutputInterface $output, Question $question, $inpu if ($numMatches > 0 && -1 !== $ofs) { // Save cursor position $output->write("\0337"); - // Write highlighted text - $output->write('<hl>'.OutputFormatter::escapeTrailingBackslash(substr($matches[$ofs], $i)).'</hl>'); + // Write highlighted text, complete the partially entered response + $charactersEntered = \strlen(trim($this->mostRecentlyEnteredValue($fullChoice))); + $output->write('<hl>'.OutputFormatter::escapeTrailingBackslash(substr($matches[$ofs], $charactersEntered)).'</hl>'); // Restore cursor position $output->write("\0338"); } @@ -350,7 +362,22 @@ private function autocomplete(OutputInterface $output, Question $question, $inpu // Reset stty so it behaves normally again shell_exec(sprintf('stty %s', $sttyMode)); - return $ret; + return $fullChoice; + } + + private function mostRecentlyEnteredValue($entered) + { + // Determine the most recent value that the user entered + if (false === strpos($entered, ',')) { + return $entered; + } + + $choices = explode(',', $entered); + if (\strlen($lastChoice = trim($choices[\count($choices) - 1])) > 0) { + return $lastChoice; + } + + return $entered; } /** diff --git a/vendor/symfony/console/Tests/ApplicationTest.php b/vendor/symfony/console/Tests/ApplicationTest.php index 200568f0701d7f85bbebdb4f6eef0a8b3d73169e..b920d211aaa8f7f864dff762a1c7951e95b816ab 100644 --- a/vendor/symfony/console/Tests/ApplicationTest.php +++ b/vendor/symfony/console/Tests/ApplicationTest.php @@ -72,8 +72,8 @@ public static function setUpBeforeClass() require_once self::$fixturesPath.'/BarBucCommand.php'; require_once self::$fixturesPath.'/FooSubnamespaced1Command.php'; require_once self::$fixturesPath.'/FooSubnamespaced2Command.php'; - require_once self::$fixturesPath.'/TestTiti.php'; - require_once self::$fixturesPath.'/TestToto.php'; + require_once self::$fixturesPath.'/TestAmbiguousCommandRegistering.php'; + require_once self::$fixturesPath.'/TestAmbiguousCommandRegistering2.php'; } protected function normalizeLineBreaks($text) @@ -164,6 +164,27 @@ public function testRegister() $this->assertEquals('foo', $command->getName(), '->register() registers a new command'); } + public function testRegisterAmbiguous() + { + $code = function (InputInterface $input, OutputInterface $output) { + $output->writeln('It works!'); + }; + + $application = new Application(); + $application + ->register('test-foo') + ->setAliases(['test']) + ->setCode($code); + + $application + ->register('test-bar') + ->setCode($code); + + $tester = new ApplicationTester($application); + $tester->run(['test']); + $this->assertContains('It works!', $tester->getDisplay(true)); + } + public function testAdd() { $application = new Application(); @@ -303,9 +324,9 @@ public function testFindAmbiguousNamespace() public function testFindNonAmbiguous() { $application = new Application(); - $application->add(new \TestTiti()); - $application->add(new \TestToto()); - $this->assertEquals('test-toto', $application->find('test')->getName()); + $application->add(new \TestAmbiguousCommandRegistering()); + $application->add(new \TestAmbiguousCommandRegistering2()); + $this->assertEquals('test-ambiguous', $application->find('test')->getName()); } /** diff --git a/vendor/symfony/console/Tests/Fixtures/TestToto.php b/vendor/symfony/console/Tests/Fixtures/TestAmbiguousCommandRegistering.php similarity index 65% rename from vendor/symfony/console/Tests/Fixtures/TestToto.php rename to vendor/symfony/console/Tests/Fixtures/TestAmbiguousCommandRegistering.php index 2e6a8195938bbd570ab4641ae199f6b2c4413cc2..bece09fcdde827a15d0154d618f8e8abfbb731b1 100644 --- a/vendor/symfony/console/Tests/Fixtures/TestToto.php +++ b/vendor/symfony/console/Tests/Fixtures/TestAmbiguousCommandRegistering.php @@ -4,19 +4,19 @@ use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Output\OutputInterface; -class TestToto extends Command +class TestAmbiguousCommandRegistering extends Command { protected function configure() { $this - ->setName('test-toto') - ->setDescription('The test-toto command') + ->setName('test-ambiguous') + ->setDescription('The test-ambiguous command') ->setAliases(['test']) ; } protected function execute(InputInterface $input, OutputInterface $output) { - $output->write('test-toto'); + $output->write('test-ambiguous'); } } diff --git a/vendor/symfony/console/Tests/Fixtures/TestTiti.php b/vendor/symfony/console/Tests/Fixtures/TestAmbiguousCommandRegistering2.php similarity index 62% rename from vendor/symfony/console/Tests/Fixtures/TestTiti.php rename to vendor/symfony/console/Tests/Fixtures/TestAmbiguousCommandRegistering2.php index 72e29d2a0a2dc8cce35f3c5a4d5e52da03c85bc6..9dde48624546defdf9a4821c57a3834c63218aa0 100644 --- a/vendor/symfony/console/Tests/Fixtures/TestTiti.php +++ b/vendor/symfony/console/Tests/Fixtures/TestAmbiguousCommandRegistering2.php @@ -4,18 +4,18 @@ use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Output\OutputInterface; -class TestTiti extends Command +class TestAmbiguousCommandRegistering2 extends Command { protected function configure() { $this - ->setName('test-titi') - ->setDescription('The test:titi command') + ->setName('test-ambiguous2') + ->setDescription('The test-ambiguous2 command') ; } protected function execute(InputInterface $input, OutputInterface $output) { - $output->write('test-titi'); + $output->write('test-ambiguous2'); } } diff --git a/vendor/symfony/console/Tests/Helper/QuestionHelperTest.php b/vendor/symfony/console/Tests/Helper/QuestionHelperTest.php index 56ba1c6891322c3c5f5ba3d2139ef413fefcfdc1..3c030e04983d9225f131a89fe50c9c84f3309514 100644 --- a/vendor/symfony/console/Tests/Helper/QuestionHelperTest.php +++ b/vendor/symfony/console/Tests/Helper/QuestionHelperTest.php @@ -1018,6 +1018,37 @@ public function testTraversableAutocomplete() $this->assertEquals('FooBundle', $dialog->ask($this->createStreamableInputInterfaceMock($inputStream), $this->createOutputInterface(), $question)); } + public function testTraversableMultiselectAutocomplete() + { + // <NEWLINE> + // F<TAB><NEWLINE> + // A<3x UP ARROW><TAB>,F<TAB><NEWLINE> + // F00<BACKSPACE><BACKSPACE>o<TAB>,A<DOWN ARROW>,<SPACE>SecurityBundle<NEWLINE> + // Acme<TAB>,<SPACE>As<TAB><29x BACKSPACE>S<TAB><NEWLINE> + // Ac<TAB>,As<TAB><3x BACKSPACE>d<TAB><NEWLINE> + $inputStream = $this->getInputStream("\nF\t\nA\033[A\033[A\033[A\t,F\t\nF00\177\177o\t,A\033[B\t, SecurityBundle\nAcme\t, As\t\177\177\177\177\177\177\177\177\177\177\177\177\177\177\177\177\177\177\177\177\177\177\177\177\177\177\177\177\177S\t\nAc\t,As\t\177\177\177d\t\n"); + + $dialog = new QuestionHelper(); + $helperSet = new HelperSet([new FormatterHelper()]); + $dialog->setHelperSet($helperSet); + + $question = new ChoiceQuestion( + 'Please select a bundle (defaults to AcmeDemoBundle and AsseticBundle)', + ['AcmeDemoBundle', 'AsseticBundle', 'SecurityBundle', 'FooBundle'], + '0,1' + ); + + // This tests that autocomplete works for all multiselect choices entered by the user + $question->setMultiselect(true); + + $this->assertEquals(['AcmeDemoBundle', 'AsseticBundle'], $dialog->ask($this->createStreamableInputInterfaceMock($inputStream), $this->createOutputInterface(), $question)); + $this->assertEquals(['FooBundle'], $dialog->ask($this->createStreamableInputInterfaceMock($inputStream), $this->createOutputInterface(), $question)); + $this->assertEquals(['AsseticBundle', 'FooBundle'], $dialog->ask($this->createStreamableInputInterfaceMock($inputStream), $this->createOutputInterface(), $question)); + $this->assertEquals(['FooBundle', 'AsseticBundle', 'SecurityBundle'], $dialog->ask($this->createStreamableInputInterfaceMock($inputStream), $this->createOutputInterface(), $question)); + $this->assertEquals(['SecurityBundle'], $dialog->ask($this->createStreamableInputInterfaceMock($inputStream), $this->createOutputInterface(), $question)); + $this->assertEquals(['AcmeDemoBundle', 'AsseticBundle'], $dialog->ask($this->createStreamableInputInterfaceMock($inputStream), $this->createOutputInterface(), $question)); + } + protected function getInputStream($input) { $stream = fopen('php://memory', 'r+', false); diff --git a/vendor/symfony/debug/FatalErrorHandler/ClassNotFoundFatalErrorHandler.php b/vendor/symfony/debug/FatalErrorHandler/ClassNotFoundFatalErrorHandler.php index 1ac18ac8f5657b66ecc5f9e6d5db9626224910c8..45dcc00d5cb67ff31edfcc4009125ba93e9e6501 100644 --- a/vendor/symfony/debug/FatalErrorHandler/ClassNotFoundFatalErrorHandler.php +++ b/vendor/symfony/debug/FatalErrorHandler/ClassNotFoundFatalErrorHandler.php @@ -185,7 +185,11 @@ private function convertFileToClass($path, $file, $prefix) } } - require_once $file; + try { + require_once $file; + } catch (\Throwable $e) { + return null; + } foreach ($candidates as $candidate) { if ($this->classExists($candidate)) { diff --git a/vendor/symfony/finder/Comparator/Comparator.php b/vendor/symfony/finder/Comparator/Comparator.php index ea37566df8887da2fa67fe19f8edad058c56140e..6aee21cf09290e08e8308e2d9677a483823c5121 100644 --- a/vendor/symfony/finder/Comparator/Comparator.php +++ b/vendor/symfony/finder/Comparator/Comparator.php @@ -64,7 +64,7 @@ public function setOperator($operator) $operator = '=='; } - if (!\in_array($operator, array('>', '<', '>=', '<=', '==', '!='))) { + if (!\in_array($operator, ['>', '<', '>=', '<=', '==', '!='])) { throw new \InvalidArgumentException(sprintf('Invalid operator "%s".', $operator)); } diff --git a/vendor/symfony/finder/Finder.php b/vendor/symfony/finder/Finder.php index f16bfaace44c5b6172e1b130fa13387cf61a6ae0..133c4b8c50b1558406a8f676fcb7761b0871315d 100644 --- a/vendor/symfony/finder/Finder.php +++ b/vendor/symfony/finder/Finder.php @@ -29,9 +29,9 @@ * * All rules may be invoked several times. * - * All methods return the current Finder object to allow easy chaining: + * All methods return the current Finder object to allow chaining: * - * $finder = Finder::create()->files()->name('*.php')->in(__DIR__); + * $finder = Finder::create()->files()->name('*.php')->in(__DIR__); * * @author Fabien Potencier <fabien@symfony.com> */ @@ -41,25 +41,25 @@ class Finder implements \IteratorAggregate, \Countable const IGNORE_DOT_FILES = 2; private $mode = 0; - private $names = array(); - private $notNames = array(); - private $exclude = array(); - private $filters = array(); - private $depths = array(); - private $sizes = array(); + private $names = []; + private $notNames = []; + private $exclude = []; + private $filters = []; + private $depths = []; + private $sizes = []; private $followLinks = false; private $sort = false; private $ignore = 0; - private $dirs = array(); - private $dates = array(); - private $iterators = array(); - private $contains = array(); - private $notContains = array(); - private $paths = array(); - private $notPaths = array(); + private $dirs = []; + private $dates = []; + private $iterators = []; + private $contains = []; + private $notContains = []; + private $paths = []; + private $notPaths = []; private $ignoreUnreadableDirs = false; - private static $vcsPatterns = array('.svn', '_svn', 'CVS', '_darcs', '.arch-params', '.monotone', '.bzr', '.git', '.hg'); + private static $vcsPatterns = ['.svn', '_svn', 'CVS', '_darcs', '.arch-params', '.monotone', '.bzr', '.git', '.hg']; public function __construct() { @@ -105,8 +105,8 @@ public function files() * * Usage: * - * $finder->depth('> 1') // the Finder will start matching at level 1. - * $finder->depth('< 3') // the Finder will descend at most 3 levels of directories below the starting point. + * $finder->depth('> 1') // the Finder will start matching at level 1. + * $finder->depth('< 3') // the Finder will descend at most 3 levels of directories below the starting point. * * @param string|int $level The depth level expression * @@ -127,10 +127,10 @@ public function depth($level) * * The date must be something that strtotime() is able to parse: * - * $finder->date('since yesterday'); - * $finder->date('until 2 days ago'); - * $finder->date('> now - 2 hours'); - * $finder->date('>= 2005-10-15'); + * $finder->date('since yesterday'); + * $finder->date('until 2 days ago'); + * $finder->date('> now - 2 hours'); + * $finder->date('>= 2005-10-15'); * * @param string $date A date range string * @@ -152,9 +152,9 @@ public function date($date) * * You can use patterns (delimited with / sign), globs or simple strings. * - * $finder->name('*.php') - * $finder->name('/\.php$/') // same as above - * $finder->name('test.php') + * $finder->name('*.php') + * $finder->name('/\.php$/') // same as above + * $finder->name('test.php') * * @param string $pattern A pattern (a regexp, a glob, or a string) * @@ -190,8 +190,8 @@ public function notName($pattern) * * Strings or PCRE patterns can be used: * - * $finder->contains('Lorem ipsum') - * $finder->contains('/Lorem ipsum/i') + * $finder->contains('Lorem ipsum') + * $finder->contains('/Lorem ipsum/i') * * @param string $pattern A pattern (string or regexp) * @@ -211,8 +211,8 @@ public function contains($pattern) * * Strings or PCRE patterns can be used: * - * $finder->notContains('Lorem ipsum') - * $finder->notContains('/Lorem ipsum/i') + * $finder->notContains('Lorem ipsum') + * $finder->notContains('/Lorem ipsum/i') * * @param string $pattern A pattern (string or regexp) * @@ -232,8 +232,8 @@ public function notContains($pattern) * * You can use patterns (delimited with / sign) or simple strings. * - * $finder->path('some/special/dir') - * $finder->path('/some\/special\/dir/') // same as above + * $finder->path('some/special/dir') + * $finder->path('/some\/special\/dir/') // same as above * * Use only / as dirname separator. * @@ -255,8 +255,8 @@ public function path($pattern) * * You can use patterns (delimited with / sign) or simple strings. * - * $finder->notPath('some/special/dir') - * $finder->notPath('/some\/special\/dir/') // same as above + * $finder->notPath('some/special/dir') + * $finder->notPath('/some\/special\/dir/') // same as above * * Use only / as dirname separator. * @@ -276,9 +276,9 @@ public function notPath($pattern) /** * Adds tests for file sizes. * - * $finder->size('> 10K'); - * $finder->size('<= 1Ki'); - * $finder->size(4); + * $finder->size('> 10K'); + * $finder->size('<= 1Ki'); + * $finder->size(4); * * @param string|int $size A size range string or an integer * @@ -536,13 +536,13 @@ public function ignoreUnreadableDirs($ignore = true) */ public function in($dirs) { - $resolvedDirs = array(); + $resolvedDirs = []; foreach ((array) $dirs as $dir) { if (is_dir($dir)) { $resolvedDirs[] = $this->normalizeDir($dir); } elseif ($glob = glob($dir, (\defined('GLOB_BRACE') ? GLOB_BRACE : 0) | GLOB_ONLYDIR)) { - $resolvedDirs = array_merge($resolvedDirs, array_map(array($this, 'normalizeDir'), $glob)); + $resolvedDirs = array_merge($resolvedDirs, array_map([$this, 'normalizeDir'], $glob)); } else { throw new \InvalidArgumentException(sprintf('The "%s" directory does not exist.', $dir)); } @@ -589,7 +589,7 @@ public function getIterator() * * The set can be another Finder, an Iterator, an IteratorAggregate, or even a plain array. * - * @param mixed $iterator + * @param iterable $iterator * * @return $this * @@ -639,18 +639,21 @@ public function count() } /** - * @param $dir + * @param string $dir * * @return \Iterator */ private function searchInDirectory($dir) { + $exclude = $this->exclude; + $notPaths = $this->notPaths; + if (static::IGNORE_VCS_FILES === (static::IGNORE_VCS_FILES & $this->ignore)) { - $this->exclude = array_merge($this->exclude, self::$vcsPatterns); + $exclude = array_merge($exclude, self::$vcsPatterns); } if (static::IGNORE_DOT_FILES === (static::IGNORE_DOT_FILES & $this->ignore)) { - $this->notPaths[] = '#(^|/)\..+(/|$)#'; + $notPaths[] = '#(^|/)\..+(/|$)#'; } $minDepth = 0; @@ -683,8 +686,8 @@ private function searchInDirectory($dir) $iterator = new Iterator\RecursiveDirectoryIterator($dir, $flags, $this->ignoreUnreadableDirs); - if ($this->exclude) { - $iterator = new Iterator\ExcludeDirectoryFilterIterator($iterator, $this->exclude); + if ($exclude) { + $iterator = new Iterator\ExcludeDirectoryFilterIterator($iterator, $exclude); } $iterator = new \RecursiveIteratorIterator($iterator, \RecursiveIteratorIterator::SELF_FIRST); @@ -717,8 +720,8 @@ private function searchInDirectory($dir) $iterator = new Iterator\CustomFilterIterator($iterator, $this->filters); } - if ($this->paths || $this->notPaths) { - $iterator = new Iterator\PathFilterIterator($iterator, $this->paths, $this->notPaths); + if ($this->paths || $notPaths) { + $iterator = new Iterator\PathFilterIterator($iterator, $this->paths, $notPaths); } if ($this->sort) { @@ -732,12 +735,20 @@ private function searchInDirectory($dir) /** * Normalizes given directory names by removing trailing slashes. * + * Excluding: (s)ftp:// wrapper + * * @param string $dir * * @return string */ private function normalizeDir($dir) { - return rtrim($dir, '/'.\DIRECTORY_SEPARATOR); + $dir = rtrim($dir, '/'.\DIRECTORY_SEPARATOR); + + if (preg_match('#^s?ftp://#', $dir)) { + $dir .= '/'; + } + + return $dir; } } diff --git a/vendor/symfony/finder/Glob.php b/vendor/symfony/finder/Glob.php index d8df62bfea63a42dbe8f91353b2c762ae0a82ec8..ea76d51ae0f9f33a8792ee4e28479d65e11b8401 100644 --- a/vendor/symfony/finder/Glob.php +++ b/vendor/symfony/finder/Glob.php @@ -14,14 +14,14 @@ /** * Glob matches globbing patterns against text. * - * if match_glob("foo.*", "foo.bar") echo "matched\n"; + * if match_glob("foo.*", "foo.bar") echo "matched\n"; * - * // prints foo.bar and foo.baz - * $regex = glob_to_regex("foo.*"); - * for (array('foo.bar', 'foo.baz', 'foo', 'bar') as $t) - * { - * if (/$regex/) echo "matched: $car\n"; - * } + * // prints foo.bar and foo.baz + * $regex = glob_to_regex("foo.*"); + * for (['foo.bar', 'foo.baz', 'foo', 'bar'] as $t) + * { + * if (/$regex/) echo "matched: $car\n"; + * } * * Glob implements glob(3) style matching that can be used to match * against text, rather than fetching names from a filesystem. diff --git a/vendor/symfony/finder/Iterator/CustomFilterIterator.php b/vendor/symfony/finder/Iterator/CustomFilterIterator.php index 6666e07ec54bba96f73bc46fd4d756bf2ac4e6ae..896f7e912f087563a55b7592a48a6123918b7285 100644 --- a/vendor/symfony/finder/Iterator/CustomFilterIterator.php +++ b/vendor/symfony/finder/Iterator/CustomFilterIterator.php @@ -21,7 +21,7 @@ */ class CustomFilterIterator extends FilterIterator { - private $filters = array(); + private $filters = []; /** * @param \Iterator $iterator The Iterator to filter diff --git a/vendor/symfony/finder/Iterator/DateRangeFilterIterator.php b/vendor/symfony/finder/Iterator/DateRangeFilterIterator.php index b01e5e3f5d8857c4e9a43b7b3afcac9aa6d3ce33..8a47321a3c3709911149637621fab481241b6163 100644 --- a/vendor/symfony/finder/Iterator/DateRangeFilterIterator.php +++ b/vendor/symfony/finder/Iterator/DateRangeFilterIterator.php @@ -20,7 +20,7 @@ */ class DateRangeFilterIterator extends FilterIterator { - private $comparators = array(); + private $comparators = []; /** * @param \Iterator $iterator The Iterator to filter diff --git a/vendor/symfony/finder/Iterator/ExcludeDirectoryFilterIterator.php b/vendor/symfony/finder/Iterator/ExcludeDirectoryFilterIterator.php index c57128c278492d8526539bc1442d4f96aac680c7..bc0e6fc1e1a9f6b4fc89e010d7230544d46480c4 100644 --- a/vendor/symfony/finder/Iterator/ExcludeDirectoryFilterIterator.php +++ b/vendor/symfony/finder/Iterator/ExcludeDirectoryFilterIterator.php @@ -20,7 +20,7 @@ class ExcludeDirectoryFilterIterator extends FilterIterator implements \Recursiv { private $iterator; private $isRecursive; - private $excludedDirs = array(); + private $excludedDirs = []; private $excludedPattern; /** @@ -31,7 +31,7 @@ public function __construct(\Iterator $iterator, array $directories) { $this->iterator = $iterator; $this->isRecursive = $iterator instanceof \RecursiveIterator; - $patterns = array(); + $patterns = []; foreach ($directories as $directory) { $directory = rtrim($directory, '/'); if (!$this->isRecursive || false !== strpos($directory, '/')) { @@ -75,7 +75,7 @@ public function hasChildren() public function getChildren() { - $children = new self($this->iterator->getChildren(), array()); + $children = new self($this->iterator->getChildren(), []); $children->excludedDirs = $this->excludedDirs; $children->excludedPattern = $this->excludedPattern; diff --git a/vendor/symfony/finder/Iterator/MultiplePcreFilterIterator.php b/vendor/symfony/finder/Iterator/MultiplePcreFilterIterator.php index fc8854047e3422953a85fbbdd8a08674f3d0032f..ee365a58b084f60e9f6311075cb529b41d4ffa8f 100644 --- a/vendor/symfony/finder/Iterator/MultiplePcreFilterIterator.php +++ b/vendor/symfony/finder/Iterator/MultiplePcreFilterIterator.php @@ -18,8 +18,8 @@ */ abstract class MultiplePcreFilterIterator extends FilterIterator { - protected $matchRegexps = array(); - protected $noMatchRegexps = array(); + protected $matchRegexps = []; + protected $noMatchRegexps = []; /** * @param \Iterator $iterator The Iterator to filter @@ -91,7 +91,7 @@ protected function isRegex($str) return !preg_match('/[*?[:alnum:] \\\\]/', $start); } - foreach (array(array('{', '}'), array('(', ')'), array('[', ']'), array('<', '>')) as $delimiters) { + foreach ([['{', '}'], ['(', ')'], ['[', ']'], ['<', '>']] as $delimiters) { if ($start === $delimiters[0] && $end === $delimiters[1]) { return true; } diff --git a/vendor/symfony/finder/Iterator/RecursiveDirectoryIterator.php b/vendor/symfony/finder/Iterator/RecursiveDirectoryIterator.php index 3e6ef86ade59f25e6c84e05418d6e6e69b5f08e4..ab48a2b8a174de51b89ef29c285f65f839d66a81 100644 --- a/vendor/symfony/finder/Iterator/RecursiveDirectoryIterator.php +++ b/vendor/symfony/finder/Iterator/RecursiveDirectoryIterator.php @@ -100,7 +100,7 @@ public function getChildren() } catch (\UnexpectedValueException $e) { if ($this->ignoreUnreadableDirs) { // If directory is unreadable and finder is set to ignore it, a fake empty content is returned. - return new \RecursiveArrayIterator(array()); + return new \RecursiveArrayIterator([]); } else { throw new AccessDeniedException($e->getMessage(), $e->getCode(), $e); } diff --git a/vendor/symfony/finder/Iterator/SizeRangeFilterIterator.php b/vendor/symfony/finder/Iterator/SizeRangeFilterIterator.php index bd1a7fb7004819273329563388d9f1eff3306b61..4e521c8c9040c9fb90fc94344194b4c82ff02f09 100644 --- a/vendor/symfony/finder/Iterator/SizeRangeFilterIterator.php +++ b/vendor/symfony/finder/Iterator/SizeRangeFilterIterator.php @@ -20,7 +20,7 @@ */ class SizeRangeFilterIterator extends FilterIterator { - private $comparators = array(); + private $comparators = []; /** * @param \Iterator $iterator The Iterator to filter diff --git a/vendor/symfony/finder/Iterator/SortableIterator.php b/vendor/symfony/finder/Iterator/SortableIterator.php index 53f8e31c6c4291db03ce77281bdccd416ccaef79..3c7157adb9258b1266c9ad43cf9ab85376b3b06d 100644 --- a/vendor/symfony/finder/Iterator/SortableIterator.php +++ b/vendor/symfony/finder/Iterator/SortableIterator.php @@ -39,7 +39,7 @@ public function __construct(\Traversable $iterator, $sort) if (self::SORT_BY_NAME === $sort) { $this->sort = function ($a, $b) { - return strcmp($a->getRealpath() ?: $a->getPathname(), $b->getRealpath() ?: $b->getPathname()); + return strcmp($a->getRealPath() ?: $a->getPathname(), $b->getRealPath() ?: $b->getPathname()); }; } elseif (self::SORT_BY_TYPE === $sort) { $this->sort = function ($a, $b) { @@ -49,7 +49,7 @@ public function __construct(\Traversable $iterator, $sort) return 1; } - return strcmp($a->getRealpath() ?: $a->getPathname(), $b->getRealpath() ?: $b->getPathname()); + return strcmp($a->getRealPath() ?: $a->getPathname(), $b->getRealPath() ?: $b->getPathname()); }; } elseif (self::SORT_BY_ACCESSED_TIME === $sort) { $this->sort = function ($a, $b) { diff --git a/vendor/symfony/finder/LICENSE b/vendor/symfony/finder/LICENSE index 21d7fb9e2f29b50caca3a76f0647e94e2cc8ddc1..a677f43763ca467472898351b328aee41e2edd7c 100644 --- a/vendor/symfony/finder/LICENSE +++ b/vendor/symfony/finder/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2004-2018 Fabien Potencier +Copyright (c) 2004-2019 Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/vendor/symfony/finder/Tests/Comparator/ComparatorTest.php b/vendor/symfony/finder/Tests/Comparator/ComparatorTest.php index 656fc57a4bc46e9196b1d6f7fcca695c015eaecf..2f56092ed8760bb8b8e71caa6df780950eac71bb 100644 --- a/vendor/symfony/finder/Tests/Comparator/ComparatorTest.php +++ b/vendor/symfony/finder/Tests/Comparator/ComparatorTest.php @@ -58,8 +58,8 @@ public function testTest($operator, $target, $match, $noMatch) public function getTestData() { - return array( - array('<', '1000', array('500', '999'), array('1000', '1500')), - ); + return [ + ['<', '1000', ['500', '999'], ['1000', '1500']], + ]; } } diff --git a/vendor/symfony/finder/Tests/Comparator/DateComparatorTest.php b/vendor/symfony/finder/Tests/Comparator/DateComparatorTest.php index 8a6c1ddfd19e2b2a0f927e1a22f7d4b3e06d32b2..3aebf524499f7971ebc96eeb1ec1adb3839526af 100644 --- a/vendor/symfony/finder/Tests/Comparator/DateComparatorTest.php +++ b/vendor/symfony/finder/Tests/Comparator/DateComparatorTest.php @@ -51,14 +51,14 @@ public function testTest($test, $match, $noMatch) public function getTestData() { - return array( - array('< 2005-10-10', array(strtotime('2005-10-09')), array(strtotime('2005-10-15'))), - array('until 2005-10-10', array(strtotime('2005-10-09')), array(strtotime('2005-10-15'))), - array('before 2005-10-10', array(strtotime('2005-10-09')), array(strtotime('2005-10-15'))), - array('> 2005-10-10', array(strtotime('2005-10-15')), array(strtotime('2005-10-09'))), - array('after 2005-10-10', array(strtotime('2005-10-15')), array(strtotime('2005-10-09'))), - array('since 2005-10-10', array(strtotime('2005-10-15')), array(strtotime('2005-10-09'))), - array('!= 2005-10-10', array(strtotime('2005-10-11')), array(strtotime('2005-10-10'))), - ); + return [ + ['< 2005-10-10', [strtotime('2005-10-09')], [strtotime('2005-10-15')]], + ['until 2005-10-10', [strtotime('2005-10-09')], [strtotime('2005-10-15')]], + ['before 2005-10-10', [strtotime('2005-10-09')], [strtotime('2005-10-15')]], + ['> 2005-10-10', [strtotime('2005-10-15')], [strtotime('2005-10-09')]], + ['after 2005-10-10', [strtotime('2005-10-15')], [strtotime('2005-10-09')]], + ['since 2005-10-10', [strtotime('2005-10-15')], [strtotime('2005-10-09')]], + ['!= 2005-10-10', [strtotime('2005-10-11')], [strtotime('2005-10-10')]], + ]; } } diff --git a/vendor/symfony/finder/Tests/Comparator/NumberComparatorTest.php b/vendor/symfony/finder/Tests/Comparator/NumberComparatorTest.php index 30a75c738c5a4ad9574b8587d42e04872b7fe467..5b49b660a77603e00868362baa1078aebd0031c9 100644 --- a/vendor/symfony/finder/Tests/Comparator/NumberComparatorTest.php +++ b/vendor/symfony/finder/Tests/Comparator/NumberComparatorTest.php @@ -53,39 +53,39 @@ public function testTest($test, $match, $noMatch) public function getTestData() { - return array( - array('< 1000', array('500', '999'), array('1000', '1500')), + return [ + ['< 1000', ['500', '999'], ['1000', '1500']], - array('< 1K', array('500', '999'), array('1000', '1500')), - array('<1k', array('500', '999'), array('1000', '1500')), - array(' < 1 K ', array('500', '999'), array('1000', '1500')), - array('<= 1K', array('1000'), array('1001')), - array('> 1K', array('1001'), array('1000')), - array('>= 1K', array('1000'), array('999')), + ['< 1K', ['500', '999'], ['1000', '1500']], + ['<1k', ['500', '999'], ['1000', '1500']], + [' < 1 K ', ['500', '999'], ['1000', '1500']], + ['<= 1K', ['1000'], ['1001']], + ['> 1K', ['1001'], ['1000']], + ['>= 1K', ['1000'], ['999']], - array('< 1KI', array('500', '1023'), array('1024', '1500')), - array('<= 1KI', array('1024'), array('1025')), - array('> 1KI', array('1025'), array('1024')), - array('>= 1KI', array('1024'), array('1023')), + ['< 1KI', ['500', '1023'], ['1024', '1500']], + ['<= 1KI', ['1024'], ['1025']], + ['> 1KI', ['1025'], ['1024']], + ['>= 1KI', ['1024'], ['1023']], - array('1KI', array('1024'), array('1023', '1025')), - array('==1KI', array('1024'), array('1023', '1025')), + ['1KI', ['1024'], ['1023', '1025']], + ['==1KI', ['1024'], ['1023', '1025']], - array('==1m', array('1000000'), array('999999', '1000001')), - array('==1mi', array(1024 * 1024), array(1024 * 1024 - 1, 1024 * 1024 + 1)), + ['==1m', ['1000000'], ['999999', '1000001']], + ['==1mi', [1024 * 1024], [1024 * 1024 - 1, 1024 * 1024 + 1]], - array('==1g', array('1000000000'), array('999999999', '1000000001')), - array('==1gi', array(1024 * 1024 * 1024), array(1024 * 1024 * 1024 - 1, 1024 * 1024 * 1024 + 1)), + ['==1g', ['1000000000'], ['999999999', '1000000001']], + ['==1gi', [1024 * 1024 * 1024], [1024 * 1024 * 1024 - 1, 1024 * 1024 * 1024 + 1]], - array('!= 1000', array('500', '999'), array('1000')), - ); + ['!= 1000', ['500', '999'], ['1000']], + ]; } public function getConstructorTestData() { - return array( - array( - array( + return [ + [ + [ '1', '0', '3.5', '33.55', '123.456', '123456.78', '.1', '.123', @@ -94,15 +94,15 @@ public function getConstructorTestData() '==1', '!=1', '<1', '>1', '<=1', '>=1', '==1k', '==1ki', '==1m', '==1mi', '==1g', '==1gi', '1k', '1ki', '1m', '1mi', '1g', '1gi', - ), - array( + ], + [ false, null, '', ' ', 'foobar', '=1', '===1', '0 . 1', '123 .45', '234. 567', '..', '.0.', '0.1.2', - ), - ), - ); + ], + ], + ]; } } diff --git a/vendor/symfony/finder/Tests/FinderTest.php b/vendor/symfony/finder/Tests/FinderTest.php index fbdcc36e6bad2b0e224cc62adc7a67d12a426c3a..c0eac6da12b596821bb1f301473ff7b5e1e0a5ef 100644 --- a/vendor/symfony/finder/Tests/FinderTest.php +++ b/vendor/symfony/finder/Tests/FinderTest.php @@ -24,33 +24,33 @@ public function testDirectories() { $finder = $this->buildFinder(); $this->assertSame($finder, $finder->directories()); - $this->assertIterator($this->toAbsolute(array('foo', 'toto')), $finder->in(self::$tmpDir)->getIterator()); + $this->assertIterator($this->toAbsolute(['foo', 'toto']), $finder->in(self::$tmpDir)->getIterator()); $finder = $this->buildFinder(); $finder->directories(); $finder->files(); $finder->directories(); - $this->assertIterator($this->toAbsolute(array('foo', 'toto')), $finder->in(self::$tmpDir)->getIterator()); + $this->assertIterator($this->toAbsolute(['foo', 'toto']), $finder->in(self::$tmpDir)->getIterator()); } public function testFiles() { $finder = $this->buildFinder(); $this->assertSame($finder, $finder->files()); - $this->assertIterator($this->toAbsolute(array('foo/bar.tmp', 'test.php', 'test.py', 'foo bar')), $finder->in(self::$tmpDir)->getIterator()); + $this->assertIterator($this->toAbsolute(['foo/bar.tmp', 'test.php', 'test.py', 'foo bar']), $finder->in(self::$tmpDir)->getIterator()); $finder = $this->buildFinder(); $finder->files(); $finder->directories(); $finder->files(); - $this->assertIterator($this->toAbsolute(array('foo/bar.tmp', 'test.php', 'test.py', 'foo bar')), $finder->in(self::$tmpDir)->getIterator()); + $this->assertIterator($this->toAbsolute(['foo/bar.tmp', 'test.php', 'test.py', 'foo bar']), $finder->in(self::$tmpDir)->getIterator()); } public function testRemoveTrailingSlash() { $finder = $this->buildFinder(); - $expected = $this->toAbsolute(array('foo/bar.tmp', 'test.php', 'test.py', 'foo bar')); + $expected = $this->toAbsolute(['foo/bar.tmp', 'test.php', 'test.py', 'foo bar']); $in = self::$tmpDir.'//'; $this->assertIterator($expected, $finder->in($in)->files()->getIterator()); @@ -65,7 +65,7 @@ public function testSymlinksNotResolved() $finder = $this->buildFinder(); symlink($this->toAbsolute('foo'), $this->toAbsolute('baz')); - $expected = $this->toAbsolute(array('baz/bar.tmp')); + $expected = $this->toAbsolute(['baz/bar.tmp']); $in = self::$tmpDir.'/baz/'; try { $this->assertIterator($expected, $finder->in($in)->files()->getIterator()); @@ -80,7 +80,7 @@ public function testBackPathNotNormalized() { $finder = $this->buildFinder(); - $expected = $this->toAbsolute(array('foo/../foo/bar.tmp')); + $expected = $this->toAbsolute(['foo/../foo/bar.tmp']); $in = self::$tmpDir.'/foo/../foo/'; $this->assertIterator($expected, $finder->in($in)->files()->getIterator()); } @@ -89,68 +89,68 @@ public function testDepth() { $finder = $this->buildFinder(); $this->assertSame($finder, $finder->depth('< 1')); - $this->assertIterator($this->toAbsolute(array('foo', 'test.php', 'test.py', 'toto', 'foo bar')), $finder->in(self::$tmpDir)->getIterator()); + $this->assertIterator($this->toAbsolute(['foo', 'test.php', 'test.py', 'toto', 'foo bar']), $finder->in(self::$tmpDir)->getIterator()); $finder = $this->buildFinder(); $this->assertSame($finder, $finder->depth('<= 0')); - $this->assertIterator($this->toAbsolute(array('foo', 'test.php', 'test.py', 'toto', 'foo bar')), $finder->in(self::$tmpDir)->getIterator()); + $this->assertIterator($this->toAbsolute(['foo', 'test.php', 'test.py', 'toto', 'foo bar']), $finder->in(self::$tmpDir)->getIterator()); $finder = $this->buildFinder(); $this->assertSame($finder, $finder->depth('>= 1')); - $this->assertIterator($this->toAbsolute(array('foo/bar.tmp')), $finder->in(self::$tmpDir)->getIterator()); + $this->assertIterator($this->toAbsolute(['foo/bar.tmp']), $finder->in(self::$tmpDir)->getIterator()); $finder = $this->buildFinder(); $finder->depth('< 1')->depth('>= 1'); - $this->assertIterator(array(), $finder->in(self::$tmpDir)->getIterator()); + $this->assertIterator([], $finder->in(self::$tmpDir)->getIterator()); } public function testName() { $finder = $this->buildFinder(); $this->assertSame($finder, $finder->name('*.php')); - $this->assertIterator($this->toAbsolute(array('test.php')), $finder->in(self::$tmpDir)->getIterator()); + $this->assertIterator($this->toAbsolute(['test.php']), $finder->in(self::$tmpDir)->getIterator()); $finder = $this->buildFinder(); $finder->name('test.ph*'); $finder->name('test.py'); - $this->assertIterator($this->toAbsolute(array('test.php', 'test.py')), $finder->in(self::$tmpDir)->getIterator()); + $this->assertIterator($this->toAbsolute(['test.php', 'test.py']), $finder->in(self::$tmpDir)->getIterator()); $finder = $this->buildFinder(); $finder->name('~^test~i'); - $this->assertIterator($this->toAbsolute(array('test.php', 'test.py')), $finder->in(self::$tmpDir)->getIterator()); + $this->assertIterator($this->toAbsolute(['test.php', 'test.py']), $finder->in(self::$tmpDir)->getIterator()); $finder = $this->buildFinder(); $finder->name('~\\.php$~i'); - $this->assertIterator($this->toAbsolute(array('test.php')), $finder->in(self::$tmpDir)->getIterator()); + $this->assertIterator($this->toAbsolute(['test.php']), $finder->in(self::$tmpDir)->getIterator()); $finder = $this->buildFinder(); $finder->name('test.p{hp,y}'); - $this->assertIterator($this->toAbsolute(array('test.php', 'test.py')), $finder->in(self::$tmpDir)->getIterator()); + $this->assertIterator($this->toAbsolute(['test.php', 'test.py']), $finder->in(self::$tmpDir)->getIterator()); } public function testNotName() { $finder = $this->buildFinder(); $this->assertSame($finder, $finder->notName('*.php')); - $this->assertIterator($this->toAbsolute(array('foo', 'foo/bar.tmp', 'test.py', 'toto', 'foo bar')), $finder->in(self::$tmpDir)->getIterator()); + $this->assertIterator($this->toAbsolute(['foo', 'foo/bar.tmp', 'test.py', 'toto', 'foo bar']), $finder->in(self::$tmpDir)->getIterator()); $finder = $this->buildFinder(); $finder->notName('*.php'); $finder->notName('*.py'); - $this->assertIterator($this->toAbsolute(array('foo', 'foo/bar.tmp', 'toto', 'foo bar')), $finder->in(self::$tmpDir)->getIterator()); + $this->assertIterator($this->toAbsolute(['foo', 'foo/bar.tmp', 'toto', 'foo bar']), $finder->in(self::$tmpDir)->getIterator()); $finder = $this->buildFinder(); $finder->name('test.ph*'); $finder->name('test.py'); $finder->notName('*.php'); $finder->notName('*.py'); - $this->assertIterator(array(), $finder->in(self::$tmpDir)->getIterator()); + $this->assertIterator([], $finder->in(self::$tmpDir)->getIterator()); $finder = $this->buildFinder(); $finder->name('test.ph*'); $finder->name('test.py'); $finder->notName('*.p{hp,y}'); - $this->assertIterator(array(), $finder->in(self::$tmpDir)->getIterator()); + $this->assertIterator([], $finder->in(self::$tmpDir)->getIterator()); } /** @@ -160,107 +160,130 @@ public function testRegexName($regex) { $finder = $this->buildFinder(); $finder->name($regex); - $this->assertIterator($this->toAbsolute(array('test.py', 'test.php')), $finder->in(self::$tmpDir)->getIterator()); + $this->assertIterator($this->toAbsolute(['test.py', 'test.php']), $finder->in(self::$tmpDir)->getIterator()); } public function testSize() { $finder = $this->buildFinder(); $this->assertSame($finder, $finder->files()->size('< 1K')->size('> 500')); - $this->assertIterator($this->toAbsolute(array('test.php')), $finder->in(self::$tmpDir)->getIterator()); + $this->assertIterator($this->toAbsolute(['test.php']), $finder->in(self::$tmpDir)->getIterator()); } public function testDate() { $finder = $this->buildFinder(); $this->assertSame($finder, $finder->files()->date('until last month')); - $this->assertIterator($this->toAbsolute(array('foo/bar.tmp', 'test.php')), $finder->in(self::$tmpDir)->getIterator()); + $this->assertIterator($this->toAbsolute(['foo/bar.tmp', 'test.php']), $finder->in(self::$tmpDir)->getIterator()); } public function testExclude() { $finder = $this->buildFinder(); $this->assertSame($finder, $finder->exclude('foo')); - $this->assertIterator($this->toAbsolute(array('test.php', 'test.py', 'toto', 'foo bar')), $finder->in(self::$tmpDir)->getIterator()); + $this->assertIterator($this->toAbsolute(['test.php', 'test.py', 'toto', 'foo bar']), $finder->in(self::$tmpDir)->getIterator()); } public function testIgnoreVCS() { $finder = $this->buildFinder(); $this->assertSame($finder, $finder->ignoreVCS(false)->ignoreDotFiles(false)); - $this->assertIterator($this->toAbsolute(array('.git', 'foo', 'foo/bar.tmp', 'test.php', 'test.py', 'toto', 'toto/.git', '.bar', '.foo', '.foo/.bar', '.foo/bar', 'foo bar')), $finder->in(self::$tmpDir)->getIterator()); + $this->assertIterator($this->toAbsolute(['.git', 'foo', 'foo/bar.tmp', 'test.php', 'test.py', 'toto', 'toto/.git', '.bar', '.foo', '.foo/.bar', '.foo/bar', 'foo bar']), $finder->in(self::$tmpDir)->getIterator()); $finder = $this->buildFinder(); $finder->ignoreVCS(false)->ignoreVCS(false)->ignoreDotFiles(false); - $this->assertIterator($this->toAbsolute(array('.git', 'foo', 'foo/bar.tmp', 'test.php', 'test.py', 'toto', 'toto/.git', '.bar', '.foo', '.foo/.bar', '.foo/bar', 'foo bar')), $finder->in(self::$tmpDir)->getIterator()); + $this->assertIterator($this->toAbsolute(['.git', 'foo', 'foo/bar.tmp', 'test.php', 'test.py', 'toto', 'toto/.git', '.bar', '.foo', '.foo/.bar', '.foo/bar', 'foo bar']), $finder->in(self::$tmpDir)->getIterator()); $finder = $this->buildFinder(); $this->assertSame($finder, $finder->ignoreVCS(true)->ignoreDotFiles(false)); - $this->assertIterator($this->toAbsolute(array('foo', 'foo/bar.tmp', 'test.php', 'test.py', 'toto', '.bar', '.foo', '.foo/.bar', '.foo/bar', 'foo bar')), $finder->in(self::$tmpDir)->getIterator()); + $this->assertIterator($this->toAbsolute(['foo', 'foo/bar.tmp', 'test.php', 'test.py', 'toto', '.bar', '.foo', '.foo/.bar', '.foo/bar', 'foo bar']), $finder->in(self::$tmpDir)->getIterator()); + } + + public function testIgnoreVCSCanBeDisabledAfterFirstIteration() + { + $finder = $this->buildFinder(); + $finder->in(self::$tmpDir); + $finder->ignoreDotFiles(false); + + $this->assertIterator($this->toAbsolute(['foo', 'foo/bar.tmp', 'test.php', 'test.py', 'toto', '.bar', '.foo', '.foo/.bar', '.foo/bar', 'foo bar']), $finder->getIterator()); + + $finder->ignoreVCS(false); + $this->assertIterator($this->toAbsolute(['.git', 'foo', 'foo/bar.tmp', 'test.php', 'test.py', 'toto', 'toto/.git', '.bar', '.foo', '.foo/.bar', '.foo/bar', 'foo bar']), $finder->getIterator()); } public function testIgnoreDotFiles() { $finder = $this->buildFinder(); $this->assertSame($finder, $finder->ignoreDotFiles(false)->ignoreVCS(false)); - $this->assertIterator($this->toAbsolute(array('.git', '.bar', '.foo', '.foo/.bar', '.foo/bar', 'foo', 'foo/bar.tmp', 'test.php', 'test.py', 'toto', 'toto/.git', 'foo bar')), $finder->in(self::$tmpDir)->getIterator()); + $this->assertIterator($this->toAbsolute(['.git', '.bar', '.foo', '.foo/.bar', '.foo/bar', 'foo', 'foo/bar.tmp', 'test.php', 'test.py', 'toto', 'toto/.git', 'foo bar']), $finder->in(self::$tmpDir)->getIterator()); $finder = $this->buildFinder(); $finder->ignoreDotFiles(false)->ignoreDotFiles(false)->ignoreVCS(false); - $this->assertIterator($this->toAbsolute(array('.git', '.bar', '.foo', '.foo/.bar', '.foo/bar', 'foo', 'foo/bar.tmp', 'test.php', 'test.py', 'toto', 'toto/.git', 'foo bar')), $finder->in(self::$tmpDir)->getIterator()); + $this->assertIterator($this->toAbsolute(['.git', '.bar', '.foo', '.foo/.bar', '.foo/bar', 'foo', 'foo/bar.tmp', 'test.php', 'test.py', 'toto', 'toto/.git', 'foo bar']), $finder->in(self::$tmpDir)->getIterator()); $finder = $this->buildFinder(); $this->assertSame($finder, $finder->ignoreDotFiles(true)->ignoreVCS(false)); - $this->assertIterator($this->toAbsolute(array('foo', 'foo/bar.tmp', 'test.php', 'test.py', 'toto', 'foo bar')), $finder->in(self::$tmpDir)->getIterator()); + $this->assertIterator($this->toAbsolute(['foo', 'foo/bar.tmp', 'test.php', 'test.py', 'toto', 'foo bar']), $finder->in(self::$tmpDir)->getIterator()); + } + + public function testIgnoreDotFilesCanBeDisabledAfterFirstIteration() + { + $finder = $this->buildFinder(); + $finder->in(self::$tmpDir); + + $this->assertIterator($this->toAbsolute(['foo', 'foo/bar.tmp', 'test.php', 'test.py', 'toto', 'foo bar']), $finder->getIterator()); + + $finder->ignoreDotFiles(false); + $this->assertIterator($this->toAbsolute(['foo', 'foo/bar.tmp', 'test.php', 'test.py', 'toto', '.bar', '.foo', '.foo/.bar', '.foo/bar', 'foo bar']), $finder->getIterator()); } public function testSortByName() { $finder = $this->buildFinder(); $this->assertSame($finder, $finder->sortByName()); - $this->assertIterator($this->toAbsolute(array('foo', 'foo bar', 'foo/bar.tmp', 'test.php', 'test.py', 'toto')), $finder->in(self::$tmpDir)->getIterator()); + $this->assertIterator($this->toAbsolute(['foo', 'foo bar', 'foo/bar.tmp', 'test.php', 'test.py', 'toto']), $finder->in(self::$tmpDir)->getIterator()); } public function testSortByType() { $finder = $this->buildFinder(); $this->assertSame($finder, $finder->sortByType()); - $this->assertIterator($this->toAbsolute(array('foo', 'foo bar', 'toto', 'foo/bar.tmp', 'test.php', 'test.py')), $finder->in(self::$tmpDir)->getIterator()); + $this->assertIterator($this->toAbsolute(['foo', 'foo bar', 'toto', 'foo/bar.tmp', 'test.php', 'test.py']), $finder->in(self::$tmpDir)->getIterator()); } public function testSortByAccessedTime() { $finder = $this->buildFinder(); $this->assertSame($finder, $finder->sortByAccessedTime()); - $this->assertIterator($this->toAbsolute(array('foo/bar.tmp', 'test.php', 'toto', 'test.py', 'foo', 'foo bar')), $finder->in(self::$tmpDir)->getIterator()); + $this->assertIterator($this->toAbsolute(['foo/bar.tmp', 'test.php', 'toto', 'test.py', 'foo', 'foo bar']), $finder->in(self::$tmpDir)->getIterator()); } public function testSortByChangedTime() { $finder = $this->buildFinder(); $this->assertSame($finder, $finder->sortByChangedTime()); - $this->assertIterator($this->toAbsolute(array('toto', 'test.py', 'test.php', 'foo/bar.tmp', 'foo', 'foo bar')), $finder->in(self::$tmpDir)->getIterator()); + $this->assertIterator($this->toAbsolute(['toto', 'test.py', 'test.php', 'foo/bar.tmp', 'foo', 'foo bar']), $finder->in(self::$tmpDir)->getIterator()); } public function testSortByModifiedTime() { $finder = $this->buildFinder(); $this->assertSame($finder, $finder->sortByModifiedTime()); - $this->assertIterator($this->toAbsolute(array('foo/bar.tmp', 'test.php', 'toto', 'test.py', 'foo', 'foo bar')), $finder->in(self::$tmpDir)->getIterator()); + $this->assertIterator($this->toAbsolute(['foo/bar.tmp', 'test.php', 'toto', 'test.py', 'foo', 'foo bar']), $finder->in(self::$tmpDir)->getIterator()); } public function testSort() { $finder = $this->buildFinder(); $this->assertSame($finder, $finder->sort(function (\SplFileInfo $a, \SplFileInfo $b) { return strcmp($a->getRealPath(), $b->getRealPath()); })); - $this->assertIterator($this->toAbsolute(array('foo', 'foo bar', 'foo/bar.tmp', 'test.php', 'test.py', 'toto')), $finder->in(self::$tmpDir)->getIterator()); + $this->assertIterator($this->toAbsolute(['foo', 'foo bar', 'foo/bar.tmp', 'test.php', 'test.py', 'toto']), $finder->in(self::$tmpDir)->getIterator()); } public function testFilter() { $finder = $this->buildFinder(); $this->assertSame($finder, $finder->filter(function (\SplFileInfo $f) { return false !== strpos($f, 'test'); })); - $this->assertIterator($this->toAbsolute(array('test.php', 'test.py')), $finder->in(self::$tmpDir)->getIterator()); + $this->assertIterator($this->toAbsolute(['test.php', 'test.py']), $finder->in(self::$tmpDir)->getIterator()); } public function testFollowLinks() @@ -271,19 +294,19 @@ public function testFollowLinks() $finder = $this->buildFinder(); $this->assertSame($finder, $finder->followLinks()); - $this->assertIterator($this->toAbsolute(array('foo', 'foo/bar.tmp', 'test.php', 'test.py', 'toto', 'foo bar')), $finder->in(self::$tmpDir)->getIterator()); + $this->assertIterator($this->toAbsolute(['foo', 'foo/bar.tmp', 'test.php', 'test.py', 'toto', 'foo bar']), $finder->in(self::$tmpDir)->getIterator()); } public function testIn() { $finder = $this->buildFinder(); - $iterator = $finder->files()->name('*.php')->depth('< 1')->in(array(self::$tmpDir, __DIR__))->getIterator(); + $iterator = $finder->files()->name('*.php')->depth('< 1')->in([self::$tmpDir, __DIR__])->getIterator(); - $expected = array( + $expected = [ self::$tmpDir.\DIRECTORY_SEPARATOR.'test.php', __DIR__.\DIRECTORY_SEPARATOR.'FinderTest.php', __DIR__.\DIRECTORY_SEPARATOR.'GlobTest.php', - ); + ]; $this->assertIterator($expected, $iterator); } @@ -300,9 +323,9 @@ public function testInWithNonExistentDirectory() public function testInWithGlob() { $finder = $this->buildFinder(); - $finder->in(array(__DIR__.'/Fixtures/*/B/C/', __DIR__.'/Fixtures/*/*/B/C/'))->getIterator(); + $finder->in([__DIR__.'/Fixtures/*/B/C/', __DIR__.'/Fixtures/*/*/B/C/'])->getIterator(); - $this->assertIterator($this->toAbsoluteFixtures(array('A/B/C/abc.dat', 'copy/A/B/C/abc.dat.copy')), $finder); + $this->assertIterator($this->toAbsoluteFixtures(['A/B/C/abc.dat', 'copy/A/B/C/abc.dat.copy']), $finder); } /** @@ -316,10 +339,14 @@ public function testInWithNonDirectoryGlob() public function testInWithGlobBrace() { + if (!\defined('GLOB_BRACE')) { + $this->markTestSkipped('Glob brace is not supported on this system.'); + } + $finder = $this->buildFinder(); - $finder->in(array(__DIR__.'/Fixtures/{A,copy/A}/B/C'))->getIterator(); + $finder->in([__DIR__.'/Fixtures/{A,copy/A}/B/C'])->getIterator(); - $this->assertIterator($this->toAbsoluteFixtures(array('A/B/C/abc.dat', 'copy/A/B/C/abc.dat.copy')), $finder); + $this->assertIterator($this->toAbsoluteFixtures(['A/B/C/abc.dat', 'copy/A/B/C/abc.dat.copy']), $finder); } /** @@ -334,12 +361,12 @@ public function testGetIteratorWithoutIn() public function testGetIterator() { $finder = $this->buildFinder(); - $dirs = array(); + $dirs = []; foreach ($finder->directories()->in(self::$tmpDir) as $dir) { $dirs[] = (string) $dir; } - $expected = $this->toAbsolute(array('foo', 'toto')); + $expected = $this->toAbsolute(['foo', 'toto']); sort($dirs); sort($expected); @@ -360,13 +387,13 @@ public function testRelativePath() { $finder = $this->buildFinder()->in(self::$tmpDir); - $paths = array(); + $paths = []; foreach ($finder as $file) { $paths[] = $file->getRelativePath(); } - $ref = array('', '', '', '', 'foo', ''); + $ref = ['', '', '', '', 'foo', '']; sort($ref); sort($paths); @@ -378,13 +405,13 @@ public function testRelativePathname() { $finder = $this->buildFinder()->in(self::$tmpDir)->sortByName(); - $paths = array(); + $paths = []; foreach ($finder as $file) { $paths[] = $file->getRelativePathname(); } - $ref = array('test.php', 'toto', 'test.py', 'foo', 'foo'.\DIRECTORY_SEPARATOR.'bar.tmp', 'foo bar'); + $ref = ['test.php', 'toto', 'test.py', 'foo', 'foo'.\DIRECTORY_SEPARATOR.'bar.tmp', 'foo bar']; sort($paths); sort($ref); @@ -402,7 +429,7 @@ public function testAppendWithAFinder() $finder = $finder->append($finder1); - $this->assertIterator($this->toAbsolute(array('foo', 'foo/bar.tmp', 'toto')), $finder->getIterator()); + $this->assertIterator($this->toAbsolute(['foo', 'foo/bar.tmp', 'toto']), $finder->getIterator()); } public function testAppendWithAnArray() @@ -410,14 +437,14 @@ public function testAppendWithAnArray() $finder = $this->buildFinder(); $finder->files()->in(self::$tmpDir.\DIRECTORY_SEPARATOR.'foo'); - $finder->append($this->toAbsolute(array('foo', 'toto'))); + $finder->append($this->toAbsolute(['foo', 'toto'])); - $this->assertIterator($this->toAbsolute(array('foo', 'foo/bar.tmp', 'toto')), $finder->getIterator()); + $this->assertIterator($this->toAbsolute(['foo', 'foo/bar.tmp', 'toto']), $finder->getIterator()); } public function testAppendReturnsAFinder() { - $this->assertInstanceOf('Symfony\\Component\\Finder\\Finder', Finder::create()->append(array())); + $this->assertInstanceOf('Symfony\\Component\\Finder\\Finder', Finder::create()->append([])); } public function testAppendDoesNotRequireIn() @@ -498,7 +525,7 @@ public function testContainsOnDirectory() ->directories() ->name('Fixtures') ->contains('abc'); - $this->assertIterator(array(), $finder); + $this->assertIterator([], $finder); } public function testNotContainsOnDirectory() @@ -508,7 +535,7 @@ public function testNotContainsOnDirectory() ->directories() ->name('Fixtures') ->notContains('abc'); - $this->assertIterator(array(), $finder); + $this->assertIterator([], $finder); } /** @@ -519,10 +546,10 @@ public function testNotContainsOnDirectory() */ public function testMultipleLocations() { - $locations = array( + $locations = [ self::$tmpDir.'/', self::$tmpDir.'/toto/', - ); + ]; // it is expected that there are test.py test.php in the tmpDir $finder = new Finder(); @@ -544,18 +571,18 @@ public function testMultipleLocations() */ public function testMultipleLocationsWithSubDirectories() { - $locations = array( + $locations = [ __DIR__.'/Fixtures/one', self::$tmpDir.\DIRECTORY_SEPARATOR.'toto', - ); + ]; $finder = $this->buildFinder(); $finder->in($locations)->depth('< 10')->name('*.neon'); - $expected = array( + $expected = [ __DIR__.'/Fixtures/one'.\DIRECTORY_SEPARATOR.'b'.\DIRECTORY_SEPARATOR.'c.neon', __DIR__.'/Fixtures/one'.\DIRECTORY_SEPARATOR.'b'.\DIRECTORY_SEPARATOR.'d.neon', - ); + ]; $this->assertIterator($expected, $finder); $this->assertIteratorInForeach($expected, $finder); @@ -578,32 +605,32 @@ public function testRegexSpecialCharsLocationWithPathRestrictionContainingStartF $finder->in(__DIR__.\DIRECTORY_SEPARATOR.'Fixtures'.\DIRECTORY_SEPARATOR.'r+e.gex[c]a(r)s') ->path('/^dir/'); - $expected = array('r+e.gex[c]a(r)s'.\DIRECTORY_SEPARATOR.'dir', 'r+e.gex[c]a(r)s'.\DIRECTORY_SEPARATOR.'dir'.\DIRECTORY_SEPARATOR.'bar.dat'); + $expected = ['r+e.gex[c]a(r)s'.\DIRECTORY_SEPARATOR.'dir', 'r+e.gex[c]a(r)s'.\DIRECTORY_SEPARATOR.'dir'.\DIRECTORY_SEPARATOR.'bar.dat']; $this->assertIterator($this->toAbsoluteFixtures($expected), $finder); } public function getContainsTestData() { - return array( - array('', '', array()), - array('foo', 'bar', array()), - array('', 'foobar', array('dolor.txt', 'ipsum.txt', 'lorem.txt')), - array('lorem ipsum dolor sit amet', 'foobar', array('lorem.txt')), - array('sit', 'bar', array('dolor.txt', 'ipsum.txt', 'lorem.txt')), - array('dolor sit amet', '@^L@m', array('dolor.txt', 'ipsum.txt')), - array('/^lorem ipsum dolor sit amet$/m', 'foobar', array('lorem.txt')), - array('lorem', 'foobar', array('lorem.txt')), - array('', 'lorem', array('dolor.txt', 'ipsum.txt')), - array('ipsum dolor sit amet', '/^IPSUM/m', array('lorem.txt')), - ); + return [ + ['', '', []], + ['foo', 'bar', []], + ['', 'foobar', ['dolor.txt', 'ipsum.txt', 'lorem.txt']], + ['lorem ipsum dolor sit amet', 'foobar', ['lorem.txt']], + ['sit', 'bar', ['dolor.txt', 'ipsum.txt', 'lorem.txt']], + ['dolor sit amet', '@^L@m', ['dolor.txt', 'ipsum.txt']], + ['/^lorem ipsum dolor sit amet$/m', 'foobar', ['lorem.txt']], + ['lorem', 'foobar', ['lorem.txt']], + ['', 'lorem', ['dolor.txt', 'ipsum.txt']], + ['ipsum dolor sit amet', '/^IPSUM/m', ['lorem.txt']], + ]; } public function getRegexNameTestData() { - return array( - array('~.+\\.p.+~i'), - array('~t.*s~i'), - ); + return [ + ['~.+\\.p.+~i'], + ['~t.*s~i'], + ]; } /** @@ -621,29 +648,29 @@ public function testPath($matchPatterns, $noMatchPatterns, array $expected) public function getTestPathData() { - return array( - array('', '', array()), - array('/^A\/B\/C/', '/C$/', - array('A'.\DIRECTORY_SEPARATOR.'B'.\DIRECTORY_SEPARATOR.'C'.\DIRECTORY_SEPARATOR.'abc.dat'), - ), - array('/^A\/B/', 'foobar', - array( + return [ + ['', '', []], + ['/^A\/B\/C/', '/C$/', + ['A'.\DIRECTORY_SEPARATOR.'B'.\DIRECTORY_SEPARATOR.'C'.\DIRECTORY_SEPARATOR.'abc.dat'], + ], + ['/^A\/B/', 'foobar', + [ 'A'.\DIRECTORY_SEPARATOR.'B', 'A'.\DIRECTORY_SEPARATOR.'B'.\DIRECTORY_SEPARATOR.'C', 'A'.\DIRECTORY_SEPARATOR.'B'.\DIRECTORY_SEPARATOR.'ab.dat', 'A'.\DIRECTORY_SEPARATOR.'B'.\DIRECTORY_SEPARATOR.'C'.\DIRECTORY_SEPARATOR.'abc.dat', - ), - ), - array('A/B/C', 'foobar', - array( + ], + ], + ['A/B/C', 'foobar', + [ 'A'.\DIRECTORY_SEPARATOR.'B'.\DIRECTORY_SEPARATOR.'C', 'A'.\DIRECTORY_SEPARATOR.'B'.\DIRECTORY_SEPARATOR.'C'.\DIRECTORY_SEPARATOR.'abc.dat', 'copy'.\DIRECTORY_SEPARATOR.'A'.\DIRECTORY_SEPARATOR.'B'.\DIRECTORY_SEPARATOR.'C', 'copy'.\DIRECTORY_SEPARATOR.'A'.\DIRECTORY_SEPARATOR.'B'.\DIRECTORY_SEPARATOR.'C'.\DIRECTORY_SEPARATOR.'abc.dat.copy', - ), - ), - array('A/B', 'foobar', - array( + ], + ], + ['A/B', 'foobar', + [ //dirs 'A'.\DIRECTORY_SEPARATOR.'B', 'A'.\DIRECTORY_SEPARATOR.'B'.\DIRECTORY_SEPARATOR.'C', @@ -654,14 +681,14 @@ public function getTestPathData() 'A'.\DIRECTORY_SEPARATOR.'B'.\DIRECTORY_SEPARATOR.'C'.\DIRECTORY_SEPARATOR.'abc.dat', 'copy'.\DIRECTORY_SEPARATOR.'A'.\DIRECTORY_SEPARATOR.'B'.\DIRECTORY_SEPARATOR.'ab.dat.copy', 'copy'.\DIRECTORY_SEPARATOR.'A'.\DIRECTORY_SEPARATOR.'B'.\DIRECTORY_SEPARATOR.'C'.\DIRECTORY_SEPARATOR.'abc.dat.copy', - ), - ), - array('/^with space\//', 'foobar', - array( + ], + ], + ['/^with space\//', 'foobar', + [ 'with space'.\DIRECTORY_SEPARATOR.'foo.txt', - ), - ), - ); + ], + ], + ]; } public function testAccessDeniedException() @@ -679,7 +706,7 @@ public function testAccessDeniedException() if (false === $couldRead = is_readable($testDir)) { try { - $this->assertIterator($this->toAbsolute(array('foo bar', 'test.php', 'test.py')), $finder->getIterator()); + $this->assertIterator($this->toAbsolute(['foo bar', 'test.php', 'test.py']), $finder->getIterator()); $this->fail('Finder should throw an exception when opening a non-readable directory.'); } catch (\Exception $e) { $expectedExceptionClass = 'Symfony\\Component\\Finder\\Exception\\AccessDeniedException'; @@ -697,7 +724,7 @@ public function testAccessDeniedException() // restore original permissions chmod($testDir, 0777); - clearstatcache($testDir); + clearstatcache(true, $testDir); if ($couldRead) { $this->markTestSkipped('could read test files while test requires unreadable'); @@ -718,12 +745,12 @@ public function testIgnoredAccessDeniedException() chmod($testDir, 0333); if (false === ($couldRead = is_readable($testDir))) { - $this->assertIterator($this->toAbsolute(array('foo bar', 'test.php', 'test.py')), $finder->getIterator()); + $this->assertIterator($this->toAbsolute(['foo bar', 'test.php', 'test.py']), $finder->getIterator()); } // restore original permissions chmod($testDir, 0777); - clearstatcache($testDir); + clearstatcache(true, $testDir); if ($couldRead) { $this->markTestSkipped('could read test files while test requires unreadable'); diff --git a/vendor/symfony/finder/Tests/GlobTest.php b/vendor/symfony/finder/Tests/GlobTest.php index 3a5aab3124281a1fdbd76da0a466bac5899ce736..2d48799c5cfa68293b37a7d4a728a90d0a28206b 100644 --- a/vendor/symfony/finder/Tests/GlobTest.php +++ b/vendor/symfony/finder/Tests/GlobTest.php @@ -39,7 +39,7 @@ public function testGlobToRegexDoubleStarStrictDots() } sort($match); - $this->assertSame(array('one/b/c.neon', 'one/b/d.neon'), $match); + $this->assertSame(['one/b/c.neon', 'one/b/d.neon'], $match); } public function testGlobToRegexDoubleStarNonStrictDots() @@ -56,7 +56,7 @@ public function testGlobToRegexDoubleStarNonStrictDots() } sort($match); - $this->assertSame(array('.dot/b/c.neon', '.dot/b/d.neon', 'one/b/c.neon', 'one/b/d.neon'), $match); + $this->assertSame(['.dot/b/c.neon', '.dot/b/d.neon', 'one/b/c.neon', 'one/b/d.neon'], $match); } public function testGlobToRegexDoubleStarWithoutLeadingSlash() @@ -73,7 +73,7 @@ public function testGlobToRegexDoubleStarWithoutLeadingSlash() } sort($match); - $this->assertSame(array('one/a', 'one/b', 'one/b/c.neon', 'one/b/d.neon'), $match); + $this->assertSame(['one/a', 'one/b', 'one/b/c.neon', 'one/b/d.neon'], $match); } public function testGlobToRegexDoubleStarWithoutLeadingSlashNotStrictLeadingDot() @@ -90,6 +90,6 @@ public function testGlobToRegexDoubleStarWithoutLeadingSlashNotStrictLeadingDot( } sort($match); - $this->assertSame(array('one/.dot', 'one/a', 'one/b', 'one/b/c.neon', 'one/b/d.neon'), $match); + $this->assertSame(['one/.dot', 'one/a', 'one/b', 'one/b/c.neon', 'one/b/d.neon'], $match); } } diff --git a/vendor/symfony/finder/Tests/Iterator/CustomFilterIteratorTest.php b/vendor/symfony/finder/Tests/Iterator/CustomFilterIteratorTest.php index b036ad13c21b606ed713cef713c31b176b3f966f..ad0187e032afcbf9d7c33ec4f108e51077839f46 100644 --- a/vendor/symfony/finder/Tests/Iterator/CustomFilterIteratorTest.php +++ b/vendor/symfony/finder/Tests/Iterator/CustomFilterIteratorTest.php @@ -20,7 +20,7 @@ class CustomFilterIteratorTest extends IteratorTestCase */ public function testWithInvalidFilter() { - new CustomFilterIterator(new Iterator(), array('foo')); + new CustomFilterIterator(new Iterator(), ['foo']); } /** @@ -28,7 +28,7 @@ public function testWithInvalidFilter() */ public function testAccept($filters, $expected) { - $inner = new Iterator(array('test.php', 'test.py', 'foo.php')); + $inner = new Iterator(['test.php', 'test.py', 'foo.php']); $iterator = new CustomFilterIterator($inner, $filters); @@ -37,10 +37,10 @@ public function testAccept($filters, $expected) public function getAcceptData() { - return array( - array(array(function (\SplFileInfo $fileinfo) { return false; }), array()), - array(array(function (\SplFileInfo $fileinfo) { return 0 === strpos($fileinfo, 'test'); }), array('test.php', 'test.py')), - array(array('is_dir'), array()), - ); + return [ + [[function (\SplFileInfo $fileinfo) { return false; }], []], + [[function (\SplFileInfo $fileinfo) { return 0 === strpos($fileinfo, 'test'); }], ['test.php', 'test.py']], + [['is_dir'], []], + ]; } } diff --git a/vendor/symfony/finder/Tests/Iterator/DateRangeFilterIteratorTest.php b/vendor/symfony/finder/Tests/Iterator/DateRangeFilterIteratorTest.php index 3226f706c7e136b4fe9409d0fab86762f07e9b39..7b1800b157a0052da10c4ef4b1bb2d429b9dd4cb 100644 --- a/vendor/symfony/finder/Tests/Iterator/DateRangeFilterIteratorTest.php +++ b/vendor/symfony/finder/Tests/Iterator/DateRangeFilterIteratorTest.php @@ -32,7 +32,7 @@ public function testAccept($size, $expected) public function getAcceptData() { - $since20YearsAgo = array( + $since20YearsAgo = [ '.git', 'test.py', 'foo', @@ -45,9 +45,9 @@ public function getAcceptData() '.foo/.bar', 'foo bar', '.foo/bar', - ); + ]; - $since2MonthsAgo = array( + $since2MonthsAgo = [ '.git', 'test.py', 'foo', @@ -58,17 +58,17 @@ public function getAcceptData() '.foo/.bar', 'foo bar', '.foo/bar', - ); + ]; - $untilLastMonth = array( + $untilLastMonth = [ 'foo/bar.tmp', 'test.php', - ); + ]; - return array( - array(array(new DateComparator('since 20 years ago')), $this->toAbsolute($since20YearsAgo)), - array(array(new DateComparator('since 2 months ago')), $this->toAbsolute($since2MonthsAgo)), - array(array(new DateComparator('until last month')), $this->toAbsolute($untilLastMonth)), - ); + return [ + [[new DateComparator('since 20 years ago')], $this->toAbsolute($since20YearsAgo)], + [[new DateComparator('since 2 months ago')], $this->toAbsolute($since2MonthsAgo)], + [[new DateComparator('until last month')], $this->toAbsolute($untilLastMonth)], + ]; } } diff --git a/vendor/symfony/finder/Tests/Iterator/DepthRangeFilterIteratorTest.php b/vendor/symfony/finder/Tests/Iterator/DepthRangeFilterIteratorTest.php index 2e90140530cd39e0ee956e55e76be5fbee18604c..dab9723d7ed2f42b6ea1c5cf51e7066a0ec5caf7 100644 --- a/vendor/symfony/finder/Tests/Iterator/DepthRangeFilterIteratorTest.php +++ b/vendor/symfony/finder/Tests/Iterator/DepthRangeFilterIteratorTest.php @@ -32,7 +32,7 @@ public function testAccept($minDepth, $maxDepth, $expected) public function getAcceptData() { - $lessThan1 = array( + $lessThan1 = [ '.git', 'test.py', 'foo', @@ -41,9 +41,9 @@ public function getAcceptData() '.foo', '.bar', 'foo bar', - ); + ]; - $lessThanOrEqualTo1 = array( + $lessThanOrEqualTo1 = [ '.git', 'test.py', 'foo', @@ -56,28 +56,28 @@ public function getAcceptData() '.bar', 'foo bar', '.foo/bar', - ); + ]; - $graterThanOrEqualTo1 = array( + $graterThanOrEqualTo1 = [ 'toto/.git', 'foo/bar.tmp', '.foo/.bar', '.foo/bar', - ); + ]; - $equalTo1 = array( + $equalTo1 = [ 'toto/.git', 'foo/bar.tmp', '.foo/.bar', '.foo/bar', - ); + ]; - return array( - array(0, 0, $this->toAbsolute($lessThan1)), - array(0, 1, $this->toAbsolute($lessThanOrEqualTo1)), - array(2, PHP_INT_MAX, array()), - array(1, PHP_INT_MAX, $this->toAbsolute($graterThanOrEqualTo1)), - array(1, 1, $this->toAbsolute($equalTo1)), - ); + return [ + [0, 0, $this->toAbsolute($lessThan1)], + [0, 1, $this->toAbsolute($lessThanOrEqualTo1)], + [2, PHP_INT_MAX, []], + [1, PHP_INT_MAX, $this->toAbsolute($graterThanOrEqualTo1)], + [1, 1, $this->toAbsolute($equalTo1)], + ]; } } diff --git a/vendor/symfony/finder/Tests/Iterator/ExcludeDirectoryFilterIteratorTest.php b/vendor/symfony/finder/Tests/Iterator/ExcludeDirectoryFilterIteratorTest.php index fa192c31f4decd4b3ac0d5e79631685a0c1a0275..2835ba57c817e81c31810b6eb8d421cc33cab618 100644 --- a/vendor/symfony/finder/Tests/Iterator/ExcludeDirectoryFilterIteratorTest.php +++ b/vendor/symfony/finder/Tests/Iterator/ExcludeDirectoryFilterIteratorTest.php @@ -30,7 +30,7 @@ public function testAccept($directories, $expected) public function getAcceptData() { - $foo = array( + $foo = [ '.bar', '.foo', '.foo/.bar', @@ -41,9 +41,9 @@ public function getAcceptData() 'toto', 'toto/.git', 'foo bar', - ); + ]; - $fo = array( + $fo = [ '.bar', '.foo', '.foo/.bar', @@ -56,9 +56,9 @@ public function getAcceptData() 'toto', 'toto/.git', 'foo bar', - ); + ]; - $toto = array( + $toto = [ '.bar', '.foo', '.foo/.bar', @@ -69,12 +69,12 @@ public function getAcceptData() 'foo/bar.tmp', 'test.php', 'foo bar', - ); + ]; - return array( - array(array('foo'), $this->toAbsolute($foo)), - array(array('fo'), $this->toAbsolute($fo)), - array(array('toto/'), $this->toAbsolute($toto)), - ); + return [ + [['foo'], $this->toAbsolute($foo)], + [['fo'], $this->toAbsolute($fo)], + [['toto/'], $this->toAbsolute($toto)], + ]; } } diff --git a/vendor/symfony/finder/Tests/Iterator/FileTypeFilterIteratorTest.php b/vendor/symfony/finder/Tests/Iterator/FileTypeFilterIteratorTest.php index 4350b00ca940a95135da68d09060be52d223ebac..fe03b434ad558c02b7c8b50b0d6d8dd452c5837d 100644 --- a/vendor/symfony/finder/Tests/Iterator/FileTypeFilterIteratorTest.php +++ b/vendor/symfony/finder/Tests/Iterator/FileTypeFilterIteratorTest.php @@ -29,7 +29,7 @@ public function testAccept($mode, $expected) public function getAcceptData() { - $onlyFiles = array( + $onlyFiles = [ 'test.py', 'foo/bar.tmp', 'test.php', @@ -37,20 +37,20 @@ public function getAcceptData() '.foo/.bar', '.foo/bar', 'foo bar', - ); + ]; - $onlyDirectories = array( + $onlyDirectories = [ '.git', 'foo', 'toto', 'toto/.git', '.foo', - ); + ]; - return array( - array(FileTypeFilterIterator::ONLY_FILES, $this->toAbsolute($onlyFiles)), - array(FileTypeFilterIterator::ONLY_DIRECTORIES, $this->toAbsolute($onlyDirectories)), - ); + return [ + [FileTypeFilterIterator::ONLY_FILES, $this->toAbsolute($onlyFiles)], + [FileTypeFilterIterator::ONLY_DIRECTORIES, $this->toAbsolute($onlyDirectories)], + ]; } } diff --git a/vendor/symfony/finder/Tests/Iterator/FilecontentFilterIteratorTest.php b/vendor/symfony/finder/Tests/Iterator/FilecontentFilterIteratorTest.php index 744bdae12a62add0c62fff48d8df606ee13d6270..f4f70c8e8c73866e65500223d0b1ab8c66a73c13 100644 --- a/vendor/symfony/finder/Tests/Iterator/FilecontentFilterIteratorTest.php +++ b/vendor/symfony/finder/Tests/Iterator/FilecontentFilterIteratorTest.php @@ -17,23 +17,23 @@ class FilecontentFilterIteratorTest extends IteratorTestCase { public function testAccept() { - $inner = new MockFileListIterator(array('test.txt')); - $iterator = new FilecontentFilterIterator($inner, array(), array()); - $this->assertIterator(array('test.txt'), $iterator); + $inner = new MockFileListIterator(['test.txt']); + $iterator = new FilecontentFilterIterator($inner, [], []); + $this->assertIterator(['test.txt'], $iterator); } public function testDirectory() { - $inner = new MockFileListIterator(array('directory')); - $iterator = new FilecontentFilterIterator($inner, array('directory'), array()); - $this->assertIterator(array(), $iterator); + $inner = new MockFileListIterator(['directory']); + $iterator = new FilecontentFilterIterator($inner, ['directory'], []); + $this->assertIterator([], $iterator); } public function testUnreadableFile() { - $inner = new MockFileListIterator(array('file r-')); - $iterator = new FilecontentFilterIterator($inner, array('file r-'), array()); - $this->assertIterator(array(), $iterator); + $inner = new MockFileListIterator(['file r-']); + $iterator = new FilecontentFilterIterator($inner, ['file r-'], []); + $this->assertIterator([], $iterator); } /** @@ -49,38 +49,38 @@ public function getTestFilterData() { $inner = new MockFileListIterator(); - $inner[] = new MockSplFileInfo(array( + $inner[] = new MockSplFileInfo([ 'name' => 'a.txt', 'contents' => 'Lorem ipsum...', 'type' => 'file', - 'mode' => 'r+', ) + 'mode' => 'r+', ] ); - $inner[] = new MockSplFileInfo(array( + $inner[] = new MockSplFileInfo([ 'name' => 'b.yml', 'contents' => 'dolor sit...', 'type' => 'file', - 'mode' => 'r+', ) + 'mode' => 'r+', ] ); - $inner[] = new MockSplFileInfo(array( + $inner[] = new MockSplFileInfo([ 'name' => 'some/other/dir/third.php', 'contents' => 'amet...', 'type' => 'file', - 'mode' => 'r+', ) + 'mode' => 'r+', ] ); - $inner[] = new MockSplFileInfo(array( + $inner[] = new MockSplFileInfo([ 'name' => 'unreadable-file.txt', 'contents' => false, 'type' => 'file', - 'mode' => 'r+', ) + 'mode' => 'r+', ] ); - return array( - array($inner, array('.'), array(), array('a.txt', 'b.yml', 'some/other/dir/third.php')), - array($inner, array('ipsum'), array(), array('a.txt')), - array($inner, array('i', 'amet'), array('Lorem', 'amet'), array('b.yml')), - ); + return [ + [$inner, ['.'], [], ['a.txt', 'b.yml', 'some/other/dir/third.php']], + [$inner, ['ipsum'], [], ['a.txt']], + [$inner, ['i', 'amet'], ['Lorem', 'amet'], ['b.yml']], + ]; } } diff --git a/vendor/symfony/finder/Tests/Iterator/FilenameFilterIteratorTest.php b/vendor/symfony/finder/Tests/Iterator/FilenameFilterIteratorTest.php index c4b97959188c069b4b80a4535df9909efa706c6f..9270dd1cd3a3d0e2fba5be48015baf1c14a7ce68 100644 --- a/vendor/symfony/finder/Tests/Iterator/FilenameFilterIteratorTest.php +++ b/vendor/symfony/finder/Tests/Iterator/FilenameFilterIteratorTest.php @@ -20,7 +20,7 @@ class FilenameFilterIteratorTest extends IteratorTestCase */ public function testAccept($matchPatterns, $noMatchPatterns, $expected) { - $inner = new InnerNameIterator(array('test.php', 'test.py', 'foo.php')); + $inner = new InnerNameIterator(['test.php', 'test.py', 'foo.php']); $iterator = new FilenameFilterIterator($inner, $matchPatterns, $noMatchPatterns); @@ -29,14 +29,14 @@ public function testAccept($matchPatterns, $noMatchPatterns, $expected) public function getAcceptData() { - return array( - array(array('test.*'), array(), array('test.php', 'test.py')), - array(array(), array('test.*'), array('foo.php')), - array(array('*.php'), array('test.*'), array('foo.php')), - array(array('*.php', '*.py'), array('foo.*'), array('test.php', 'test.py')), - array(array('/\.php$/'), array(), array('test.php', 'foo.php')), - array(array(), array('/\.php$/'), array('test.py')), - ); + return [ + [['test.*'], [], ['test.php', 'test.py']], + [[], ['test.*'], ['foo.php']], + [['*.php'], ['test.*'], ['foo.php']], + [['*.php', '*.py'], ['foo.*'], ['test.php', 'test.py']], + [['/\.php$/'], [], ['test.php', 'foo.php']], + [[], ['/\.php$/'], ['test.py']], + ]; } } diff --git a/vendor/symfony/finder/Tests/Iterator/FilterIteratorTest.php b/vendor/symfony/finder/Tests/Iterator/FilterIteratorTest.php index 8b1a4482bae2e2361f9845265145296a795cedbc..b26f7ba6bdd288fb873ad6b17e499043448cf951 100644 --- a/vendor/symfony/finder/Tests/Iterator/FilterIteratorTest.php +++ b/vendor/symfony/finder/Tests/Iterator/FilterIteratorTest.php @@ -23,7 +23,7 @@ public function testFilterFilesystemIterators() $i = new \FilesystemIterator($this->toAbsolute()); // it is expected that there are test.py test.php in the tmpDir - $i = $this->getMockForAbstractClass('Symfony\Component\Finder\Iterator\FilterIterator', array($i)); + $i = $this->getMockForAbstractClass('Symfony\Component\Finder\Iterator\FilterIterator', [$i]); $i->expects($this->any()) ->method('accept') ->will($this->returnCallback(function () use ($i) { diff --git a/vendor/symfony/finder/Tests/Iterator/Iterator.php b/vendor/symfony/finder/Tests/Iterator/Iterator.php index 849bf081e2cc9094fd5dd34ae53ad190fe9ae1fa..3e21a070047aab0567a421e1380e2dfac02a894f 100644 --- a/vendor/symfony/finder/Tests/Iterator/Iterator.php +++ b/vendor/symfony/finder/Tests/Iterator/Iterator.php @@ -13,9 +13,9 @@ class Iterator implements \Iterator { - protected $values = array(); + protected $values = []; - public function __construct(array $values = array()) + public function __construct(array $values = []) { foreach ($values as $value) { $this->attach(new \SplFileInfo($value)); diff --git a/vendor/symfony/finder/Tests/Iterator/IteratorTestCase.php b/vendor/symfony/finder/Tests/Iterator/IteratorTestCase.php index 89f042aefadd81a9a9c77478c45d11d7189f9ff0..796dc6ac360bb58d91800f75e8cdccf69e8ce9bf 100644 --- a/vendor/symfony/finder/Tests/Iterator/IteratorTestCase.php +++ b/vendor/symfony/finder/Tests/Iterator/IteratorTestCase.php @@ -51,7 +51,7 @@ protected function assertOrderedIteratorForGroups($expected, \Traversable $itera $values = array_values(array_map(function (\SplFileInfo $fileinfo) { return $fileinfo->getPathname(); }, iterator_to_array($iterator))); foreach ($expected as $subarray) { - $temp = array(); + $temp = []; while (\count($values) && \count($temp) < \count($subarray)) { $temp[] = array_shift($values); } @@ -69,7 +69,7 @@ protected function assertOrderedIteratorForGroups($expected, \Traversable $itera */ protected function assertIteratorInForeach($expected, \Traversable $iterator) { - $values = array(); + $values = []; foreach ($iterator as $file) { $this->assertInstanceOf('Symfony\\Component\\Finder\\SplFileInfo', $file); $values[] = $file->getPathname(); @@ -89,7 +89,7 @@ protected function assertIteratorInForeach($expected, \Traversable $iterator) */ protected function assertOrderedIteratorInForeach($expected, \Traversable $iterator) { - $values = array(); + $values = []; foreach ($iterator as $file) { $this->assertInstanceOf('Symfony\\Component\\Finder\\SplFileInfo', $file); $values[] = $file->getPathname(); diff --git a/vendor/symfony/finder/Tests/Iterator/MockFileListIterator.php b/vendor/symfony/finder/Tests/Iterator/MockFileListIterator.php index eb0adfad0a4c3185215d9a674ee0bef6186e73c7..670478d7a7524af88a68671de1ad82093e6ca127 100644 --- a/vendor/symfony/finder/Tests/Iterator/MockFileListIterator.php +++ b/vendor/symfony/finder/Tests/Iterator/MockFileListIterator.php @@ -13,7 +13,7 @@ class MockFileListIterator extends \ArrayIterator { - public function __construct(array $filesArray = array()) + public function __construct(array $filesArray = []) { $files = array_map(function ($file) { return new MockSplFileInfo($file); }, $filesArray); parent::__construct($files); diff --git a/vendor/symfony/finder/Tests/Iterator/MockSplFileInfo.php b/vendor/symfony/finder/Tests/Iterator/MockSplFileInfo.php index 36e6528d019b9448608ff0b7e1e56012bc4ecc3e..58bb5979e97a399edba4b63f2bfcd95001d0a698 100644 --- a/vendor/symfony/finder/Tests/Iterator/MockSplFileInfo.php +++ b/vendor/symfony/finder/Tests/Iterator/MockSplFileInfo.php @@ -28,14 +28,14 @@ public function __construct($param) if (\is_string($param)) { parent::__construct($param); } elseif (\is_array($param)) { - $defaults = array( - 'name' => 'file.txt', - 'contents' => null, - 'mode' => null, - 'type' => null, - 'relativePath' => null, - 'relativePathname' => null, - ); + $defaults = [ + 'name' => 'file.txt', + 'contents' => null, + 'mode' => null, + 'type' => null, + 'relativePath' => null, + 'relativePathname' => null, + ]; $defaults = array_merge($defaults, $param); parent::__construct($defaults['name']); $this->setContents($defaults['contents']); diff --git a/vendor/symfony/finder/Tests/Iterator/MultiplePcreFilterIteratorTest.php b/vendor/symfony/finder/Tests/Iterator/MultiplePcreFilterIteratorTest.php index f2c1cd2414c84cf10e09198f0b0d2d7302c30e84..955677695ba0dcf7b7b218cf9d8e15459d114a34 100644 --- a/vendor/symfony/finder/Tests/Iterator/MultiplePcreFilterIteratorTest.php +++ b/vendor/symfony/finder/Tests/Iterator/MultiplePcreFilterIteratorTest.php @@ -27,24 +27,24 @@ public function testIsRegex($string, $isRegex, $message) public function getIsRegexFixtures() { - return array( - array('foo', false, 'string'), - array(' foo ', false, '" " is not a valid delimiter'), - array('\\foo\\', false, '"\\" is not a valid delimiter'), - array('afooa', false, '"a" is not a valid delimiter'), - array('//', false, 'the pattern should contain at least 1 character'), - array('/a/', true, 'valid regex'), - array('/foo/', true, 'valid regex'), - array('/foo/i', true, 'valid regex with a single modifier'), - array('/foo/imsxu', true, 'valid regex with multiple modifiers'), - array('#foo#', true, '"#" is a valid delimiter'), - array('{foo}', true, '"{,}" is a valid delimiter pair'), - array('[foo]', true, '"[,]" is a valid delimiter pair'), - array('(foo)', true, '"(,)" is a valid delimiter pair'), - array('<foo>', true, '"<,>" is a valid delimiter pair'), - array('*foo.*', false, '"*" is not considered as a valid delimiter'), - array('?foo.?', false, '"?" is not considered as a valid delimiter'), - ); + return [ + ['foo', false, 'string'], + [' foo ', false, '" " is not a valid delimiter'], + ['\\foo\\', false, '"\\" is not a valid delimiter'], + ['afooa', false, '"a" is not a valid delimiter'], + ['//', false, 'the pattern should contain at least 1 character'], + ['/a/', true, 'valid regex'], + ['/foo/', true, 'valid regex'], + ['/foo/i', true, 'valid regex with a single modifier'], + ['/foo/imsxu', true, 'valid regex with multiple modifiers'], + ['#foo#', true, '"#" is a valid delimiter'], + ['{foo}', true, '"{,}" is a valid delimiter pair'], + ['[foo]', true, '"[,]" is a valid delimiter pair'], + ['(foo)', true, '"(,)" is a valid delimiter pair'], + ['<foo>', true, '"<,>" is a valid delimiter pair'], + ['*foo.*', false, '"*" is not considered as a valid delimiter'], + ['?foo.?', false, '"?" is not considered as a valid delimiter'], + ]; } } diff --git a/vendor/symfony/finder/Tests/Iterator/PathFilterIteratorTest.php b/vendor/symfony/finder/Tests/Iterator/PathFilterIteratorTest.php index 38ed966a61039cd668a7b3a2c56b9f2cfb5a2bd9..9040ee04c3c7a936f266d22c7a85f2b3ef355e8c 100644 --- a/vendor/symfony/finder/Tests/Iterator/PathFilterIteratorTest.php +++ b/vendor/symfony/finder/Tests/Iterator/PathFilterIteratorTest.php @@ -29,54 +29,54 @@ public function getTestFilterData() $inner = new MockFileListIterator(); //PATH: A/B/C/abc.dat - $inner[] = new MockSplFileInfo(array( + $inner[] = new MockSplFileInfo([ 'name' => 'abc.dat', 'relativePathname' => 'A'.\DIRECTORY_SEPARATOR.'B'.\DIRECTORY_SEPARATOR.'C'.\DIRECTORY_SEPARATOR.'abc.dat', - )); + ]); //PATH: A/B/ab.dat - $inner[] = new MockSplFileInfo(array( + $inner[] = new MockSplFileInfo([ 'name' => 'ab.dat', 'relativePathname' => 'A'.\DIRECTORY_SEPARATOR.'B'.\DIRECTORY_SEPARATOR.'ab.dat', - )); + ]); //PATH: A/a.dat - $inner[] = new MockSplFileInfo(array( + $inner[] = new MockSplFileInfo([ 'name' => 'a.dat', 'relativePathname' => 'A'.\DIRECTORY_SEPARATOR.'a.dat', - )); + ]); //PATH: copy/A/B/C/abc.dat.copy - $inner[] = new MockSplFileInfo(array( + $inner[] = new MockSplFileInfo([ 'name' => 'abc.dat.copy', 'relativePathname' => 'copy'.\DIRECTORY_SEPARATOR.'A'.\DIRECTORY_SEPARATOR.'B'.\DIRECTORY_SEPARATOR.'C'.\DIRECTORY_SEPARATOR.'abc.dat', - )); + ]); //PATH: copy/A/B/ab.dat.copy - $inner[] = new MockSplFileInfo(array( + $inner[] = new MockSplFileInfo([ 'name' => 'ab.dat.copy', 'relativePathname' => 'copy'.\DIRECTORY_SEPARATOR.'A'.\DIRECTORY_SEPARATOR.'B'.\DIRECTORY_SEPARATOR.'ab.dat', - )); + ]); //PATH: copy/A/a.dat.copy - $inner[] = new MockSplFileInfo(array( + $inner[] = new MockSplFileInfo([ 'name' => 'a.dat.copy', 'relativePathname' => 'copy'.\DIRECTORY_SEPARATOR.'A'.\DIRECTORY_SEPARATOR.'a.dat', - )); + ]); - return array( - array($inner, array('/^A/'), array(), array('abc.dat', 'ab.dat', 'a.dat')), - array($inner, array('/^A\/B/'), array(), array('abc.dat', 'ab.dat')), - array($inner, array('/^A\/B\/C/'), array(), array('abc.dat')), - array($inner, array('/A\/B\/C/'), array(), array('abc.dat', 'abc.dat.copy')), + return [ + [$inner, ['/^A/'], [], ['abc.dat', 'ab.dat', 'a.dat']], + [$inner, ['/^A\/B/'], [], ['abc.dat', 'ab.dat']], + [$inner, ['/^A\/B\/C/'], [], ['abc.dat']], + [$inner, ['/A\/B\/C/'], [], ['abc.dat', 'abc.dat.copy']], - array($inner, array('A'), array(), array('abc.dat', 'ab.dat', 'a.dat', 'abc.dat.copy', 'ab.dat.copy', 'a.dat.copy')), - array($inner, array('A/B'), array(), array('abc.dat', 'ab.dat', 'abc.dat.copy', 'ab.dat.copy')), - array($inner, array('A/B/C'), array(), array('abc.dat', 'abc.dat.copy')), + [$inner, ['A'], [], ['abc.dat', 'ab.dat', 'a.dat', 'abc.dat.copy', 'ab.dat.copy', 'a.dat.copy']], + [$inner, ['A/B'], [], ['abc.dat', 'ab.dat', 'abc.dat.copy', 'ab.dat.copy']], + [$inner, ['A/B/C'], [], ['abc.dat', 'abc.dat.copy']], - array($inner, array('copy/A'), array(), array('abc.dat.copy', 'ab.dat.copy', 'a.dat.copy')), - array($inner, array('copy/A/B'), array(), array('abc.dat.copy', 'ab.dat.copy')), - array($inner, array('copy/A/B/C'), array(), array('abc.dat.copy')), - ); + [$inner, ['copy/A'], [], ['abc.dat.copy', 'ab.dat.copy', 'a.dat.copy']], + [$inner, ['copy/A/B'], [], ['abc.dat.copy', 'ab.dat.copy']], + [$inner, ['copy/A/B/C'], [], ['abc.dat.copy']], + ]; } } diff --git a/vendor/symfony/finder/Tests/Iterator/RealIteratorTestCase.php b/vendor/symfony/finder/Tests/Iterator/RealIteratorTestCase.php index b0223b782b6a66a4d8a391a99931a0cd4db95563..70048a5ea69826e316e1a431e6b0b8f7a96470f3 100644 --- a/vendor/symfony/finder/Tests/Iterator/RealIteratorTestCase.php +++ b/vendor/symfony/finder/Tests/Iterator/RealIteratorTestCase.php @@ -20,7 +20,7 @@ public static function setUpBeforeClass() { self::$tmpDir = realpath(sys_get_temp_dir()).\DIRECTORY_SEPARATOR.'symfony_finder'; - self::$files = array( + self::$files = [ '.git/', '.foo/', '.foo/.bar', @@ -33,7 +33,7 @@ public static function setUpBeforeClass() 'toto/', 'toto/.git/', 'foo bar', - ); + ]; self::$files = self::toAbsolute(self::$files); @@ -88,7 +88,7 @@ protected static function toAbsolute($files = null) } if (\is_array($files)) { - $f = array(); + $f = []; foreach ($files as $file) { if (\is_array($file)) { $f[] = self::toAbsolute($file); @@ -109,7 +109,7 @@ protected static function toAbsolute($files = null) protected static function toAbsoluteFixtures($files) { - $f = array(); + $f = []; foreach ($files as $file) { $f[] = realpath(__DIR__.\DIRECTORY_SEPARATOR.'..'.\DIRECTORY_SEPARATOR.'Fixtures'.\DIRECTORY_SEPARATOR.$file); } diff --git a/vendor/symfony/finder/Tests/Iterator/RecursiveDirectoryIteratorTest.php b/vendor/symfony/finder/Tests/Iterator/RecursiveDirectoryIteratorTest.php index 0c9aca24b936ed3fb222be528132daad86b5c489..037810aea799fd930656bb8e839c184d6a784c88 100644 --- a/vendor/symfony/finder/Tests/Iterator/RecursiveDirectoryIteratorTest.php +++ b/vendor/symfony/finder/Tests/Iterator/RecursiveDirectoryIteratorTest.php @@ -42,11 +42,11 @@ public function testSeekOnFtp() $this->markTestSkipped('Unsupported stream "ftp".'); } - $contains = array( + $contains = [ 'ftp://speedtest.tele2.net'.\DIRECTORY_SEPARATOR.'1000GB.zip', 'ftp://speedtest.tele2.net'.\DIRECTORY_SEPARATOR.'100GB.zip', - ); - $actual = array(); + ]; + $actual = []; $i->seek(0); $actual[] = $i->getPathname(); diff --git a/vendor/symfony/finder/Tests/Iterator/SizeRangeFilterIteratorTest.php b/vendor/symfony/finder/Tests/Iterator/SizeRangeFilterIteratorTest.php index 068fc7b0bbfb334c7b8b4e2c1e805979d4efc2d8..b1e431ba52f558f3f8c52049866dc9d1713a539c 100644 --- a/vendor/symfony/finder/Tests/Iterator/SizeRangeFilterIteratorTest.php +++ b/vendor/symfony/finder/Tests/Iterator/SizeRangeFilterIteratorTest.php @@ -30,18 +30,18 @@ public function testAccept($size, $expected) public function getAcceptData() { - $lessThan1KGreaterThan05K = array( + $lessThan1KGreaterThan05K = [ '.foo', '.git', 'foo', 'test.php', 'toto', 'toto/.git', - ); + ]; - return array( - array(array(new NumberComparator('< 1K'), new NumberComparator('> 0.5K')), $this->toAbsolute($lessThan1KGreaterThan05K)), - ); + return [ + [[new NumberComparator('< 1K'), new NumberComparator('> 0.5K')], $this->toAbsolute($lessThan1KGreaterThan05K)], + ]; } } diff --git a/vendor/symfony/finder/Tests/Iterator/SortableIteratorTest.php b/vendor/symfony/finder/Tests/Iterator/SortableIteratorTest.php index a35a12b5bee5524e655ab53b88be2140500ca6dd..57f1e096a5334c1586fd1d74d10b06188cc5d024 100644 --- a/vendor/symfony/finder/Tests/Iterator/SortableIteratorTest.php +++ b/vendor/symfony/finder/Tests/Iterator/SortableIteratorTest.php @@ -18,7 +18,7 @@ class SortableIteratorTest extends RealIteratorTestCase public function testConstructor() { try { - new SortableIterator(new Iterator(array()), 'foobar'); + new SortableIterator(new Iterator([]), 'foobar'); $this->fail('__construct() throws an \InvalidArgumentException exception if the mode is not valid'); } catch (\Exception $e) { $this->assertInstanceOf('InvalidArgumentException', $e, '__construct() throws an \InvalidArgumentException exception if the mode is not valid'); @@ -73,7 +73,7 @@ public function testAccept($mode, $expected) public function getAcceptData() { - $sortByName = array( + $sortByName = [ '.bar', '.foo', '.foo/.bar', @@ -86,9 +86,9 @@ public function getAcceptData() 'test.py', 'toto', 'toto/.git', - ); + ]; - $sortByType = array( + $sortByType = [ '.foo', '.git', 'foo', @@ -101,9 +101,9 @@ public function getAcceptData() 'foo/bar.tmp', 'test.php', 'test.py', - ); + ]; - $customComparison = array( + $customComparison = [ '.bar', '.foo', '.foo/.bar', @@ -116,13 +116,13 @@ public function getAcceptData() 'test.py', 'toto', 'toto/.git', - ); + ]; - $sortByAccessedTime = array( + $sortByAccessedTime = [ // For these two files the access time was set to 2005-10-15 - array('foo/bar.tmp', 'test.php'), + ['foo/bar.tmp', 'test.php'], // These files were created more or less at the same time - array( + [ '.git', '.foo', '.foo/.bar', @@ -132,13 +132,13 @@ public function getAcceptData() 'toto', 'toto/.git', 'foo bar', - ), + ], // This file was accessed after sleeping for 1 sec - array('.bar'), - ); + ['.bar'], + ]; - $sortByChangedTime = array( - array( + $sortByChangedTime = [ + [ '.git', '.foo', '.foo/.bar', @@ -149,13 +149,13 @@ public function getAcceptData() 'toto', 'toto/.git', 'foo bar', - ), - array('test.php'), - array('test.py'), - ); + ], + ['test.php'], + ['test.py'], + ]; - $sortByModifiedTime = array( - array( + $sortByModifiedTime = [ + [ '.git', '.foo', '.foo/.bar', @@ -166,18 +166,18 @@ public function getAcceptData() 'toto', 'toto/.git', 'foo bar', - ), - array('test.php'), - array('test.py'), - ); + ], + ['test.php'], + ['test.py'], + ]; - return array( - array(SortableIterator::SORT_BY_NAME, $this->toAbsolute($sortByName)), - array(SortableIterator::SORT_BY_TYPE, $this->toAbsolute($sortByType)), - array(SortableIterator::SORT_BY_ACCESSED_TIME, $this->toAbsolute($sortByAccessedTime)), - array(SortableIterator::SORT_BY_CHANGED_TIME, $this->toAbsolute($sortByChangedTime)), - array(SortableIterator::SORT_BY_MODIFIED_TIME, $this->toAbsolute($sortByModifiedTime)), - array(function (\SplFileInfo $a, \SplFileInfo $b) { return strcmp($a->getRealPath(), $b->getRealPath()); }, $this->toAbsolute($customComparison)), - ); + return [ + [SortableIterator::SORT_BY_NAME, $this->toAbsolute($sortByName)], + [SortableIterator::SORT_BY_TYPE, $this->toAbsolute($sortByType)], + [SortableIterator::SORT_BY_ACCESSED_TIME, $this->toAbsolute($sortByAccessedTime)], + [SortableIterator::SORT_BY_CHANGED_TIME, $this->toAbsolute($sortByChangedTime)], + [SortableIterator::SORT_BY_MODIFIED_TIME, $this->toAbsolute($sortByModifiedTime)], + [function (\SplFileInfo $a, \SplFileInfo $b) { return strcmp($a->getRealPath(), $b->getRealPath()); }, $this->toAbsolute($customComparison)], + ]; } } diff --git a/vendor/symfony/finder/phpunit.xml.dist b/vendor/symfony/finder/phpunit.xml.dist index 0e1a8669beabeec3143a0db2aee668bc33dfcf4f..078847af96add0b0afa41c11b0ac06144d0bfc82 100644 --- a/vendor/symfony/finder/phpunit.xml.dist +++ b/vendor/symfony/finder/phpunit.xml.dist @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="UTF-8"?> <phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:noNamespaceSchemaLocation="http://schema.phpunit.de/4.1/phpunit.xsd" + xsi:noNamespaceSchemaLocation="http://schema.phpunit.de/5.2/phpunit.xsd" backupGlobals="false" colors="true" bootstrap="vendor/autoload.php" diff --git a/vendor/symfony/var-dumper/Caster/AmqpCaster.php b/vendor/symfony/var-dumper/Caster/AmqpCaster.php index 655262f4065ec5beb3978ad49a13f31e2b46b864..19bdc29525eab53212bb4cc27d5105b3ae036454 100644 --- a/vendor/symfony/var-dumper/Caster/AmqpCaster.php +++ b/vendor/symfony/var-dumper/Caster/AmqpCaster.php @@ -20,7 +20,7 @@ */ class AmqpCaster { - private static $flags = array( + private static $flags = [ AMQP_DURABLE => 'AMQP_DURABLE', AMQP_PASSIVE => 'AMQP_PASSIVE', AMQP_EXCLUSIVE => 'AMQP_EXCLUSIVE', @@ -35,22 +35,22 @@ class AmqpCaster AMQP_MULTIPLE => 'AMQP_MULTIPLE', AMQP_NOWAIT => 'AMQP_NOWAIT', AMQP_REQUEUE => 'AMQP_REQUEUE', - ); + ]; - private static $exchangeTypes = array( + private static $exchangeTypes = [ AMQP_EX_TYPE_DIRECT => 'AMQP_EX_TYPE_DIRECT', AMQP_EX_TYPE_FANOUT => 'AMQP_EX_TYPE_FANOUT', AMQP_EX_TYPE_TOPIC => 'AMQP_EX_TYPE_TOPIC', AMQP_EX_TYPE_HEADERS => 'AMQP_EX_TYPE_HEADERS', - ); + ]; public static function castConnection(\AMQPConnection $c, array $a, Stub $stub, $isNested) { $prefix = Caster::PREFIX_VIRTUAL; - $a += array( + $a += [ $prefix.'is_connected' => $c->isConnected(), - ); + ]; // Recent version of the extension already expose private properties if (isset($a["\x00AMQPConnection\x00login"])) { @@ -64,7 +64,7 @@ public static function castConnection(\AMQPConnection $c, array $a, Stub $stub, $timeout = $c->getTimeout(); } - $a += array( + $a += [ $prefix.'is_connected' => $c->isConnected(), $prefix.'login' => $c->getLogin(), $prefix.'password' => $c->getPassword(), @@ -72,7 +72,7 @@ public static function castConnection(\AMQPConnection $c, array $a, Stub $stub, $prefix.'vhost' => $c->getVhost(), $prefix.'port' => $c->getPort(), $prefix.'read_timeout' => $timeout, - ); + ]; return $a; } @@ -81,21 +81,21 @@ public static function castChannel(\AMQPChannel $c, array $a, Stub $stub, $isNes { $prefix = Caster::PREFIX_VIRTUAL; - $a += array( + $a += [ $prefix.'is_connected' => $c->isConnected(), $prefix.'channel_id' => $c->getChannelId(), - ); + ]; // Recent version of the extension already expose private properties if (isset($a["\x00AMQPChannel\x00connection"])) { return $a; } - $a += array( + $a += [ $prefix.'connection' => $c->getConnection(), $prefix.'prefetch_size' => $c->getPrefetchSize(), $prefix.'prefetch_count' => $c->getPrefetchCount(), - ); + ]; return $a; } @@ -104,21 +104,21 @@ public static function castQueue(\AMQPQueue $c, array $a, Stub $stub, $isNested) { $prefix = Caster::PREFIX_VIRTUAL; - $a += array( + $a += [ $prefix.'flags' => self::extractFlags($c->getFlags()), - ); + ]; // Recent version of the extension already expose private properties if (isset($a["\x00AMQPQueue\x00name"])) { return $a; } - $a += array( + $a += [ $prefix.'connection' => $c->getConnection(), $prefix.'channel' => $c->getChannel(), $prefix.'name' => $c->getName(), $prefix.'arguments' => $c->getArguments(), - ); + ]; return $a; } @@ -127,9 +127,9 @@ public static function castExchange(\AMQPExchange $c, array $a, Stub $stub, $isN { $prefix = Caster::PREFIX_VIRTUAL; - $a += array( + $a += [ $prefix.'flags' => self::extractFlags($c->getFlags()), - ); + ]; $type = isset(self::$exchangeTypes[$c->getType()]) ? new ConstStub(self::$exchangeTypes[$c->getType()], $c->getType()) : $c->getType(); @@ -140,13 +140,13 @@ public static function castExchange(\AMQPExchange $c, array $a, Stub $stub, $isN return $a; } - $a += array( + $a += [ $prefix.'connection' => $c->getConnection(), $prefix.'channel' => $c->getChannel(), $prefix.'name' => $c->getName(), $prefix.'type' => $type, $prefix.'arguments' => $c->getArguments(), - ); + ]; return $a; } @@ -165,10 +165,10 @@ public static function castEnvelope(\AMQPEnvelope $c, array $a, Stub $stub, $isN } if (!($filter & Caster::EXCLUDE_VERBOSE)) { - $a += array($prefix.'body' => $c->getBody()); + $a += [$prefix.'body' => $c->getBody()]; } - $a += array( + $a += [ $prefix.'delivery_tag' => $c->getDeliveryTag(), $prefix.'is_redelivery' => $c->isRedelivery(), $prefix.'exchange_name' => $c->getExchangeName(), @@ -186,14 +186,14 @@ public static function castEnvelope(\AMQPEnvelope $c, array $a, Stub $stub, $isN $prefix.'type' => $c->getType(), $prefix.'user_id' => $c->getUserId(), $prefix.'app_id' => $c->getAppId(), - ); + ]; return $a; } private static function extractFlags($flags) { - $flagsArray = array(); + $flagsArray = []; foreach (self::$flags as $value => $name) { if ($flags & $value) { @@ -202,7 +202,7 @@ private static function extractFlags($flags) } if (!$flagsArray) { - $flagsArray = array('AMQP_NOPARAM'); + $flagsArray = ['AMQP_NOPARAM']; } return new ConstStub(implode('|', $flagsArray), $flags); diff --git a/vendor/symfony/var-dumper/Caster/ArgsStub.php b/vendor/symfony/var-dumper/Caster/ArgsStub.php index 7cd759a550b3fbb9c91be3e3d2c28a1f98abb0f9..081fb47e996320b4fb5e0fbe410bf0584932702c 100644 --- a/vendor/symfony/var-dumper/Caster/ArgsStub.php +++ b/vendor/symfony/var-dumper/Caster/ArgsStub.php @@ -20,13 +20,13 @@ */ class ArgsStub extends EnumStub { - private static $parameters = array(); + private static $parameters = []; public function __construct(array $args, $function, $class) { list($variadic, $params) = self::getParameters($function, $class); - $values = array(); + $values = []; foreach ($args as $k => $v) { $values[$k] = !is_scalar($v) && !$v instanceof Stub ? new CutStub($v) : $v; } @@ -41,7 +41,7 @@ public function __construct(array $args, $function, $class) $values[] = new EnumStub(array_splice($values, \count($params)), false); $params[] = $variadic; } - if (array('...') === $params) { + if (['...'] === $params) { $this->dumpKeys = false; $this->value = $values[0]->value; } else { @@ -58,11 +58,11 @@ private static function getParameters($function, $class) try { $r = null !== $class ? new \ReflectionMethod($class, $function) : new \ReflectionFunction($function); } catch (\ReflectionException $e) { - return array(null, null); + return [null, null]; } $variadic = '...'; - $params = array(); + $params = []; foreach ($r->getParameters() as $v) { $k = '$'.$v->name; if ($v->isPassedByReference()) { @@ -75,6 +75,6 @@ private static function getParameters($function, $class) } } - return self::$parameters[$k] = array($variadic, $params); + return self::$parameters[$k] = [$variadic, $params]; } } diff --git a/vendor/symfony/var-dumper/Caster/Caster.php b/vendor/symfony/var-dumper/Caster/Caster.php index 30cb9fc0d6dffc32e76fd5a9ec2d145c348d3dce..93d0ce2b41b73435ad62c6547e209f03e6dc77e0 100644 --- a/vendor/symfony/var-dumper/Caster/Caster.php +++ b/vendor/symfony/var-dumper/Caster/Caster.php @@ -56,7 +56,7 @@ public static function castObject($obj, $class, $hasDebugInfo = false) if ($hasDebugInfo) { $a = $obj->__debugInfo(); } elseif ($obj instanceof \Closure) { - $a = array(); + $a = []; } else { $a = (array) $obj; } @@ -65,10 +65,10 @@ public static function castObject($obj, $class, $hasDebugInfo = false) } if ($a) { - static $publicProperties = array(); + static $publicProperties = []; $i = 0; - $prefixedKeys = array(); + $prefixedKeys = []; foreach ($a as $k => $v) { if (isset($k[0]) ? "\0" !== $k[0] : \PHP_VERSION_ID >= 70200) { if (!isset($publicProperties[$class])) { @@ -109,7 +109,7 @@ public static function castObject($obj, $class, $hasDebugInfo = false) * * @return array The filtered array */ - public static function filter(array $a, $filter, array $listedProperties = array(), &$count = 0) + public static function filter(array $a, $filter, array $listedProperties = [], &$count = 0) { $count = 0; @@ -119,7 +119,7 @@ public static function filter(array $a, $filter, array $listedProperties = array if (null === $v) { $type |= self::EXCLUDE_NULL & $filter; $type |= self::EXCLUDE_EMPTY & $filter; - } elseif (false === $v || '' === $v || '0' === $v || 0 === $v || 0.0 === $v || array() === $v) { + } elseif (false === $v || '' === $v || '0' === $v || 0 === $v || 0.0 === $v || [] === $v) { $type |= self::EXCLUDE_EMPTY & $filter; } if ((self::EXCLUDE_NOT_IMPORTANT & $filter) && !\in_array($k, $listedProperties, true)) { diff --git a/vendor/symfony/var-dumper/Caster/ClassStub.php b/vendor/symfony/var-dumper/Caster/ClassStub.php index f134fe781fe85b573363bd11f85e978e30c9968d..1a85098e1581bb59dfbcd872cf6b86c33de13431 100644 --- a/vendor/symfony/var-dumper/Caster/ClassStub.php +++ b/vendor/symfony/var-dumper/Caster/ClassStub.php @@ -19,8 +19,8 @@ class ClassStub extends ConstStub { /** - * @param string A PHP identifier, e.g. a class, method, interface, etc. name - * @param callable The callable targeted by the identifier when it is ambiguous or not a real PHP identifier + * @param string $identifier A PHP identifier, e.g. a class, method, interface, etc. name + * @param callable $callable The callable targeted by the identifier when it is ambiguous or not a real PHP identifier */ public function __construct($identifier, $callable = null) { @@ -37,16 +37,16 @@ public function __construct($identifier, $callable = null) if ($callable instanceof \Closure) { $r = new \ReflectionFunction($callable); } elseif (\is_object($callable)) { - $r = array($callable, '__invoke'); + $r = [$callable, '__invoke']; } elseif (\is_array($callable)) { $r = $callable; } elseif (false !== $i = strpos($callable, '::')) { - $r = array(substr($callable, 0, $i), substr($callable, 2 + $i)); + $r = [substr($callable, 0, $i), substr($callable, 2 + $i)]; } else { $r = new \ReflectionFunction($callable); } } elseif (0 < $i = strpos($identifier, '::') ?: strpos($identifier, '->')) { - $r = array(substr($identifier, 0, $i), substr($identifier, 2 + $i)); + $r = [substr($identifier, 0, $i), substr($identifier, 2 + $i)]; } else { $r = new \ReflectionClass($identifier); } diff --git a/vendor/symfony/var-dumper/Caster/DOMCaster.php b/vendor/symfony/var-dumper/Caster/DOMCaster.php index 3a99865370ca253b6cfd91bf3f80bf6b08ef6eac..65151b4f4ff7498134366d0704400891adb50b34 100644 --- a/vendor/symfony/var-dumper/Caster/DOMCaster.php +++ b/vendor/symfony/var-dumper/Caster/DOMCaster.php @@ -20,7 +20,7 @@ */ class DOMCaster { - private static $errorCodes = array( + private static $errorCodes = [ DOM_PHP_ERR => 'DOM_PHP_ERR', DOM_INDEX_SIZE_ERR => 'DOM_INDEX_SIZE_ERR', DOMSTRING_SIZE_ERR => 'DOMSTRING_SIZE_ERR', @@ -38,9 +38,9 @@ class DOMCaster DOM_NAMESPACE_ERR => 'DOM_NAMESPACE_ERR', DOM_INVALID_ACCESS_ERR => 'DOM_INVALID_ACCESS_ERR', DOM_VALIDATION_ERR => 'DOM_VALIDATION_ERR', - ); + ]; - private static $nodeTypes = array( + private static $nodeTypes = [ XML_ELEMENT_NODE => 'XML_ELEMENT_NODE', XML_ATTRIBUTE_NODE => 'XML_ATTRIBUTE_NODE', XML_TEXT_NODE => 'XML_TEXT_NODE', @@ -59,7 +59,7 @@ class DOMCaster XML_ATTRIBUTE_DECL_NODE => 'XML_ATTRIBUTE_DECL_NODE', XML_ENTITY_DECL_NODE => 'XML_ENTITY_DECL_NODE', XML_NAMESPACE_DECL_NODE => 'XML_NAMESPACE_DECL_NODE', - ); + ]; public static function castException(\DOMException $e, array $a, Stub $stub, $isNested) { @@ -73,26 +73,26 @@ public static function castException(\DOMException $e, array $a, Stub $stub, $is public static function castLength($dom, array $a, Stub $stub, $isNested) { - $a += array( + $a += [ 'length' => $dom->length, - ); + ]; return $a; } public static function castImplementation($dom, array $a, Stub $stub, $isNested) { - $a += array( + $a += [ Caster::PREFIX_VIRTUAL.'Core' => '1.0', Caster::PREFIX_VIRTUAL.'XML' => '2.0', - ); + ]; return $a; } public static function castNode(\DOMNode $dom, array $a, Stub $stub, $isNested) { - $a += array( + $a += [ 'nodeName' => $dom->nodeName, 'nodeValue' => new CutStub($dom->nodeValue), 'nodeType' => new ConstStub(self::$nodeTypes[$dom->nodeType], $dom->nodeType), @@ -109,14 +109,14 @@ public static function castNode(\DOMNode $dom, array $a, Stub $stub, $isNested) 'localName' => $dom->localName, 'baseURI' => $dom->baseURI ? new LinkStub($dom->baseURI) : $dom->baseURI, 'textContent' => new CutStub($dom->textContent), - ); + ]; return $a; } public static function castNameSpaceNode(\DOMNameSpaceNode $dom, array $a, Stub $stub, $isNested) { - $a += array( + $a += [ 'nodeName' => $dom->nodeName, 'nodeValue' => new CutStub($dom->nodeValue), 'nodeType' => new ConstStub(self::$nodeTypes[$dom->nodeType], $dom->nodeType), @@ -125,14 +125,14 @@ public static function castNameSpaceNode(\DOMNameSpaceNode $dom, array $a, Stub 'namespaceURI' => $dom->namespaceURI, 'ownerDocument' => new CutStub($dom->ownerDocument), 'parentNode' => new CutStub($dom->parentNode), - ); + ]; return $a; } public static function castDocument(\DOMDocument $dom, array $a, Stub $stub, $isNested, $filter = 0) { - $a += array( + $a += [ 'doctype' => $dom->doctype, 'implementation' => $dom->implementation, 'documentElement' => new CutStub($dom->documentElement), @@ -152,12 +152,12 @@ public static function castDocument(\DOMDocument $dom, array $a, Stub $stub, $is 'preserveWhiteSpace' => $dom->preserveWhiteSpace, 'recover' => $dom->recover, 'substituteEntities' => $dom->substituteEntities, - ); + ]; if (!($filter & Caster::EXCLUDE_VERBOSE)) { $formatOutput = $dom->formatOutput; $dom->formatOutput = true; - $a += array(Caster::PREFIX_VIRTUAL.'xml' => $dom->saveXML()); + $a += [Caster::PREFIX_VIRTUAL.'xml' => $dom->saveXML()]; $dom->formatOutput = $formatOutput; } @@ -166,136 +166,136 @@ public static function castDocument(\DOMDocument $dom, array $a, Stub $stub, $is public static function castCharacterData(\DOMCharacterData $dom, array $a, Stub $stub, $isNested) { - $a += array( + $a += [ 'data' => $dom->data, 'length' => $dom->length, - ); + ]; return $a; } public static function castAttr(\DOMAttr $dom, array $a, Stub $stub, $isNested) { - $a += array( + $a += [ 'name' => $dom->name, 'specified' => $dom->specified, 'value' => $dom->value, 'ownerElement' => $dom->ownerElement, 'schemaTypeInfo' => $dom->schemaTypeInfo, - ); + ]; return $a; } public static function castElement(\DOMElement $dom, array $a, Stub $stub, $isNested) { - $a += array( + $a += [ 'tagName' => $dom->tagName, 'schemaTypeInfo' => $dom->schemaTypeInfo, - ); + ]; return $a; } public static function castText(\DOMText $dom, array $a, Stub $stub, $isNested) { - $a += array( + $a += [ 'wholeText' => $dom->wholeText, - ); + ]; return $a; } public static function castTypeinfo(\DOMTypeinfo $dom, array $a, Stub $stub, $isNested) { - $a += array( + $a += [ 'typeName' => $dom->typeName, 'typeNamespace' => $dom->typeNamespace, - ); + ]; return $a; } public static function castDomError(\DOMDomError $dom, array $a, Stub $stub, $isNested) { - $a += array( + $a += [ 'severity' => $dom->severity, 'message' => $dom->message, 'type' => $dom->type, 'relatedException' => $dom->relatedException, 'related_data' => $dom->related_data, 'location' => $dom->location, - ); + ]; return $a; } public static function castLocator(\DOMLocator $dom, array $a, Stub $stub, $isNested) { - $a += array( + $a += [ 'lineNumber' => $dom->lineNumber, 'columnNumber' => $dom->columnNumber, 'offset' => $dom->offset, 'relatedNode' => $dom->relatedNode, 'uri' => $dom->uri ? new LinkStub($dom->uri, $dom->lineNumber) : $dom->uri, - ); + ]; return $a; } public static function castDocumentType(\DOMDocumentType $dom, array $a, Stub $stub, $isNested) { - $a += array( + $a += [ 'name' => $dom->name, 'entities' => $dom->entities, 'notations' => $dom->notations, 'publicId' => $dom->publicId, 'systemId' => $dom->systemId, 'internalSubset' => $dom->internalSubset, - ); + ]; return $a; } public static function castNotation(\DOMNotation $dom, array $a, Stub $stub, $isNested) { - $a += array( + $a += [ 'publicId' => $dom->publicId, 'systemId' => $dom->systemId, - ); + ]; return $a; } public static function castEntity(\DOMEntity $dom, array $a, Stub $stub, $isNested) { - $a += array( + $a += [ 'publicId' => $dom->publicId, 'systemId' => $dom->systemId, 'notationName' => $dom->notationName, 'actualEncoding' => $dom->actualEncoding, 'encoding' => $dom->encoding, 'version' => $dom->version, - ); + ]; return $a; } public static function castProcessingInstruction(\DOMProcessingInstruction $dom, array $a, Stub $stub, $isNested) { - $a += array( + $a += [ 'target' => $dom->target, 'data' => $dom->data, - ); + ]; return $a; } public static function castXPath(\DOMXPath $dom, array $a, Stub $stub, $isNested) { - $a += array( + $a += [ 'document' => $dom->document, - ); + ]; return $a; } diff --git a/vendor/symfony/var-dumper/Caster/DateCaster.php b/vendor/symfony/var-dumper/Caster/DateCaster.php index 175d98655f2498ccda4c3b6ec62728aa5d226c74..3b030b734ae1ddcb2adaa19c8bd78027b231cbc8 100644 --- a/vendor/symfony/var-dumper/Caster/DateCaster.php +++ b/vendor/symfony/var-dumper/Caster/DateCaster.php @@ -31,7 +31,7 @@ public static function castDateTime(\DateTimeInterface $d, array $a, Stub $stub, .($location ? ($d->format('I') ? "\nDST On" : "\nDST Off") : '') ; - $a = array(); + $a = []; $a[$prefix.'date'] = new ConstStub(self::formatDateTime($d, $location ? ' e (P)' : ' P'), $title); $stub->class .= $d->format(' @U'); @@ -45,7 +45,7 @@ public static function castInterval(\DateInterval $interval, array $a, Stub $stu $numberOfSeconds = $now->add($interval)->getTimestamp() - $now->getTimestamp(); $title = number_format($numberOfSeconds, 0, '.', ' ').'s'; - $i = array(Caster::PREFIX_VIRTUAL.'interval' => new ConstStub(self::formatInterval($interval), $title)); + $i = [Caster::PREFIX_VIRTUAL.'interval' => new ConstStub(self::formatInterval($interval), $title)]; return $filter & Caster::EXCLUDE_VERBOSE ? $i : $i + $a; } @@ -78,7 +78,7 @@ public static function castTimeZone(\DateTimeZone $timeZone, array $a, Stub $stu $formatted = (new \DateTime('now', $timeZone))->format($location ? 'e (P)' : 'P'); $title = $location && \extension_loaded('intl') ? \Locale::getDisplayRegion('-'.$location['country_code'], \Locale::getDefault()) : ''; - $z = array(Caster::PREFIX_VIRTUAL.'timezone' => new ConstStub($formatted, $title)); + $z = [Caster::PREFIX_VIRTUAL.'timezone' => new ConstStub($formatted, $title)]; return $filter & Caster::EXCLUDE_VERBOSE ? $z : $z + $a; } @@ -89,7 +89,7 @@ public static function castPeriod(\DatePeriod $p, array $a, Stub $stub, $isNeste return $a; } - $dates = array(); + $dates = []; if (\PHP_VERSION_ID >= 70107) { // see https://bugs.php.net/bug.php?id=74639 foreach (clone $p as $i => $d) { if (3 === $i) { @@ -112,7 +112,7 @@ public static function castPeriod(\DatePeriod $p, array $a, Stub $stub, $isNeste ($end = $p->getEndDate()) ? 'to '.self::formatDateTime($end) : 'recurring '.$p->recurrences.' time/s' ); - $p = array(Caster::PREFIX_VIRTUAL.'period' => new ConstStub($period, implode("\n", $dates))); + $p = [Caster::PREFIX_VIRTUAL.'period' => new ConstStub($period, implode("\n", $dates))]; return $filter & Caster::EXCLUDE_VERBOSE ? $p : $p + $a; } diff --git a/vendor/symfony/var-dumper/Caster/DoctrineCaster.php b/vendor/symfony/var-dumper/Caster/DoctrineCaster.php index 785d0270d7b0535179d10b33fd1989244ef08035..696b87816ea8e9df7ad514ee1310ed8468f30053 100644 --- a/vendor/symfony/var-dumper/Caster/DoctrineCaster.php +++ b/vendor/symfony/var-dumper/Caster/DoctrineCaster.php @@ -25,8 +25,8 @@ class DoctrineCaster { public static function castCommonProxy(CommonProxy $proxy, array $a, Stub $stub, $isNested) { - foreach (array('__cloner__', '__initializer__') as $k) { - if (array_key_exists($k, $a)) { + foreach (['__cloner__', '__initializer__'] as $k) { + if (\array_key_exists($k, $a)) { unset($a[$k]); ++$stub->cut; } @@ -37,8 +37,8 @@ public static function castCommonProxy(CommonProxy $proxy, array $a, Stub $stub, public static function castOrmProxy(OrmProxy $proxy, array $a, Stub $stub, $isNested) { - foreach (array('_entityPersister', '_identifier') as $k) { - if (array_key_exists($k = "\0Doctrine\\ORM\\Proxy\\Proxy\0".$k, $a)) { + foreach (['_entityPersister', '_identifier'] as $k) { + if (\array_key_exists($k = "\0Doctrine\\ORM\\Proxy\\Proxy\0".$k, $a)) { unset($a[$k]); ++$stub->cut; } @@ -49,8 +49,8 @@ public static function castOrmProxy(OrmProxy $proxy, array $a, Stub $stub, $isNe public static function castPersistentCollection(PersistentCollection $coll, array $a, Stub $stub, $isNested) { - foreach (array('snapshot', 'association', 'typeClass') as $k) { - if (array_key_exists($k = "\0Doctrine\\ORM\\PersistentCollection\0".$k, $a)) { + foreach (['snapshot', 'association', 'typeClass'] as $k) { + if (\array_key_exists($k = "\0Doctrine\\ORM\\PersistentCollection\0".$k, $a)) { $a[$k] = new CutStub($a[$k]); } } diff --git a/vendor/symfony/var-dumper/Caster/ExceptionCaster.php b/vendor/symfony/var-dumper/Caster/ExceptionCaster.php index 49df71da7e31b596c64493f900ba730bf9954308..e0acbe39dfe9bf6f7c992d3b553755b53303479b 100644 --- a/vendor/symfony/var-dumper/Caster/ExceptionCaster.php +++ b/vendor/symfony/var-dumper/Caster/ExceptionCaster.php @@ -24,7 +24,7 @@ class ExceptionCaster { public static $srcContext = 1; public static $traceArgs = true; - public static $errorTypes = array( + public static $errorTypes = [ E_DEPRECATED => 'E_DEPRECATED', E_USER_DEPRECATED => 'E_USER_DEPRECATED', E_RECOVERABLE_ERROR => 'E_RECOVERABLE_ERROR', @@ -40,9 +40,9 @@ class ExceptionCaster E_USER_WARNING => 'E_USER_WARNING', E_USER_NOTICE => 'E_USER_NOTICE', E_STRICT => 'E_STRICT', - ); + ]; - private static $framesCache = array(); + private static $framesCache = []; public static function castError(\Error $e, array $a, Stub $stub, $isNested, $filter = 0) { @@ -92,10 +92,10 @@ public static function castSilencedErrorContext(SilencedErrorContext $e, array $ $a[$s] = new ConstStub(self::$errorTypes[$a[$s]], $a[$s]); } - $trace = array(array( + $trace = [[ 'file' => $a[$sPrefix.'file'], 'line' => $a[$sPrefix.'line'], - )); + ]]; if (isset($a[$sPrefix.'trace'])) { $trace = array_merge($trace, $a[$sPrefix.'trace']); @@ -117,16 +117,16 @@ public static function castTraceStub(TraceStub $trace, array $a, Stub $stub, $is $frames = $trace->value; $prefix = Caster::PREFIX_VIRTUAL; - $a = array(); + $a = []; $j = \count($frames); if (0 > $i = $trace->sliceOffset) { $i = max(0, $j + $i); } if (!isset($trace->value[$i])) { - return array(); + return []; } $lastCall = isset($frames[$i]['function']) ? (isset($frames[$i]['class']) ? $frames[0]['class'].$frames[$i]['type'] : '').$frames[$i]['function'].'()' : ''; - $frames[] = array('function' => ''); + $frames[] = ['function' => '']; $collapse = false; for ($j += $trace->numberingOffset - $i++; isset($frames[$i]); ++$i, --$j) { @@ -134,16 +134,16 @@ public static function castTraceStub(TraceStub $trace, array $a, Stub $stub, $is $call = isset($f['function']) ? (isset($f['class']) ? $f['class'].$f['type'] : '').$f['function'] : '???'; $frame = new FrameStub( - array( + [ 'object' => isset($f['object']) ? $f['object'] : null, 'class' => isset($f['class']) ? $f['class'] : null, 'type' => isset($f['type']) ? $f['type'] : null, 'function' => isset($f['function']) ? $f['function'] : null, - ) + $frames[$i - 1], + ] + $frames[$i - 1], false, true ); - $f = self::castFrameStub($frame, array(), $frame, true); + $f = self::castFrameStub($frame, [], $frame, true); if (isset($f[$prefix.'src'])) { foreach ($f[$prefix.'src']->value as $label => $frame) { if (0 === strpos($label, "\0~collapse=0")) { @@ -239,7 +239,7 @@ public static function castFrameStub(FrameStub $frame, array $a, Stub $stub, $is $srcAttr .= '&separator=:'; } $srcAttr .= $ellipsis ? '&ellipsis-type=path&ellipsis='.$ellipsis.'&ellipsis-tail='.$ellipsisTail : ''; - self::$framesCache[$cacheKey] = $a[$prefix.'src'] = new EnumStub(array("\0~$srcAttr\0$srcKey" => $src)); + self::$framesCache[$cacheKey] = $a[$prefix.'src'] = new EnumStub(["\0~$srcAttr\0$srcKey" => $src]); } } @@ -265,7 +265,7 @@ private static function filterExceptionArray($xClass, array $a, $xPrefix, $filte $trace = $a[$xPrefix.'trace']; unset($a[$xPrefix.'trace']); // Ensures the trace is always last } else { - $trace = array(); + $trace = []; } if (!($filter & Caster::EXCLUDE_VERBOSE) && $trace) { @@ -291,23 +291,23 @@ private static function traceUnshift(&$trace, $class, $file, $line) if (isset($trace[0]['file'], $trace[0]['line']) && $trace[0]['file'] === $file && $trace[0]['line'] === $line) { return; } - array_unshift($trace, array( + array_unshift($trace, [ 'function' => $class ? 'new '.$class : null, 'file' => $file, 'line' => $line, - )); + ]); } private static function extractSource($srcLines, $line, $srcContext, $title, $lang, $file = null) { $srcLines = explode("\n", $srcLines); - $src = array(); + $src = []; for ($i = $line - 1 - $srcContext; $i <= $line - 1 + $srcContext; ++$i) { $src[] = (isset($srcLines[$i]) ? $srcLines[$i] : '')."\n"; } - $srcLines = array(); + $srcLines = []; $ltrim = 0; do { $pad = null; diff --git a/vendor/symfony/var-dumper/Caster/LinkStub.php b/vendor/symfony/var-dumper/Caster/LinkStub.php index e8e408fec5a93a89c63f0d8cc2891d4475bad937..b589b502d4cef8a8a45a34c3b8fc165693ce1647 100644 --- a/vendor/symfony/var-dumper/Caster/LinkStub.php +++ b/vendor/symfony/var-dumper/Caster/LinkStub.php @@ -55,9 +55,9 @@ public function __construct($label, $line = 0, $href = null) if ($composerRoot = $this->getComposerRoot($href, $this->inVendor)) { $this->attr['ellipsis'] = \strlen($href) - \strlen($composerRoot) + 1; $this->attr['ellipsis-type'] = 'path'; - $this->attr['ellipsis-tail'] = 1 + ($this->inVendor ? 2 + \strlen(implode(\array_slice(explode(\DIRECTORY_SEPARATOR, substr($href, 1 - $this->attr['ellipsis'])), 0, 2))) : 0); + $this->attr['ellipsis-tail'] = 1 + ($this->inVendor ? 2 + \strlen(implode('', \array_slice(explode(\DIRECTORY_SEPARATOR, substr($href, 1 - $this->attr['ellipsis'])), 0, 2))) : 0); } elseif (3 < \count($ellipsis = explode(\DIRECTORY_SEPARATOR, $href))) { - $this->attr['ellipsis'] = 2 + \strlen(implode(\array_slice($ellipsis, -2))); + $this->attr['ellipsis'] = 2 + \strlen(implode('', \array_slice($ellipsis, -2))); $this->attr['ellipsis-type'] = 'path'; $this->attr['ellipsis-tail'] = 1; } @@ -66,7 +66,7 @@ public function __construct($label, $line = 0, $href = null) private function getComposerRoot($file, &$inVendor) { if (null === self::$vendorRoots) { - self::$vendorRoots = array(); + self::$vendorRoots = []; foreach (get_declared_classes() as $class) { if ('C' === $class[0] && 0 === strpos($class, 'ComposerAutoloaderInit')) { diff --git a/vendor/symfony/var-dumper/Caster/PdoCaster.php b/vendor/symfony/var-dumper/Caster/PdoCaster.php index 83a001d960802beb18e3c3f1abe2aaa4b6c25ec3..8af51829a93fbf0d127c8826d5f8312cccc87585 100644 --- a/vendor/symfony/var-dumper/Caster/PdoCaster.php +++ b/vendor/symfony/var-dumper/Caster/PdoCaster.php @@ -20,53 +20,53 @@ */ class PdoCaster { - private static $pdoAttributes = array( - 'CASE' => array( + private static $pdoAttributes = [ + 'CASE' => [ \PDO::CASE_LOWER => 'LOWER', \PDO::CASE_NATURAL => 'NATURAL', \PDO::CASE_UPPER => 'UPPER', - ), - 'ERRMODE' => array( + ], + 'ERRMODE' => [ \PDO::ERRMODE_SILENT => 'SILENT', \PDO::ERRMODE_WARNING => 'WARNING', \PDO::ERRMODE_EXCEPTION => 'EXCEPTION', - ), + ], 'TIMEOUT', 'PREFETCH', 'AUTOCOMMIT', 'PERSISTENT', 'DRIVER_NAME', 'SERVER_INFO', - 'ORACLE_NULLS' => array( + 'ORACLE_NULLS' => [ \PDO::NULL_NATURAL => 'NATURAL', \PDO::NULL_EMPTY_STRING => 'EMPTY_STRING', \PDO::NULL_TO_STRING => 'TO_STRING', - ), + ], 'CLIENT_VERSION', 'SERVER_VERSION', 'STATEMENT_CLASS', 'EMULATE_PREPARES', 'CONNECTION_STATUS', 'STRINGIFY_FETCHES', - 'DEFAULT_FETCH_MODE' => array( + 'DEFAULT_FETCH_MODE' => [ \PDO::FETCH_ASSOC => 'ASSOC', \PDO::FETCH_BOTH => 'BOTH', \PDO::FETCH_LAZY => 'LAZY', \PDO::FETCH_NUM => 'NUM', \PDO::FETCH_OBJ => 'OBJ', - ), - ); + ], + ]; public static function castPdo(\PDO $c, array $a, Stub $stub, $isNested) { - $attr = array(); + $attr = []; $errmode = $c->getAttribute(\PDO::ATTR_ERRMODE); $c->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION); foreach (self::$pdoAttributes as $k => $v) { if (!isset($k[0])) { $k = $v; - $v = array(); + $v = []; } try { @@ -85,11 +85,11 @@ public static function castPdo(\PDO $c, array $a, Stub $stub, $isNested) } $prefix = Caster::PREFIX_VIRTUAL; - $a += array( + $a += [ $prefix.'inTransaction' => method_exists($c, 'inTransaction'), $prefix.'errorInfo' => $c->errorInfo(), $prefix.'attributes' => new EnumStub($attr), - ); + ]; if ($a[$prefix.'inTransaction']) { $a[$prefix.'inTransaction'] = $c->inTransaction(); diff --git a/vendor/symfony/var-dumper/Caster/PgSqlCaster.php b/vendor/symfony/var-dumper/Caster/PgSqlCaster.php index 88414e4ccff265d256f8695565fc636771e5f134..cd6bf5b5fe66604a0175429c22636623e6bc31dd 100644 --- a/vendor/symfony/var-dumper/Caster/PgSqlCaster.php +++ b/vendor/symfony/var-dumper/Caster/PgSqlCaster.php @@ -20,7 +20,7 @@ */ class PgSqlCaster { - private static $paramCodes = array( + private static $paramCodes = [ 'server_encoding', 'client_encoding', 'is_superuser', @@ -31,17 +31,17 @@ class PgSqlCaster 'integer_datetimes', 'application_name', 'standard_conforming_strings', - ); + ]; - private static $transactionStatus = array( + private static $transactionStatus = [ PGSQL_TRANSACTION_IDLE => 'PGSQL_TRANSACTION_IDLE', PGSQL_TRANSACTION_ACTIVE => 'PGSQL_TRANSACTION_ACTIVE', PGSQL_TRANSACTION_INTRANS => 'PGSQL_TRANSACTION_INTRANS', PGSQL_TRANSACTION_INERROR => 'PGSQL_TRANSACTION_INERROR', PGSQL_TRANSACTION_UNKNOWN => 'PGSQL_TRANSACTION_UNKNOWN', - ); + ]; - private static $resultStatus = array( + private static $resultStatus = [ PGSQL_EMPTY_QUERY => 'PGSQL_EMPTY_QUERY', PGSQL_COMMAND_OK => 'PGSQL_COMMAND_OK', PGSQL_TUPLES_OK => 'PGSQL_TUPLES_OK', @@ -50,9 +50,9 @@ class PgSqlCaster PGSQL_BAD_RESPONSE => 'PGSQL_BAD_RESPONSE', PGSQL_NONFATAL_ERROR => 'PGSQL_NONFATAL_ERROR', PGSQL_FATAL_ERROR => 'PGSQL_FATAL_ERROR', - ); + ]; - private static $diagCodes = array( + private static $diagCodes = [ 'severity' => PGSQL_DIAG_SEVERITY, 'sqlstate' => PGSQL_DIAG_SQLSTATE, 'message' => PGSQL_DIAG_MESSAGE_PRIMARY, @@ -65,7 +65,7 @@ class PgSqlCaster 'file' => PGSQL_DIAG_SOURCE_FILE, 'line' => PGSQL_DIAG_SOURCE_LINE, 'function' => PGSQL_DIAG_SOURCE_FUNCTION, - ); + ]; public static function castLargeObject($lo, array $a, Stub $stub, $isNested) { @@ -127,14 +127,14 @@ public static function castResult($result, array $a, Stub $stub, $isNested) $fields = pg_num_fields($result); for ($i = 0; $i < $fields; ++$i) { - $field = array( + $field = [ 'name' => pg_field_name($result, $i), 'table' => sprintf('%s (OID: %s)', pg_field_table($result, $i), pg_field_table($result, $i, true)), 'type' => sprintf('%s (OID: %s)', pg_field_type($result, $i), pg_field_type_oid($result, $i)), 'nullable' => (bool) pg_field_is_null($result, $i), 'storage' => pg_field_size($result, $i).' bytes', 'display' => pg_field_prtlen($result, $i).' chars', - ); + ]; if (' (OID: )' === $field['table']) { $field['table'] = null; } diff --git a/vendor/symfony/var-dumper/Caster/RedisCaster.php b/vendor/symfony/var-dumper/Caster/RedisCaster.php index 409a0d48a142831d729beab395ab1a1bd8b9cd46..1e2fb3991629b68a5413186d704abab0180908ed 100644 --- a/vendor/symfony/var-dumper/Caster/RedisCaster.php +++ b/vendor/symfony/var-dumper/Caster/RedisCaster.php @@ -20,11 +20,11 @@ */ class RedisCaster { - private static $serializer = array( + private static $serializer = [ \Redis::SERIALIZER_NONE => 'NONE', \Redis::SERIALIZER_PHP => 'PHP', 2 => 'IGBINARY', // Optional Redis::SERIALIZER_IGBINARY - ); + ]; public static function castRedis(\Redis $c, array $a, Stub $stub, $isNested) { @@ -40,15 +40,15 @@ public static function castRedis(\Redis $c, array $a, Stub $stub, $isNested) } if (!$connected = $c->isConnected()) { - return $a + array( + return $a + [ $prefix.'isConnected' => $connected, - ); + ]; } $ser = $c->getOption(\Redis::OPT_SERIALIZER); $retry = \defined('Redis::OPT_SCAN') ? $c->getOption(\Redis::OPT_SCAN) : 0; - return $a + array( + return $a + [ $prefix.'isConnected' => $connected, $prefix.'host' => $c->getHost(), $prefix.'port' => $c->getPort(), @@ -56,22 +56,22 @@ public static function castRedis(\Redis $c, array $a, Stub $stub, $isNested) $prefix.'dbNum' => $c->getDbNum(), $prefix.'timeout' => $c->getTimeout(), $prefix.'persistentId' => $c->getPersistentID(), - $prefix.'options' => new EnumStub(array( + $prefix.'options' => new EnumStub([ 'READ_TIMEOUT' => $c->getOption(\Redis::OPT_READ_TIMEOUT), 'SERIALIZER' => isset(self::$serializer[$ser]) ? new ConstStub(self::$serializer[$ser], $ser) : $ser, 'PREFIX' => $c->getOption(\Redis::OPT_PREFIX), 'SCAN' => new ConstStub($retry ? 'RETRY' : 'NORETRY', $retry), - )), - ); + ]), + ]; } public static function castRedisArray(\RedisArray $c, array $a, Stub $stub, $isNested) { $prefix = Caster::PREFIX_VIRTUAL; - return $a + array( + return $a + [ $prefix.'hosts' => $c->_hosts(), $prefix.'function' => ClassStub::wrapCallable($c->_function()), - ); + ]; } } diff --git a/vendor/symfony/var-dumper/Caster/ReflectionCaster.php b/vendor/symfony/var-dumper/Caster/ReflectionCaster.php index 2b049eaecba1a89499ba166e6a11a02b23dac535..1543bbfdfa003632ded1b020357f075fb9becf9d 100644 --- a/vendor/symfony/var-dumper/Caster/ReflectionCaster.php +++ b/vendor/symfony/var-dumper/Caster/ReflectionCaster.php @@ -20,7 +20,7 @@ */ class ReflectionCaster { - private static $extraMap = array( + private static $extraMap = [ 'docComment' => 'getDocComment', 'extension' => 'getExtensionName', 'isDisabled' => 'isDisabled', @@ -29,7 +29,7 @@ class ReflectionCaster 'isUserDefined' => 'isUserDefined', 'isGenerator' => 'isGenerator', 'isVariadic' => 'isVariadic', - ); + ]; public static function castClosure(\Closure $c, array $a, Stub $stub, $isNested, $filter = 0) { @@ -39,11 +39,16 @@ public static function castClosure(\Closure $c, array $a, Stub $stub, $isNested, $stub->class = 'Closure'; // HHVM generates unique class names for closures $a = static::castFunctionAbstract($c, $a, $stub, $isNested, $filter); + if (false === strpos($c->name, '{closure}')) { + $stub->class = isset($a[$prefix.'class']) ? $a[$prefix.'class']->value.'::'.$c->name : $c->name; + unset($a[$prefix.'class']); + } + if (isset($a[$prefix.'parameters'])) { foreach ($a[$prefix.'parameters']->value as &$v) { $param = $v; - $v = new EnumStub(array()); - foreach (static::castParameter($param, array(), $stub, true) as $k => $param) { + $v = new EnumStub([]); + foreach (static::castParameter($param, [], $stub, true) as $k => $param) { if ("\0" === $k[0]) { $v->value[substr($k, 3)] = $param; } @@ -85,11 +90,11 @@ public static function castType(\ReflectionType $c, array $a, Stub $stub, $isNes { $prefix = Caster::PREFIX_VIRTUAL; - $a += array( + $a += [ $prefix.'name' => $c instanceof \ReflectionNamedType ? $c->getName() : $c->__toString(), $prefix.'allowsNull' => $c->allowsNull(), $prefix.'isBuiltin' => $c->isBuiltin(), - ); + ]; return $a; } @@ -102,28 +107,28 @@ public static function castReflectionGenerator(\ReflectionGenerator $c, array $a $a[$prefix.'this'] = new CutStub($c->getThis()); } $function = $c->getFunction(); - $frame = array( + $frame = [ 'class' => isset($function->class) ? $function->class : null, 'type' => isset($function->class) ? ($function->isStatic() ? '::' : '->') : null, 'function' => $function->name, 'file' => $c->getExecutingFile(), 'line' => $c->getExecutingLine(), - ); + ]; if ($trace = $c->getTrace(DEBUG_BACKTRACE_IGNORE_ARGS)) { $function = new \ReflectionGenerator($c->getExecutingGenerator()); - array_unshift($trace, array( + array_unshift($trace, [ 'function' => 'yield', 'file' => $function->getExecutingFile(), 'line' => $function->getExecutingLine() - 1, - )); + ]); $trace[] = $frame; $a[$prefix.'trace'] = new TraceStub($trace, false, 0, -1, -1); } else { $function = new FrameStub($frame, false, true); - $function = ExceptionCaster::castFrameStub($function, array(), $function, true); - $a[$prefix.'executing'] = new EnumStub(array( + $function = ExceptionCaster::castFrameStub($function, [], $function, true); + $a[$prefix.'executing'] = new EnumStub([ "\0~separator= \0".$frame['class'].$frame['type'].$frame['function'].'()' => $function[$prefix.'src'], - )); + ]); } $a[Caster::PREFIX_VIRTUAL.'closed'] = false; @@ -139,11 +144,11 @@ public static function castClass(\ReflectionClass $c, array $a, Stub $stub, $isN $a[$prefix.'modifiers'] = implode(' ', $n); } - self::addMap($a, $c, array( + self::addMap($a, $c, [ 'extends' => 'getParentClass', 'implements' => 'getInterfaceNames', 'constants' => 'getConstants', - )); + ]); foreach ($c->getProperties() as $n) { $a[$prefix.'properties'][$n->name] = $n; @@ -164,17 +169,17 @@ public static function castFunctionAbstract(\ReflectionFunctionAbstract $c, arra { $prefix = Caster::PREFIX_VIRTUAL; - self::addMap($a, $c, array( + self::addMap($a, $c, [ 'returnsReference' => 'returnsReference', 'returnType' => 'getReturnType', 'class' => 'getClosureScopeClass', 'this' => 'getClosureThis', - )); + ]); if (isset($a[$prefix.'returnType'])) { $v = $a[$prefix.'returnType']; $v = $v instanceof \ReflectionNamedType ? $v->getName() : $v->__toString(); - $a[$prefix.'returnType'] = new ClassStub($a[$prefix.'returnType']->allowsNull() ? '?'.$v : $v, array(class_exists($v, false) || interface_exists($v, false) || trait_exists($v, false) ? $v : '', '')); + $a[$prefix.'returnType'] = new ClassStub($a[$prefix.'returnType']->allowsNull() ? '?'.$v : $v, [class_exists($v, false) || interface_exists($v, false) || trait_exists($v, false) ? $v : '', '']); } if (isset($a[$prefix.'class'])) { $a[$prefix.'class'] = new ClassStub($a[$prefix.'class']); @@ -233,12 +238,12 @@ public static function castParameter(\ReflectionParameter $c, array $a, Stub $st // Added by HHVM unset($a['info']); - self::addMap($a, $c, array( + self::addMap($a, $c, [ 'position' => 'getPosition', 'isVariadic' => 'isVariadic', 'byReference' => 'isPassedByReference', 'allowsNull' => 'allowsNull', - )); + ]); if (method_exists($c, 'getType')) { if ($v = $c->getType()) { @@ -250,7 +255,7 @@ public static function castParameter(\ReflectionParameter $c, array $a, Stub $st if (isset($a[$prefix.'typeHint'])) { $v = $a[$prefix.'typeHint']; - $a[$prefix.'typeHint'] = new ClassStub($v, array(class_exists($v, false) || interface_exists($v, false) || trait_exists($v, false) ? $v : '', '')); + $a[$prefix.'typeHint'] = new ClassStub($v, [class_exists($v, false) || interface_exists($v, false) || trait_exists($v, false) ? $v : '', '']); } else { unset($a[$prefix.'allowsNull']); } @@ -283,7 +288,7 @@ public static function castProperty(\ReflectionProperty $c, array $a, Stub $stub public static function castExtension(\ReflectionExtension $c, array $a, Stub $stub, $isNested) { - self::addMap($a, $c, array( + self::addMap($a, $c, [ 'version' => 'getVersion', 'dependencies' => 'getDependencies', 'iniEntries' => 'getIniEntries', @@ -292,26 +297,26 @@ public static function castExtension(\ReflectionExtension $c, array $a, Stub $st 'constants' => 'getConstants', 'functions' => 'getFunctions', 'classes' => 'getClasses', - )); + ]); return $a; } public static function castZendExtension(\ReflectionZendExtension $c, array $a, Stub $stub, $isNested) { - self::addMap($a, $c, array( + self::addMap($a, $c, [ 'version' => 'getVersion', 'author' => 'getAuthor', 'copyright' => 'getCopyright', 'url' => 'getURL', - )); + ]); return $a; } private static function addExtra(&$a, \Reflector $c) { - $x = isset($a[Caster::PREFIX_VIRTUAL.'extra']) ? $a[Caster::PREFIX_VIRTUAL.'extra']->value : array(); + $x = isset($a[Caster::PREFIX_VIRTUAL.'extra']) ? $a[Caster::PREFIX_VIRTUAL.'extra']->value : []; if (method_exists($c, 'getFileName') && $m = $c->getFileName()) { $x['file'] = new LinkStub($m, $c->getStartLine()); diff --git a/vendor/symfony/var-dumper/Caster/SplCaster.php b/vendor/symfony/var-dumper/Caster/SplCaster.php index 0780c0a37148955e6bb50b3213dd74bc5e88bfd4..a223adb7f2cae34ad13a370195af6942b70f436a 100644 --- a/vendor/symfony/var-dumper/Caster/SplCaster.php +++ b/vendor/symfony/var-dumper/Caster/SplCaster.php @@ -20,12 +20,12 @@ */ class SplCaster { - private static $splFileObjectFlags = array( + private static $splFileObjectFlags = [ \SplFileObject::DROP_NEW_LINE => 'DROP_NEW_LINE', \SplFileObject::READ_AHEAD => 'READ_AHEAD', \SplFileObject::SKIP_EMPTY => 'SKIP_EMPTY', \SplFileObject::READ_CSV => 'READ_CSV', - ); + ]; public static function castArrayObject(\ArrayObject $c, array $a, Stub $stub, $isNested) { @@ -39,9 +39,9 @@ public static function castArrayIterator(\ArrayIterator $c, array $a, Stub $stub public static function castHeap(\Iterator $c, array $a, Stub $stub, $isNested) { - $a += array( + $a += [ Caster::PREFIX_VIRTUAL.'heap' => iterator_to_array(clone $c), - ); + ]; return $a; } @@ -52,10 +52,10 @@ public static function castDoublyLinkedList(\SplDoublyLinkedList $c, array $a, S $mode = $c->getIteratorMode(); $c->setIteratorMode(\SplDoublyLinkedList::IT_MODE_KEEP | $mode & ~\SplDoublyLinkedList::IT_MODE_DELETE); - $a += array( + $a += [ $prefix.'mode' => new ConstStub((($mode & \SplDoublyLinkedList::IT_MODE_LIFO) ? 'IT_MODE_LIFO' : 'IT_MODE_FIFO').' | '.(($mode & \SplDoublyLinkedList::IT_MODE_DELETE) ? 'IT_MODE_DELETE' : 'IT_MODE_KEEP'), $mode), $prefix.'dllist' => iterator_to_array($c), - ); + ]; $c->setIteratorMode($mode); return $a; @@ -63,7 +63,7 @@ public static function castDoublyLinkedList(\SplDoublyLinkedList $c, array $a, S public static function castFileInfo(\SplFileInfo $c, array $a, Stub $stub, $isNested) { - static $map = array( + static $map = [ 'path' => 'getPath', 'filename' => 'getFilename', 'basename' => 'getBasename', @@ -86,7 +86,7 @@ public static function castFileInfo(\SplFileInfo $c, array $a, Stub $stub, $isNe 'dir' => 'isDir', 'link' => 'isLink', 'linkTarget' => 'getLinkTarget', - ); + ]; $prefix = Caster::PREFIX_VIRTUAL; @@ -105,7 +105,7 @@ public static function castFileInfo(\SplFileInfo $c, array $a, Stub $stub, $isNe $a[$prefix.'perms'] = new ConstStub(sprintf('0%o', $a[$prefix.'perms']), $a[$prefix.'perms']); } - static $mapDate = array('aTime', 'mTime', 'cTime'); + static $mapDate = ['aTime', 'mTime', 'cTime']; foreach ($mapDate as $key) { if (isset($a[$prefix.$key])) { $a[$prefix.$key] = new ConstStub(date('Y-m-d H:i:s', $a[$prefix.$key]), $a[$prefix.$key]); @@ -117,14 +117,14 @@ public static function castFileInfo(\SplFileInfo $c, array $a, Stub $stub, $isNe public static function castFileObject(\SplFileObject $c, array $a, Stub $stub, $isNested) { - static $map = array( + static $map = [ 'csvControl' => 'getCsvControl', 'flags' => 'getFlags', 'maxLineLen' => 'getMaxLineLen', 'fstat' => 'fstat', 'eof' => 'eof', 'key' => 'key', - ); + ]; $prefix = Caster::PREFIX_VIRTUAL; @@ -136,7 +136,7 @@ public static function castFileObject(\SplFileObject $c, array $a, Stub $stub, $ } if (isset($a[$prefix.'flags'])) { - $flagsArray = array(); + $flagsArray = []; foreach (self::$splFileObjectFlags as $value => $name) { if ($a[$prefix.'flags'] & $value) { $flagsArray[] = $name; @@ -146,7 +146,7 @@ public static function castFileObject(\SplFileObject $c, array $a, Stub $stub, $ } if (isset($a[$prefix.'fstat'])) { - $a[$prefix.'fstat'] = new CutArrayStub($a[$prefix.'fstat'], array('dev', 'ino', 'nlink', 'rdev', 'blksize', 'blocks')); + $a[$prefix.'fstat'] = new CutArrayStub($a[$prefix.'fstat'], ['dev', 'ino', 'nlink', 'rdev', 'blksize', 'blocks']); } return $a; @@ -154,29 +154,29 @@ public static function castFileObject(\SplFileObject $c, array $a, Stub $stub, $ public static function castFixedArray(\SplFixedArray $c, array $a, Stub $stub, $isNested) { - $a += array( + $a += [ Caster::PREFIX_VIRTUAL.'storage' => $c->toArray(), - ); + ]; return $a; } public static function castObjectStorage(\SplObjectStorage $c, array $a, Stub $stub, $isNested) { - $storage = array(); + $storage = []; unset($a[Caster::PREFIX_DYNAMIC."\0gcdata"]); // Don't hit https://bugs.php.net/65967 $clone = clone $c; foreach ($clone as $obj) { - $storage[] = array( + $storage[] = [ 'object' => $obj, 'info' => $clone->getInfo(), - ); + ]; } - $a += array( + $a += [ Caster::PREFIX_VIRTUAL.'storage' => $storage, - ); + ]; return $a; } @@ -199,10 +199,10 @@ private static function castSplArray($c, array $a, Stub $stub, $isNested) $a = Caster::castObject($c, $class); $c->setFlags($flags); } - $a += array( + $a += [ $prefix.'flag::STD_PROP_LIST' => (bool) ($flags & \ArrayObject::STD_PROP_LIST), $prefix.'flag::ARRAY_AS_PROPS' => (bool) ($flags & \ArrayObject::ARRAY_AS_PROPS), - ); + ]; if ($c instanceof \ArrayObject) { $a[$prefix.'iteratorClass'] = new ClassStub($c->getIteratorClass()); } diff --git a/vendor/symfony/var-dumper/Caster/StubCaster.php b/vendor/symfony/var-dumper/Caster/StubCaster.php index b0bf5dc80d6414e4c3fe4651d04020e800d3731a..9927d42610c18ca0c64dd6a089dcf78f57446727 100644 --- a/vendor/symfony/var-dumper/Caster/StubCaster.php +++ b/vendor/symfony/var-dumper/Caster/StubCaster.php @@ -35,7 +35,7 @@ public static function castStub(Stub $c, array $a, Stub $stub, $isNested) $stub->class = Stub::STRING_BINARY; } - $a = array(); + $a = []; } return $a; @@ -51,7 +51,7 @@ public static function cutInternals($obj, array $a, Stub $stub, $isNested) if ($isNested) { $stub->cut += \count($a); - return array(); + return []; } return $a; @@ -66,7 +66,7 @@ public static function castEnum(EnumStub $c, array $a, Stub $stub, $isNested) $stub->cut = $c->cut; $stub->attr = $c->attr; - $a = array(); + $a = []; if ($c->value) { foreach (array_keys($c->value) as $k) { diff --git a/vendor/symfony/var-dumper/Caster/SymfonyCaster.php b/vendor/symfony/var-dumper/Caster/SymfonyCaster.php index 5d9decb67aeb36d4458d614b1ed8f78e31ef590b..ae7134f55b2a1e2b9e133859662187e6d582ee6c 100644 --- a/vendor/symfony/var-dumper/Caster/SymfonyCaster.php +++ b/vendor/symfony/var-dumper/Caster/SymfonyCaster.php @@ -16,14 +16,14 @@ class SymfonyCaster { - private static $requestGetters = array( + private static $requestGetters = [ 'pathInfo' => 'getPathInfo', 'requestUri' => 'getRequestUri', 'baseUrl' => 'getBaseUrl', 'basePath' => 'getBasePath', 'method' => 'getMethod', 'format' => 'getRequestFormat', - ); + ]; public static function castRequest(Request $request, array $a, Stub $stub, $isNested) { diff --git a/vendor/symfony/var-dumper/Caster/XmlReaderCaster.php b/vendor/symfony/var-dumper/Caster/XmlReaderCaster.php index 19b26e69c6a9a007ec1ed74dcecf707bc4b3bc44..3ae9ec0ba19a03eda7bbc605b68cf0f780b6ea41 100644 --- a/vendor/symfony/var-dumper/Caster/XmlReaderCaster.php +++ b/vendor/symfony/var-dumper/Caster/XmlReaderCaster.php @@ -19,7 +19,7 @@ */ class XmlReaderCaster { - private static $nodeTypes = array( + private static $nodeTypes = [ \XMLReader::NONE => 'NONE', \XMLReader::ELEMENT => 'ELEMENT', \XMLReader::ATTRIBUTE => 'ATTRIBUTE', @@ -38,12 +38,12 @@ class XmlReaderCaster \XMLReader::END_ELEMENT => 'END_ELEMENT', \XMLReader::END_ENTITY => 'END_ENTITY', \XMLReader::XML_DECLARATION => 'XML_DECLARATION', - ); + ]; public static function castXmlReader(\XMLReader $reader, array $a, Stub $stub, $isNested) { $props = Caster::PREFIX_VIRTUAL.'parserProperties'; - $info = array( + $info = [ 'localName' => $reader->localName, 'prefix' => $reader->prefix, 'nodeType' => new ConstStub(self::$nodeTypes[$reader->nodeType], $reader->nodeType), @@ -55,20 +55,20 @@ public static function castXmlReader(\XMLReader $reader, array $a, Stub $stub, $ 'value' => $reader->value, 'namespaceURI' => $reader->namespaceURI, 'baseURI' => $reader->baseURI ? new LinkStub($reader->baseURI) : $reader->baseURI, - $props => array( + $props => [ 'LOADDTD' => $reader->getParserProperty(\XMLReader::LOADDTD), 'DEFAULTATTRS' => $reader->getParserProperty(\XMLReader::DEFAULTATTRS), 'VALIDATE' => $reader->getParserProperty(\XMLReader::VALIDATE), 'SUBST_ENTITIES' => $reader->getParserProperty(\XMLReader::SUBST_ENTITIES), - ), - ); + ], + ]; - if ($info[$props] = Caster::filter($info[$props], Caster::EXCLUDE_EMPTY, array(), $count)) { + if ($info[$props] = Caster::filter($info[$props], Caster::EXCLUDE_EMPTY, [], $count)) { $info[$props] = new EnumStub($info[$props]); $info[$props]->cut = $count; } - $info = Caster::filter($info, Caster::EXCLUDE_EMPTY, array(), $count); + $info = Caster::filter($info, Caster::EXCLUDE_EMPTY, [], $count); // +2 because hasValue and hasAttributes are always filtered $stub->cut += $count + 2; diff --git a/vendor/symfony/var-dumper/Caster/XmlResourceCaster.php b/vendor/symfony/var-dumper/Caster/XmlResourceCaster.php index 5d0207ee81dac4613cec16d3be1e1c9013b4f910..117138c7848c05856b6ad671c0a9b7884e30fb60 100644 --- a/vendor/symfony/var-dumper/Caster/XmlResourceCaster.php +++ b/vendor/symfony/var-dumper/Caster/XmlResourceCaster.php @@ -20,7 +20,7 @@ */ class XmlResourceCaster { - private static $xmlErrors = array( + private static $xmlErrors = [ XML_ERROR_NONE => 'XML_ERROR_NONE', XML_ERROR_NO_MEMORY => 'XML_ERROR_NO_MEMORY', XML_ERROR_SYNTAX => 'XML_ERROR_SYNTAX', @@ -43,7 +43,7 @@ class XmlResourceCaster XML_ERROR_INCORRECT_ENCODING => 'XML_ERROR_INCORRECT_ENCODING', XML_ERROR_UNCLOSED_CDATA_SECTION => 'XML_ERROR_UNCLOSED_CDATA_SECTION', XML_ERROR_EXTERNAL_ENTITY_HANDLING => 'XML_ERROR_EXTERNAL_ENTITY_HANDLING', - ); + ]; public static function castXml($h, array $a, Stub $stub, $isNested) { diff --git a/vendor/symfony/var-dumper/Cloner/AbstractCloner.php b/vendor/symfony/var-dumper/Cloner/AbstractCloner.php index 5501fc6983cbee448e804fddf4515e4507e1d4c1..de09f1803da8575642ad738515b1f7ce87b38a32 100644 --- a/vendor/symfony/var-dumper/Cloner/AbstractCloner.php +++ b/vendor/symfony/var-dumper/Cloner/AbstractCloner.php @@ -21,124 +21,124 @@ */ abstract class AbstractCloner implements ClonerInterface { - public static $defaultCasters = array( - '__PHP_Incomplete_Class' => array('Symfony\Component\VarDumper\Caster\Caster', 'castPhpIncompleteClass'), - - 'Symfony\Component\VarDumper\Caster\CutStub' => array('Symfony\Component\VarDumper\Caster\StubCaster', 'castStub'), - 'Symfony\Component\VarDumper\Caster\CutArrayStub' => array('Symfony\Component\VarDumper\Caster\StubCaster', 'castCutArray'), - 'Symfony\Component\VarDumper\Caster\ConstStub' => array('Symfony\Component\VarDumper\Caster\StubCaster', 'castStub'), - 'Symfony\Component\VarDumper\Caster\EnumStub' => array('Symfony\Component\VarDumper\Caster\StubCaster', 'castEnum'), - - 'Closure' => array('Symfony\Component\VarDumper\Caster\ReflectionCaster', 'castClosure'), - 'Generator' => array('Symfony\Component\VarDumper\Caster\ReflectionCaster', 'castGenerator'), - 'ReflectionType' => array('Symfony\Component\VarDumper\Caster\ReflectionCaster', 'castType'), - 'ReflectionGenerator' => array('Symfony\Component\VarDumper\Caster\ReflectionCaster', 'castReflectionGenerator'), - 'ReflectionClass' => array('Symfony\Component\VarDumper\Caster\ReflectionCaster', 'castClass'), - 'ReflectionFunctionAbstract' => array('Symfony\Component\VarDumper\Caster\ReflectionCaster', 'castFunctionAbstract'), - 'ReflectionMethod' => array('Symfony\Component\VarDumper\Caster\ReflectionCaster', 'castMethod'), - 'ReflectionParameter' => array('Symfony\Component\VarDumper\Caster\ReflectionCaster', 'castParameter'), - 'ReflectionProperty' => array('Symfony\Component\VarDumper\Caster\ReflectionCaster', 'castProperty'), - 'ReflectionExtension' => array('Symfony\Component\VarDumper\Caster\ReflectionCaster', 'castExtension'), - 'ReflectionZendExtension' => array('Symfony\Component\VarDumper\Caster\ReflectionCaster', 'castZendExtension'), - - 'Doctrine\Common\Persistence\ObjectManager' => array('Symfony\Component\VarDumper\Caster\StubCaster', 'cutInternals'), - 'Doctrine\Common\Proxy\Proxy' => array('Symfony\Component\VarDumper\Caster\DoctrineCaster', 'castCommonProxy'), - 'Doctrine\ORM\Proxy\Proxy' => array('Symfony\Component\VarDumper\Caster\DoctrineCaster', 'castOrmProxy'), - 'Doctrine\ORM\PersistentCollection' => array('Symfony\Component\VarDumper\Caster\DoctrineCaster', 'castPersistentCollection'), - - 'DOMException' => array('Symfony\Component\VarDumper\Caster\DOMCaster', 'castException'), - 'DOMStringList' => array('Symfony\Component\VarDumper\Caster\DOMCaster', 'castLength'), - 'DOMNameList' => array('Symfony\Component\VarDumper\Caster\DOMCaster', 'castLength'), - 'DOMImplementation' => array('Symfony\Component\VarDumper\Caster\DOMCaster', 'castImplementation'), - 'DOMImplementationList' => array('Symfony\Component\VarDumper\Caster\DOMCaster', 'castLength'), - 'DOMNode' => array('Symfony\Component\VarDumper\Caster\DOMCaster', 'castNode'), - 'DOMNameSpaceNode' => array('Symfony\Component\VarDumper\Caster\DOMCaster', 'castNameSpaceNode'), - 'DOMDocument' => array('Symfony\Component\VarDumper\Caster\DOMCaster', 'castDocument'), - 'DOMNodeList' => array('Symfony\Component\VarDumper\Caster\DOMCaster', 'castLength'), - 'DOMNamedNodeMap' => array('Symfony\Component\VarDumper\Caster\DOMCaster', 'castLength'), - 'DOMCharacterData' => array('Symfony\Component\VarDumper\Caster\DOMCaster', 'castCharacterData'), - 'DOMAttr' => array('Symfony\Component\VarDumper\Caster\DOMCaster', 'castAttr'), - 'DOMElement' => array('Symfony\Component\VarDumper\Caster\DOMCaster', 'castElement'), - 'DOMText' => array('Symfony\Component\VarDumper\Caster\DOMCaster', 'castText'), - 'DOMTypeinfo' => array('Symfony\Component\VarDumper\Caster\DOMCaster', 'castTypeinfo'), - 'DOMDomError' => array('Symfony\Component\VarDumper\Caster\DOMCaster', 'castDomError'), - 'DOMLocator' => array('Symfony\Component\VarDumper\Caster\DOMCaster', 'castLocator'), - 'DOMDocumentType' => array('Symfony\Component\VarDumper\Caster\DOMCaster', 'castDocumentType'), - 'DOMNotation' => array('Symfony\Component\VarDumper\Caster\DOMCaster', 'castNotation'), - 'DOMEntity' => array('Symfony\Component\VarDumper\Caster\DOMCaster', 'castEntity'), - 'DOMProcessingInstruction' => array('Symfony\Component\VarDumper\Caster\DOMCaster', 'castProcessingInstruction'), - 'DOMXPath' => array('Symfony\Component\VarDumper\Caster\DOMCaster', 'castXPath'), - - 'XmlReader' => array('Symfony\Component\VarDumper\Caster\XmlReaderCaster', 'castXmlReader'), - - 'ErrorException' => array('Symfony\Component\VarDumper\Caster\ExceptionCaster', 'castErrorException'), - 'Exception' => array('Symfony\Component\VarDumper\Caster\ExceptionCaster', 'castException'), - 'Error' => array('Symfony\Component\VarDumper\Caster\ExceptionCaster', 'castError'), - 'Symfony\Component\DependencyInjection\ContainerInterface' => array('Symfony\Component\VarDumper\Caster\StubCaster', 'cutInternals'), - 'Symfony\Component\HttpFoundation\Request' => array('Symfony\Component\VarDumper\Caster\SymfonyCaster', 'castRequest'), - 'Symfony\Component\VarDumper\Exception\ThrowingCasterException' => array('Symfony\Component\VarDumper\Caster\ExceptionCaster', 'castThrowingCasterException'), - 'Symfony\Component\VarDumper\Caster\TraceStub' => array('Symfony\Component\VarDumper\Caster\ExceptionCaster', 'castTraceStub'), - 'Symfony\Component\VarDumper\Caster\FrameStub' => array('Symfony\Component\VarDumper\Caster\ExceptionCaster', 'castFrameStub'), - 'Symfony\Component\Debug\Exception\SilencedErrorContext' => array('Symfony\Component\VarDumper\Caster\ExceptionCaster', 'castSilencedErrorContext'), - - 'PHPUnit_Framework_MockObject_MockObject' => array('Symfony\Component\VarDumper\Caster\StubCaster', 'cutInternals'), - 'Prophecy\Prophecy\ProphecySubjectInterface' => array('Symfony\Component\VarDumper\Caster\StubCaster', 'cutInternals'), - 'Mockery\MockInterface' => array('Symfony\Component\VarDumper\Caster\StubCaster', 'cutInternals'), - - 'PDO' => array('Symfony\Component\VarDumper\Caster\PdoCaster', 'castPdo'), - 'PDOStatement' => array('Symfony\Component\VarDumper\Caster\PdoCaster', 'castPdoStatement'), - - 'AMQPConnection' => array('Symfony\Component\VarDumper\Caster\AmqpCaster', 'castConnection'), - 'AMQPChannel' => array('Symfony\Component\VarDumper\Caster\AmqpCaster', 'castChannel'), - 'AMQPQueue' => array('Symfony\Component\VarDumper\Caster\AmqpCaster', 'castQueue'), - 'AMQPExchange' => array('Symfony\Component\VarDumper\Caster\AmqpCaster', 'castExchange'), - 'AMQPEnvelope' => array('Symfony\Component\VarDumper\Caster\AmqpCaster', 'castEnvelope'), - - 'ArrayObject' => array('Symfony\Component\VarDumper\Caster\SplCaster', 'castArrayObject'), - 'ArrayIterator' => array('Symfony\Component\VarDumper\Caster\SplCaster', 'castArrayIterator'), - 'SplDoublyLinkedList' => array('Symfony\Component\VarDumper\Caster\SplCaster', 'castDoublyLinkedList'), - 'SplFileInfo' => array('Symfony\Component\VarDumper\Caster\SplCaster', 'castFileInfo'), - 'SplFileObject' => array('Symfony\Component\VarDumper\Caster\SplCaster', 'castFileObject'), - 'SplFixedArray' => array('Symfony\Component\VarDumper\Caster\SplCaster', 'castFixedArray'), - 'SplHeap' => array('Symfony\Component\VarDumper\Caster\SplCaster', 'castHeap'), - 'SplObjectStorage' => array('Symfony\Component\VarDumper\Caster\SplCaster', 'castObjectStorage'), - 'SplPriorityQueue' => array('Symfony\Component\VarDumper\Caster\SplCaster', 'castHeap'), - 'OuterIterator' => array('Symfony\Component\VarDumper\Caster\SplCaster', 'castOuterIterator'), - - 'MongoCursorInterface' => array('Symfony\Component\VarDumper\Caster\MongoCaster', 'castCursor'), - - 'Redis' => array('Symfony\Component\VarDumper\Caster\RedisCaster', 'castRedis'), - 'RedisArray' => array('Symfony\Component\VarDumper\Caster\RedisCaster', 'castRedisArray'), - - 'DateTimeInterface' => array('Symfony\Component\VarDumper\Caster\DateCaster', 'castDateTime'), - 'DateInterval' => array('Symfony\Component\VarDumper\Caster\DateCaster', 'castInterval'), - 'DateTimeZone' => array('Symfony\Component\VarDumper\Caster\DateCaster', 'castTimeZone'), - 'DatePeriod' => array('Symfony\Component\VarDumper\Caster\DateCaster', 'castPeriod'), - - ':curl' => array('Symfony\Component\VarDumper\Caster\ResourceCaster', 'castCurl'), - ':dba' => array('Symfony\Component\VarDumper\Caster\ResourceCaster', 'castDba'), - ':dba persistent' => array('Symfony\Component\VarDumper\Caster\ResourceCaster', 'castDba'), - ':gd' => array('Symfony\Component\VarDumper\Caster\ResourceCaster', 'castGd'), - ':mysql link' => array('Symfony\Component\VarDumper\Caster\ResourceCaster', 'castMysqlLink'), - ':pgsql large object' => array('Symfony\Component\VarDumper\Caster\PgSqlCaster', 'castLargeObject'), - ':pgsql link' => array('Symfony\Component\VarDumper\Caster\PgSqlCaster', 'castLink'), - ':pgsql link persistent' => array('Symfony\Component\VarDumper\Caster\PgSqlCaster', 'castLink'), - ':pgsql result' => array('Symfony\Component\VarDumper\Caster\PgSqlCaster', 'castResult'), - ':process' => array('Symfony\Component\VarDumper\Caster\ResourceCaster', 'castProcess'), - ':stream' => array('Symfony\Component\VarDumper\Caster\ResourceCaster', 'castStream'), - ':persistent stream' => array('Symfony\Component\VarDumper\Caster\ResourceCaster', 'castStream'), - ':stream-context' => array('Symfony\Component\VarDumper\Caster\ResourceCaster', 'castStreamContext'), - ':xml' => array('Symfony\Component\VarDumper\Caster\XmlResourceCaster', 'castXml'), - ); + public static $defaultCasters = [ + '__PHP_Incomplete_Class' => ['Symfony\Component\VarDumper\Caster\Caster', 'castPhpIncompleteClass'], + + 'Symfony\Component\VarDumper\Caster\CutStub' => ['Symfony\Component\VarDumper\Caster\StubCaster', 'castStub'], + 'Symfony\Component\VarDumper\Caster\CutArrayStub' => ['Symfony\Component\VarDumper\Caster\StubCaster', 'castCutArray'], + 'Symfony\Component\VarDumper\Caster\ConstStub' => ['Symfony\Component\VarDumper\Caster\StubCaster', 'castStub'], + 'Symfony\Component\VarDumper\Caster\EnumStub' => ['Symfony\Component\VarDumper\Caster\StubCaster', 'castEnum'], + + 'Closure' => ['Symfony\Component\VarDumper\Caster\ReflectionCaster', 'castClosure'], + 'Generator' => ['Symfony\Component\VarDumper\Caster\ReflectionCaster', 'castGenerator'], + 'ReflectionType' => ['Symfony\Component\VarDumper\Caster\ReflectionCaster', 'castType'], + 'ReflectionGenerator' => ['Symfony\Component\VarDumper\Caster\ReflectionCaster', 'castReflectionGenerator'], + 'ReflectionClass' => ['Symfony\Component\VarDumper\Caster\ReflectionCaster', 'castClass'], + 'ReflectionFunctionAbstract' => ['Symfony\Component\VarDumper\Caster\ReflectionCaster', 'castFunctionAbstract'], + 'ReflectionMethod' => ['Symfony\Component\VarDumper\Caster\ReflectionCaster', 'castMethod'], + 'ReflectionParameter' => ['Symfony\Component\VarDumper\Caster\ReflectionCaster', 'castParameter'], + 'ReflectionProperty' => ['Symfony\Component\VarDumper\Caster\ReflectionCaster', 'castProperty'], + 'ReflectionExtension' => ['Symfony\Component\VarDumper\Caster\ReflectionCaster', 'castExtension'], + 'ReflectionZendExtension' => ['Symfony\Component\VarDumper\Caster\ReflectionCaster', 'castZendExtension'], + + 'Doctrine\Common\Persistence\ObjectManager' => ['Symfony\Component\VarDumper\Caster\StubCaster', 'cutInternals'], + 'Doctrine\Common\Proxy\Proxy' => ['Symfony\Component\VarDumper\Caster\DoctrineCaster', 'castCommonProxy'], + 'Doctrine\ORM\Proxy\Proxy' => ['Symfony\Component\VarDumper\Caster\DoctrineCaster', 'castOrmProxy'], + 'Doctrine\ORM\PersistentCollection' => ['Symfony\Component\VarDumper\Caster\DoctrineCaster', 'castPersistentCollection'], + + 'DOMException' => ['Symfony\Component\VarDumper\Caster\DOMCaster', 'castException'], + 'DOMStringList' => ['Symfony\Component\VarDumper\Caster\DOMCaster', 'castLength'], + 'DOMNameList' => ['Symfony\Component\VarDumper\Caster\DOMCaster', 'castLength'], + 'DOMImplementation' => ['Symfony\Component\VarDumper\Caster\DOMCaster', 'castImplementation'], + 'DOMImplementationList' => ['Symfony\Component\VarDumper\Caster\DOMCaster', 'castLength'], + 'DOMNode' => ['Symfony\Component\VarDumper\Caster\DOMCaster', 'castNode'], + 'DOMNameSpaceNode' => ['Symfony\Component\VarDumper\Caster\DOMCaster', 'castNameSpaceNode'], + 'DOMDocument' => ['Symfony\Component\VarDumper\Caster\DOMCaster', 'castDocument'], + 'DOMNodeList' => ['Symfony\Component\VarDumper\Caster\DOMCaster', 'castLength'], + 'DOMNamedNodeMap' => ['Symfony\Component\VarDumper\Caster\DOMCaster', 'castLength'], + 'DOMCharacterData' => ['Symfony\Component\VarDumper\Caster\DOMCaster', 'castCharacterData'], + 'DOMAttr' => ['Symfony\Component\VarDumper\Caster\DOMCaster', 'castAttr'], + 'DOMElement' => ['Symfony\Component\VarDumper\Caster\DOMCaster', 'castElement'], + 'DOMText' => ['Symfony\Component\VarDumper\Caster\DOMCaster', 'castText'], + 'DOMTypeinfo' => ['Symfony\Component\VarDumper\Caster\DOMCaster', 'castTypeinfo'], + 'DOMDomError' => ['Symfony\Component\VarDumper\Caster\DOMCaster', 'castDomError'], + 'DOMLocator' => ['Symfony\Component\VarDumper\Caster\DOMCaster', 'castLocator'], + 'DOMDocumentType' => ['Symfony\Component\VarDumper\Caster\DOMCaster', 'castDocumentType'], + 'DOMNotation' => ['Symfony\Component\VarDumper\Caster\DOMCaster', 'castNotation'], + 'DOMEntity' => ['Symfony\Component\VarDumper\Caster\DOMCaster', 'castEntity'], + 'DOMProcessingInstruction' => ['Symfony\Component\VarDumper\Caster\DOMCaster', 'castProcessingInstruction'], + 'DOMXPath' => ['Symfony\Component\VarDumper\Caster\DOMCaster', 'castXPath'], + + 'XmlReader' => ['Symfony\Component\VarDumper\Caster\XmlReaderCaster', 'castXmlReader'], + + 'ErrorException' => ['Symfony\Component\VarDumper\Caster\ExceptionCaster', 'castErrorException'], + 'Exception' => ['Symfony\Component\VarDumper\Caster\ExceptionCaster', 'castException'], + 'Error' => ['Symfony\Component\VarDumper\Caster\ExceptionCaster', 'castError'], + 'Symfony\Component\DependencyInjection\ContainerInterface' => ['Symfony\Component\VarDumper\Caster\StubCaster', 'cutInternals'], + 'Symfony\Component\HttpFoundation\Request' => ['Symfony\Component\VarDumper\Caster\SymfonyCaster', 'castRequest'], + 'Symfony\Component\VarDumper\Exception\ThrowingCasterException' => ['Symfony\Component\VarDumper\Caster\ExceptionCaster', 'castThrowingCasterException'], + 'Symfony\Component\VarDumper\Caster\TraceStub' => ['Symfony\Component\VarDumper\Caster\ExceptionCaster', 'castTraceStub'], + 'Symfony\Component\VarDumper\Caster\FrameStub' => ['Symfony\Component\VarDumper\Caster\ExceptionCaster', 'castFrameStub'], + 'Symfony\Component\Debug\Exception\SilencedErrorContext' => ['Symfony\Component\VarDumper\Caster\ExceptionCaster', 'castSilencedErrorContext'], + + 'PHPUnit_Framework_MockObject_MockObject' => ['Symfony\Component\VarDumper\Caster\StubCaster', 'cutInternals'], + 'Prophecy\Prophecy\ProphecySubjectInterface' => ['Symfony\Component\VarDumper\Caster\StubCaster', 'cutInternals'], + 'Mockery\MockInterface' => ['Symfony\Component\VarDumper\Caster\StubCaster', 'cutInternals'], + + 'PDO' => ['Symfony\Component\VarDumper\Caster\PdoCaster', 'castPdo'], + 'PDOStatement' => ['Symfony\Component\VarDumper\Caster\PdoCaster', 'castPdoStatement'], + + 'AMQPConnection' => ['Symfony\Component\VarDumper\Caster\AmqpCaster', 'castConnection'], + 'AMQPChannel' => ['Symfony\Component\VarDumper\Caster\AmqpCaster', 'castChannel'], + 'AMQPQueue' => ['Symfony\Component\VarDumper\Caster\AmqpCaster', 'castQueue'], + 'AMQPExchange' => ['Symfony\Component\VarDumper\Caster\AmqpCaster', 'castExchange'], + 'AMQPEnvelope' => ['Symfony\Component\VarDumper\Caster\AmqpCaster', 'castEnvelope'], + + 'ArrayObject' => ['Symfony\Component\VarDumper\Caster\SplCaster', 'castArrayObject'], + 'ArrayIterator' => ['Symfony\Component\VarDumper\Caster\SplCaster', 'castArrayIterator'], + 'SplDoublyLinkedList' => ['Symfony\Component\VarDumper\Caster\SplCaster', 'castDoublyLinkedList'], + 'SplFileInfo' => ['Symfony\Component\VarDumper\Caster\SplCaster', 'castFileInfo'], + 'SplFileObject' => ['Symfony\Component\VarDumper\Caster\SplCaster', 'castFileObject'], + 'SplFixedArray' => ['Symfony\Component\VarDumper\Caster\SplCaster', 'castFixedArray'], + 'SplHeap' => ['Symfony\Component\VarDumper\Caster\SplCaster', 'castHeap'], + 'SplObjectStorage' => ['Symfony\Component\VarDumper\Caster\SplCaster', 'castObjectStorage'], + 'SplPriorityQueue' => ['Symfony\Component\VarDumper\Caster\SplCaster', 'castHeap'], + 'OuterIterator' => ['Symfony\Component\VarDumper\Caster\SplCaster', 'castOuterIterator'], + + 'MongoCursorInterface' => ['Symfony\Component\VarDumper\Caster\MongoCaster', 'castCursor'], + + 'Redis' => ['Symfony\Component\VarDumper\Caster\RedisCaster', 'castRedis'], + 'RedisArray' => ['Symfony\Component\VarDumper\Caster\RedisCaster', 'castRedisArray'], + + 'DateTimeInterface' => ['Symfony\Component\VarDumper\Caster\DateCaster', 'castDateTime'], + 'DateInterval' => ['Symfony\Component\VarDumper\Caster\DateCaster', 'castInterval'], + 'DateTimeZone' => ['Symfony\Component\VarDumper\Caster\DateCaster', 'castTimeZone'], + 'DatePeriod' => ['Symfony\Component\VarDumper\Caster\DateCaster', 'castPeriod'], + + ':curl' => ['Symfony\Component\VarDumper\Caster\ResourceCaster', 'castCurl'], + ':dba' => ['Symfony\Component\VarDumper\Caster\ResourceCaster', 'castDba'], + ':dba persistent' => ['Symfony\Component\VarDumper\Caster\ResourceCaster', 'castDba'], + ':gd' => ['Symfony\Component\VarDumper\Caster\ResourceCaster', 'castGd'], + ':mysql link' => ['Symfony\Component\VarDumper\Caster\ResourceCaster', 'castMysqlLink'], + ':pgsql large object' => ['Symfony\Component\VarDumper\Caster\PgSqlCaster', 'castLargeObject'], + ':pgsql link' => ['Symfony\Component\VarDumper\Caster\PgSqlCaster', 'castLink'], + ':pgsql link persistent' => ['Symfony\Component\VarDumper\Caster\PgSqlCaster', 'castLink'], + ':pgsql result' => ['Symfony\Component\VarDumper\Caster\PgSqlCaster', 'castResult'], + ':process' => ['Symfony\Component\VarDumper\Caster\ResourceCaster', 'castProcess'], + ':stream' => ['Symfony\Component\VarDumper\Caster\ResourceCaster', 'castStream'], + ':persistent stream' => ['Symfony\Component\VarDumper\Caster\ResourceCaster', 'castStream'], + ':stream-context' => ['Symfony\Component\VarDumper\Caster\ResourceCaster', 'castStreamContext'], + ':xml' => ['Symfony\Component\VarDumper\Caster\XmlResourceCaster', 'castXml'], + ]; protected $maxItems = 2500; protected $maxString = -1; protected $minDepth = 1; protected $useExt; - private $casters = array(); + private $casters = []; private $prevErrorHandler; - private $classInfo = array(); + private $classInfo = []; private $filter = 0; /** @@ -213,7 +213,7 @@ public function setMinDepth($minDepth) */ public function cloneVar($var, $filter = 0) { - $this->prevErrorHandler = set_error_handler(function ($type, $msg, $file, $line, $context = array()) { + $this->prevErrorHandler = set_error_handler(function ($type, $msg, $file, $line, $context = []) { if (E_RECOVERABLE_ERROR === $type || E_USER_ERROR === $type) { // Cloner never dies throw new \ErrorException($msg, 0, $type, $file, $line); @@ -270,7 +270,7 @@ protected function castObject(Stub $stub, $isNested) list($i, $parents, $hasDebugInfo) = $this->classInfo[$class]; } else { $i = 2; - $parents = array(strtolower($class)); + $parents = [strtolower($class)]; $hasDebugInfo = method_exists($class, '__debugInfo'); foreach (class_parents($class) as $p) { @@ -283,7 +283,7 @@ protected function castObject(Stub $stub, $isNested) } $parents[] = '*'; - $this->classInfo[$class] = array($i, $parents, $hasDebugInfo); + $this->classInfo[$class] = [$i, $parents, $hasDebugInfo]; } $a = Caster::castObject($obj, $class, $hasDebugInfo); @@ -297,7 +297,7 @@ protected function castObject(Stub $stub, $isNested) } } } catch (\Exception $e) { - $a = array((Stub::TYPE_OBJECT === $stub->type ? Caster::PREFIX_VIRTUAL : '').'⚠' => new ThrowingCasterException($e)) + $a; + $a = [(Stub::TYPE_OBJECT === $stub->type ? Caster::PREFIX_VIRTUAL : '').'⚠' => new ThrowingCasterException($e)] + $a; } return $a; @@ -313,7 +313,7 @@ protected function castObject(Stub $stub, $isNested) */ protected function castResource(Stub $stub, $isNested) { - $a = array(); + $a = []; $res = $stub->value; $type = $stub->class; @@ -324,7 +324,7 @@ protected function castResource(Stub $stub, $isNested) } } } catch (\Exception $e) { - $a = array((Stub::TYPE_OBJECT === $stub->type ? Caster::PREFIX_VIRTUAL : '').'⚠' => new ThrowingCasterException($e)) + $a; + $a = [(Stub::TYPE_OBJECT === $stub->type ? Caster::PREFIX_VIRTUAL : '').'⚠' => new ThrowingCasterException($e)] + $a; } return $a; diff --git a/vendor/symfony/var-dumper/Cloner/Cursor.php b/vendor/symfony/var-dumper/Cloner/Cursor.php index 888f4f2be33b96e8b0b9ac2e87035a53611b8e05..5b0542f6c20cefdad75c7a93f483bce546a85819 100644 --- a/vendor/symfony/var-dumper/Cloner/Cursor.php +++ b/vendor/symfony/var-dumper/Cloner/Cursor.php @@ -38,6 +38,6 @@ class Cursor public $hashLength = 0; public $hashCut = 0; public $stop = false; - public $attr = array(); + public $attr = []; public $skipChildren = false; } diff --git a/vendor/symfony/var-dumper/Cloner/Data.php b/vendor/symfony/var-dumper/Cloner/Data.php index f9b7eab92bb24771f167ce91f5841145276825d8..bb5ee94d8b43b096c75564ba28c96332d0f7edde 100644 --- a/vendor/symfony/var-dumper/Cloner/Data.php +++ b/vendor/symfony/var-dumper/Cloner/Data.php @@ -63,7 +63,7 @@ public function getType() /** * @param bool $recursive Whether values should be resolved recursively or not * - * @return string|int|float|bool|array|null|Data[] A native representation of the original value + * @return string|int|float|bool|array|Data[]|null A native representation of the original value */ public function getValue($recursive = false) { @@ -79,7 +79,7 @@ public function getValue($recursive = false) return $item->value; } - $children = $item->position ? $this->data[$item->position] : array(); + $children = $item->position ? $this->data[$item->position] : []; foreach ($children as $k => $v) { if ($recursive && !($v = $this->getStub($v)) instanceof Stub) { @@ -125,7 +125,7 @@ public function __get($key) if (null !== $data = $this->seek($key)) { $item = $this->getStub($data->data[$data->position][$data->key]); - return $item instanceof Stub || array() === $item ? $data : $item; + return $item instanceof Stub || [] === $item ? $data : $item; } } @@ -239,7 +239,7 @@ public function seek($key) if (!($item = $this->getStub($item)) instanceof Stub || !$item->position) { return; } - $keys = array($key); + $keys = [$key]; switch ($item->type) { case Stub::TYPE_OBJECT: @@ -259,7 +259,7 @@ public function seek($key) $children = $this->data[$item->position]; foreach ($keys as $key) { - if (isset($children[$key]) || array_key_exists($key, $children)) { + if (isset($children[$key]) || \array_key_exists($key, $children)) { $data = clone $this; $data->key = $key; $data->position = $item->position; @@ -275,7 +275,7 @@ public function seek($key) */ public function dump(DumperInterface $dumper) { - $refs = array(0); + $refs = [0]; $this->dumpItem($dumper, new Cursor(), $refs, $this->data[$this->position][$this->key]); } @@ -295,7 +295,7 @@ private function dumpItem($dumper, $cursor, &$refs, $item) $firstSeen = true; if (!$item instanceof Stub) { - $cursor->attr = array(); + $cursor->attr = []; $type = \gettype($item); if ($item && 'array' === $type) { $item = $this->getStub($item); @@ -336,10 +336,10 @@ private function dumpItem($dumper, $cursor, &$refs, $item) if ($cut >= 0) { $cut += \count($children); } - $children = array(); + $children = []; } } else { - $children = array(); + $children = []; } switch ($item->type) { case Stub::TYPE_STRING: diff --git a/vendor/symfony/var-dumper/Cloner/Stub.php b/vendor/symfony/var-dumper/Cloner/Stub.php index 3b8e60d90ee6efd75fbc1e150db008ab3f33afd6..27dd3ef32c4df1111fe04bc5f73874587130342e 100644 --- a/vendor/symfony/var-dumper/Cloner/Stub.php +++ b/vendor/symfony/var-dumper/Cloner/Stub.php @@ -16,7 +16,7 @@ * * @author Nicolas Grekas <p@tchwork.com> */ -class Stub implements \Serializable +class Stub { const TYPE_REF = 1; const TYPE_STRING = 2; @@ -37,21 +37,31 @@ class Stub implements \Serializable public $handle = 0; public $refCount = 0; public $position = 0; - public $attr = array(); + public $attr = []; - /** - * @internal - */ - public function serialize() - { - return \serialize(array($this->class, $this->position, $this->cut, $this->type, $this->value, $this->handle, $this->refCount, $this->attr)); - } + private static $defaultProperties = []; /** * @internal */ - public function unserialize($serialized) + public function __sleep() { - list($this->class, $this->position, $this->cut, $this->type, $this->value, $this->handle, $this->refCount, $this->attr) = \unserialize($serialized); + $properties = []; + + if (!isset(self::$defaultProperties[$c = \get_class($this)])) { + self::$defaultProperties[$c] = get_class_vars($c); + + foreach ((new \ReflectionClass($c))->getStaticProperties() as $k => $v) { + unset(self::$defaultProperties[$c][$k]); + } + } + + foreach (self::$defaultProperties[$c] as $k => $v) { + if ($this->$k !== $v) { + $properties[] = $k; + } + } + + return $properties; } } diff --git a/vendor/symfony/var-dumper/Cloner/VarCloner.php b/vendor/symfony/var-dumper/Cloner/VarCloner.php index 7a3816cf604e31e79764885b07e408ce26072f28..f418aa089488dad392b3e5ef61ce2832d65f59c1 100644 --- a/vendor/symfony/var-dumper/Cloner/VarCloner.php +++ b/vendor/symfony/var-dumper/Cloner/VarCloner.php @@ -19,7 +19,7 @@ class VarCloner extends AbstractCloner private static $gid; private static $hashMask = 0; private static $hashOffset = 0; - private static $arrayCache = array(); + private static $arrayCache = []; /** * {@inheritdoc} @@ -29,19 +29,20 @@ protected function doClone($var) $len = 1; // Length of $queue $pos = 0; // Number of cloned items past the minimum depth $refsCounter = 0; // Hard references counter - $queue = array(array($var)); // This breadth-first queue is the return value - $indexedArrays = array(); // Map of queue indexes that hold numerically indexed arrays - $hardRefs = array(); // Map of original zval hashes to stub objects - $objRefs = array(); // Map of original object handles to their stub object couterpart - $resRefs = array(); // Map of original resource handles to their stub object couterpart - $values = array(); // Map of stub objects' hashes to original values + $queue = [[$var]]; // This breadth-first queue is the return value + $indexedArrays = []; // Map of queue indexes that hold numerically indexed arrays + $hardRefs = []; // Map of original zval hashes to stub objects + $objRefs = []; // Map of original object handles to their stub object counterpart + $objects = []; // Keep a ref to objects to ensure their handle cannot be reused while cloning + $resRefs = []; // Map of original resource handles to their stub object counterpart + $values = []; // Map of stub objects' hashes to original values $maxItems = $this->maxItems; $maxString = $this->maxString; $minDepth = $this->minDepth; $currentDepth = 0; // Current tree depth $currentDepthFinalIndex = 0; // Final $queue index for current tree depth $minimumDepthReached = 0 === $minDepth; // Becomes true when minimum tree depth has been reached - $cookie = (object) array(); // Unique object used to detect hard references + $cookie = (object) []; // Unique object used to detect hard references $a = null; // Array cast for nested structures $stub = null; // Stub capturing the main properties of an original item value // or null if the original value is used directly @@ -74,7 +75,7 @@ protected function doClone($var) if (\is_int($k)) { continue; } - foreach (array($k => true) as $gk => $gv) { + foreach ([$k => true] as $gk => $gv) { } if ($gk !== $k) { $fromObjCast = true; @@ -163,7 +164,7 @@ protected function doClone($var) // Happens with copies of $GLOBALS if (isset($v[$gid])) { unset($v[$gid]); - $a = array(); + $a = []; foreach ($v as $gk => &$gv) { $a[$gk] = &$gv; } @@ -200,6 +201,7 @@ protected function doClone($var) } if (empty($objRefs[$h])) { $objRefs[$h] = $stub; + $objects[] = $v; } else { $stub = $objRefs[$h]; ++$stub->refCount; @@ -254,12 +256,12 @@ protected function doClone($var) if ($arrayStub === $stub) { if ($arrayStub->cut) { - $stub = array($arrayStub->cut, $arrayStub->class => $arrayStub->position); + $stub = [$arrayStub->cut, $arrayStub->class => $arrayStub->position]; $arrayStub->cut = 0; } elseif (isset(self::$arrayCache[$arrayStub->class][$arrayStub->position])) { $stub = self::$arrayCache[$arrayStub->class][$arrayStub->position]; } else { - self::$arrayCache[$arrayStub->class][$arrayStub->position] = $stub = array($arrayStub->class => $arrayStub->position); + self::$arrayCache[$arrayStub->class][$arrayStub->position] = $stub = [$arrayStub->class => $arrayStub->position]; } } @@ -273,10 +275,10 @@ protected function doClone($var) if ($fromObjCast) { $fromObjCast = false; $refs = $vals; - $vals = array(); + $vals = []; $j = -1; foreach ($queue[$i] as $k => $v) { - foreach (array($k => true) as $gk => $gv) { + foreach ([$k => true] as $gk => $gv) { } if ($gk !== $k) { $vals = (object) $vals; @@ -300,7 +302,7 @@ protected function doClone($var) private static function initHashMask() { - $obj = (object) array(); + $obj = (object) []; self::$hashOffset = 16 - PHP_INT_SIZE; self::$hashMask = -1; @@ -308,7 +310,7 @@ private static function initHashMask() self::$hashOffset += 16; } else { // check if we are nested in an output buffering handler to prevent a fatal error with ob_start() below - $obFuncs = array('ob_clean', 'ob_end_clean', 'ob_flush', 'ob_end_flush', 'ob_get_contents', 'ob_get_flush'); + $obFuncs = ['ob_clean', 'ob_end_clean', 'ob_flush', 'ob_end_flush', 'ob_get_contents', 'ob_get_flush']; foreach (debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS) as $frame) { if (isset($frame['function'][0]) && !isset($frame['class']) && 'o' === $frame['function'][0] && \in_array($frame['function'], $obFuncs)) { $frame['line'] = 0; diff --git a/vendor/symfony/var-dumper/Dumper/AbstractDumper.php b/vendor/symfony/var-dumper/Dumper/AbstractDumper.php index 228f8f2e543318845364a69f4c421d1d3dc0c701..30cd1a1b193d1479d06f597038530a0c1effd66c 100644 --- a/vendor/symfony/var-dumper/Dumper/AbstractDumper.php +++ b/vendor/symfony/var-dumper/Dumper/AbstractDumper.php @@ -39,7 +39,7 @@ abstract class AbstractDumper implements DataDumperInterface, DumperInterface /** * @param callable|resource|string|null $output A line dumper callable, an opened stream or an output path, defaults to static::$defaultOutput - * @param string $charset The default character encoding to use for non-UTF8 strings + * @param string|null $charset The default character encoding to use for non-UTF8 strings * @param int $flags A bit field of static::DUMP_* constants to fine tune dumps representation */ public function __construct($output = null, $charset = null, $flags = 0) @@ -73,7 +73,7 @@ public function setOutput($output) $output = fopen($output, 'wb'); } $this->outputStream = $output; - $this->lineDumper = array($this, 'echoLine'); + $this->lineDumper = [$this, 'echoLine']; } return $prev; diff --git a/vendor/symfony/var-dumper/Dumper/CliDumper.php b/vendor/symfony/var-dumper/Dumper/CliDumper.php index 419cfeb4962b8fb8beaafc5ea64b9909347d5f97..2bd347d96a53e0ab4b40bbfaa9d1225e0b4bf96d 100644 --- a/vendor/symfony/var-dumper/Dumper/CliDumper.php +++ b/vendor/symfony/var-dumper/Dumper/CliDumper.php @@ -26,7 +26,7 @@ class CliDumper extends AbstractDumper protected $colors; protected $maxStringWidth = 0; - protected $styles = array( + protected $styles = [ // See http://en.wikipedia.org/wiki/ANSI_escape_code#graphics 'default' => '38;5;208', 'num' => '1;38;5;38', @@ -40,17 +40,17 @@ class CliDumper extends AbstractDumper 'meta' => '38;5;170', 'key' => '38;5;113', 'index' => '38;5;38', - ); + ]; protected static $controlCharsRx = '/[\x00-\x1F\x7F]+/'; - protected static $controlCharsMap = array( + protected static $controlCharsMap = [ "\t" => '\t', "\n" => '\n', "\v" => '\v', "\f" => '\f', "\r" => '\r', "\033" => '\e', - ); + ]; protected $collapseNextHash = false; protected $expandNextHash = false; @@ -64,7 +64,7 @@ public function __construct($output = null, $charset = null, $flags = 0) if ('\\' === \DIRECTORY_SEPARATOR && !$this->isWindowsTrueColor()) { // Use only the base 16 xterm colors when using ANSICON or standard Windows 10 CLI - $this->setStyles(array( + $this->setStyles([ 'default' => '31', 'num' => '1;34', 'const' => '1;31', @@ -74,7 +74,7 @@ public function __construct($output = null, $charset = null, $flags = 0) 'meta' => '35', 'key' => '32', 'index' => '34', - )); + ]); } } @@ -152,7 +152,7 @@ public function dumpScalar(Cursor $cursor, $type, $value) break; default: - $attr += array('value' => $this->utf8Encode($value)); + $attr += ['value' => $this->utf8Encode($value)]; $value = $this->utf8Encode($type); break; } @@ -177,10 +177,10 @@ public function dumpString(Cursor $cursor, $str, $bin, $cut) $this->line .= '""'; $this->endValue($cursor); } else { - $attr += array( + $attr += [ 'length' => 0 <= $cut ? mb_strlen($str, 'UTF-8') + $cut : 0, 'binary' => $bin, - ); + ]; $str = explode("\n", $str); if (isset($str[1]) && !isset($str[2]) && !isset($str[1][0])) { unset($str[1]); @@ -272,9 +272,9 @@ public function enterHash(Cursor $cursor, $type, $class, $hasChild) } if ($cursor->softRefCount || 0 < $cursor->softRefHandle) { - $prefix .= $this->style('ref', (Cursor::HASH_RESOURCE === $type ? '@' : '#').(0 < $cursor->softRefHandle ? $cursor->softRefHandle : $cursor->softRefTo), array('count' => $cursor->softRefCount)); + $prefix .= $this->style('ref', (Cursor::HASH_RESOURCE === $type ? '@' : '#').(0 < $cursor->softRefHandle ? $cursor->softRefHandle : $cursor->softRefTo), ['count' => $cursor->softRefCount]); } elseif ($cursor->hardRefTo && !$cursor->refIndex && $class) { - $prefix .= $this->style('ref', '&'.$cursor->hardRefTo, array('count' => $cursor->hardRefCount)); + $prefix .= $this->style('ref', '&'.$cursor->hardRefTo, ['count' => $cursor->hardRefCount]); } elseif (!$hasChild && Cursor::HASH_RESOURCE === $type) { $prefix = substr($prefix, 0, -1); } @@ -327,7 +327,7 @@ protected function dumpKey(Cursor $cursor) if ($cursor->hashKeyIsBinary) { $key = $this->utf8Encode($key); } - $attr = array('binary' => $cursor->hashKeyIsBinary); + $attr = ['binary' => $cursor->hashKeyIsBinary]; $bin = $cursor->hashKeyIsBinary ? 'b' : ''; $style = 'key'; switch ($cursor->hashType) { @@ -364,7 +364,7 @@ protected function dumpKey(Cursor $cursor) $style = 'meta'; if (isset($key[0][1])) { parse_str(substr($key[0], 1), $attr); - $attr += array('binary' => $cursor->hashKeyIsBinary); + $attr += ['binary' => $cursor->hashKeyIsBinary]; } break; case '*': @@ -389,13 +389,13 @@ protected function dumpKey(Cursor $cursor) $this->line .= $bin.$this->style($style, $key[1], $attr).(isset($attr['separator']) ? $attr['separator'] : ': '); } else { // This case should not happen - $this->line .= '-'.$bin.'"'.$this->style('private', $key, array('class' => '')).'": '; + $this->line .= '-'.$bin.'"'.$this->style('private', $key, ['class' => '']).'": '; } break; } if ($cursor->hardRefTo) { - $this->line .= $this->style('ref', '&'.($cursor->hardRefCount ? $cursor->hardRefTo : ''), array('count' => $cursor->hardRefCount)).' '; + $this->line .= $this->style('ref', '&'.($cursor->hardRefCount ? $cursor->hardRefTo : ''), ['count' => $cursor->hardRefCount]).' '; } } } @@ -409,7 +409,7 @@ protected function dumpKey(Cursor $cursor) * * @return string The value with style decoration */ - protected function style($style, $value, $attr = array()) + protected function style($style, $value, $attr = []) { if (null === $this->colors) { $this->colors = $this->supportsColors(); @@ -495,7 +495,7 @@ protected function supportsColors() } } - $h = stream_get_meta_data($this->outputStream) + array('wrapper_type' => null); + $h = stream_get_meta_data($this->outputStream) + ['wrapper_type' => null]; $h = 'Output' === $h['stream_type'] && 'PHP' === $h['wrapper_type'] ? fopen('php://stdout', 'wb') : $this->outputStream; return static::$defaultColors = $this->hasColorSupport($h); diff --git a/vendor/symfony/var-dumper/Dumper/HtmlDumper.php b/vendor/symfony/var-dumper/Dumper/HtmlDumper.php index d498e12f838fe54213cc871e14d31fcf5ea0f79a..37d50a884df0d3e41a738816586b1afa13c509a5 100644 --- a/vendor/symfony/var-dumper/Dumper/HtmlDumper.php +++ b/vendor/symfony/var-dumper/Dumper/HtmlDumper.php @@ -30,7 +30,7 @@ class HtmlDumper extends CliDumper protected $colors = true; protected $headerIsDumped = false; protected $lastDepth = -1; - protected $styles = array( + protected $styles = [ 'default' => 'background-color:#18171B; color:#FF8400; line-height:1.2em; font:12px Menlo, Monaco, Consolas, monospace; word-wrap: break-word; white-space: pre-wrap; position:relative; z-index:99999; word-break: break-all', 'num' => 'font-weight:bold; color:#1299DA', 'const' => 'font-weight:bold', @@ -44,14 +44,14 @@ class HtmlDumper extends CliDumper 'key' => 'color:#56DB3A', 'index' => 'color:#1299DA', 'ellipsis' => 'color:#FF8400', - ); + ]; - private $displayOptions = array( + private $displayOptions = [ 'maxDepth' => 1, 'maxStringLength' => 160, 'fileLinkFormat' => null, - ); - private $extraDisplayOptions = array(); + ]; + private $extraDisplayOptions = []; /** * {@inheritdoc} @@ -108,7 +108,7 @@ public function setDumpBoundaries($prefix, $suffix) /** * {@inheritdoc} */ - public function dump(Data $data, $output = null, array $extraDisplayOptions = array()) + public function dump(Data $data, $output = null, array $extraDisplayOptions = []) { $this->extraDisplayOptions = $extraDisplayOptions; $result = parent::dump($data, $output); @@ -483,14 +483,10 @@ function showCurrent(state) <input type="text" class="sf-dump-search-input"> <span class="sf-dump-search-count">0 of 0<\/span> <button type="button" class="sf-dump-search-input-previous" tabindex="-1"> - <svg viewBox="0 0 1792 1792" xmlns="http://www.w3.org/2000/svg"> - <path d="M1683 1331l-166 165q-19 19-45 19t-45-19l-531-531-531 531q-19 19-45 19t-45-19l-166-165q-19-19-19-45.5t19-45.5l742-741q19-19 45-19t45 19l742 741q19 19 19 45.5t-19 45.5z"\/> - <\/svg> + <svg viewBox="0 0 1792 1792" xmlns="http://www.w3.org/2000/svg"><path d="M1683 1331l-166 165q-19 19-45 19t-45-19L896 965l-531 531q-19 19-45 19t-45-19l-166-165q-19-19-19-45.5t19-45.5l742-741q19-19 45-19t45 19l742 741q19 19 19 45.5t-19 45.5z"\/><\/svg> <\/button> <button type="button" class="sf-dump-search-input-next" tabindex="-1"> - <svg viewBox="0 0 1792 1792" xmlns="http://www.w3.org/2000/svg"> - <path d="M1683 808l-742 741q-19 19-45 19t-45-19l-742-741q-19-19-19-45.5t19-45.5l166-165q19-19 45-19t45 19l531 531 531-531q19-19 45-19t45 19l166 165q19 19 19 45.5t-19 45.5z"\/> - <\/svg> + <svg viewBox="0 0 1792 1792" xmlns="http://www.w3.org/2000/svg"><path d="M1683 808l-742 741q-19 19-45 19t-45-19L109 808q-19-19-19-45.5t19-45.5l166-165q19-19 45-19t45 19l531 531 531-531q19-19 45-19t45 19l166 165q19 19 19 45.5t-19 45.5z"\/><\/svg> <\/button> '; root.insertBefore(search, root.firstChild); @@ -785,7 +781,7 @@ public function leaveHash(Cursor $cursor, $type, $class, $hasChild, $cut) /** * {@inheritdoc} */ - protected function style($style, $value, $attr = array()) + protected function style($style, $value, $attr = []) { if ('' === $value) { return ''; @@ -873,7 +869,7 @@ protected function dumpLine($depth, $endOfValue = false) } if (-1 === $depth) { - $args = array('"'.$this->dumpId.'"'); + $args = ['"'.$this->dumpId.'"']; if ($this->extraDisplayOptions) { $args[] = json_encode($this->extraDisplayOptions, JSON_FORCE_OBJECT); } @@ -895,7 +891,7 @@ private function getSourceLink($file, $line) $options = $this->extraDisplayOptions + $this->displayOptions; if ($fmt = $options['fileLinkFormat']) { - return \is_string($fmt) ? strtr($fmt, array('%f' => $file, '%l' => $line)) : $fmt->format($file, $line); + return \is_string($fmt) ? strtr($fmt, ['%f' => $file, '%l' => $line]) : $fmt->format($file, $line); } return false; diff --git a/vendor/symfony/var-dumper/LICENSE b/vendor/symfony/var-dumper/LICENSE index 15fc1c88d330b343a1438896ce9959bf858e4ae0..cf8b3ebe8714582efa61def2db2f6ba7a084e4aa 100644 --- a/vendor/symfony/var-dumper/LICENSE +++ b/vendor/symfony/var-dumper/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2014-2018 Fabien Potencier +Copyright (c) 2014-2019 Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/vendor/symfony/var-dumper/README.md b/vendor/symfony/var-dumper/README.md index 3b5d55f5f5bfd7f88d57bd2570f162dbb6190ba6..339f73eba30525a4acea14c4420da7115465419a 100644 --- a/vendor/symfony/var-dumper/README.md +++ b/vendor/symfony/var-dumper/README.md @@ -2,8 +2,8 @@ VarDumper Component =================== The VarDumper component provides mechanisms for walking through any arbitrary -PHP variable. Built on top, it provides a better `dump()` function that you -can use instead of `var_dump`. +PHP variable. It provides a better `dump()` function that you can use instead +of `var_dump`. Resources --------- diff --git a/vendor/symfony/var-dumper/Resources/functions/dump.php b/vendor/symfony/var-dumper/Resources/functions/dump.php index 95d8bb59808dda0833a94b71f91dca2932c7f0f3..0e0e4d043521816b22871997b72ce5d9f8edb13f 100644 --- a/vendor/symfony/var-dumper/Resources/functions/dump.php +++ b/vendor/symfony/var-dumper/Resources/functions/dump.php @@ -17,8 +17,8 @@ */ function dump($var) { - foreach (func_get_args() as $var) { - VarDumper::dump($var); + foreach (func_get_args() as $v) { + VarDumper::dump($v); } if (1 < func_num_args()) { diff --git a/vendor/symfony/var-dumper/Tests/Caster/CasterTest.php b/vendor/symfony/var-dumper/Tests/Caster/CasterTest.php index 105d5638ee1bc08181f5e8dddb0b4530a9e19f92..728697b413c4d05c41b7ec9a8e2877743218bc31 100644 --- a/vendor/symfony/var-dumper/Tests/Caster/CasterTest.php +++ b/vendor/symfony/var-dumper/Tests/Caster/CasterTest.php @@ -22,7 +22,7 @@ class CasterTest extends TestCase { use VarDumperTestTrait; - private $referenceArray = array( + private $referenceArray = [ 'null' => null, 'empty' => false, 'public' => 'pub', @@ -30,7 +30,7 @@ class CasterTest extends TestCase "\0+\0dynamic" => 'dyn', "\0*\0protected" => 'prot', "\0Foo\0private" => 'priv', - ); + ]; /** * @dataProvider provideFilter @@ -48,107 +48,107 @@ public function testFilter($filter, $expectedDiff, $listedProperties = null) public function provideFilter() { - return array( - array( + return [ + [ 0, - array(), - ), - array( + [], + ], + [ Caster::EXCLUDE_PUBLIC, - array( + [ 'null' => null, 'empty' => false, 'public' => 'pub', - ), - ), - array( + ], + ], + [ Caster::EXCLUDE_NULL, - array( + [ 'null' => null, - ), - ), - array( + ], + ], + [ Caster::EXCLUDE_EMPTY, - array( + [ 'null' => null, 'empty' => false, - ), - ), - array( + ], + ], + [ Caster::EXCLUDE_VIRTUAL, - array( + [ "\0~\0virtual" => 'virt', - ), - ), - array( + ], + ], + [ Caster::EXCLUDE_DYNAMIC, - array( + [ "\0+\0dynamic" => 'dyn', - ), - ), - array( + ], + ], + [ Caster::EXCLUDE_PROTECTED, - array( + [ "\0*\0protected" => 'prot', - ), - ), - array( + ], + ], + [ Caster::EXCLUDE_PRIVATE, - array( + [ "\0Foo\0private" => 'priv', - ), - ), - array( + ], + ], + [ Caster::EXCLUDE_VERBOSE, - array( + [ 'public' => 'pub', "\0*\0protected" => 'prot', - ), - array('public', "\0*\0protected"), - ), - array( + ], + ['public', "\0*\0protected"], + ], + [ Caster::EXCLUDE_NOT_IMPORTANT, - array( + [ 'null' => null, 'empty' => false, "\0~\0virtual" => 'virt', "\0+\0dynamic" => 'dyn', "\0Foo\0private" => 'priv', - ), - array('public', "\0*\0protected"), - ), - array( + ], + ['public', "\0*\0protected"], + ], + [ Caster::EXCLUDE_VIRTUAL | Caster::EXCLUDE_DYNAMIC, - array( + [ "\0~\0virtual" => 'virt', "\0+\0dynamic" => 'dyn', - ), - ), - array( + ], + ], + [ Caster::EXCLUDE_NOT_IMPORTANT | Caster::EXCLUDE_VERBOSE, $this->referenceArray, - array('public', "\0*\0protected"), - ), - array( + ['public', "\0*\0protected"], + ], + [ Caster::EXCLUDE_NOT_IMPORTANT | Caster::EXCLUDE_EMPTY, - array( + [ 'null' => null, 'empty' => false, "\0~\0virtual" => 'virt', "\0+\0dynamic" => 'dyn', "\0*\0protected" => 'prot', "\0Foo\0private" => 'priv', - ), - array('public', 'empty'), - ), - array( + ], + ['public', 'empty'], + ], + [ Caster::EXCLUDE_VERBOSE | Caster::EXCLUDE_EMPTY | Caster::EXCLUDE_STRICT, - array( + [ 'empty' => false, - ), - array('public', 'empty'), - ), - ); + ], + ['public', 'empty'], + ], + ]; } /** diff --git a/vendor/symfony/var-dumper/Tests/Caster/DateCasterTest.php b/vendor/symfony/var-dumper/Tests/Caster/DateCasterTest.php index dafa16cddd1bafb49fdb22e723c2794e3821ab4c..da8b4d0fa5c388bea5cdfed6dab614e57358536e 100644 --- a/vendor/symfony/var-dumper/Tests/Caster/DateCasterTest.php +++ b/vendor/symfony/var-dumper/Tests/Caster/DateCasterTest.php @@ -55,7 +55,7 @@ public function testCastDateTime($time, $timezone, $xDate, $xTimestamp, $xInfos) $stub = new Stub(); $date = new \DateTime($time, new \DateTimeZone($timezone)); - $cast = DateCaster::castDateTime($date, array('foo' => 'bar'), $stub, false, 0); + $cast = DateCaster::castDateTime($date, ['foo' => 'bar'], $stub, false, 0); $xDump = <<<EODUMP array:1 [ @@ -83,18 +83,18 @@ public function testCastDateTime($time, $timezone, $xDate, $xTimestamp, $xInfos) public function provideDateTimes() { - return array( - array('2017-04-30 00:00:00.000000', 'Europe/Zurich', '2017-04-30 00:00:00.0 Europe/Zurich (+02:00)', 1493503200, 'Sunday, April 30, 2017%Afrom now%ADST On'), - array('2017-12-31 00:00:00.000000', 'Europe/Zurich', '2017-12-31 00:00:00.0 Europe/Zurich (+01:00)', 1514674800, 'Sunday, December 31, 2017%Afrom now%ADST Off'), - array('2017-04-30 00:00:00.000000', '+02:00', '2017-04-30 00:00:00.0 +02:00', 1493503200, 'Sunday, April 30, 2017%Afrom now'), - - array('2017-04-30 00:00:00.100000', '+00:00', '2017-04-30 00:00:00.100 +00:00', 1493510400, 'Sunday, April 30, 2017%Afrom now'), - array('2017-04-30 00:00:00.120000', '+00:00', '2017-04-30 00:00:00.120 +00:00', 1493510400, 'Sunday, April 30, 2017%Afrom now'), - array('2017-04-30 00:00:00.123000', '+00:00', '2017-04-30 00:00:00.123 +00:00', 1493510400, 'Sunday, April 30, 2017%Afrom now'), - array('2017-04-30 00:00:00.123400', '+00:00', '2017-04-30 00:00:00.123400 +00:00', 1493510400, 'Sunday, April 30, 2017%Afrom now'), - array('2017-04-30 00:00:00.123450', '+00:00', '2017-04-30 00:00:00.123450 +00:00', 1493510400, 'Sunday, April 30, 2017%Afrom now'), - array('2017-04-30 00:00:00.123456', '+00:00', '2017-04-30 00:00:00.123456 +00:00', 1493510400, 'Sunday, April 30, 2017%Afrom now'), - ); + return [ + ['2017-04-30 00:00:00.000000', 'Europe/Zurich', '2017-04-30 00:00:00.0 Europe/Zurich (+02:00)', 1493503200, 'Sunday, April 30, 2017%Afrom now%ADST On'], + ['2017-12-31 00:00:00.000000', 'Europe/Zurich', '2017-12-31 00:00:00.0 Europe/Zurich (+01:00)', 1514674800, 'Sunday, December 31, 2017%Afrom now%ADST Off'], + ['2017-04-30 00:00:00.000000', '+02:00', '2017-04-30 00:00:00.0 +02:00', 1493503200, 'Sunday, April 30, 2017%Afrom now'], + + ['2017-04-30 00:00:00.100000', '+00:00', '2017-04-30 00:00:00.100 +00:00', 1493510400, 'Sunday, April 30, 2017%Afrom now'], + ['2017-04-30 00:00:00.120000', '+00:00', '2017-04-30 00:00:00.120 +00:00', 1493510400, 'Sunday, April 30, 2017%Afrom now'], + ['2017-04-30 00:00:00.123000', '+00:00', '2017-04-30 00:00:00.123 +00:00', 1493510400, 'Sunday, April 30, 2017%Afrom now'], + ['2017-04-30 00:00:00.123400', '+00:00', '2017-04-30 00:00:00.123400 +00:00', 1493510400, 'Sunday, April 30, 2017%Afrom now'], + ['2017-04-30 00:00:00.123450', '+00:00', '2017-04-30 00:00:00.123450 +00:00', 1493510400, 'Sunday, April 30, 2017%Afrom now'], + ['2017-04-30 00:00:00.123456', '+00:00', '2017-04-30 00:00:00.123456 +00:00', 1493510400, 'Sunday, April 30, 2017%Afrom now'], + ]; } /** @@ -149,7 +149,7 @@ public function testCastInterval($intervalSpec, $ms, $invert, $xInterval, $xSeco $interval = $this->createInterval($intervalSpec, $ms, $invert); $stub = new Stub(); - $cast = DateCaster::castInterval($interval, array('foo' => 'bar'), $stub, false, Caster::EXCLUDE_VERBOSE); + $cast = DateCaster::castInterval($interval, ['foo' => 'bar'], $stub, false, Caster::EXCLUDE_VERBOSE); $xDump = <<<EODUMP array:1 [ @@ -184,35 +184,35 @@ public function provideIntervals() $i = new \DateInterval('PT0S'); $ms = ($withMs = \PHP_VERSION_ID >= 70100 && isset($i->f)) ? '.0' : ''; - return array( - array('PT0S', 0, 0, '0s', '0s'), - array('PT0S', 0.1, 0, $withMs ? '+ 00:00:00.100' : '0s', '%is'), - array('PT1S', 0, 0, '+ 00:00:01'.$ms, '%is'), - array('PT2M', 0, 0, '+ 00:02:00'.$ms, '%is'), - array('PT3H', 0, 0, '+ 03:00:00'.$ms, '%ss'), - array('P4D', 0, 0, '+ 4d', '%ss'), - array('P5M', 0, 0, '+ 5m', null), - array('P6Y', 0, 0, '+ 6y', null), - array('P1Y2M3DT4H5M6S', 0, 0, '+ 1y 2m 3d 04:05:06'.$ms, null), - array('PT1M60S', 0, 0, '+ 00:02:00'.$ms, null), - array('PT1H60M', 0, 0, '+ 02:00:00'.$ms, null), - array('P1DT24H', 0, 0, '+ 2d', null), - array('P1M32D', 0, 0, '+ 1m 32d', null), - - array('PT0S', 0, 1, '0s', '0s'), - array('PT0S', 0.1, 1, $withMs ? '- 00:00:00.100' : '0s', '%is'), - array('PT1S', 0, 1, '- 00:00:01'.$ms, '%is'), - array('PT2M', 0, 1, '- 00:02:00'.$ms, '%is'), - array('PT3H', 0, 1, '- 03:00:00'.$ms, '%ss'), - array('P4D', 0, 1, '- 4d', '%ss'), - array('P5M', 0, 1, '- 5m', null), - array('P6Y', 0, 1, '- 6y', null), - array('P1Y2M3DT4H5M6S', 0, 1, '- 1y 2m 3d 04:05:06'.$ms, null), - array('PT1M60S', 0, 1, '- 00:02:00'.$ms, null), - array('PT1H60M', 0, 1, '- 02:00:00'.$ms, null), - array('P1DT24H', 0, 1, '- 2d', null), - array('P1M32D', 0, 1, '- 1m 32d', null), - ); + return [ + ['PT0S', 0, 0, '0s', '0s'], + ['PT0S', 0.1, 0, $withMs ? '+ 00:00:00.100' : '0s', '%is'], + ['PT1S', 0, 0, '+ 00:00:01'.$ms, '%is'], + ['PT2M', 0, 0, '+ 00:02:00'.$ms, '%is'], + ['PT3H', 0, 0, '+ 03:00:00'.$ms, '%ss'], + ['P4D', 0, 0, '+ 4d', '%ss'], + ['P5M', 0, 0, '+ 5m', null], + ['P6Y', 0, 0, '+ 6y', null], + ['P1Y2M3DT4H5M6S', 0, 0, '+ 1y 2m 3d 04:05:06'.$ms, null], + ['PT1M60S', 0, 0, '+ 00:02:00'.$ms, null], + ['PT1H60M', 0, 0, '+ 02:00:00'.$ms, null], + ['P1DT24H', 0, 0, '+ 2d', null], + ['P1M32D', 0, 0, '+ 1m 32d', null], + + ['PT0S', 0, 1, '0s', '0s'], + ['PT0S', 0.1, 1, $withMs ? '- 00:00:00.100' : '0s', '%is'], + ['PT1S', 0, 1, '- 00:00:01'.$ms, '%is'], + ['PT2M', 0, 1, '- 00:02:00'.$ms, '%is'], + ['PT3H', 0, 1, '- 03:00:00'.$ms, '%ss'], + ['P4D', 0, 1, '- 4d', '%ss'], + ['P5M', 0, 1, '- 5m', null], + ['P6Y', 0, 1, '- 6y', null], + ['P1Y2M3DT4H5M6S', 0, 1, '- 1y 2m 3d 04:05:06'.$ms, null], + ['PT1M60S', 0, 1, '- 00:02:00'.$ms, null], + ['PT1H60M', 0, 1, '- 02:00:00'.$ms, null], + ['P1DT24H', 0, 1, '- 2d', null], + ['P1M32D', 0, 1, '- 1m 32d', null], + ]; } /** @@ -267,7 +267,7 @@ public function testCastTimeZone($timezone, $xTimezone, $xRegion) $timezone = new \DateTimeZone($timezone); $stub = new Stub(); - $cast = DateCaster::castTimeZone($timezone, array('foo' => 'bar'), $stub, false, Caster::EXCLUDE_VERBOSE); + $cast = DateCaster::castTimeZone($timezone, ['foo' => 'bar'], $stub, false, Caster::EXCLUDE_VERBOSE); $xDump = <<<EODUMP array:1 [ @@ -297,27 +297,27 @@ public function provideTimeZones() { $xRegion = \extension_loaded('intl') ? '%s' : ''; - return array( + return [ // type 1 (UTC offset) - array('-12:00', '-12:00', ''), - array('+00:00', '+00:00', ''), - array('+14:00', '+14:00', ''), + ['-12:00', '-12:00', ''], + ['+00:00', '+00:00', ''], + ['+14:00', '+14:00', ''], // type 2 (timezone abbreviation) - array('GMT', '+00:00', ''), - array('a', '+01:00', ''), - array('b', '+02:00', ''), - array('z', '+00:00', ''), + ['GMT', '+00:00', ''], + ['a', '+01:00', ''], + ['b', '+02:00', ''], + ['z', '+00:00', ''], // type 3 (timezone identifier) - array('Africa/Tunis', 'Africa/Tunis (%s:00)', $xRegion), - array('America/Panama', 'America/Panama (%s:00)', $xRegion), - array('Asia/Jerusalem', 'Asia/Jerusalem (%s:00)', $xRegion), - array('Atlantic/Canary', 'Atlantic/Canary (%s:00)', $xRegion), - array('Australia/Perth', 'Australia/Perth (%s:00)', $xRegion), - array('Europe/Zurich', 'Europe/Zurich (%s:00)', $xRegion), - array('Pacific/Tahiti', 'Pacific/Tahiti (%s:00)', $xRegion), - ); + ['Africa/Tunis', 'Africa/Tunis (%s:00)', $xRegion], + ['America/Panama', 'America/Panama (%s:00)', $xRegion], + ['Asia/Jerusalem', 'Asia/Jerusalem (%s:00)', $xRegion], + ['Atlantic/Canary', 'Atlantic/Canary (%s:00)', $xRegion], + ['Australia/Perth', 'Australia/Perth (%s:00)', $xRegion], + ['Europe/Zurich', 'Europe/Zurich (%s:00)', $xRegion], + ['Pacific/Tahiti', 'Pacific/Tahiti (%s:00)', $xRegion], + ]; } /** @@ -352,7 +352,7 @@ public function testCastPeriod($start, $interval, $end, $options, $xPeriod, $xDa $p = new \DatePeriod(new \DateTime($start), new \DateInterval($interval), \is_int($end) ? $end : new \DateTime($end), $options); $stub = new Stub(); - $cast = DateCaster::castPeriod($p, array(), $stub, false, 0); + $cast = DateCaster::castPeriod($p, [], $stub, false, 0); $xDump = <<<EODUMP array:1 [ @@ -383,28 +383,28 @@ public function providePeriods() $i = new \DateInterval('PT0S'); $ms = \PHP_VERSION_ID >= 70100 && isset($i->f) ? '.0' : ''; - $periods = array( - array('2017-01-01', 'P1D', '2017-01-03', 0, 'every + 1d, from 2017-01-01 00:00:00.0 (included) to 2017-01-03 00:00:00.0', '1) 2017-01-01%a2) 2017-01-02'), - array('2017-01-01', 'P1D', 1, 0, 'every + 1d, from 2017-01-01 00:00:00.0 (included) recurring 2 time/s', '1) 2017-01-01%a2) 2017-01-02'), + $periods = [ + ['2017-01-01', 'P1D', '2017-01-03', 0, 'every + 1d, from 2017-01-01 00:00:00.0 (included) to 2017-01-03 00:00:00.0', '1) 2017-01-01%a2) 2017-01-02'], + ['2017-01-01', 'P1D', 1, 0, 'every + 1d, from 2017-01-01 00:00:00.0 (included) recurring 2 time/s', '1) 2017-01-01%a2) 2017-01-02'], - array('2017-01-01', 'P1D', '2017-01-04', 0, 'every + 1d, from 2017-01-01 00:00:00.0 (included) to 2017-01-04 00:00:00.0', '1) 2017-01-01%a2) 2017-01-02%a3) 2017-01-03'), - array('2017-01-01', 'P1D', 2, 0, 'every + 1d, from 2017-01-01 00:00:00.0 (included) recurring 3 time/s', '1) 2017-01-01%a2) 2017-01-02%a3) 2017-01-03'), + ['2017-01-01', 'P1D', '2017-01-04', 0, 'every + 1d, from 2017-01-01 00:00:00.0 (included) to 2017-01-04 00:00:00.0', '1) 2017-01-01%a2) 2017-01-02%a3) 2017-01-03'], + ['2017-01-01', 'P1D', 2, 0, 'every + 1d, from 2017-01-01 00:00:00.0 (included) recurring 3 time/s', '1) 2017-01-01%a2) 2017-01-02%a3) 2017-01-03'], - array('2017-01-01', 'P1D', '2017-01-05', 0, 'every + 1d, from 2017-01-01 00:00:00.0 (included) to 2017-01-05 00:00:00.0', '1) 2017-01-01%a2) 2017-01-02%a1 more'), - array('2017-01-01', 'P1D', 3, 0, 'every + 1d, from 2017-01-01 00:00:00.0 (included) recurring 4 time/s', '1) 2017-01-01%a2) 2017-01-02%a3) 2017-01-03%a1 more'), + ['2017-01-01', 'P1D', '2017-01-05', 0, 'every + 1d, from 2017-01-01 00:00:00.0 (included) to 2017-01-05 00:00:00.0', '1) 2017-01-01%a2) 2017-01-02%a1 more'], + ['2017-01-01', 'P1D', 3, 0, 'every + 1d, from 2017-01-01 00:00:00.0 (included) recurring 4 time/s', '1) 2017-01-01%a2) 2017-01-02%a3) 2017-01-03%a1 more'], - array('2017-01-01', 'P1D', '2017-01-21', 0, 'every + 1d, from 2017-01-01 00:00:00.0 (included) to 2017-01-21 00:00:00.0', '1) 2017-01-01%a17 more'), - array('2017-01-01', 'P1D', 19, 0, 'every + 1d, from 2017-01-01 00:00:00.0 (included) recurring 20 time/s', '1) 2017-01-01%a17 more'), + ['2017-01-01', 'P1D', '2017-01-21', 0, 'every + 1d, from 2017-01-01 00:00:00.0 (included) to 2017-01-21 00:00:00.0', '1) 2017-01-01%a17 more'], + ['2017-01-01', 'P1D', 19, 0, 'every + 1d, from 2017-01-01 00:00:00.0 (included) recurring 20 time/s', '1) 2017-01-01%a17 more'], - array('2017-01-01 01:00:00', 'P1D', '2017-01-03 01:00:00', 0, 'every + 1d, from 2017-01-01 01:00:00.0 (included) to 2017-01-03 01:00:00.0', '1) 2017-01-01 01:00:00.0%a2) 2017-01-02 01:00:00.0'), - array('2017-01-01 01:00:00', 'P1D', 1, 0, 'every + 1d, from 2017-01-01 01:00:00.0 (included) recurring 2 time/s', '1) 2017-01-01 01:00:00.0%a2) 2017-01-02 01:00:00.0'), + ['2017-01-01 01:00:00', 'P1D', '2017-01-03 01:00:00', 0, 'every + 1d, from 2017-01-01 01:00:00.0 (included) to 2017-01-03 01:00:00.0', '1) 2017-01-01 01:00:00.0%a2) 2017-01-02 01:00:00.0'], + ['2017-01-01 01:00:00', 'P1D', 1, 0, 'every + 1d, from 2017-01-01 01:00:00.0 (included) recurring 2 time/s', '1) 2017-01-01 01:00:00.0%a2) 2017-01-02 01:00:00.0'], - array('2017-01-01', 'P1DT1H', '2017-01-03', 0, "every + 1d 01:00:00$ms, from 2017-01-01 00:00:00.0 (included) to 2017-01-03 00:00:00.0", '1) 2017-01-01 00:00:00.0%a2) 2017-01-02 01:00:00.0'), - array('2017-01-01', 'P1DT1H', 1, 0, "every + 1d 01:00:00$ms, from 2017-01-01 00:00:00.0 (included) recurring 2 time/s", '1) 2017-01-01 00:00:00.0%a2) 2017-01-02 01:00:00.0'), + ['2017-01-01', 'P1DT1H', '2017-01-03', 0, "every + 1d 01:00:00$ms, from 2017-01-01 00:00:00.0 (included) to 2017-01-03 00:00:00.0", '1) 2017-01-01 00:00:00.0%a2) 2017-01-02 01:00:00.0'], + ['2017-01-01', 'P1DT1H', 1, 0, "every + 1d 01:00:00$ms, from 2017-01-01 00:00:00.0 (included) recurring 2 time/s", '1) 2017-01-01 00:00:00.0%a2) 2017-01-02 01:00:00.0'], - array('2017-01-01', 'P1D', '2017-01-04', \DatePeriod::EXCLUDE_START_DATE, 'every + 1d, from 2017-01-01 00:00:00.0 (excluded) to 2017-01-04 00:00:00.0', '1) 2017-01-02%a2) 2017-01-03'), - array('2017-01-01', 'P1D', 2, \DatePeriod::EXCLUDE_START_DATE, 'every + 1d, from 2017-01-01 00:00:00.0 (excluded) recurring 2 time/s', '1) 2017-01-02%a2) 2017-01-03'), - ); + ['2017-01-01', 'P1D', '2017-01-04', \DatePeriod::EXCLUDE_START_DATE, 'every + 1d, from 2017-01-01 00:00:00.0 (excluded) to 2017-01-04 00:00:00.0', '1) 2017-01-02%a2) 2017-01-03'], + ['2017-01-01', 'P1D', 2, \DatePeriod::EXCLUDE_START_DATE, 'every + 1d, from 2017-01-01 00:00:00.0 (excluded) recurring 2 time/s', '1) 2017-01-02%a2) 2017-01-03'], + ]; if (\PHP_VERSION_ID < 70107) { array_walk($periods, function (&$i) { $i[5] = ''; }); diff --git a/vendor/symfony/var-dumper/Tests/Caster/ExceptionCasterTest.php b/vendor/symfony/var-dumper/Tests/Caster/ExceptionCasterTest.php index 4f9b538a0a0ed1057e3e4c6cb2050e19c04cdf0c..ea83e77163d1932652b94f97a14246925bae408a 100644 --- a/vendor/symfony/var-dumper/Tests/Caster/ExceptionCasterTest.php +++ b/vendor/symfony/var-dumper/Tests/Caster/ExceptionCasterTest.php @@ -36,7 +36,7 @@ protected function tearDown() public function testDefaultSettings() { - $ref = array('foo'); + $ref = ['foo']; $e = $this->getTestException('foo', $ref); $expectedDump = <<<'EODUMP' @@ -57,7 +57,7 @@ public function testDefaultSettings() EODUMP; $this->assertDumpMatchesFormat($expectedDump, $e); - $this->assertSame(array('foo'), $ref); + $this->assertSame(['foo'], $ref); } public function testSeek() @@ -166,19 +166,19 @@ public function testFrameWithTwig() { require_once \dirname(__DIR__).'/Fixtures/Twig.php'; - $f = array( - new FrameStub(array( + $f = [ + new FrameStub([ 'file' => \dirname(__DIR__).'/Fixtures/Twig.php', 'line' => 20, 'class' => '__TwigTemplate_VarDumperFixture_u75a09', - )), - new FrameStub(array( + ]), + new FrameStub([ 'file' => \dirname(__DIR__).'/Fixtures/Twig.php', 'line' => 21, 'class' => '__TwigTemplate_VarDumperFixture_u75a09', 'object' => new \__TwigTemplate_VarDumperFixture_u75a09(null, __FILE__), - )), - ); + ]), + ]; $expectedDump = <<<'EODUMP' array:2 [ diff --git a/vendor/symfony/var-dumper/Tests/Caster/PdoCasterTest.php b/vendor/symfony/var-dumper/Tests/Caster/PdoCasterTest.php index 000e5feeb125aaa9667f2089477819f2ccb8f247..19bbe0f80c43b59e497cedbfe463df4acb25930f 100644 --- a/vendor/symfony/var-dumper/Tests/Caster/PdoCasterTest.php +++ b/vendor/symfony/var-dumper/Tests/Caster/PdoCasterTest.php @@ -29,9 +29,9 @@ class PdoCasterTest extends TestCase public function testCastPdo() { $pdo = new \PDO('sqlite::memory:'); - $pdo->setAttribute(\PDO::ATTR_STATEMENT_CLASS, array('PDOStatement', array($pdo))); + $pdo->setAttribute(\PDO::ATTR_STATEMENT_CLASS, ['PDOStatement', [$pdo]]); - $cast = PdoCaster::castPdo($pdo, array(), new Stub(), false); + $cast = PdoCaster::castPdo($pdo, [], new Stub(), false); $this->assertInstanceOf('Symfony\Component\VarDumper\Caster\EnumStub', $cast["\0~\0attributes"]); diff --git a/vendor/symfony/var-dumper/Tests/Caster/ReflectionCasterTest.php b/vendor/symfony/var-dumper/Tests/Caster/ReflectionCasterTest.php index a66c1d0386e0a06cbfe9077062d85604a4fae841..37e14966f4f67cd29a392260f24078978aece1cd 100644 --- a/vendor/symfony/var-dumper/Tests/Caster/ReflectionCasterTest.php +++ b/vendor/symfony/var-dumper/Tests/Caster/ReflectionCasterTest.php @@ -37,7 +37,7 @@ public function testReflectionCaster() %A] constants: array:3 [ "IS_IMPLICIT_ABSTRACT" => 16 - "IS_EXPLICIT_ABSTRACT" => 32 + "IS_EXPLICIT_ABSTRACT" => %d "IS_FINAL" => %d ] properties: array:%d [ @@ -85,6 +85,34 @@ public function testClosureCaster() ); } + public function testFromCallableClosureCaster() + { + if (\defined('HHVM_VERSION_ID')) { + $this->markTestSkipped('Not for HHVM.'); + } + $var = [ + (new \ReflectionMethod($this, __FUNCTION__))->getClosure($this), + (new \ReflectionMethod(__CLASS__, 'tearDownAfterClass'))->getClosure(), + ]; + + $this->assertDumpMatchesFormat( + <<<EOTXT +array:2 [ + 0 => Symfony\Component\VarDumper\Tests\Caster\ReflectionCasterTest::testFromCallableClosureCaster { + this: Symfony\Component\VarDumper\Tests\Caster\ReflectionCasterTest { …} + file: "%sReflectionCasterTest.php" + line: "%d to %d" + } + 1 => %sTestCase::tearDownAfterClass { + file: "%sTestCase.php" + line: "%d to %d" + } +] +EOTXT + , $var + ); + } + public function testClosureCasterExcludingVerbosity() { $var = function () {}; @@ -223,7 +251,7 @@ public function testGenerator() EODUMP; $r = new \ReflectionGenerator($generator); - $this->assertDumpMatchesFormat($expectedDump, array($r, $r->getExecutingGenerator())); + $this->assertDumpMatchesFormat($expectedDump, [$r, $r->getExecutingGenerator()]); foreach ($generator as $v) { } diff --git a/vendor/symfony/var-dumper/Tests/Caster/SplCasterTest.php b/vendor/symfony/var-dumper/Tests/Caster/SplCasterTest.php index d3c9ec25f5f6d00a0fbc5c8c1583a5b875c8e808..984b340c6d70dbb10eb8ec46044dcc1e8380d338 100644 --- a/vendor/symfony/var-dumper/Tests/Caster/SplCasterTest.php +++ b/vendor/symfony/var-dumper/Tests/Caster/SplCasterTest.php @@ -23,8 +23,8 @@ class SplCasterTest extends TestCase public function getCastFileInfoTests() { - return array( - array(__FILE__, <<<'EOTXT' + return [ + [__FILE__, <<<'EOTXT' SplFileInfo { %Apath: "%sCaster" filename: "SplCasterTest.php" @@ -35,7 +35,7 @@ public function getCastFileInfoTests() aTime: %s-%s-%d %d:%d:%d mTime: %s-%s-%d %d:%d:%d cTime: %s-%s-%d %d:%d:%d - inode: %d + inode: %i size: %d perms: 0%d owner: %d @@ -49,8 +49,8 @@ public function getCastFileInfoTests() link: false %A} EOTXT - ), - array('https://google.com/about', <<<'EOTXT' + ], + ['https://google.com/about', <<<'EOTXT' SplFileInfo { %Apath: "https://google.com" filename: "about" @@ -60,8 +60,8 @@ public function getCastFileInfoTests() realPath: false %A} EOTXT - ), - ); + ], + ]; } /** @dataProvider getCastFileInfoTests */ @@ -85,7 +85,7 @@ public function testCastFileObject() aTime: %s-%s-%d %d:%d:%d mTime: %s-%s-%d %d:%d:%d cTime: %s-%s-%d %d:%d:%d - inode: %d + inode: %i size: %d perms: 0%d owner: %d @@ -105,7 +105,7 @@ public function testCastFileObject() maxLineLen: 0 fstat: array:26 [ "dev" => %d - "ino" => %d + "ino" => %i "nlink" => %d "rdev" => 0 "blksize" => %i @@ -137,12 +137,12 @@ public function testCastSplDoublyLinkedList($modeValue, $modeDump) public function provideCastSplDoublyLinkedList() { - return array( - array(\SplDoublyLinkedList::IT_MODE_FIFO, 'IT_MODE_FIFO | IT_MODE_KEEP'), - array(\SplDoublyLinkedList::IT_MODE_LIFO, 'IT_MODE_LIFO | IT_MODE_KEEP'), - array(\SplDoublyLinkedList::IT_MODE_FIFO | \SplDoublyLinkedList::IT_MODE_DELETE, 'IT_MODE_FIFO | IT_MODE_DELETE'), - array(\SplDoublyLinkedList::IT_MODE_LIFO | \SplDoublyLinkedList::IT_MODE_DELETE, 'IT_MODE_LIFO | IT_MODE_DELETE'), - ); + return [ + [\SplDoublyLinkedList::IT_MODE_FIFO, 'IT_MODE_FIFO | IT_MODE_KEEP'], + [\SplDoublyLinkedList::IT_MODE_LIFO, 'IT_MODE_LIFO | IT_MODE_KEEP'], + [\SplDoublyLinkedList::IT_MODE_FIFO | \SplDoublyLinkedList::IT_MODE_DELETE, 'IT_MODE_FIFO | IT_MODE_DELETE'], + [\SplDoublyLinkedList::IT_MODE_LIFO | \SplDoublyLinkedList::IT_MODE_DELETE, 'IT_MODE_LIFO | IT_MODE_DELETE'], + ]; } public function testCastObjectStorageIsntModified() @@ -169,7 +169,7 @@ public function testCastArrayObject() if (\defined('HHVM_VERSION')) { $this->markTestSkipped('HHVM as different internal details.'); } - $var = new \ArrayObject(array(123)); + $var = new \ArrayObject([123]); $var->foo = 234; $expected = <<<EOTXT @@ -191,7 +191,7 @@ public function testArrayIterator() if (\defined('HHVM_VERSION')) { $this->markTestSkipped('HHVM as different internal details.'); } - $var = new MyArrayIterator(array(234)); + $var = new MyArrayIterator([234]); $expected = <<<EOTXT Symfony\Component\VarDumper\Tests\Caster\MyArrayIterator { diff --git a/vendor/symfony/var-dumper/Tests/Caster/StubCasterTest.php b/vendor/symfony/var-dumper/Tests/Caster/StubCasterTest.php index 36603c51cc0128692556cb9a4d9ad5dbcbce4d8a..945833ebca683dd8eadc6501acc1305177481e33 100644 --- a/vendor/symfony/var-dumper/Tests/Caster/StubCasterTest.php +++ b/vendor/symfony/var-dumper/Tests/Caster/StubCasterTest.php @@ -26,7 +26,7 @@ class StubCasterTest extends TestCase public function testArgsStubWithDefaults($foo = 234, $bar = 456) { - $args = array(new ArgsStub(array(123), __FUNCTION__, __CLASS__)); + $args = [new ArgsStub([123], __FUNCTION__, __CLASS__)]; $expectedDump = <<<'EODUMP' array:1 [ @@ -41,7 +41,7 @@ public function testArgsStubWithDefaults($foo = 234, $bar = 456) public function testArgsStubWithExtraArgs($foo = 234) { - $args = array(new ArgsStub(array(123, 456), __FUNCTION__, __CLASS__)); + $args = [new ArgsStub([123, 456], __FUNCTION__, __CLASS__)]; $expectedDump = <<<'EODUMP' array:1 [ @@ -59,7 +59,7 @@ public function testArgsStubWithExtraArgs($foo = 234) public function testArgsStubNoParamWithExtraArgs() { - $args = array(new ArgsStub(array(123), __FUNCTION__, __CLASS__)); + $args = [new ArgsStub([123], __FUNCTION__, __CLASS__)]; $expectedDump = <<<'EODUMP' array:1 [ @@ -74,7 +74,7 @@ public function testArgsStubNoParamWithExtraArgs() public function testArgsStubWithClosure() { - $args = array(new ArgsStub(array(123), '{closure}', null)); + $args = [new ArgsStub([123], '{closure}', null)]; $expectedDump = <<<'EODUMP' array:1 [ @@ -89,13 +89,13 @@ public function testArgsStubWithClosure() public function testLinkStub() { - $var = array(new LinkStub(__CLASS__, 0, __FILE__)); + $var = [new LinkStub(__CLASS__, 0, __FILE__)]; $cloner = new VarCloner(); $dumper = new HtmlDumper(); $dumper->setDumpHeader('<foo></foo>'); $dumper->setDumpBoundaries('<bar>', '</bar>'); - $dumper->setDisplayOptions(array('fileLinkFormat' => '%f:%l')); + $dumper->setDisplayOptions(['fileLinkFormat' => '%f:%l']); $dump = $dumper->dump($cloner->cloneVar($var), true); $expectedDump = <<<'EODUMP' @@ -110,13 +110,13 @@ public function testLinkStub() public function testLinkStubWithNoFileLink() { - $var = array(new LinkStub('example.com', 0, 'http://example.com')); + $var = [new LinkStub('example.com', 0, 'http://example.com')]; $cloner = new VarCloner(); $dumper = new HtmlDumper(); $dumper->setDumpHeader('<foo></foo>'); $dumper->setDumpBoundaries('<bar>', '</bar>'); - $dumper->setDisplayOptions(array('fileLinkFormat' => '%f:%l')); + $dumper->setDisplayOptions(['fileLinkFormat' => '%f:%l']); $dump = $dumper->dump($cloner->cloneVar($var), true); $expectedDump = <<<'EODUMP' @@ -131,13 +131,13 @@ public function testLinkStubWithNoFileLink() public function testClassStub() { - $var = array(new ClassStub('hello', array(FooInterface::class, 'foo'))); + $var = [new ClassStub('hello', [FooInterface::class, 'foo'])]; $cloner = new VarCloner(); $dumper = new HtmlDumper(); $dumper->setDumpHeader('<foo></foo>'); $dumper->setDumpBoundaries('<bar>', '</bar>'); - $dump = $dumper->dump($cloner->cloneVar($var), true, array('fileLinkFormat' => '%f:%l')); + $dump = $dumper->dump($cloner->cloneVar($var), true, ['fileLinkFormat' => '%f:%l']); $expectedDump = <<<'EODUMP' <foo></foo><bar><span class=sf-dump-note>array:1</span> [<samp> @@ -151,7 +151,7 @@ public function testClassStub() public function testClassStubWithNotExistingClass() { - $var = array(new ClassStub(NotExisting::class)); + $var = [new ClassStub(NotExisting::class)]; $cloner = new VarCloner(); $dumper = new HtmlDumper(); @@ -172,13 +172,13 @@ public function testClassStubWithNotExistingClass() public function testClassStubWithNotExistingMethod() { - $var = array(new ClassStub('hello', array(FooInterface::class, 'missing'))); + $var = [new ClassStub('hello', [FooInterface::class, 'missing'])]; $cloner = new VarCloner(); $dumper = new HtmlDumper(); $dumper->setDumpHeader('<foo></foo>'); $dumper->setDumpBoundaries('<bar>', '</bar>'); - $dump = $dumper->dump($cloner->cloneVar($var), true, array('fileLinkFormat' => '%f:%l')); + $dump = $dumper->dump($cloner->cloneVar($var), true, ['fileLinkFormat' => '%f:%l']); $expectedDump = <<<'EODUMP' <foo></foo><bar><span class=sf-dump-note>array:1</span> [<samp> diff --git a/vendor/symfony/var-dumper/Tests/Caster/XmlReaderCasterTest.php b/vendor/symfony/var-dumper/Tests/Caster/XmlReaderCasterTest.php index 374d298af1637e3e86b3d0d60f698af1ce40bca3..1d7b3f62787a223d95c4f1ba803b3ad7fbd724ef 100644 --- a/vendor/symfony/var-dumper/Tests/Caster/XmlReaderCasterTest.php +++ b/vendor/symfony/var-dumper/Tests/Caster/XmlReaderCasterTest.php @@ -66,15 +66,15 @@ public function testNodes($seek, $expectedDump) public function provideNodes() { - return array( - array(0, <<<'EODUMP' + return [ + [0, <<<'EODUMP' XMLReader { +nodeType: NONE …13 } EODUMP - ), - array(1, <<<'EODUMP' + ], + [1, <<<'EODUMP' XMLReader { +localName: "foo" +nodeType: ELEMENT @@ -82,8 +82,8 @@ public function provideNodes() …11 } EODUMP - ), - array(2, <<<'EODUMP' + ], + [2, <<<'EODUMP' XMLReader { +localName: "#text" +nodeType: SIGNIFICANT_WHITESPACE @@ -96,8 +96,8 @@ public function provideNodes() …9 } EODUMP - ), - array(3, <<<'EODUMP' + ], + [3, <<<'EODUMP' XMLReader { +localName: "bar" +nodeType: ELEMENT @@ -106,8 +106,8 @@ public function provideNodes() …10 } EODUMP - ), - array(4, <<<'EODUMP' + ], + [4, <<<'EODUMP' XMLReader { +localName: "bar" +nodeType: END_ELEMENT @@ -116,8 +116,8 @@ public function provideNodes() …10 } EODUMP - ), - array(6, <<<'EODUMP' + ], + [6, <<<'EODUMP' XMLReader { +localName: "bar" +nodeType: ELEMENT @@ -127,8 +127,8 @@ public function provideNodes() …9 } EODUMP - ), - array(9, <<<'EODUMP' + ], + [9, <<<'EODUMP' XMLReader { +localName: "#text" +nodeType: TEXT @@ -138,8 +138,8 @@ public function provideNodes() …9 } EODUMP - ), - array(12, <<<'EODUMP' + ], + [12, <<<'EODUMP' XMLReader { +localName: "bar" +nodeType: ELEMENT @@ -149,8 +149,8 @@ public function provideNodes() …9 } EODUMP - ), - array(13, <<<'EODUMP' + ], + [13, <<<'EODUMP' XMLReader { +localName: "bar" +nodeType: END_ELEMENT @@ -159,8 +159,8 @@ public function provideNodes() …10 } EODUMP - ), - array(15, <<<'EODUMP' + ], + [15, <<<'EODUMP' XMLReader { +localName: "bar" +nodeType: ELEMENT @@ -170,8 +170,8 @@ public function provideNodes() …9 } EODUMP - ), - array(16, <<<'EODUMP' + ], + [16, <<<'EODUMP' XMLReader { +localName: "#text" +nodeType: SIGNIFICANT_WHITESPACE @@ -184,8 +184,8 @@ public function provideNodes() …9 } EODUMP - ), - array(17, <<<'EODUMP' + ], + [17, <<<'EODUMP' XMLReader { +localName: "baz" +prefix: "baz" @@ -196,8 +196,8 @@ public function provideNodes() …8 } EODUMP - ), - array(18, <<<'EODUMP' + ], + [18, <<<'EODUMP' XMLReader { +localName: "baz" +prefix: "baz" @@ -208,8 +208,8 @@ public function provideNodes() …8 } EODUMP - ), - array(19, <<<'EODUMP' + ], + [19, <<<'EODUMP' XMLReader { +localName: "#text" +nodeType: SIGNIFICANT_WHITESPACE @@ -222,8 +222,8 @@ public function provideNodes() …9 } EODUMP - ), - array(21, <<<'EODUMP' + ], + [21, <<<'EODUMP' XMLReader { +localName: "#text" +nodeType: SIGNIFICANT_WHITESPACE @@ -233,8 +233,8 @@ public function provideNodes() …9 } EODUMP - ), - array(22, <<<'EODUMP' + ], + [22, <<<'EODUMP' XMLReader { +localName: "foo" +nodeType: END_ELEMENT @@ -242,7 +242,7 @@ public function provideNodes() …11 } EODUMP - ), - ); + ], + ]; } } diff --git a/vendor/symfony/var-dumper/Tests/Cloner/DataTest.php b/vendor/symfony/var-dumper/Tests/Cloner/DataTest.php index d10951be93de177e1906e76a9009f1e415e93359..7d20bced35a4f46b0b04f7f383f822374b98af5d 100644 --- a/vendor/symfony/var-dumper/Tests/Cloner/DataTest.php +++ b/vendor/symfony/var-dumper/Tests/Cloner/DataTest.php @@ -21,9 +21,9 @@ class DataTest extends TestCase { public function testBasicData() { - $values = array(1 => 123, 4.5, 'abc', null, false); + $values = [1 => 123, 4.5, 'abc', null, false]; $data = $this->cloneVar($values); - $clonedValues = array(); + $clonedValues = []; $this->assertInstanceOf(Data::class, $data); $this->assertCount(\count($values), $data); @@ -62,7 +62,7 @@ public function testObject() public function testArray() { - $values = array(array(), array(123)); + $values = [[], [123]]; $data = $this->cloneVar($values); $this->assertSame($values, $data->getValue(true)); @@ -83,7 +83,7 @@ public function testArray() public function testStub() { - $data = $this->cloneVar(array(new ClassStub('stdClass'))); + $data = $this->cloneVar([new ClassStub('stdClass')]); $data = $data[0]; $this->assertSame('string', $data->getType()); @@ -93,15 +93,15 @@ public function testStub() public function testHardRefs() { - $values = array(array()); + $values = [[]]; $values[1] = &$values[0]; $values[2][0] = &$values[2]; $data = $this->cloneVar($values); - $this->assertSame(array(), $data[0]->getValue()); - $this->assertSame(array(), $data[1]->getValue()); - $this->assertEquals(array($data[2]->getValue()), $data[2]->getValue(true)); + $this->assertSame([], $data[0]->getValue()); + $this->assertSame([], $data[1]->getValue()); + $this->assertEquals([$data[2]->getValue()], $data[2]->getValue(true)); $this->assertSame('array (count=3)', (string) $data); } diff --git a/vendor/symfony/var-dumper/Tests/Cloner/VarClonerTest.php b/vendor/symfony/var-dumper/Tests/Cloner/VarClonerTest.php index 12fabcf08cb0967cf81a73d3567766a806c8467f..3b180af49810dcd7cea34235e23bba9a70ab3245 100644 --- a/vendor/symfony/var-dumper/Tests/Cloner/VarClonerTest.php +++ b/vendor/symfony/var-dumper/Tests/Cloner/VarClonerTest.php @@ -21,7 +21,7 @@ class VarClonerTest extends TestCase { public function testMaxIntBoundary() { - $data = array(PHP_INT_MAX => 123); + $data = [PHP_INT_MAX => 123]; $cloner = new VarCloner(); $clone = $cloner->cloneVar($data); @@ -149,42 +149,42 @@ public function testClone() public function testLimits() { // Level 0: - $data = array( + $data = [ // Level 1: - array( + [ // Level 2: - array( + [ // Level 3: 'Level 3 Item 0', 'Level 3 Item 1', 'Level 3 Item 2', 'Level 3 Item 3', - ), - array( + ], + [ 'Level 3 Item 4', 'Level 3 Item 5', 'Level 3 Item 6', - ), - array( + ], + [ 'Level 3 Item 7', - ), - ), - array( - array( + ], + ], + [ + [ 'Level 3 Item 8', - ), + ], 'Level 2 Item 0', - ), - array( + ], + [ 'Level 2 Item 1', - ), + ], 'Level 1 Item 0', - array( + [ // Test setMaxString: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'SHORT', - ), - ); + ], + ]; $cloner = new VarCloner(); $cloner->setMinDepth(2); @@ -381,16 +381,16 @@ public function testJsonCast() public function testCaster() { - $cloner = new VarCloner(array( + $cloner = new VarCloner([ '*' => function ($obj, $array) { - return array('foo' => 123); + return ['foo' => 123]; }, __CLASS__ => function ($obj, $array) { ++$array['foo']; return $array; }, - )); + ]); $clone = $cloner->cloneVar($this); $expected = <<<EOTXT diff --git a/vendor/symfony/var-dumper/Tests/Dumper/CliDumperTest.php b/vendor/symfony/var-dumper/Tests/Dumper/CliDumperTest.php index 298c33e6293d6526ac8aded4cafdff7160b3ac0c..9520b4fe102e7edd6c6dd8ad2208eaf9e3601787 100644 --- a/vendor/symfony/var-dumper/Tests/Dumper/CliDumperTest.php +++ b/vendor/symfony/var-dumper/Tests/Dumper/CliDumperTest.php @@ -32,13 +32,13 @@ public function testGet() $dumper = new CliDumper('php://output'); $dumper->setColors(false); $cloner = new VarCloner(); - $cloner->addCasters(array( + $cloner->addCasters([ ':stream' => function ($res, $a) { unset($a['uri'], $a['wrapper_data']); return $a; }, - )); + ]); $data = $cloner->cloneVar($var); ob_start(); @@ -119,11 +119,11 @@ public function testDumpWithCommaFlag($expected, $flags) $dumper->setColors(false); $cloner = new VarCloner(); - $var = array( - 'array' => array('a', 'b'), + $var = [ + 'array' => ['a', 'b'], 'string' => 'hello', 'multiline string' => "this\nis\na\multiline\nstring", - ); + ]; $dump = $dumper->dump($cloner->cloneVar($var), true); @@ -179,7 +179,7 @@ public function provideDumpWithCommaFlagTests() EOTXT; - yield array($expected, CliDumper::DUMP_COMMA_SEPARATOR); + yield [$expected, CliDumper::DUMP_COMMA_SEPARATOR]; $expected = <<<'EOTXT' array:3 [ @@ -198,7 +198,7 @@ public function provideDumpWithCommaFlagTests() EOTXT; - yield array($expected, CliDumper::DUMP_TRAILING_COMMA); + yield [$expected, CliDumper::DUMP_TRAILING_COMMA]; } /** @@ -261,7 +261,7 @@ public function testJsonCast() public function testObjectCast() { - $var = (object) array(1 => 1); + $var = (object) [1 => 1]; $var->{1} = 2; if (\PHP_VERSION_ID >= 70200) { @@ -322,10 +322,10 @@ public function testFlags() putenv('DUMP_LIGHT_ARRAY=1'); putenv('DUMP_STRING_LENGTH=1'); - $var = array( + $var = [ range(1, 3), - array('foo', 2 => 'bar'), - ); + ['foo', 2 => 'bar'], + ]; $this->assertDumpEquals( <<<EOTXT @@ -362,22 +362,22 @@ public function testThrowingCaster() $dumper = new CliDumper(); $dumper->setColors(false); $cloner = new VarCloner(); - $cloner->addCasters(array( + $cloner->addCasters([ ':stream' => function ($res, $a) { unset($a['wrapper_data']); return $a; }, - )); - $cloner->addCasters(array( + ]); + $cloner->addCasters([ ':stream' => eval('return function () use ($twig) { try { - $twig->render(array()); + $twig->render([]); } catch (\Twig\Error\RuntimeError $e) { throw $e->getPrevious(); } };'), - )); + ]); $ref = (int) $out; $data = $cloner->cloneVar($out); @@ -419,7 +419,7 @@ public function testThrowingCaster() public function testRefsInProperties() { - $var = (object) array('foo' => 'foo'); + $var = (object) ['foo' => 'foo']; $var->bar = &$var->foo; $dumper = new CliDumper(); @@ -580,12 +580,12 @@ private function getSpecialVars() } $var = function &() { - $var = array(); + $var = []; $var[] = &$var; return $var; }; - return array($var(), $GLOBALS, &$GLOBALS); + return [$var(), $GLOBALS, &$GLOBALS]; } } diff --git a/vendor/symfony/var-dumper/Tests/Dumper/FunctionsTest.php b/vendor/symfony/var-dumper/Tests/Dumper/FunctionsTest.php new file mode 100644 index 0000000000000000000000000000000000000000..0bd596c2adc440caa54ec18e54aff5473fc62eaf --- /dev/null +++ b/vendor/symfony/var-dumper/Tests/Dumper/FunctionsTest.php @@ -0,0 +1,57 @@ +<?php + +/* + * This file is part of the Symfony package. + * + * (c) Fabien Potencier <fabien@symfony.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\VarDumper\Tests\Dumper; + +use PHPUnit\Framework\TestCase; +use Symfony\Component\VarDumper\Cloner\VarCloner; +use Symfony\Component\VarDumper\Dumper\CliDumper; +use Symfony\Component\VarDumper\VarDumper; + +class FunctionsTest extends TestCase +{ + public function testDumpReturnsFirstArg() + { + $this->setupVarDumper(); + + $var1 = 'a'; + + ob_start(); + $return = dump($var1); + $out = ob_get_clean(); + + $this->assertEquals($var1, $return); + } + + public function testDumpReturnsAllArgsInArray() + { + $this->setupVarDumper(); + + $var1 = 'a'; + $var2 = 'b'; + $var3 = 'c'; + + ob_start(); + $return = dump($var1, $var2, $var3); + $out = ob_get_clean(); + + $this->assertEquals([$var1, $var2, $var3], $return); + } + + protected function setupVarDumper() + { + $cloner = new VarCloner(); + $dumper = new CliDumper('php://output'); + VarDumper::setHandler(function ($var) use ($cloner, $dumper) { + $dumper->dump($cloner->cloneVar($var)); + }); + } +} diff --git a/vendor/symfony/var-dumper/Tests/Dumper/HtmlDumperTest.php b/vendor/symfony/var-dumper/Tests/Dumper/HtmlDumperTest.php index 98ca471ac1c20e115e284133e5ddbc5ed28c91da..8a7e68ebf0c0ec92c56cd1b6fbab1faf6d23f563 100644 --- a/vendor/symfony/var-dumper/Tests/Dumper/HtmlDumperTest.php +++ b/vendor/symfony/var-dumper/Tests/Dumper/HtmlDumperTest.php @@ -32,13 +32,13 @@ public function testGet() $dumper->setDumpHeader('<foo></foo>'); $dumper->setDumpBoundaries('<bar>', '</bar>'); $cloner = new VarCloner(); - $cloner->addCasters(array( + $cloner->addCasters([ ':stream' => function ($res, $a) { unset($a['uri'], $a['wrapper_data']); return $a; }, - )); + ]); $data = $cloner->cloneVar($var); ob_start(); diff --git a/vendor/symfony/var-dumper/Tests/Fixtures/Twig.php b/vendor/symfony/var-dumper/Tests/Fixtures/Twig.php index fe2542929b10057b120e765c9275f2806aa213e7..8b84d820fcf7c50b56c0111f02eb3cc2ca3bc07e 100644 --- a/vendor/symfony/var-dumper/Tests/Fixtures/Twig.php +++ b/vendor/symfony/var-dumper/Tests/Fixtures/Twig.php @@ -11,11 +11,11 @@ public function __construct(Twig\Environment $env = null, $path = null) parent::__construct($env); } $this->parent = false; - $this->blocks = array(); + $this->blocks = []; $this->path = $path; } - protected function doDisplay(array $context, array $blocks = array()) + protected function doDisplay(array $context, array $blocks = []) { // line 2 throw new \Exception('Foobar'); @@ -28,7 +28,7 @@ public function getTemplateName() public function getDebugInfo() { - return array(20 => 1, 21 => 2); + return [20 => 1, 21 => 2]; } public function getSourceContext() diff --git a/vendor/symfony/var-dumper/Tests/Fixtures/dumb-var.php b/vendor/symfony/var-dumper/Tests/Fixtures/dumb-var.php index 59ee19bdad121317d822a838fce15fd75b0809ec..de51cebc219cedcc56629e49ca61f894195edf78 100644 --- a/vendor/symfony/var-dumper/Tests/Fixtures/dumb-var.php +++ b/vendor/symfony/var-dumper/Tests/Fixtures/dumb-var.php @@ -14,19 +14,19 @@ class DumbFoo $g = fopen(__FILE__, 'r'); -$var = array( +$var = [ 'number' => 1, null, 'const' => 1.1, true, false, NAN, INF, -INF, PHP_INT_MAX, 'str' => "déjà\n", "\xE9\x00", - '[]' => array(), + '[]' => [], 'res' => $g, 'obj' => $foo, 'closure' => function ($a, \PDO &$b = null) {}, 'line' => __LINE__ - 1, - 'nobj' => array((object) array()), -); + 'nobj' => [(object) []], +]; -$r = array(); +$r = []; $r[] = &$r; $var['recurs'] = &$r; diff --git a/vendor/symfony/var-dumper/Tests/Test/VarDumperTestTraitTest.php b/vendor/symfony/var-dumper/Tests/Test/VarDumperTestTraitTest.php index 464d67f6cec033af6baad28dcac0be427ea9f5df..18042fb3bf5945216bd1705cfeab7390c2293bdf 100644 --- a/vendor/symfony/var-dumper/Tests/Test/VarDumperTestTraitTest.php +++ b/vendor/symfony/var-dumper/Tests/Test/VarDumperTestTraitTest.php @@ -21,7 +21,7 @@ class VarDumperTestTraitTest extends TestCase public function testItComparesLargeData() { $howMany = 700; - $data = array_fill_keys(range(0, $howMany), array('a', 'b', 'c', 'd')); + $data = array_fill_keys(range(0, $howMany), ['a', 'b', 'c', 'd']); $expected = sprintf("array:%d [\n", $howMany + 1); for ($i = 0; $i <= $howMany; ++$i) { diff --git a/vendor/symfony/var-dumper/VarDumper.php b/vendor/symfony/var-dumper/VarDumper.php index a9ed05b3b38bc1049eed797b6b39f878b04f9fef..2ef20c064b01559dbea456cbec3cc8e917715729 100644 --- a/vendor/symfony/var-dumper/VarDumper.php +++ b/vendor/symfony/var-dumper/VarDumper.php @@ -29,7 +29,7 @@ public static function dump($var) { if (null === self::$handler) { $cloner = new VarCloner(); - $dumper = \in_array(\PHP_SAPI, array('cli', 'phpdbg'), true) ? new CliDumper() : new HtmlDumper(); + $dumper = \in_array(\PHP_SAPI, ['cli', 'phpdbg'], true) ? new CliDumper() : new HtmlDumper(); self::$handler = function ($var) use ($cloner, $dumper) { $dumper->dump($cloner->cloneVar($var)); }; diff --git a/vendor/symfony/var-dumper/phpunit.xml.dist b/vendor/symfony/var-dumper/phpunit.xml.dist index 4a25f42db82c78c5e17fb70bfcb829fe68ae89a4..3243fcd0279ccf5ab05e3fc8e0b6c84fbba0c669 100644 --- a/vendor/symfony/var-dumper/phpunit.xml.dist +++ b/vendor/symfony/var-dumper/phpunit.xml.dist @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="UTF-8"?> <phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:noNamespaceSchemaLocation="http://schema.phpunit.de/4.1/phpunit.xsd" + xsi:noNamespaceSchemaLocation="http://schema.phpunit.de/5.2/phpunit.xsd" backupGlobals="false" colors="true" bootstrap="vendor/autoload.php" diff --git a/vendor/webmozart/assert/.composer-auth.json b/vendor/webmozart/assert/.composer-auth.json deleted file mode 100644 index eea80018f090f35ef36e4c99e626440bd3e11124..0000000000000000000000000000000000000000 --- a/vendor/webmozart/assert/.composer-auth.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "github-oauth": { - "github.com": "PLEASE DO NOT USE THIS TOKEN IN YOUR OWN PROJECTS/FORKS", - "github.com": "This token is reserved for testing the webmozart/* repositories", - "github.com": "a9debbffdd953ee9b3b82dbc3b807cde2086bb86" - } -} diff --git a/vendor/webmozart/assert/.styleci.yml b/vendor/webmozart/assert/.styleci.yml deleted file mode 100644 index c2ad4a57de7addc4218c22c61f78c2f1d0544bb1..0000000000000000000000000000000000000000 --- a/vendor/webmozart/assert/.styleci.yml +++ /dev/null @@ -1,11 +0,0 @@ -preset: symfony - -finder: - exclude: - - "tests" - -enabled: - - ordered_use - -disabled: - - phpdoc_annotation_without_dot # This is still buggy: https://github.com/symfony/symfony/pull/19198 diff --git a/vendor/webmozart/assert/CHANGELOG.md b/vendor/webmozart/assert/CHANGELOG.md index 65fbc8f7ade7cf69e3b3cbf309dce739634efca3..da4fb3fea9001f1ad6a5757289e477140e70e61e 100644 --- a/vendor/webmozart/assert/CHANGELOG.md +++ b/vendor/webmozart/assert/CHANGELOG.md @@ -3,6 +3,25 @@ Changelog ## UNRELEASED +## 1.4.0 (2018-12-25) + +### Added + +* added `Assert::ip()` +* added `Assert::ipv4()` +* added `Assert::ipv6()` +* added `Assert::notRegex()` +* added `Assert::interfaceExists()` +* added `Assert::isList()` +* added `Assert::isMap()` +* added polyfill for ctype + +### Fixed + +* Special case when comparing objects implementing `__toString()` + +## 1.3.0 (2018-01-29) + ### Added * added `Assert::minCount()` @@ -20,6 +39,10 @@ Changelog * `stringNotEmpty` will no longer report "0" is an empty string +### Deprecation + +* deprecated `Assert::isTraversable()` in favor of `Assert::isIterable()` + ## 1.2.0 (2016-11-23) * added `Assert::throws()` diff --git a/vendor/webmozart/assert/README.md b/vendor/webmozart/assert/README.md index 1c1ede7dd1476876053e6f8359faabae4f65429c..ce7ba59dea46226a31b851b9381c499d325a1439 100644 --- a/vendor/webmozart/assert/README.md +++ b/vendor/webmozart/assert/README.md @@ -5,7 +5,6 @@ Webmozart Assert [](https://ci.appveyor.com/project/webmozart/assert/branch/master) [](https://packagist.org/packages/webmozart/assert) [](https://packagist.org/packages/webmozart/assert) -[](https://www.versioneye.com/php/webmozart:assert/1.2.0) Latest release: [1.2.0](https://packagist.org/packages/webmozart/assert#1.2.0) @@ -146,6 +145,7 @@ Method | Description `startsWithLetter($value, $message = '')` | Check that a string starts with a letter `endsWith($value, $suffix, $message = '')` | Check that a string has a suffix `regex($value, $pattern, $message = '')` | Check that a string matches a regular expression +`notRegex($value, $pattern, $message = '')` | Check that a string does not match a regular expression `alpha($value, $message = '')` | Check that a string contains letters only `digits($value, $message = '')` | Check that a string contains digits only `alnum($value, $message = '')` | Check that a string contains letters and digits only @@ -156,6 +156,9 @@ Method | Description `maxLength($value, $max, $message = '')` | Check that a string has at most a certain number of characters `lengthBetween($value, $min, $max, $message = '')` | Check that a string has a length in the given range `uuid($value, $message = '')` | Check that a string is a valid UUID +`ip($value, $message = '')` | Check that a string is a valid IP (either IPv4 or IPv6) +`ipv4($value, $message = '')` | Check that a string is a valid IPv4 +`ipv6($value, $message = '')` | Check that a string is a valid IPv6 `notWhitespaceOnly($value, $message = '')` | Check that a string contains at least one non-whitespace character ### File Assertions @@ -174,6 +177,7 @@ Method | Description ----------------------------------------------------- | -------------------------------------------------- `classExists($value, $message = '')` | Check that a value is an existing class name `subclassOf($value, $class, $message = '')` | Check that a class is a subclass of another +`interfaceExists($value, $message = '')` | Check that a value is an existing interface name `implementsInterface($value, $class, $message = '')` | Check that a class implements an interface `propertyExists($value, $property, $message = '')` | Check that a property exists in a class/object `propertyNotExists($value, $property, $message = '')` | Check that a property does not exist in a class/object @@ -190,6 +194,8 @@ Method | Description `minCount($array, $min, $message = '')` | Check that an array contains at least a certain number of elements `maxCount($array, $max, $message = '')` | Check that an array contains at most a certain number of elements `countBetween($array, $min, $max, $message = '')` | Check that an array has a count in the given range +`isList($array, $message = '')` | Check that an array is a non-associative list +`isMap($array, $message = '')` | Check that an array is associative and has strings as keys ### Function Assertions diff --git a/vendor/webmozart/assert/composer.json b/vendor/webmozart/assert/composer.json index c49e623a30921b01fd3374f9c3fad8a1a798057d..b6002ef3542bca29880820b3f1043c45b19e2056 100644 --- a/vendor/webmozart/assert/composer.json +++ b/vendor/webmozart/assert/composer.json @@ -1,7 +1,11 @@ { "name": "webmozart/assert", "description": "Assertions to validate method input/output with nice error messages.", - "keywords": ["assert", "check", "validate"], + "keywords": [ + "assert", + "check", + "validate" + ], "license": "MIT", "authors": [ { @@ -10,12 +14,18 @@ } ], "require": { - "php": "^5.3.3 || ^7.0" + "php": "^5.3.3 || ^7.0", + "symfony/polyfill-ctype": "^1.8" }, "require-dev": { "phpunit/phpunit": "^4.6", "sebastian/version": "^1.0.1" }, + "extra": { + "branch-alias": { + "dev-master": "1.3-dev" + } + }, "autoload": { "psr-4": { "Webmozart\\Assert\\": "src/" @@ -25,10 +35,5 @@ "psr-4": { "Webmozart\\Assert\\Tests\\": "tests/" } - }, - "extra": { - "branch-alias": { - "dev-master": "1.3-dev" - } } } diff --git a/vendor/webmozart/assert/src/Assert.php b/vendor/webmozart/assert/src/Assert.php index e2f89c0b0d6ce2da8268d4feeb81678cf7e26d42..db04bfbef3edeb8c2a95fcb68b3481047b778d8c 100644 --- a/vendor/webmozart/assert/src/Assert.php +++ b/vendor/webmozart/assert/src/Assert.php @@ -29,6 +29,7 @@ * @method static void nullOrIntegerish($value, $message = '') * @method static void nullOrFloat($value, $message = '') * @method static void nullOrNumeric($value, $message = '') + * @method static void nullOrNatural($value, $message = '') * @method static void nullOrBoolean($value, $message = '') * @method static void nullOrScalar($value, $message = '') * @method static void nullOrObject($value, $message = '') @@ -38,6 +39,7 @@ * @method static void nullOrIsTraversable($value, $message = '') * @method static void nullOrIsArrayAccessible($value, $message = '') * @method static void nullOrIsCountable($value, $message = '') + * @method static void nullOrIsIterable($value, $message = '') * @method static void nullOrIsInstanceOf($value, $class, $message = '') * @method static void nullOrNotInstanceOf($value, $class, $message = '') * @method static void nullOrIsInstanceOfAny($value, $classes, $message = '') @@ -45,6 +47,9 @@ * @method static void nullOrNotEmpty($value, $message = '') * @method static void nullOrTrue($value, $message = '') * @method static void nullOrFalse($value, $message = '') + * @method static void nullOrIp($value, $message = '') + * @method static void nullOrIpv4($value, $message = '') + * @method static void nullOrIpv6($value, $message = '') * @method static void nullOrEq($value, $value2, $message = '') * @method static void nullOrNotEq($value,$value2, $message = '') * @method static void nullOrSame($value, $value2, $message = '') @@ -62,6 +67,7 @@ * @method static void nullOrStartsWithLetter($value, $message = '') * @method static void nullOrEndsWith($value, $suffix, $message = '') * @method static void nullOrRegex($value, $pattern, $message = '') + * @method static void nullOrNotRegex($value, $pattern, $message = '') * @method static void nullOrAlpha($value, $message = '') * @method static void nullOrDigits($value, $message = '') * @method static void nullOrAlnum($value, $message = '') @@ -78,6 +84,7 @@ * @method static void nullOrWritable($value, $message = '') * @method static void nullOrClassExists($value, $message = '') * @method static void nullOrSubclassOf($value, $class, $message = '') + * @method static void nullOrInterfaceExists($value, $message = '') * @method static void nullOrImplementsInterface($value, $interface, $message = '') * @method static void nullOrPropertyExists($value, $property, $message = '') * @method static void nullOrPropertyNotExists($value, $property, $message = '') @@ -88,14 +95,18 @@ * @method static void nullOrCount($value, $key, $message = '') * @method static void nullOrMinCount($value, $min, $message = '') * @method static void nullOrMaxCount($value, $max, $message = '') - * @method static void nullCountBetween($value, $min, $max, $message = '') + * @method static void nullOrIsList($value, $message = '') + * @method static void nullOrIsMap($value, $message = '') + * @method static void nullOrCountBetween($value, $min, $max, $message = '') * @method static void nullOrUuid($values, $message = '') + * @method static void nullOrThrows($expression, $class = 'Exception', $message = '') * @method static void allString($values, $message = '') * @method static void allStringNotEmpty($values, $message = '') * @method static void allInteger($values, $message = '') * @method static void allIntegerish($values, $message = '') * @method static void allFloat($values, $message = '') * @method static void allNumeric($values, $message = '') + * @method static void allNatural($values, $message = '') * @method static void allBoolean($values, $message = '') * @method static void allScalar($values, $message = '') * @method static void allObject($values, $message = '') @@ -105,6 +116,7 @@ * @method static void allIsTraversable($values, $message = '') * @method static void allIsArrayAccessible($values, $message = '') * @method static void allIsCountable($values, $message = '') + * @method static void allIsIterable($values, $message = '') * @method static void allIsInstanceOf($values, $class, $message = '') * @method static void allNotInstanceOf($values, $class, $message = '') * @method static void allIsInstanceOfAny($values, $classes, $message = '') @@ -114,6 +126,9 @@ * @method static void allNotEmpty($values, $message = '') * @method static void allTrue($values, $message = '') * @method static void allFalse($values, $message = '') + * @method static void allIp($values, $message = '') + * @method static void allIpv4($values, $message = '') + * @method static void allIpv6($values, $message = '') * @method static void allEq($values, $value2, $message = '') * @method static void allNotEq($values,$value2, $message = '') * @method static void allSame($values, $value2, $message = '') @@ -131,6 +146,7 @@ * @method static void allStartsWithLetter($values, $message = '') * @method static void allEndsWith($values, $suffix, $message = '') * @method static void allRegex($values, $pattern, $message = '') + * @method static void allNotRegex($values, $pattern, $message = '') * @method static void allAlpha($values, $message = '') * @method static void allDigits($values, $message = '') * @method static void allAlnum($values, $message = '') @@ -147,6 +163,7 @@ * @method static void allWritable($values, $message = '') * @method static void allClassExists($values, $message = '') * @method static void allSubclassOf($values, $class, $message = '') + * @method static void allInterfaceExists($values, $message = '') * @method static void allImplementsInterface($values, $interface, $message = '') * @method static void allPropertyExists($values, $property, $message = '') * @method static void allPropertyNotExists($values, $property, $message = '') @@ -158,7 +175,10 @@ * @method static void allMinCount($values, $min, $message = '') * @method static void allMaxCount($values, $max, $message = '') * @method static void allCountBetween($values, $min, $max, $message = '') + * @method static void allIsList($values, $message = '') + * @method static void allIsMap($values, $message = '') * @method static void allUuid($values, $message = '') + * @method static void allThrows($expressions, $class = 'Exception', $message = '') * * @since 1.0 * @@ -444,6 +464,36 @@ public static function false($value, $message = '') } } + public static function ip($value, $message = '') + { + if (false === filter_var($value, FILTER_VALIDATE_IP)) { + static::reportInvalidArgument(sprintf( + $message ?: 'Expected a value to be an IP. Got: %s', + static::valueToString($value) + )); + } + } + + public static function ipv4($value, $message = '') + { + if (false === filter_var($value, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4)) { + static::reportInvalidArgument(sprintf( + $message ?: 'Expected a value to be an IPv4. Got: %s', + static::valueToString($value) + )); + } + } + + public static function ipv6($value, $message = '') + { + if (false === filter_var($value, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6)) { + static::reportInvalidArgument(sprintf( + $message ?: 'Expected a value to be an IPv6. Got %s', + static::valueToString($value) + )); + } + } + public static function eq($value, $value2, $message = '') { if ($value2 != $value) { @@ -636,6 +686,18 @@ public static function regex($value, $pattern, $message = '') } } + public static function notRegex($value, $pattern, $message = '') + { + if (preg_match($pattern, $value, $matches, PREG_OFFSET_CAPTURE)) { + static::reportInvalidArgument(sprintf( + $message ?: 'The value %s matches the pattern %s (at offset %d).', + static::valueToString($value), + static::valueToString($pattern), + $matches[0][1] + )); + } + } + public static function alpha($value, $message = '') { $locale = setlocale(LC_CTYPE, 0); @@ -835,6 +897,16 @@ public static function subclassOf($value, $class, $message = '') } } + public static function interfaceExists($value, $message = '') + { + if (!interface_exists($value)) { + static::reportInvalidArgument(sprintf( + $message ?: 'Expected an existing interface name. got %s', + static::valueToString($value) + )); + } + } + public static function implementsInterface($value, $interface, $message = '') { if (!in_array($interface, class_implements($value))) { @@ -888,7 +960,7 @@ public static function methodNotExists($classOrObject, $method, $message = '') public static function keyExists($array, $key, $message = '') { - if (!array_key_exists($key, $array)) { + if (!(isset($array[$key]) || array_key_exists($key, $array))) { static::reportInvalidArgument(sprintf( $message ?: 'Expected the key %s to exist.', static::valueToString($key) @@ -898,7 +970,7 @@ public static function keyExists($array, $key, $message = '') public static function keyNotExists($array, $key, $message = '') { - if (array_key_exists($key, $array)) { + if (isset($array[$key]) || array_key_exists($key, $array)) { static::reportInvalidArgument(sprintf( $message ?: 'Expected the key %s to not exist.', static::valueToString($key) @@ -951,6 +1023,30 @@ public static function countBetween($array, $min, $max, $message = '') } } + public static function isList($array, $message = '') + { + if (!is_array($array) || !$array || array_keys($array) !== range(0, count($array) - 1)) { + static::reportInvalidArgument( + $message ?: 'Expected list - non-associative array.' + ); + } + } + + public static function isMap($array, $message = '') + { + if ( + !is_array($array) || + !$array || + array_keys($array) !== array_filter(array_keys($array), function ($key) { + return is_string($key); + }) + ) { + static::reportInvalidArgument( + $message ?: 'Expected map - associative array with string keys.' + ); + } + } + public static function uuid($value, $message = '') { $value = str_replace(array('urn:', 'uuid:', '{', '}'), '', $value); @@ -1044,6 +1140,10 @@ protected static function valueToString($value) } if (is_object($value)) { + if (method_exists($value, '__toString')) { + return get_class($value).': '.self::valueToString($value->__toString()); + } + return get_class($value); }