Read about upgrades, static analysis, GPT, Symfony and Laravel

Finalize Classes - Automated and Safe
2024-03-07
Rector Book 2024 Release with Brand new Chapter
2024-02-05
3 Signs Your Project is Becoming Legacy - Mock Rottening
2024-02-03
Get Json output for PHPUnit 10
2024-01-27
Zen Config in ECS 12
2024-01-14
5 Books I enjoyed Reading in 2023
2023-12-30
3 Signs Your Project is Becoming Legacy - Arrays Creep
2023-12-28
3 Signs Your Project is Becoming Legacy and How to Avoid Them
2023-11-17
How to Autowire Multiple Instances of Same Type in Symfony and Laravel
2023-11-01
How to make your Tool Commands List Easy to Ready
2023-10-13
From Symfony to Laravel - 5 Steps to Prepare your Symfony Project for Migration
2023-09-06
From Symfony to Laravel - Can Laravel even Compiler Pass
2023-08-25
How to take Advantage of 3rd party Dependency Injection Container
2023-08-24
Easy and Quick way to Measure lines of Code in PHP
2023-08-20
Removing Service from Laravel Container is not that Easy
2023-08-18
How to Remove Transitional Dependencies You don't Need
2023-08-16
Unleash the Power of Simplicity: PHP CLI App with Minimal Dependencies
2023-07-31
Experiment: How I replaced Symfony DI with Laravel Container in ECS
2023-07-25
How to avoid Maintaining Classes you Don't Use
2023-07-18
Two Kinds of Legacy Code Upgrade
2023-07-10
Moving from Disqus to Twitter to make Know-how Sharing Easier
2023-04-19
What I prefer about Laravel Dependency Injection over Symfony
2023-03-31
Introducing Bladestan - PHPStan analysis of Blade templates
2023-03-24
To Route or To Action - That is the Question
2023-03-15
Introducing Punchcard - Object Configs for Laravel
2023-03-08
Why I Migrated This Website From Symfony To Laravel
2023-02-26
How to ask DaVinci and Codex to get the right answer
2023-02-14
Run Config Transformer Everyday to keep YAML Away
2023-02-12
Lets Share Fails and Tricks with GPT
2023-01-31
Good Bye, Monorepo
2023-01-28
How can we Generate Unit Tests - Part 2: Building Scoring Script
2023-01-12
How can we Generate Unit Tests - Part 1: Testability Score
2023-01-04
How to release PHP 8.1 and 7.2 package in the Same Repository
2022-12-30
Keep Cognitive Complexity Low with PHPStan
2022-12-28
How to Measure Your Type Coverage
Updated 2022-12-01
How to Develop Sole Package in PHP 8.1 and Downgrade to PHP 7.2
2022-07-25
8 News in Config Transformer that Converts Symfony YML to PHP
2022-07-18
Can PHPStan find Dead Public Methods
Updated 2022-12-01
Twig Smoke Rendering - Fortune Favors the Bold
2022-06-27
Twig Smoke Rendering - Journey of Fails
2022-06-20
Twig Smoke Rendering - Why do we Even Need it
2022-06-13
5 Pitfalls of Upgrade to Native PHP Enums and How to Avoid Them
2022-06-06
How to Make Configs like RectorConfig or ECSConfig for your Symfony Project
2022-05-30
How to Upgrade Latte 2 Macro to Latte 3 Tag
2022-05-23
5 Steps to Get Ready for Latte 3
2022-05-19
New in ECS: Simpler Config
2022-05-09
How to test Symfony Routes to make Huge Refactoring Safe
2022-05-02
How to Remove Dead Mock Calls from PHPUnit Tests
2022-04-25
How to Test Latte Macro in 4 Steps
2022-04-18
5 Constant Lists That Give Context to your Integers and Strings
2022-03-07
How to Create Symfony Kernel for Tests with Different Configs
2022-02-07
Get Rid of Mixed Callables with PHPStan
2022-01-31
Not all Mixed Types are Equally Useless
2021-11-22
Introducing Light Kernel for Symfony Console Apps
2021-11-15
How to Run Naked Unit Tests in a New Legacy Project
2021-11-08
Decomposing Symfony Kernel: What does Minimal Symfony Bundle Do
2021-11-01
When Symfony Http Kernel is a Too Big Hammer to Use
2021-10-25
5 Commands from Easy CI that Makes Your CI Stronger
2021-10-18
Introducing up-to 16 Times Faster Easy Coding Standard
2021-10-11
7 Steps to Start with Parallel Run in PHP CLI App
2021-10-04
Hidden Productivity Costs of Parallel Run
2021-09-27
Parallel in PHP for Dummies Cooking a Family Dinner
2021-09-20
STAMP #5: How do we Know Types of Template Variables
2021-09-13
STAMP #4: How to Run PHPStan Rules on Temporary PHP File
Updated 2021-11-01
STAMP #3: How to Turn TWIG Helper Functions to Origin Object
2021-08-30
STAMP #2: How to Turn Messy TWIG PHP to Something Useful
2021-08-23
STAMP #1: How to Compile Twig to PHP
2021-08-16
STAMP #0: Static Analysis of Templates
2021-08-09
How to Easily Protect your Code Base from Commented PHP Code
2021-08-02
How I made Huge Mistake with Interpretation of Laravel Downloads
2021-07-26
Improve your Rector, PHPStan and CI Skills with 3 New Trainings
2021-07-19
A Week in a Life of Employed Open‑Source Developer
2021-07-12
How to Scope Your PHP Tool in 10 Steps
2021-07-08
Why do we Scope PHP Tools
2021-07-05
How to Replace Single Node with Two Nodes in Abstract Syntax Tree
2021-06-28
How to make Upgrade Safe with Bridge Testing
2021-06-21
Doctrine Annotations and Attributes Living Together in Peace
2021-06-14
Why Should We Talk about Our Mistakes in PHP Community
2021-06-07
How I Redesigned my Website the Way I Refactor Legacy Projects
2021-06-03
How to Refactor Custom Doctrine Annotations to Attributes
2021-05-31
How Exception to the Convention Does More Harm than Good
2021-05-24
Rector - The Power of Automated Refactoring Book Released
Updated 2021-06-01
Introducing ECS Prefixed and Downgraded to PHP 7.1
2021-05-13
Write GitHub Actions for Gitlab Too
2021-05-10
PHPStan Generics for Dummies - With 2 Parents
2021-05-03
Dependency Juggling Code Smell
2021-04-26
How can We use GitHub Actions in Gitlab
2021-04-19
2 Ways to Write Big Numbers More Readable
2021-04-12
Monorepo Split GitHub Action 2.0 with Gitlab split is Out!
2021-04-05
How to Traverse PHPDoc and Modify It
2021-03-29
Never Forget Symfony Config Options Again
2021-03-15
The Best Time to Switch Gitlab to GitHub
2021-03-01
It's not Null, it's Enum
2021-02-22
How Dangerous is Your Nette Template Assign
2021-02-15
Tree Coding vs. Bush Coding
2021-02-11
How to Prepare your Neon Configs for PHP 8 and Make them More Readable
2021-02-08
Effective Debug Tricks: Narrow Scoping
2021-02-01
4 PHPStan Rules that Bring Order to Nette Injects
2021-01-25
4 Ways Symplify makes Working With Symfony More Fun
2021-01-18
How to detect Complex Duplicated Methods With PHPStan
Updated 2023-07-01
PHPStan Abstract Parent Generics for Dummies
Updated 2021-05-01
Why Coding Standards Should Not Be Part of CI
2020-12-28
5 New Combos opened by Symfony 5.2 and PHP 8.0
2020-12-21
New in Symplify 9: More than 110 PHPStan Rules
2020-12-14
New in Symplify 9: Markdown Diff
2020-12-07
New in Symplify 9: Documentation Generator for PHP CS Fixer, Code Sniffer, PHPStan and Rector Rules
2020-11-30
How to make a Dynamic Matrix in GitHub Actions
2020-11-16
New in Symplify 9: Monorepo Split with GitHub Action
2020-11-09
Symplify Monorepo Builder Split - Fractal of Bad Design
2020-11-02
The Bullet Proof Symfony Command Naming
2020-10-26
How to Split Test Monorepo with Composer 2
2020-10-19
How We Stopped Merging Pull Requests
Updated 2021-02-01
How to Reveal Static Call Relationships in Your Code
Updated 2021-08-01
How to Add Colors to Continuous Integration Output
2020-09-28
Symfony AutoBind Parameter is Dead, Long live Constant Parameters
2020-09-21
How to Apply Coding Standard on PHP Snippets in Markdown Files
2020-09-14
Introducing Object Calisthenics Rules for PHPStan
2020-09-07
How Static Methods Kill You Like Corona
2020-08-31
What if We Remove Strings from Symfony Extension Configuration
2020-08-24
How to Get Rid of Magic, Static and Chaos from Latte Filters
Updated 2020-09-01
4 Ways to Make Your Nette Project More Readable
2020-08-10
How to Give Away 1500 € in 1 Tweet and Help 25 People Learn Something New
2020-08-03
How to Switch from YAML Configs to PHP Today with Symplify
Updated 2024-01-01
How to Update Hundreds of Test Fixtures with Single PHPUnit run
2020-07-20
10 Cool Features You Get after switching from YAML to PHP Configs
2020-07-16
The most Effective Test I found in 7 years of Testing
2020-07-13
Cleaning Lady Notes: From Class Mess to PSR-4 Step by Step With Confidence
Updated 2020-08-01
How to Patch a Package in Vendor, Yet Allow its Updates
2020-07-02
How Will Programming look like in 2025
2020-06-29
Why Class Constants Should be Typed
2020-06-22
How to create a Monorepo from Existing Repositories in 7 Steps
Updated 2020-08-01
Drop RobotLoader and let Composer Deal with Autoloading
2020-06-08
@inject or @required will Get You Any Services Fast
2020-06-01
The Bulletproof Event Naming For Symfony Event Dispatcher
Updated 2020-05-01
The Future of Pehapkari Meetups and Training - You
2020-05-18
How to Upgrade to Symplify 8 - From Fixers to Rector Rules
Updated 2021-12-01
How to Upgrade to Symplify 8 - From Sniffs to PHPStan Rules
Updated 2020-08-01
How to Hydrate Arrays to Objects via Constructor
2020-04-20
How to Migrate Spaghetti to 304 Symfony 5 Controllers Over Weekend
2020-04-13
Don't Show Your Privates to Public
2020-03-30
Doctrine Entity Typed Properties With PHP 7.4
Updated 2020-11-01
Statie is Dead, Long live Symfony Static Dumper
2020-03-16
Art of Letting Go
2020-03-09
We Do Not Need Senior Developers, We Need Senior Codebases
2020-03-02
Local Packages 3 Years Later
2020-02-17
How to Test Monorepo After Split Before Actual Split
2020-02-10
How to run Rector and PHPStan on Huge Project in 3 Seconds with PHPStorm
2020-02-03
Switch Travis to GitHub Actions to Reduce Stress
2020-01-27
Why is First Instant Feedback Crucial to Developers
2020-01-13
Migrate Gedmo to KnpLabs
Updated 2022-11-01
Doctrine Behaviors 2.0 - Reloaded
2019-12-30
5 Things I Improve when I Get to new Repository
2019-12-23
8 Steps You Can Make Before Huge Upgrade to Make it Faster, Cheaper and More Stable
2019-12-16
How to Get Rid of Technical Debt or What We Would Have Done Differently 2 Years ago
Updated 2020-08-01
How to Box Symfony App to PHAR without Killing Yourself
2019-12-02
The Single Best Skill to Master Command Line
2019-11-25
How to Delegate Code Reviews to CI
Updated 2020-12-01
From 0 Doc Types to Full Type Declaration with Dynamic Analysis
Updated 2020-08-01
Still on PHPUnit 4 Come to PHPUnit 8 Together in a Day
Updated 2020-11-01
All You Always Wanted to Know About Monorepo But Were Afraid To Ask
2019-10-28
How we Upgraded Pehapkari.cz from Symfony 4 to 5 in 25 days
Updated 2020-11-01
How to Speedup Test Coverage on Travis by 95 %
2019-09-02
How we Migrated 54 357-lines Application from Nette to Symfony in 2 People under 80 Hours
Updated 2020-06-01
Standalone Symfony Console from the Scratch
Updated 2020-06-01
Standalone Symfony Event Dispatcher from the Scratch
Updated 2020-06-01
How we Completed Thousands of Missing @var Annotations in a Day
Updated 2020-08-01
How to Convert Listeners to Subscribers and Reduce your Configs
Updated 2020-08-01
Why use One-Time Migration Scripts
Updated 2020-08-01
7 Tips to Write Flawless Issue Reports on Github
Updated 2020-11-01
5 Workflow Tips every PHP Developer Should Know
2019-07-01
Do you use PHP_CodeSniffer and PHP CS Fixer PHPStorm Plugin You are Slow and Expensive
2019-06-24
7 News and Changes in Symplify 6
Updated 2020-11-01
Don't Ever use Symfony Listeners
2019-05-16
Hidden Gems of PHP Packages: Psalm Fixing Your Code
Updated 2019-06-01
Is Rector Saving you Time Support it on GitHub Sponsors
Updated 2021-05-01
Alias as a Code Smell
Updated 2020-08-01
Rector European Tour in May & June 2019
2019-04-29
Don't Give Up Your PHP Code for Compiler Passes so Easily
2019-04-25
Symfony 4.2 is used Twice More than Symfony 3.4
2019-04-18
Pattern Refactoring
2019-04-15
What You Lose by Switching to Symfony
2019-04-08
How to Upgrade Twig from Underscored to Namespaces
Updated 2020-11-01
Removing Static - There and Back Again
2019-04-01
How to Mock Final Classes in PHPUnit
2019-03-28
How to Instantly Migrate Nette\Tester to PHPUnit
Updated 2020-11-01
How to Migrate PhpSpec to PHPUnit
Updated 2023-09-01
How to Detect Dead PHP Code in Code Review in 7 Snippets
Updated 2020-11-01
Why we Migrated from Nette to Symfony in 3 Weeks - Part 3 - Brain Drain Dead Packages-Lock
2019-03-11
Why we Migrated from Nette to Symfony in 3 Weeks - Part 2 - Escaping Semantic Hell
2019-03-07
How to turn Laravel from Static to Dependency Injection in one Day
Updated 2020-11-01
How to Upgrade Symfony 2.8 to 3.4
Updated 2020-11-01
5 Tips to Effective Work with Github Repository
2019-02-25
How we Migrated from Nette to Symfony in 3 Weeks - Part 1
2019-02-21
How we Automated Shopsys Packages Release from 2 days to 1 Console Command
2019-02-18
Why Config Coding Sucks
2019-02-14
What I Learned by Using thecodingmachine/safe
2019-02-07
New in Rector: Asterisk Type Match
Updated 2021-12-01
Monorepo Composer Magic
2019-01-31
2 Files that Your Symfony Application Misses
2019-01-28
How to Kill Parents
2019-01-24
How Writing Posts Helps you to Become Better Programmer
2019-01-17
9 Steps to Migrate From Jekyll to Statie
2019-01-10
Your Most Favorite Posts in 2018
2018-12-31
How To Convert All Your Symfony Service Configs to Autodiscovery
2018-12-27
Thank You
2018-12-24
Function create_function() is Deprecated in PHP 7.2 - How to Migrate
Updated 2020-08-01
Kirill Smelov's PHPStorm Tips in 9 Gifs
2018-12-13
The Rocket Science Behind Migration of Docblock Types to PHP Typehints
Updated 2020-08-01
Don't Learn to Code
2018-12-06
IT Bloggers, Deprecate Your Posts to Stop Spreading Legacy
2018-12-03
How to Manage Configuration in Symfony without Bundle, Extension, and Configuration
2018-11-29
14 Tips to Write PHP Code that is Hard to Maintain and Upgrade
2018-11-26
How to Test Monorepo in 3 Layers
Updated 2021-02-01
When You Should Use Monorepo and When Local Packages
2018-11-19
How to Get PHP 7.4 Typed Properties to Your Code in Few Seconds
Updated 2020-11-01
Will Autowired Arrays Finally Deprecate Tags in Symfony and Nette
Updated 2021-02-01
Fatal error: Uncaught Error: [] operator not supported for strings in
Updated 2020-11-01
7 Tips to Get the Most out of Travis CI
2018-10-29
Why AST Fixes your Coding Standard Better than Tokens
2018-10-25
Brief History of Tools Watching and Changing Your PHP Code
Updated 2020-12-01
How I Almost Missed My Talk in PHP Asia Conference
2018-10-18
What is Your Third Door - Book Review
2018-10-15
Hi, my name is Tom - Concat vs. Sprintf vs. In-String Variable
2018-10-11
New in Symplify 5: Create, Merge and Split Monorepo with 1 Command
Updated 2020-12-01
New in Symplify 5: Public Method Order and External Final in CodingStandard
Updated 2020-08-01
Open-Source Behind The Scenes - Finding the Rector Vision
2018-09-27
New in Symplify 5: 3 News in EasyCodingStandard to Smoother Your Experience
Updated 2020-08-01
New in Symplify 5: 3 New Cool Features of PackageBuilder
2018-09-20
7 Tips to Write Exceptions Everyone Will Love
Updated 2020-11-01
Your Brain is Your Garden
2018-09-13
5 Advices I Would Love to Get Before Starting to Maintain an Open Source
2018-09-10
How to Develop Multiple Symfony Applications Fast while Keeping the Quality
2018-09-06
4 Ways to Add Global Option or Argument to Symfony Console Application
2018-09-03
Ways I Fucked Up Open Source Code: Mock Everything and Test Units
2018-08-30
Why and How to Avoid the Memory Lock
2018-08-27
9 Features of PHPStorm Symfony Plugin You Should Not Miss in Gifs
2018-08-23
Painful Experience over Solutions: Extend Configuration in Easy Admin Bundle
2018-08-20
What's New in PHP 7.3 in 30 Seconds in Diffs
2018-08-16
Hidden Gems of PHP Packages: Symfony\Finder and SplFileInfo
2018-08-13
Why is Your Company Losing Money By Not Open Sourcing 2: Code Quality
2018-08-09
Stylish and Standard Console Output with Symfony Style
2018-08-06
5 Gotchas of the Bin File in PHP CLI Applications
2018-08-02
Hidden Gems of PHP Packages: Nette\Utils
2018-07-30
Why is Your Company Losing Money by not Open Sourcing: 1. Hiring
2018-07-26
5 Signs You Should Never Have a Talk Abroad
2018-07-23
Notes from 'Peace is Every Step' Book
2018-07-12
6 Reasons Why Doctrine is Alive and Kicking
2018-07-09
How to Convert Latte Templates to Twig in 27 Regular Expressions
Updated 2019-03-01
Don't Read Books
2018-06-28
Open Source is Selfish
2018-06-21
14 Surprising Tips from Selling is Human to Influence Others
2018-06-18
Collector Pattern for Dummies
2018-06-14
How to Turn Mocks from Nightmare to Solid Kiss Tests
Updated 2020-08-01
How to Migrate From PHP CS Fixer to ECS in 6 Steps
Updated 2023-01-01
How to Migrate From PHP_CodeSniffer to ECS in 7 Steps
Updated 2023-01-01
Symfony vs Laravel vs Nette - Which PHP Framework Should You Choose
2018-05-31
Build Your First Symfony Console Application with Dependency Injection Under 4 Files
2018-05-28
The Boss vs. The Masseuse Way to Add Coding Standards to a Big Project
Updated 2021-02-01
Is Your Code Readable By Humans Cognitive Complexity Tells You
Updated 2023-03-01
How to Test Private Services in Symfony
Updated 2019-04-01
How to Load --config With Services in Symfony Console
Updated 2020-11-01
Rectify: Turn All Action Injects to Constructor Injection in Your Symfony Application
Updated 2020-08-01
Why You Should Combine Symfony Console and Dependency Injection
2018-05-07
How Do You Treat Your Own First AI
2018-05-03
Programming = Climbing a Huge Mountain
2018-04-30
How I Got into Static Trap and Made Fool of Myself
2018-04-26
How to Slowly Turn your Symfony Project to Legacy with Action Injection
2018-04-23
4 Tips To Get Emotions to Your Blogging About Programming
2018-04-19
5 Steps to Your First Fixer or Sniff Test
2018-04-16
The Best 5 of 256 Bloghacks Book
2018-04-12
Try PSR-12 on Your Code Today
Updated 2023-01-01
4 Ways to Speedup Your Symfony Development with PackageBuilder
2018-04-05
Rectify: Turn All Doctrine Repositories From Inheritance To Composition in Seconds
2018-04-02
New in Coding Standard 4: Long Line Breaks Automated and 3 Legacy Prevention Fixers
Updated 2020-08-01
New in Easy Coding Standard 4: Clean Symfony Standard with Yaml and Services
Updated 2020-08-01
How Teaching Suicides Itself by Killing the Passion
2018-03-22
How to Criticize like a Senior Programmer
2018-03-19
Monorepo on the Rise in PHP
2018-03-15
NEON vs. YAML and How to Migrate Between Them
Updated 2018-12-01
Why is Collector Pattern so Awesome
2018-03-08
Rector: Part 3 - Why Instant Upgrades
2018-03-05
New in Symplify 3: 4 Improvements in EasyCodingStandard
Updated 2020-08-01
Rector: Part 2 - Maturity of PHP Ecosystem and Founding Fathers
2018-02-26
Rector: Part 1 - What and How
Updated 2020-11-01
Sleep Shorter to Get 62 % Smarter
2018-02-12
How to Run Symfony Processes Asynchronously
Updated 2018-12-01
How to Deal With Haters in Comments and Github
2018-01-29
How to Get Parameter in Symfony Controller the Clean Way
2018-01-22
Clean and Decoupled Controllers, Commands and Event Subscribers Once and for All with Delegator Pattern
2018-01-08
New in Symplify 3: 4 Time-saving Coding Standard Checkers
Updated 2020-08-01
Composer Local Packages for Dummies
2017-12-25
Life 3.0: What Will You Do When AI Takes Over the World
2017-12-04
United PHP 7.1 Adoption 6 Months Later
2017-11-27
How to Write Interesting Jobs Offers for Programmers
2017-11-20
7 Tips You Should Know Before Going To University
2017-11-13
How to change PHP code with Abstract Syntax Tree
Updated 2022-10-01
What can You Learn from Menstruation and Symfony Releases
2017-10-30
IMbox Zero
2017-10-23
How to use Repository with Doctrine as Service in Symfony
Updated 2021-02-01
How to Get the Most Valuable Feedback You Can Get
2017-10-09
3 non-IT Books That Help you to Become Better Programmer
2017-09-25
4 Simple Checkers for Coding Standard Haters but Clean Code Lovers
Updated 2020-08-01
How to write Open-Source in PHP 3: Deprecating Code
2017-09-11
How ApiGen Survived its Own Death
Updated 2018-12-01
How to Apply Nette Coding Standard in Your Project
Updated 2018-12-01
7 New Features in Easy Coding Standard 2.2
Updated 2020-11-01
How PHP Coding Standard Tools Actually Work
2017-07-31
How to Write Custom Fixer for PHP CS Fixer 3
Updated 2023-01-01
How to Write Custom Sniff for Code Sniffer 3+
Updated 2023-01-01
How to Deprecate PHP Package Without Leaving Anyone Behind
2017-07-03
Thank you David Grudl
2017-06-01
How to refactor to new Dependency Injection features in Symfony 3.3
2017-05-07
Combine power of PHP_CodeSniffer and PHP CS Fixer in 3 lines
Updated 2023-01-01
3 Symfony and Laravel Patterns that Make Code Easy to Extend Without Modification
2017-04-14
Fast and Easy Way to Learn Complex Topics
2017-02-22
Minimalistic Way to Create Your First Nette Extension
2017-02-15
Drop all Service Tags in Your Nette and Symfony Applications
Updated 2017-05-01
How Monolithic Repository in Open Source saved my Laziness
2017-01-31
Why I Switched Scrutinizer for PHPStan and You Should Too
2017-01-28
7 rad, které bych si dal před odchodem na vysokou školu
2017-01-15
Jak psát zajímavé inzeráty pro ajťáky
2017-01-10
How to avoid @inject thanks to Decorator feature in Nette
2016-12-24
How to write open-source in PHP 2: Rise value of your package with help of skeleton
Updated 2021-02-01
How to write open-source in PHP 1: Create a repository on Github
Updated 2021-02-01