Greg Korba ๐Ÿ› ๏ธ๐Ÿ›น Codito's Avatar

Greg Korba ๐Ÿ› ๏ธ๐Ÿ›น Codito

@codito.dev.bsky.social

๐Ÿ‡ต๐Ÿ‡ฑ https://codito.pl ๐Ÿ‡ฌ๐Ÿ‡ง https://codito.dev | Self-educated specialist: PHP, CI/CD, QA automation, Docker, Gitlab and more ๐Ÿ˜Ž. Member of PHP-CS-Fixer team ๐Ÿชถ.

157 Followers  |  118 Following  |  219 Posts  |  Joined: 12.10.2023  |  1.5171

Latest posts by codito.dev on Bluesky

Yesterday I installed GPGSuite on my Mac and today it turned out my keys were removed somehow ๐Ÿ˜ฉ. I had a backup for my main key (for private and OSS), but lost the key I configured for Printify, and had to generate a new one. Remember to backup your SSH/GPG keys!

25.07.2025 09:55 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Preview
ASDF: Multiple PHP versions on localhost I prefer working with #Docker, but sometimes itโ€™s required to have #PHP locally, and even more - multiple versions of it! Thereโ€™s a simple way of achieving this: ASDF ๐Ÿ˜Ž.

I wrote an article about #ASDF - multiple runtime version manager, and how you can use it for developing #PHP apps that require different versions of the language. It serves me well as a fallback when #Docker runtime is not available ๐Ÿ˜Š.

blog.codito.dev/2025/07/asdf...

12.07.2025 08:21 โ€” ๐Ÿ‘ 2    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

Why only young? There are projects like PHP-CS-Fixer that are under-sponsored, with maintainers doing everything basically for free. It may be discouraging after years of hard work.

08.07.2025 19:48 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

You still doing code reviews? There are AI tools for that ๐Ÿ˜…!

08.07.2025 19:45 โ€” ๐Ÿ‘ 2    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Preview
Printify: Here We Go! I am excited to announce that I joined uSoftware as a Senior Software Engineer and will provide services for Printify in a Developer Enablement team ๐Ÿคฉ!

I am excited to announce that I joined #uSoftware as a Senior Software Engineer and will provide services for #Printify in a Developer Enablement team ๐Ÿคฉ! Looking forward for this new, great adventure - wish me luck ๐Ÿคžโ˜บ๏ธ.

blog.codito.dev/2025/07/prin...

08.07.2025 10:03 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

Nah, it's just a lack of proper knowledge. If you don't know you can assign ternary to variable and you put assignments into true/false side of ternary, then you're simply doing it wrong.

30.05.2025 16:51 โ€” ๐Ÿ‘ 2    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Preview
Open to work After four years at GetResponse itโ€™s time for new opportunities! I am looking for a role related to #PHP, ideally in Developer Enablement context, but I am also open for alternatives. Read further for...

I am looking for new role ๐Ÿ˜! Contact me if you are interested in services from highly qualified software engineer around #PHP, #Docker, #QA and CI/CD, that is dedicated and cares about delivering value โค๏ธ.

DMs are open + greg [at] codito [dot] dev.

blog.codito.dev/2025/05/open...

27.05.2025 13:10 โ€” ๐Ÿ‘ 1    ๐Ÿ” 2    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Preview
Open to work After four years at GetResponse itโ€™s time for new opportunities! I am looking for a role related to #PHP, ideally in Developer Enablement context, but I am also open for alternatives. Read further for...

I am looking for new role ๐Ÿ˜! Contact me if you are interested in services from highly qualified software engineer around #PHP, #Docker, #QA and CI/CD, that is dedicated and cares about delivering value โค๏ธ.

DMs are open + greg [at] codito [dot] dev.

blog.codito.dev/2025/05/open...

27.05.2025 13:10 โ€” ๐Ÿ‘ 1    ๐Ÿ” 2    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

I need to confess I always giggle a little when I work with tests that use abbreviated System Under Test notation, because SUT in Polish is a giant nipple ๐Ÿคญ. Yeah, I am a simple man ๐Ÿ™ˆ.

Anyway, remember to test your code!

23.05.2025 06:11 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Post image

