Weekly Blog About PHP Innovations

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
Astral - The Best Kit for php-parser AST Developers
2021-03-22
Never Forget Symfony Config Options Again
2021-03-15
A Tool that helps you to Migrate to ECS
Deprecated 2021-06-01
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
2021-01-11
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: Skipper - Skipping Files and Rules made Simple
2020-12-10
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 get a Dynamic PHP Version Matrix in GitHub Actions
2020-11-23
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
New in Symplify 9: Composer Json Manipulator - In Object API
2020-10-31
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/XML Configs to PHP Today with Symplify
Updated 2021-06-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 2020-08-01
How to Upgrade to Symplify 8 - From Sniffs to PHPStan Rules
Updated 2020-08-01
Forget Complex Migrations, Use Cleaning Lady Checklist
Deprecated 2021-05-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
How to Find Dead Symfony Routes
Deprecated 2020-11-01
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
How Many Days of Technical Debt Has your PHP Project
Deprecated 2021-12-01
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
Introducing PHAR for Easy Coding Standard
Deprecated 2021-04-01
Why is First Instant Feedback Crucial to Developers?
2020-01-13
Migrate Gedmo to KnpLabs
Updated 2020-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
Why Software Articles Must be CI Tested
Deprecated 2021-05-01
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
Do We Have More than 1024 PHP Groups in The World?
2019-08-19
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
How to upgrade Meetup.com API to OAuth2 with Guzzle
2019-06-17
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
End of goPhp71.org
2019-05-06
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
Hidden Gems of PHP Packages: Static Analysis Results Baseliner
Deprecated 2019-11-01
Symfony 4.2 is used Twice More than Symfony 3.4
2019-04-18
Pattern Refactoring
2019-04-15
Is Zend Dead? Is Laravel Losing Breath? Trends of PHP Frameworks in Numbers
Deprecated 2021-07-01
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 Instantly Migrate PhpSpec to PHPUnit
Updated 2020-11-01
How to Detect Dead PHP Code in Code Review in 7 Snippets
Updated 2020-11-01
Remove Dead Public Methods from Your Code
Deprecated 2020-04-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
Introducing Neon to YAML Converter
Deprecated 2021-06-01
What I Learned by Using thecodingmachine/safe
2019-02-07
New in Rector: Asterisk Type Match
Updated 2020-08-01
Monorepo Composer Magic
2019-01-31
2 Files that Your Symfony Application Misses
2019-01-28
How to Kill Parents
2019-01-24
FriendsofPHP.org is Opening API with 250 Meetups a Month
2019-01-21
How Writing Posts Helps you to Become Better Programmer
Deprecated 2020-03-01
11 Steps to Migrate From Sculpin to Statie
Deprecated 2020-03-01
9 Steps to Migrate From Jekyll to Statie
2019-01-10
How to Create Your First PHP Twig Static Website under 2 Minutes with Statie
Deprecated 2020-03-01
How to Complete Type Declarations without Docblocks with Rector
Deprecated 2020-11-01
Your Most Favorite Posts in 2018
2018-12-31
How To Convert All Your Symfony Service Configs to Autodiscovery
Deprecated 2021-01-01
Thank You
2018-12-24
Introducing Symfony Flex Loader
Deprecated 2021-01-01
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
Do you Autowire Services in Symfony? You can Autowire Parameters Too
Deprecated 2020-09-01
How to Teach Your Team Private Method Sorting in 3 mins
2018-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
New in Symplify 5: Generate Rich, Precise and Smart Changelog in Seconds
Deprecated 2021-03-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
How to Make Github and Travis Split Monorepo to Multiple Git Repositories for You
Deprecated 2020-12-01
New in Statie 4.5: Twig Support
Deprecated 2020-03-01
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
Cluster: More Interactive than a Book, Deeper than a Post
Deprecated 2021-05-01
Don't Read Books
2018-06-28
Let Changelog Linker Generate CHANGELOG.md for You
Deprecated 2021-03-01
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 2020-11-01
How to Migrate From PHP_CodeSniffer to ECS in 7 Steps
Updated 2020-11-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 2020-05-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
Deprecated 2021-02-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
2018-04-09
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
Deprecated 2020-08-01
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
Is Your CHANGELOG Useful or Just Boring Plain Text? And How to Fix That
Deprecated 2021-03-01
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
New in Symplify 3: DocBlock Cleaner Fixer
Deprecated 2019-03-01
New in Symplify 3: Statie Generators
Deprecated 2020-03-01
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
2017-11-06
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
EasyCodingStandard and PHPStan meet 3 Symfony E-Commerce Projects
Deprecated 2018-12-01
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
Shopsys, Spryker & Sylius under Static Analysis
Deprecated 2018-12-01
5 Useful Rules From Symplify Coding Standard
Deprecated 2018-09-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 2.12
Updated 2020-08-01
How to Write Custom Sniff for Code Sniffer 3.3
Updated 2020-08-01
How to Deprecate PHP Package Without Leaving Anyone Behind
2017-07-03
PHP Object Calisthenics Made Simple - Version 3.0 is Out Now
Deprecated 2018-12-01
Symbiotic Controller: Nette Presenter with Freedom
Deprecated 2017-10-01
How to Require Minimal Code Coverage for Github Pull-Requests with Coveralls
Deprecated 2018-12-01
Go PHP 7.1!
2017-06-05
Thank you David Grudl
2017-06-01
Symplify packages deprecations brought by Symfony 3.3
Deprecated 2018-12-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 2020-08-01
3 Symfony and Laravel Patterns that Make Code Easy to Extend Without Modification
2017-04-14
Why Is Doctrine Dying
Deprecated 2018-07-01
Statie - part 4: How to Create The Simplest Blog
Deprecated 2020-03-01
Statie - part 3: How to Add Reusable Parts of Code
Deprecated 2020-03-01
Symfony Static Dumper - part 2: How to add Contact Page With Data
Updated 2021-02-01
Fast and Easy Way to Learn Complex Topics
2017-02-22
Statie - part 1: How to run it Locally
Deprecated 2020-03-01
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 to Decouple Monolith like a Boss with Composer Local Packages
Deprecated 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
4 Emotional and Honest Reasons Why I Quit my Twitter
2017-01-20
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
Why I deleted my LinkedIn account
2017-01-05
How to avoid @inject thanks to Decorator feature in Nette
2016-12-24
Decouple Controller from Symfony using Traits
Deprecated 2017-05-01
How to Use Symfony Bundles in Nette Without Rewriting DI Logic
Deprecated 2017-01-01
How to get more than Request in Controller Action
Deprecated 2017-05-01
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
Forget "autowire" and just use it
Deprecated 2017-05-01
Filters Pattern in Nette Database
Deprecated 2017-01-01
Decouple Your Doctrine Filters
Deprecated 2017-03-01
Autowired controllers as services for lazy people
Deprecated 2017-05-01
Modular Routing in Symfony
Deprecated 2017-06-01
The Best of SymfonyCon 2015
Deprecated 2018-12-01
4 Hot News in Symfony 3
Deprecated 2018-12-01