<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/i-built-an-open-source-static-flow-analyzer-for-symfony-phpflow-v0-1-0-s638p1ilc" -->

---
title: I built an open-source static flow analyzer for Symfony...
description: A new open-source static flow analyzer called PHPFlow has launched for PHP/Symfony applications, aiming to answer questions like what happens when a given...
canonical: https://daily.dev/posts/i-built-an-open-source-static-flow-analyzer-for-symfony-phpflow-v0-1-0-s638p1ilc
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: I built an open-source static flow analyzer for Symfony — PHPFlow v0.1.0 | daily.dev
og:description: A new open-source static flow analyzer called PHPFlow has launched for PHP/Symfony applications, aiming to answer questions like what happens when a given...
og:url: https://daily.dev/posts/i-built-an-open-source-static-flow-analyzer-for-symfony-phpflow-v0-1-0-s638p1ilc
og:image: https://api.daily.dev/og/posts/S638P1iLc.png
og:image:alt: I built an open-source static flow analyzer for Symfony — PHPFlow v0.1.0
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# I built an open-source static flow analyzer for Symfony — PHPFlow v0.1.0

**[Symfony Developers](https://daily.dev/sources/symfonydevs)** · [@patryyyck](https://daily.dev/patryyyck) · 2 min read · 5 upvotes · 1 comments

## Summary

A new open-source static flow analyzer called PHPFlow has launched for PHP/Symfony applications, aiming to answer questions like what happens when a given route is called by tracing through controllers, services, Messenger handlers, repositories, and database or external API calls. It works without executing the target application, reconstructing execution flows as a graph and generating an interactive HTML viewer with search, functional lanes, and critical-path exploration. Version 0.1.0 supports Symfony routing, dependency injection, Messenger, Doctrine DBAL/QueryBuilder, HTTP calls, and exceptions. The tool is deliberately conservative, avoiding inferred relationships it cannot prove statically. The creator is seeking feedback from real-world Symfony codebases to identify missed patterns.

## Content

Hi everyone,

I’ve just released the first public version of **PHPFlow**, an open-source static flow analyzer for PHP/Symfony applications.

The idea came from a problem I regularly run into on larger applications: answering a question like **“what actually happens when this route is called?”** can mean jumping through a controller, several services, Messenger dispatches and handlers, repositories, database queries and external APIs.

PHPFlow analyzes the source code without running the target application and reconstructs those flows as a graph.

For example, it can help answer:

- What happens when this Symfony route is called?
- Which routes/messages can reach this database table?
- What depends on this service?
- Where is this Messenger message handled?
- Which flows call this external API?
- Where can this exception surface?

v0.1.0 currently understands Symfony routes, dependency injection, Messenger, repositories, Doctrine DBAL/QueryBuilder, external HTTP calls, exceptions and a number of control-flow patterns.

It also generates a self-contained interactive HTML viewer with search, functional lanes, Messenger boundaries, minimap, path-to-effects and critical-path exploration.

PHPFlow is deliberately conservative: **if it cannot prove a relationship statically, it doesn’t invent one.** It also never boots or executes the application being analyzed.

There’s a bundled Symfony demo, so after cloning:

```
make setup
make demo
```

I’m especially interested in trying it against real-world Symfony applications now. If you give it a try and it misses a pattern used by your project, I’d really like to hear about it.

GitHub: [github.com/patryyyck/phpflow](https://github.com/patryyyck/phpflow?utm_source=chatgpt.com)

Feedback, bug reports and criticism are very welcome.

## Community discussion

Top comments from developers on daily.dev.

**@derroylo** · 0 upvotes

> Looks interesting, will give it a try :)

## Similar posts on daily.dev

- [Zero-Waste Symfony: Stripping the Overhead ‣ harasim.dev](https://daily.dev/posts/zero-waste-symfony-stripping-the-overhead-harasim-dev-eugyu8yvd) · Harasim.dev · 6 upvotes · 0 comments

---

Tags: [#open-source](https://daily.dev/tags/open-source), [#php](https://daily.dev/tags/php), [#symfony](https://daily.dev/tags/symfony)

[View this post on daily.dev](https://daily.dev/posts/i-built-an-open-source-static-flow-analyzer-for-symfony-phpflow-v0-1-0-s638p1ilc)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"DiscussionForumPosting","mainEntityOfPage":"https://daily.dev/posts/i-built-an-open-source-static-flow-analyzer-for-symfony-phpflow-v0-1-0-s638p1ilc","headline":"I built an open-source static flow analyzer for Symfony — PHPFlow v0.1.0","text":"A new open-source static flow analyzer called PHPFlow has launched for PHP/Symfony applications, aiming to answer questions like what happens when a given route is called by tracing through controllers, services, Messenger handlers, repositories, and database or external API calls. It works without executing the target application, reconstructing execution flows as a graph and generating an interactive HTML viewer with search, functional lanes, and critical-path exploration. Version 0.1.0 supports Symfony routing, dependency injection, Messenger, Doctrine DBAL/QueryBuilder, HTTP calls, and exceptions. The tool is deliberately conservative, avoiding inferred relationships it cannot prove statically. The creator is seeking feedback from real-world Symfony codebases to identify missed patterns.","url":"https://daily.dev/posts/i-built-an-open-source-static-flow-analyzer-for-symfony-phpflow-v0-1-0-s638p1ilc","datePublished":"2026-09-02T09:23:40.150Z","dateModified":"2026-09-02T09:23:59.137Z","author":{"@type":"Person","name":"Patrick","url":"https://daily.dev/patryyyck","image":"https://avatars.githubusercontent.com/u/1230301?v=4","interactionStatistic":{"@type":"InteractionCounter","interactionType":{"@type":"EndorseAction"},"userInteractionCount":40}},"image":"https://media.daily.dev/image/upload/s--H5a8yJzM--/f_auto/v1788107280/posts/arqCt8E87?_a=BAMAMicg0","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":5},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":1}],"comment":[{"@type":"Comment","text":"Looks interesting, will give it a try :)","datePublished":"2026-09-09T10:31:28.984Z","url":"https://daily.dev/posts/S638P1iLc#c-N6OCLdzzP","author":{"@type":"Person","name":"Carsten Lohmann","url":"https://daily.dev/derroylo","image":"https://avatars.githubusercontent.com/u/72140754?v=4"}}],"isPartOf":{"@type":"WebPage","url":"https://daily.dev/squads/symfonydevs","name":"Symfony Developers"}}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Symfony Developers","item":"https://daily.dev/squads/symfonydevs"},{"@type":"ListItem","position":3,"name":"I built an open-source static flow analyzer for Symfony — PHPFlow v0.1.0"}]}
```