Everything indicates that next #PHP version will ship pipe operator ๐Ÿ˜! RFC is now in voting phase, with majority of Yes votes. In my opinion this is really nice addition to the language and something different than features added in previous versions.

wiki.php.net/rfc/pipe-ope...

20.05.2025 09:45 โ€” ๐Ÿ‘ 3    ๐Ÿ” 1    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

There IS a way: use at least #ParaTest 7.5.2 (requires #PHPUnit v11 though, that's why we did not have it in our app) ๐Ÿ˜Š.

16.04.2025 04:13 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Post image Post image

Is there a way to make #ParaTest respect #PHPUnit's baseline? Running tests with the same config and the same baselines gives different results depending on whether raw PHPUnit or ParaTest is used for execution.

15.04.2025 07:45 โ€” ๐Ÿ‘ 2    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 1
Post image Post image

I've upgraded to #MacOS 15.4 & what a pain in the ass this upgrade is ๐Ÿ˜ซ. Every command (e.g. Composer vendor scripts) or IDE hook is reported by the system, and in order to allow it you need to do THREE steps FOR EACH command ๐Ÿ˜ค๐Ÿคฏ! Just display "Open Anyway" on first modal, FFS.

11.04.2025 12:11 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Post image

Hey #PHPStan enthusiasts! Is there a DI service that can be used in custom rule to resolve value of an argument passed to static method call? I did a simple implementation and it works, BUT it causes "Undefined constant" errors during analysis. Maybe there's something OOTB โ˜บ๏ธ?

10.04.2025 09:59 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

I don't publish much recently & according to the poll I made some time ago I rather try to focus on technical stuff here, but some of you were interested in my #fitness journey, so I wanted to share some update โ˜บ๏ธ. Follow me on Hevy if you want to be up to date with my progress.

21.03.2025 09:31 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

Hopefully we can finish moving out soon, so I can exercise more and head towards my goals for 2025 ๐Ÿคž. It's not like there's no progress currently, as I improve significantly in areas needed to reach my goals, but it's just harder when you don't have enough time.

21.03.2025 09:31 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

Most of my workouts are at home at this point, before going to bed. I also do a 20kg vest dog walks, shrugging and doing squats all the way ๐Ÿ˜…. I try to squeeze that lemon as much as I can, but I miss proper and regular workouts, and most importantly: skateboarding.

21.03.2025 09:31 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0
Post image

It's the 6th week of the process of us moving out to the new house, and Hevy's chart shows it clearly - there's not much time for working out ๐Ÿ˜ญ. Paradoxically I probably lifted more weights than before, because I move stuff with my own hands ๐Ÿ’ช๐Ÿ˜ƒ.

hevy.com/user/wirone

21.03.2025 09:31 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0
Post image

#PHP "clone with" RFC was abandoned by its author recently, but according to his comment in the PR his work can be picked up by anyone interested in delivering this feature into the language.

wiki.php.net/rfc/clone_with

20.03.2025 08:41 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

Today my work #M1 #MacBook started to restart randomly, it happened several times already (around 10 at this point), once I even got the recovery screen with information that OS requires reinstalling (but it booted after restart). I have latest #Sequoia. Any suggestions?

17.03.2025 19:18 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Preview
[DependencyInjection] More bullet-proof expression evaluation by Wirone ยท Pull Request #59976 ยท symfony/symfony Q A Branch? 6.4, 7.2 Bug fix? yes New feature? no Deprecations? no Issues n/a License MIT As asked here, we faced weird issue recently. I was able to reproduce it with minimal DI s...

It looks like I found the root cause and provided a fix (hopefully!) ๐Ÿ˜Š. It took me a while to find why `lint:container` fails and prepare test with reproducer, because our DI setup is pretty complex. Luckily I was able to narrow it.

github.com/symfony/symf...

14.03.2025 14:43 โ€” ๐Ÿ‘ 0    ๐Ÿ” 1    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Preview
[DependencyInjection] More bullet-proof expression evaluation by Wirone ยท Pull Request #59976 ยท symfony/symfony Q A Branch? 6.4, 7.2 Bug fix? yes New feature? no Deprecations? no Issues n/a License MIT As asked here, we faced weird issue recently. I was able to reproduce it with minimal DI s...

