The Symfony PHP framework
This report summarizes scanner evidence for symfony/symfony, a PHP project with 31,218 GitHub stars. SynthScan examined 2,053,323 lines of code across 15097 source files, recording 24400 pattern matches distributed across 10 syntactic categories. The legacy adjusted pattern signal is 11.6 (Moderate pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Payload schema: 1.0.0 · Engine: 2.0.0 · Scoring: heuristic-density-v1 · Scan date: 2026-10-31.
Can maintainers explain intent, assumptions, and trade-offs? 23440 finding(s).
Are imports declared and package/API names verified? 948 finding(s).
Are wrappers, guards, and repeated structures necessary? 23400 finding(s).
Which changes need focused human review? 24400 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 24400 distinct pattern matches across 10 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | src/Symfony/Bridge/Doctrine/Form/Type/DoctrineType.php | 86 | public function getQueryBuilderPartsForCachingHash(object $queryBuilder): ?array | CODE |
| LOW | src/Symfony/Bridge/Doctrine/Form/Type/EntityType.php | 74 | public function getQueryBuilderPartsForCachingHash(object $queryBuilder): ?array | CODE |
| LOW | …idge/Doctrine/Tests/ContainerAwareEventManagerTest.php | 31 | public function testDispatchEventRespectOrder() | CODE |
| LOW | …idge/Doctrine/Tests/ContainerAwareEventManagerTest.php | 41 | public function testUsingDoctrineSubscribersThrows() | CODE |
| LOW | …idge/Doctrine/Tests/ContainerAwareEventManagerTest.php | 77 | public function testAddEventListenerAfterDispatchEvent() | CODE |
| LOW | …idge/Doctrine/Tests/ContainerAwareEventManagerTest.php | 146 | public function testGetListenersWhenALazyListenerAddsListeners() | CODE |
| LOW | …idge/Doctrine/Tests/ContainerAwareEventManagerTest.php | 168 | public function testDispatchEventAfterALazyListenerFailedToInitialize() | CODE |
| LOW | …idge/Doctrine/Tests/ContainerAwareEventManagerTest.php | 220 | public function testRemoveLazyEventListenerByObject() | CODE |
| LOW | …idge/Doctrine/Tests/ContainerAwareEventManagerTest.php | 234 | public function testRemoveLazyEventListenerByObjectKeepsListenersLazy() | CODE |
| LOW | …idge/Doctrine/Tests/ContainerAwareEventManagerTest.php | 259 | public function testDispatchEventAfterRemovingLazyEventListenerByObject() | CODE |
| LOW | …idge/Doctrine/Tests/ContainerAwareEventManagerTest.php | 270 | public function testRemoveLazyEventSubscriberByObject() | CODE |
| LOW | …idge/Doctrine/Tests/ContainerAwareEventManagerTest.php | 280 | public function testRemoveEventListenerOnSeveralEvents() | CODE |
| LOW | …idge/Doctrine/Tests/ContainerAwareEventManagerTest.php | 292 | public function testRemoveAllEventListener() | CODE |
| LOW | …idge/Doctrine/Tests/ContainerAwareEventManagerTest.php | 307 | public function testRemoveEventListenerAfterDispatchEvent() | CODE |
| LOW | …/Symfony/Bridge/Doctrine/Tests/ManagerRegistryTest.php | 85 | public static function provideResetNonLazyServiceCases(): iterable | CODE |
| LOW | …/Symfony/Bridge/Doctrine/Tests/ManagerRegistryTest.php | 112 | public function testResetServiceWithNativeLazyObjects(string $class) | CODE |
| LOW | …/Symfony/Bridge/Doctrine/Tests/ManagerRegistryTest.php | 139 | public static function provideResetServiceWithNativeLazyObjectsCases(): iterable | CODE |
| LOW | …/Symfony/Bridge/Doctrine/Tests/ManagerRegistryTest.php | 173 | public function testResetServiceWillNotNestFurtherLazyServicesWithinEachOther() | CODE |
| LOW | …/Symfony/Bridge/Doctrine/Tests/ManagerRegistryTest.php | 210 | private function dumpLazyServiceDoctrineBridgeContainerAsFiles() | CODE |
| LOW | …c/Symfony/Bridge/Doctrine/Tests/DoctrineTestHelper.php | 65 | public static function createTestConfigurationWithXmlLoader(): Configuration | CODE |
| LOW | …rine/Tests/DataCollector/DoctrineDataCollectorTest.php | 96 | public function testCollectTimeWithFloatExecutionMS() | CODE |
| LOW | …rine/Tests/DataCollector/DoctrineDataCollectorTest.php | 126 | public function testCollectQueryWithNoTypes() | CODE |
| LOW | …rine/Tests/DataCollector/DoctrineDataCollectorTest.php | 182 | public function testCollectQueryWithNoParams() | CODE |
| LOW | …rine/Tests/DataCollector/DoctrineDataCollectorTest.php | 231 | public function testQueriesDuringTerminationAreCollectedOnlyForTheLatestProfile() | CODE |
| LOW | …rine/Tests/DataCollector/DoctrineDataCollectorTest.php | 257 | public function testResetBeforeSavingKeepsThePreviousProfileQueries() | CODE |
| LOW | …trine/Tests/Middleware/IdleConnection/ListenerTest.php | 41 | public function testOnKernelRequestClosesEveryExpiredConnection() | CODE |
| LOW | …trine/Tests/Middleware/IdleConnection/ListenerTest.php | 72 | public function testOnKernelRequestShouldSkipSubrequests() | CODE |
| LOW | …dge/Doctrine/Tests/Middleware/Debug/MiddlewareTest.php | 162 | public static function provideEndTransactionMethod(): array | CODE |
| LOW | …dge/Doctrine/Tests/Middleware/Debug/MiddlewareTest.php | 204 | public static function provideExecuteAndEndTransactionMethods(): array | CODE |
| LOW | …dge/Doctrine/Tests/Middleware/Debug/MiddlewareTest.php | 223 | public function testGlobalDoctrineDuration(callable $sqlMethod, callable $endTransactionMethod) | CODE |
| LOW⚡ | …dge/Doctrine/Tests/Form/DoctrineOrmTypeGuesserTest.php | 53 | public function testRequiredGuesserSimpleFieldNotNullable() | CODE |
| LOW⚡ | …dge/Doctrine/Tests/Form/DoctrineOrmTypeGuesserTest.php | 62 | public function testRequiredGuesserSimpleFieldNullable() | CODE |
| LOW⚡ | …dge/Doctrine/Tests/Form/DoctrineOrmTypeGuesserTest.php | 71 | public function testRequiredGuesserOneToOneNullable() | CODE |
| LOW | …dge/Doctrine/Tests/Form/DoctrineOrmTypeGuesserTest.php | 82 | public function testRequiredGuesserOneToOneExplicitNullable() | CODE |
| LOW | …dge/Doctrine/Tests/Form/DoctrineOrmTypeGuesserTest.php | 95 | public function testRequiredGuesserOneToOneNotNullable() | CODE |
| LOW | …dge/Doctrine/Tests/Form/DoctrineOrmTypeGuesserTest.php | 108 | public function testRequiredGuesserOneToMany() | CODE |
| LOW | …ine/Tests/Form/ChoiceList/DoctrineChoiceLoaderTest.php | 91 | public function testLoadChoiceListUsesObjectLoaderIfAvailable() | CODE |
| LOW | …ine/Tests/Form/ChoiceList/DoctrineChoiceLoaderTest.php | 138 | public function testLoadValuesForChoicesDoesNotLoadIfEmptyChoices() | CODE |
| LOW | …ine/Tests/Form/ChoiceList/DoctrineChoiceLoaderTest.php | 152 | public function testLoadValuesForChoicesDoesNotLoadIfSingleIntId() | CODE |
| LOW | …ine/Tests/Form/ChoiceList/DoctrineChoiceLoaderTest.php | 175 | public function testLoadValuesForChoicesDoesNotLoadIfSingleIntIdAndValueGiven() | CODE |
| LOW | …ine/Tests/Form/ChoiceList/DoctrineChoiceLoaderTest.php | 196 | public function testLoadValuesForChoicesDoesNotLoadIfValueIsIdReader() | CODE |
| LOW | …ine/Tests/Form/ChoiceList/DoctrineChoiceLoaderTest.php | 243 | public function testLoadChoicesForValuesDoesNotLoadIfEmptyValues() | CODE |
| LOW | …ine/Tests/Form/ChoiceList/DoctrineChoiceLoaderTest.php | 257 | public function testLegacyLoadChoicesForValuesLoadsOnlyChoicesIfValueUseIdReader() | CODE |
| LOW | …ine/Tests/Form/ChoiceList/DoctrineChoiceLoaderTest.php | 283 | public function testLoadChoicesForValuesLoadsOnlyChoicesIfValueUseIdReader() | CODE |
| LOW | …ine/Tests/Form/ChoiceList/DoctrineChoiceLoaderTest.php | 320 | public function testLoadChoicesForValuesLoadsAllIfSingleIntIdAndValueGiven() | CODE |
| LOW | …ine/Tests/Form/ChoiceList/DoctrineChoiceLoaderTest.php | 341 | public function testLoadChoicesForValuesLoadsOnlyChoicesIfValueIsIdReader() | CODE |
| LOW | …ine/Tests/Form/ChoiceList/DoctrineChoiceLoaderTest.php | 376 | public function testPassingIdReaderWithoutSingleIdEntity() | CODE |
| LOW | …ne/Tests/Form/ChoiceList/ORMQueryBuilderLoaderTest.php | 42 | public function testIdentifierTypeIsStringArray() | CODE |
| LOW | …ne/Tests/Form/ChoiceList/ORMQueryBuilderLoaderTest.php | 47 | public function testIdentifierTypeIsIntegerArray() | CODE |
| LOW | …ne/Tests/Form/ChoiceList/ORMQueryBuilderLoaderTest.php | 83 | public function testFilterNonIntegerValues() | CODE |
| LOW | …ne/Tests/Form/ChoiceList/ORMQueryBuilderLoaderTest.php | 186 | public function testUidThrowProperException(string $entityClass) | CODE |
| LOW | …ne/Tests/Form/ChoiceList/ORMQueryBuilderLoaderTest.php | 216 | public function testEmbeddedIdentifierName() | CODE |
| LOW | …m/DataTransformer/CollectionToArrayTransformerTest.php | 64 | public function testTransformExpectsArrayOrCollection() | CODE |
| LOW | …m/DataTransformer/CollectionToArrayTransformerTest.php | 70 | public function testTransformReadableCollection() | CODE |
| LOW | …m/DataTransformer/CollectionToArrayTransformerTest.php | 191 | public function testReverseTransformEmpty() | CODE |
| LOW | …Doctrine/Tests/Form/Type/EntityTypePerformanceTest.php | 105 | public function testCollapsedEntityFieldWithChoices() | CODE |
| LOW | …Doctrine/Tests/Form/Type/EntityTypePerformanceTest.php | 122 | public function testCollapsedEntityFieldWithPreferredChoices() | CODE |
| LOW⚡ | …ony/Bridge/Doctrine/Tests/Form/Type/EntityTypeTest.php | 225 | public function testConfigureQueryBuilderWithNonQueryBuilderAndNonClosure() | CODE |
| LOW⚡ | …ony/Bridge/Doctrine/Tests/Form/Type/EntityTypeTest.php | 235 | public function testConfigureQueryBuilderWithClosureReturningNonQueryBuilder() | CODE |
| LOW⚡ | …ony/Bridge/Doctrine/Tests/Form/Type/EntityTypeTest.php | 245 | public function testConfigureQueryBuilderWithClosureReturningNullUseDefault() | CODE |
| 23328 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …y/Bridge/Monolog/Tests/Handler/NotifierHandlerTest.php | 125 | $recipient = new Recipient('admin@example.com'); | CODE |
| LOW | …y/Bridge/Monolog/Tests/Handler/NotifierHandlerTest.php | 151 | $recipient = new Recipient('admin@example.com'); | CODE |
| LOW | …tension/AbstractBootstrap5HorizontalLayoutTestCase.php | 321 | 'placeholder' => 'name', | CODE |
| LOW | …ig/Tests/Extension/FormExtensionDaisyUi5LayoutTest.php | 155 | 'placeholder' => 'Placeholder&Not&Translated', | CODE |
| LOW | …ig/Tests/Extension/FormExtensionDaisyUi5LayoutTest.php | 207 | 'placeholder' => 'Test&Me', | CODE |
| LOW | …ig/Tests/Extension/FormExtensionDaisyUi5LayoutTest.php | 239 | 'placeholder' => 'Placeholder&Not&Translated', | CODE |
| LOW | …Bridge/Twig/Tests/Extension/AbstractLayoutTestCase.php | 931 | // The hidden attribute is only defaulted for the "placeholder" option: | COMMENT |
| LOW⚡ | …Bridge/Twig/Tests/Extension/AbstractLayoutTestCase.php | 2764 | ->add('lastName', 'Symfony\Component\Form\Extension\Core\Type\TextType', ['attr' => ['placeholder' => 'Bar'] | CODE |
| LOW⚡ | …Bridge/Twig/Tests/Extension/AbstractLayoutTestCase.php | 2780 | ->add('lastName', 'Symfony\Component\Form\Extension\Core\Type\TextType', ['attr' => ['placeholder' => 'Bar'] | CODE |
| LOW | …Bridge/Twig/Tests/Extension/AbstractLayoutTestCase.php | 78 | 'placeholder' => 'placeholder', | CODE |
| LOW | …Bridge/Twig/Tests/Extension/AbstractLayoutTestCase.php | 648 | 'placeholder' => 'Placeholder&Not&Translated', | CODE |
| LOW | …Bridge/Twig/Tests/Extension/AbstractLayoutTestCase.php | 874 | 'placeholder' => 'Select&Anything&Not&Me', | CODE |
| LOW | …Bridge/Twig/Tests/Extension/AbstractLayoutTestCase.php | 898 | 'placeholder' => 'Test&Me', | CODE |
| LOW | …Bridge/Twig/Tests/Extension/AbstractLayoutTestCase.php | 933 | $this->assertWidgetMatchesXpath($form->createView(), ['placeholder' => ''], | CODE |
| LOW | …Bridge/Twig/Tests/Extension/AbstractLayoutTestCase.php | 1062 | 'placeholder' => 'Test&Me', | CODE |
| LOW | …Bridge/Twig/Tests/Extension/AbstractLayoutTestCase.php | 1129 | 'placeholder' => 'Placeholder&Not&Translated', | CODE |
| LOW | …Bridge/Twig/Tests/Extension/AbstractLayoutTestCase.php | 1175 | 'placeholder' => 'Test&Me', | CODE |
| LOW | …Bridge/Twig/Tests/Extension/AbstractLayoutTestCase.php | 1203 | 'placeholder' => 'Placeholder&Not&Translated', | CODE |
| LOW | …Bridge/Twig/Tests/Extension/AbstractLayoutTestCase.php | 1337 | 'placeholder' => 'Select&Country', | CODE |
| LOW | …Bridge/Twig/Tests/Extension/AbstractLayoutTestCase.php | 1395 | 'placeholder' => 'Change&Me', | CODE |
| LOW | …Bridge/Twig/Tests/Extension/AbstractLayoutTestCase.php | 1591 | 'placeholder' => 'Change&Me', | CODE |
| LOW | …Bridge/Twig/Tests/Extension/AbstractLayoutTestCase.php | 1619 | 'placeholder' => ['year' => 'Change&Me'], | CODE |
| LOW | …Bridge/Twig/Tests/Extension/AbstractLayoutTestCase.php | 1725 | 'placeholder' => '', | CODE |
| LOW | …Bridge/Twig/Tests/Extension/AbstractLayoutTestCase.php | 2257 | 'placeholder' => 'Change&Me', | CODE |
| LOW | …Bridge/Twig/Tests/Extension/AbstractLayoutTestCase.php | 2284 | 'placeholder' => ['hour' => 'Change&Me'], | CODE |
| LOW | …Bridge/Twig/Tests/Extension/AbstractLayoutTestCase.php | 2334 | 'placeholder' => 'Select&Timezone', | CODE |
| LOW | …Bridge/Twig/Tests/Extension/AbstractLayoutTestCase.php | 2910 | 'placeholder' => 'Enter a message to %company%', | CODE |
| LOW⚡ | …g/Tests/Extension/AbstractBootstrap3LayoutTestCase.php | 803 | // The hidden attribute is only defaulted for the "placeholder" option: | COMMENT |
| LOW⚡ | …g/Tests/Extension/AbstractBootstrap3LayoutTestCase.php | 805 | $this->assertWidgetMatchesXpath($form->createView(), ['placeholder' => '', 'attr' => ['class' => 'my&class']], | CODE |
| LOW | …g/Tests/Extension/AbstractBootstrap3LayoutTestCase.php | 513 | 'placeholder' => 'Placeholder&Not&Translated', | CODE |
| LOW | …g/Tests/Extension/AbstractBootstrap3LayoutTestCase.php | 750 | 'placeholder' => 'Select&Anything&Not&Me', | CODE |
| LOW | …g/Tests/Extension/AbstractBootstrap3LayoutTestCase.php | 775 | 'placeholder' => 'Test&Me', | CODE |
| LOW | …g/Tests/Extension/AbstractBootstrap3LayoutTestCase.php | 906 | 'placeholder' => 'Test&Me', | CODE |
| LOW | …g/Tests/Extension/AbstractBootstrap3LayoutTestCase.php | 1177 | 'placeholder' => 'Test&Me', | CODE |
| LOW | …g/Tests/Extension/AbstractBootstrap3LayoutTestCase.php | 1225 | 'placeholder' => 'Placeholder&Not&Translated', | CODE |
| LOW | …g/Tests/Extension/AbstractBootstrap3LayoutTestCase.php | 1571 | 'placeholder' => 'Select&Country', | CODE |
| LOW | …g/Tests/Extension/AbstractBootstrap3LayoutTestCase.php | 1627 | 'placeholder' => 'Change&Me', | CODE |
| LOW | …g/Tests/Extension/AbstractBootstrap3LayoutTestCase.php | 1831 | 'placeholder' => 'Change&Me', | CODE |
| LOW | …g/Tests/Extension/AbstractBootstrap3LayoutTestCase.php | 1863 | 'placeholder' => ['year' => 'Change&Me'], | CODE |
| LOW | …g/Tests/Extension/AbstractBootstrap3LayoutTestCase.php | 1970 | 'placeholder' => '', | CODE |
| LOW | …g/Tests/Extension/AbstractBootstrap3LayoutTestCase.php | 2615 | 'placeholder' => 'Change&Me', | CODE |
| LOW | …g/Tests/Extension/AbstractBootstrap3LayoutTestCase.php | 2644 | 'placeholder' => ['hour' => 'Change&Me'], | CODE |
| LOW | …g/Tests/Extension/AbstractBootstrap3LayoutTestCase.php | 2685 | 'placeholder' => 'Select&Timezone', | CODE |
| LOW⚡ | …g/Tests/Extension/AbstractBootstrap5LayoutTestCase.php | 812 | // The hidden attribute is only defaulted for the "placeholder" option: | COMMENT |
| LOW⚡ | …g/Tests/Extension/AbstractBootstrap5LayoutTestCase.php | 814 | $this->assertWidgetMatchesXpath($form->createView(), ['placeholder' => '', 'attr' => ['class' => 'my&class']], | CODE |
| LOW | …g/Tests/Extension/AbstractBootstrap5LayoutTestCase.php | 452 | 'placeholder' => 'Test&Me', | CODE |
| LOW | …g/Tests/Extension/AbstractBootstrap5LayoutTestCase.php | 522 | 'placeholder' => 'Placeholder&Not&Translated', | CODE |
| LOW | …g/Tests/Extension/AbstractBootstrap5LayoutTestCase.php | 759 | 'placeholder' => 'Select&Anything&Not&Me', | CODE |
| LOW | …g/Tests/Extension/AbstractBootstrap5LayoutTestCase.php | 784 | 'placeholder' => 'Test&Me', | CODE |
| LOW | …g/Tests/Extension/AbstractBootstrap5LayoutTestCase.php | 1018 | 'placeholder' => 'Select&Country', | CODE |
| LOW | …g/Tests/Extension/AbstractBootstrap5LayoutTestCase.php | 1090 | 'placeholder' => 'Change&Me', | CODE |
| LOW | …g/Tests/Extension/AbstractBootstrap5LayoutTestCase.php | 1318 | 'placeholder' => 'Change&Me', | CODE |
| LOW | …g/Tests/Extension/AbstractBootstrap5LayoutTestCase.php | 1354 | 'placeholder' => ['year' => 'Change&Me'], | CODE |
| LOW | …g/Tests/Extension/AbstractBootstrap5LayoutTestCase.php | 1456 | 'placeholder' => '', | CODE |
| LOW | …g/Tests/Extension/AbstractBootstrap5LayoutTestCase.php | 1752 | 'placeholder' => 'Change&Me', | CODE |
| LOW | …g/Tests/Extension/AbstractBootstrap5LayoutTestCase.php | 1787 | 'placeholder' => ['hour' => 'Change&Me'], | CODE |
| LOW | …g/Tests/Extension/AbstractBootstrap5LayoutTestCase.php | 1834 | 'placeholder' => 'Select&Timezone', | CODE |
| LOW | …g/Tests/Extension/AbstractBootstrap5LayoutTestCase.php | 1877 | 'placeholder' => 'name', | CODE |
| LOW | …g/Tests/Extension/AbstractBootstrap4LayoutTestCase.php | 680 | 'placeholder' => 'Test&Me', | CODE |
| LOW | …g/Tests/Extension/AbstractBootstrap4LayoutTestCase.php | 722 | 'placeholder' => 'Placeholder&Not&Translated', | CODE |
| 886 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | src/Symfony/Component/Workflow/Tests/WorkflowTest.php | 735 | // ┌──────┐ ┌──────────────────────┐ ┌───┐ ┌─────────────┐ ┌───┐ | COMMENT |
| MEDIUM⚡ | src/Symfony/Component/Workflow/Tests/WorkflowTest.php | 737 | // └──────┘ └──────────────────────┘ └───┘ └─────────────┘ └───┘ | COMMENT |
| MEDIUM⚡ | src/Symfony/Component/Workflow/Tests/WorkflowTest.php | 741 | // ┌───────────────────────────────┐ | COMMENT |
| MEDIUM⚡ | src/Symfony/Component/Workflow/Tests/WorkflowTest.php | 743 | // └───────────────────────────────┘ | COMMENT |
| MEDIUM⚡ | src/Symfony/Component/Workflow/Tests/WorkflowTest.php | 913 | // ┌───────────────────┐ ┌─────────────┐ ┌─────────────┐ 4 | COMMENT |
| MEDIUM⚡ | src/Symfony/Component/Workflow/Tests/WorkflowTest.php | 914 | // │ prepare_leg │ ──▶ │ build_leg │ ──▶ │ leg_created │ ───────────────────────────┐ | COMMENT |
| MEDIUM⚡ | src/Symfony/Component/Workflow/Tests/WorkflowTest.php | 915 | // └───────────────────┘ └─────────────┘ └─────────────┘ │ | COMMENT |
| MEDIUM⚡ | src/Symfony/Component/Workflow/Tests/WorkflowTest.php | 919 | // ┌──────┐ ┌───────────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌──────┐ | COMMENT |
| MEDIUM⚡ | src/Symfony/Component/Workflow/Tests/WorkflowTest.php | 921 | // └──────┘ └───────────────────┘ └─────────────┘ └─────────────┘ └─────────────┘ └──────┘ | COMMENT |
| MEDIUM⚡ | src/Symfony/Component/Workflow/Tests/WorkflowTest.php | 925 | // ┌───────────────────┐ │ | COMMENT |
| MEDIUM⚡ | src/Symfony/Component/Workflow/Tests/WorkflowTest.php | 926 | // │ stopwatch_running │ ───────────────────────────────────────────────────────────────────┘ | COMMENT |
| MEDIUM⚡ | src/Symfony/Component/Workflow/Tests/WorkflowTest.php | 927 | // └───────────────────┘ | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | .github/sync-maintained-versions.php | 1 | <?php | COMMENT |
| LOW | …c/Symfony/Contracts/HttpClient/HttpClientInterface.php | 41 | // mixed - if set, implementations MUST set the "body" option to the JSON-encoded | COMMENT |
| LOW | …c/Symfony/Contracts/HttpClient/HttpClientInterface.php | 61 | // callable(int $dlNow, int $dlSize, array $info) - throwing any exceptions MUST abort the | COMMENT |
| LOW | src/Symfony/Component/Form/FormRenderer.php | 121 | COMMENT | |
| LOW | src/Symfony/Component/Form/FormRenderer.php | 141 | // functions to fall back from the custom to the parent implementation. | COMMENT |
| LOW | src/Symfony/Component/Form/FormRenderer.php | 221 | // Do not use array_replace_recursive(), otherwise array variables | COMMENT |
| LOW | …DataCollector/Proxy/ResolvedTypeDataCollectorProxy.php | 81 | public function finishView(FormView $view, FormInterface $form, array $options): void | COMMENT |
| LOW | …xtension/Validator/ViolationMapper/ViolationMapper.php | 61 | COMMENT | |
| LOW | src/Symfony/Component/Form/Tests/FormConfigTest.php | 41 | ['a:'], | COMMENT |
| LOW | …ures/Attributes/SerializedPerGroupWithContextDummy.php | 21 | #[Groups(['a', 'b'])] | COMMENT |
| LOW | …fony/Component/Validator/Constraints/LuhnValidator.php | 61 | $length = \strlen($value); | COMMENT |
| LOW | …/Validator/Tests/Constraints/FileValidatorTestCase.php | 101 | // 1001 bytes | "Size of 1001 bytes exceeded limit of 1000 bytes" | COMMENT |
| LOW | src/Symfony/Component/Intl/Util/IntlTestHelper.php | 41 | // * the intl extension is not loaded | COMMENT |
| LOW | …nt/Translation/Tests/Extractor/PhpAstExtractorTest.php | 301 | // 'loop-next-iteration-value' => 'loop-next-iteration-value', | COMMENT |
| LOW | …y/Component/Config/Tests/Definition/StringNodeTest.php | 21 | #[TestWith([''])] | COMMENT |
| LOW | src/Symfony/Component/ExpressionLanguage/Parser.php | 401 | $node = new Node\GetAttrNode($node, $arg, new Node\ArgumentsNode(), Node\GetAttrNode::ARRAY_CALL, tr | COMMENT |
| LOW | …opertyInfo/Tests/Extractor/ReflectionExtractorTest.php | 281 | #[TestWith([Dummy::class, 'setSelf', 'self'])] | COMMENT |
| LOW | …opertyInfo/Tests/Extractor/ReflectionExtractorTest.php | 301 | #[TestWith([FalseAccessorDummy::class, 'settings', null])] | COMMENT |
| LOW | …nt/Messenger/Transport/Serialization/PhpSerializer.php | 101 | } | COMMENT |
| LOW | …fony/Component/Workflow/Tests/WorkflowBuilderTrait.php | 181 | COMMENT | |
| LOW | …fony/Component/Workflow/Tests/WorkflowBuilderTrait.php | 221 | // | | c | <-----+ | b | | COMMENT |
| LOW | src/Symfony/Component/Workflow/Tests/WorkflowTest.php | 921 | // └──────┘ └───────────────────┘ └─────────────┘ └─────────────┘ └─────────────┘ └──────┘ | COMMENT |
| LOW | src/Symfony/Component/Workflow/Tests/WorkflowTest.php | 941 | // from: prepare_leg | COMMENT |
| LOW | …Workflow/Tests/Validator/StateMachineValidatorTest.php | 101 | COMMENT | |
| LOW | …omponent/Routing/Tests/Requirement/RequirementTest.php | 21 | { | COMMENT |
| LOW | …omponent/Routing/Tests/Requirement/RequirementTest.php | 301 | #[TestWith(['61c86569-e477-3ed9-9e3b-1562edb03277'])] | COMMENT |
| LOW | …/Symfony/Component/Routing/Loader/DelegatingLoader.php | 41 | // This can happen if a fatal error occurs in parent::load(). | COMMENT |
| LOW | src/Symfony/Component/Console/Resources/completion.zsh | 1 | #compdef {{ COMMAND_NAME }} | COMMENT |
| LOW | …ymfony/Component/Console/Tests/Input/ArgvInputTest.php | 461 | } | COMMENT |
| LOW | …ymfony/Component/Console/Tests/shell-completion/try.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | …ony/Component/Console/Tests/shell-completion/cases.txt | 1 | # Test cases for the shell completion scripts. | COMMENT |
| LOW | …ony/Component/Console/Tests/shell-completion/docker.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | …mponent/Console/Tests/shell-completion/drivers/zsh.zsh | 1 | #!/usr/bin/env zsh | COMMENT |
| LOW | …mponent/Console/Tests/shell-completion/drivers/bash.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | …Tests/Fixtures/Style/SymfonyStyle/output/output_12.txt | 1 | COMMENT | |
| LOW | src/Symfony/Bundle/FrameworkBundle/FrameworkBundle.php | 121 | #[RequiredBundle(ConsoleBundle::class, ignoreOnInvalid: true)] | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | …/Symfony/Component/OptionsResolver/OptionsResolver.php | 1213 | # Define a recursive subroutine for matching balanced parentheses | COMMENT |
| MEDIUM | …y/Component/DependencyInjection/Kernel/KernelTrait.php | 311 | @file_put_contents($tag, "Signature: 8a477f597d28d172789f06886806bc55\n# This file is a cache directory | CODE |
| MEDIUM | src/Symfony/Component/Console/Resources/completion.bash | 1 | # This file is part of the Symfony package. | COMMENT |
| MEDIUM | src/Symfony/Component/Console/Resources/completion.zsh | 3 | # This file is part of the Symfony package. | COMMENT |
| MEDIUM | …ymfony/Component/Console/Tests/shell-completion/run.sh | 3 | # This file is part of the Symfony package. | COMMENT |
| MEDIUM | …ymfony/Component/Console/Tests/shell-completion/try.sh | 3 | # This file is part of the Symfony package. | COMMENT |
| MEDIUM | …ony/Component/Console/Tests/shell-completion/docker.sh | 3 | # This file is part of the Symfony package. | COMMENT |
| MEDIUM | …sole/Tests/shell-completion/drivers/bash-completion.sh | 1 | # This file is part of the Symfony package. | COMMENT |
| MEDIUM | …mponent/Console/Tests/shell-completion/drivers/zsh.zsh | 3 | # This file is part of the Symfony package. | COMMENT |
| MEDIUM | …mponent/Console/Tests/shell-completion/drivers/bash.sh | 3 | # This file is part of the Symfony package. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | …urces/views/Script/Mermaid/mermaid-flowchart-v2.min.js | 155 | `+o.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=a.text):r.push(o);continue}if(e){let a="Infinite loop on byt | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | .github/sync-maintained-versions.php | 38 | // Identify the checked-out branch from the source tree itself (robust to detached | COMMENT |
| MEDIUM | …onent/Messenger/Command/FailedMessagesRetryCommand.php | 232 | // this avoids using get(), which for some less-robust | COMMENT |
| MEDIUM | …mponent/PasswordHasher/Hasher/SodiumPasswordHasher.php | 87 | // Accept validating non-argon passwords for seamless migrations | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | src/Symfony/Component/Notifier/Bridge/Prelude/README.md | 19 | PRELUDE_DSN=prelude://YOUR_API_KEY@default?sender=YOUR_SENDER_ID | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …Symfony/Component/Console/Tester/ApplicationTester.php | 20 | * When testing an application, don't forget to disable the auto exit flag: | COMMENT |
| MEDIUM | …dle/FrameworkBundle/Command/DebugAutowiringCommand.php | 33 | #[AsCommand(name: 'debug:autowiring', description: 'List classes/interfaces you can use for autowiring')] | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …ony/Component/Console/Tests/shell-completion/docker.sh | 12 | # Usage: | COMMENT |