It looks like I found the root cause and provided a fix (hopefully!) ๐Ÿ˜Š. It took me a while to find why `lint:container` fails and prepare test with reproducer, because our DI setup is pretty complex. Luckily I was able to narrow it.

github.com/symfony/symf...

14.03.2025 14:43 โ€” ๐Ÿ‘ 0    ๐Ÿ” 1    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

I don't understand why it suddenly started to process that particular service differently or why it even needs to initialise these services during linting. The return type of the expression could be inferred statically and checked against the service's signature.

14.03.2025 12:24 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

It's either with `symfony/dependency-injection` 6.4.19 and 7.2.4 (PHP 8.3). The service is defined as lazy, one of its arguments is defined as a call to another lazy service using expression language. The difference is the called service's definition was changed (removed 1 arg).

14.03.2025 12:24 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0
Post image

We have really weird problem with #Symfony's `lint:container` command, which started to fail in one of our MRs because DI tries to call some factory with unresolved param that should be an int, but it's passed as a reference string, which causes TypeError.

14.03.2025 12:24 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0
for sha in $(git log -r --format=%h -- utils/phpstan/baseline_stats.json); do \
    echo "$(git log -n1 --format=%as $sha) $(git show ${sha}:utils/phpstan/baseline_stats.json | jq '.total')"; \
done | \
gnuplot -p -e "set style data lines;
    set xlabel 'date';
    set ylabel 'errors';
    set xdata time;
    set timefmt '%Y-%m-%d';
    set format x '%Y-%m-%d';
    plot '-' using 1:2 title 'PHPStan errors over time'
"

for sha in $(git log -r --format=%h -- utils/phpstan/baseline_stats.json); do \ echo "$(git log -n1 --format=%as $sha) $(git show ${sha}:utils/phpstan/baseline_stats.json | jq '.total')"; \ done | \ gnuplot -p -e "set style data lines; set xlabel 'date'; set ylabel 'errors'; set xdata time; set timefmt '%Y-%m-%d'; set format x '%Y-%m-%d'; plot '-' using 1:2 title 'PHPStan errors over time' "

The chart is generated by `gnuplot`, and the input data is retrieved from Git history of a JSON file that stores #PHPStan errors' stats (cherry-picking total value using awesome `jq` tool). It is simple Proof of Concept, but it works great ๐Ÿ˜ƒ.

11.03.2025 07:22 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Chart of PHPStan baseline error trend visualising how many error we have dumped to baseline and how it's changing over time.

Chart of PHPStan baseline error trend visualising how many error we have dumped to baseline and how it's changing over time.

Some time ago in our main app, I've introduced process for dumping #PHPStan baseline stats (total errors, sums by error identifier per area). It is automatically re-generated in our CI during production deployment. Thanks to this file and a few utils, we can now observe trends ๐Ÿ˜Š.

11.03.2025 07:22 โ€” ๐Ÿ‘ 5    ๐Ÿ” 1    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0
Preview
Versioning strategy in PHPStan ยท phpstan phpstan ยท Discussion #12696 I am wondering what's the versioning policy in PHPStan? Because IMHO newly introduced feature should be part of 2.2.0 as a new feature, not 2.1.7. It seems like PHPStan does not follow SemVer, at l...

In case you were wondering what's the versioning strategy for #PHPStan and whether it follows SemVer or not, its author provided great explanation that sums it up โ˜บ๏ธ.

github.com/phpstan/phps...

06.03.2025 09:33 โ€” ๐Ÿ‘ 2    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Preview
Ignore Error Extensions

#PHPStan 2.1.7 brings very cool new feature: extension point for conditional error ignoring ๐Ÿ˜. Using `phpstan.ignoreErrorExtension`-tagged services you can have more atomic approach to handling static analysis errors.

phpstan.org/developing-e...

06.03.2025 08:46 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

I am not a Laravel dev, but I use Docker Compose for local development. It's all you need to set up the whole stack with all the side services.

04.03.2025 20:51 โ€” ๐Ÿ‘ 2    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

@codito.dev is following 20 prominent accounts