41554 blogs · [ { "id": "01a08c56-ed22-73a2-80b0-bd381669340d", "title": "The Rocket Science Behind Migration of Docblock Types to PHP Typehints", "url": "https://tomasvotruba.com/blog/2018/12/10/rocket-science-behind-migration-of-docblock-types-to-php-typehints", "published_at": "2018-12-10T00:00:00+00:00" }, { "id": "01a08c56-ed22-73a2-80b0-bd3816a9728f", "title": "Don't Learn to Code", "url": "https://tomasvotruba.com/blog/2018/12/06/dont-learn-to-code", "published_at": "2018-12-06T00:00:00+00:00" }, { "id": "01a08c56-ed22-73a2-80b0-bd38179a9cb8", "title": "IT Bloggers, Deprecate Your Posts to Stop Spreading Legacy", "url": "https://tomasvotruba.com/blog/2018/12/03/it-bloggers-deprecate-your-posts-to-stop-spreading-legacy", "published_at": "2018-12-03T00:00:00+00:00" }, { "id": "01a08c56-ed22-73a2-80b0-bd38180340c8", "title": "14 Tips to Write PHP Code that is Hard to Maintain and Upgrade", "url": "https://tomasvotruba.com/blog/2018/11/26/14-tips-to-write-php-code-that-is-hard-to-maintain-and-upgrade", "published_at": "2018-11-26T00:00:00+00:00" }, { "id": "01a08c56-ed22-73a2-80b0-bd38187bdf08", "title": "How to Test Monorepo in 3 Layers", "url": "https://tomasvotruba.com/blog/2018/11/22/how-to-test-monorepo-in-3-layers", "published_at": "2018-11-22T00:00:00+00:00" }, { "id": "01a08c56-ed22-73a2-80b0-bd3818dd13d1", "title": "When You Should Use Monorepo and When Local Packages", "url": "https://tomasvotruba.com/blog/2018/11/19/when-you-should-use-monorepo-and-when-local-packages", "published_at": "2018-11-19T00:00:00+00:00" }, { "id": "01a08c56-ed22-73a2-80b0-bd3819801044", "title": "How to Get PHP 7.4 Typed Properties to Your Code in Few Seconds", "url": "https://tomasvotruba.com/blog/2018/11/15/how-to-get-php-74-typed-properties-to-your-code-in-few-seconds", "published_at": "2018-11-15T00:00:00+00:00" }, { "id": "01a08c56-ed22-73a2-80b0-bd381a78c59f", "title": "Will Autowired Arrays Finally Deprecate Tags in Symfony and Nette", "url": "https://tomasvotruba.com/blog/2018/11/12/will-autowired-arrays-finally-deprecate-tags-in-symfony-and-nette", "published_at": "2018-11-12T00:00:00+00:00" }, { "id": "01a08c56-ed22-73a2-80b0-bd381ae0972f", "title": "Fatal error: Uncaught Error: [] operator not supported for strings in", "url": "https://tomasvotruba.com/blog/2018/11/08/fatal-error-uncaught-error-operator-not-supported-for-strings-in", "published_at": "2018-11-08T00:00:00+00:00" }, { "id": "01a08c56-ed22-73a2-80b0-bd381b5fd559", "title": "Why AST Fixes your Coding Standard Better than Tokens", "url": "https://tomasvotruba.com/blog/2018/10/25/why-ast-fixes-your-coding-standard-better-than-tokens", "published_at": "2018-10-25T00:00:00+00:00" }, { "id": "01a08c56-ed22-73a2-80b0-bd381bc837d5", "title": "Brief History of Tools Watching and Changing Your PHP Code", "url": "https://tomasvotruba.com/blog/2018/10/22/brief-history-of-tools-watching-and-changing-your-php-code", "published_at": "2018-10-22T00:00:00+00:00" }, { "id": "01a08c56-ed22-73a2-80b0-bd381c8062be", "title": "How I Almost Missed My Talk in PHP Asia Conference", "url": "https://tomasvotruba.com/blog/2018/10/18/how-i-almost-missed-my-talk-in-php-asia-conference", "published_at": "2018-10-18T00:00:00+00:00" }, { "id": "01a08c56-ed22-73a2-80b0-bd381d779f04", "title": "What is Your Third Door - Book Review", "url": "https://tomasvotruba.com/blog/2018/10/15/what-is-your-third-door-book-review", "published_at": "2018-10-15T00:00:00+00:00" }, { "id": "01a08c56-ed22-73a2-80b0-bd381dee5700", "title": "Hi, my name is Tom - Concat vs. Sprintf vs. In-String Variable", "url": "https://tomasvotruba.com/blog/2018/10/11/hi-my-name-is-tom-conctat-vs-in-sprintf-vs-in-string-variables", "published_at": "2018-10-11T00:00:00+00:00" }, { "id": "01a08c56-ed22-73a2-80b0-bd381e918133", "title": "Open-Source Behind The Scenes - Finding the Rector Vision", "url": "https://tomasvotruba.com/blog/2018/09/27/open-source-behind-the-scenes-finding-the-rector-vision", "published_at": "2018-09-27T00:00:00+00:00" }, { "id": "01a08c56-ed22-73a2-80b0-bd381ed82771", "title": "New in Symplify 5: 3 News in EasyCodingStandard to Smoother Your Experience", "url": "https://tomasvotruba.com/blog/2018/09/24/new-in-symplify-5-3-news-in-easy-coding-standard-to-smoother-your-experience", "published_at": "2018-09-24T00:00:00+00:00" }, { "id": "01a08c56-ed22-73a2-80b0-bd381f17e2b7", "title": "7 Tips to Write Exceptions Everyone Will Love", "url": "https://tomasvotruba.com/blog/2018/09/17/7-tips-to-write-exceptions-everyone-will-love", "published_at": "2018-09-17T00:00:00+00:00" }, { "id": "01a08c56-ed22-73a2-80b0-bd381fe4b382", "title": "Your Brain is Your Garden", "url": "https://tomasvotruba.com/blog/2018/09/13/your-brain-is-your-garden", "published_at": "2018-09-13T00:00:00+00:00" }, { "id": "01a08c56-ed22-73a2-80b0-bd38203bf359", "title": "5 Advices I Would Love to Get Before Starting to Maintain an Open Source", "url": "https://tomasvotruba.com/blog/2018/09/10/5-advices-i-would-love-to-get-before-starting-to-maintain-open-source", "published_at": "2018-09-10T00:00:00+00:00" }, { "id": "01a08c56-ed22-73a2-80b0-bd3820a80b57", "title": "4 Ways to Add Global Option or Argument to Symfony Console Application", "url": "https://tomasvotruba.com/blog/2018/09/03/4-ways-to-add-global-option-or-argument-to-symfony-console-application", "published_at": "2018-09-03T00:00:00+00:00" }, { "id": "01a08c56-ed22-73a2-80b0-bd3820f2c21b", "title": "Ways I Fucked Up Open Source Code: Mock Everything and Test Units", "url": "https://tomasvotruba.com/blog/2018/08/30/ways-i-fucked-up-open-source-code-mock-everything-and-test-units", "published_at": "2018-08-30T00:00:00+00:00" }, { "id": "01a08c56-ed22-73a2-80b0-bd3821c01efd", "title": "Why and How to Avoid the Memory Lock", "url": "https://tomasvotruba.com/blog/2018/08/27/why-and-how-to-avoid-the-memory-lock", "published_at": "2018-08-27T00:00:00+00:00" }, { "id": "01a08c56-ed22-73a2-80b0-bd38225e551d", "title": "9 Features of PHPStorm Symfony Plugin You Should Not Miss in Gifs", "url": "https://tomasvotruba.com/blog/2018/08/23/9-features-of-symfony-plugin-you-should-not-miss-in-gifs", "published_at": "2018-08-23T00:00:00+00:00" }, { "id": "01a08c56-ed22-73a2-80b0-bd3822bf1ae6", "title": "What's New in PHP 7.3 in 30 Seconds in Diffs", "url": "https://tomasvotruba.com/blog/2018/08/16/whats-new-in-php-73-in-30-seconds-in-diffs", "published_at": "2018-08-16T00:00:00+00:00" }, { "id": "01a08c56-ed22-73a2-80b0-bd38239e6447", "title": "Hidden Gems of PHP Packages: Symfony\\Finder and SplFileInfo", "url": "https://tomasvotruba.com/blog/2018/08/13/hidden-gems-of-php-packages-symfony-finder-and-spl-file-info", "published_at": "2018-08-13T00:00:00+00:00" }, { "id": "01a08c56-ed22-73a2-80b0-bd382485ce86", "title": "Stylish and Standard Console Output with Symfony Style", "url": "https://tomasvotruba.com/blog/2018/08/06/stylish-and-standard-console-output-with-symfony-style", "published_at": "2018-08-06T00:00:00+00:00" }, { "id": "01a08c56-ed22-73a2-80b0-bd38248d09a8", "title": "5 Gotchas of the Bin File in PHP CLI Applications", "url": "https://tomasvotruba.com/blog/2018/08/02/5-gotchas-of-the-bin-file-in-php-cli-applications", "published_at": "2018-08-02T00:00:00+00:00" }, { "id": "01a08c56-ed22-73a2-80b0-bd3824d63876", "title": "Hidden Gems of PHP Packages: Nette\\Utils", "url": "https://tomasvotruba.com/blog/2018/07/30/hidden-gems-of-php-packages-nette-utils", "published_at": "2018-07-30T00:00:00+00:00" }, { "id": "01a08c56-ed22-73a2-80b0-bd38256fd4e9", "title": "5 Signs You Should Never Have a Talk Abroad", "url": "https://tomasvotruba.com/blog/2018/07/23/5-signs-should-never-have-a-talk-abroad", "published_at": "2018-07-23T00:00:00+00:00" }, { "id": "01a08c56-ed22-73a2-80b0-bd3825abdb42", "title": "Notes from 'Peace is Every Step' Book", "url": "https://tomasvotruba.com/blog/2018/07/12/20-notes-from-peace-is-every-step-book", "published_at": "2018-07-12T00:00:00+00:00" }, { "id": "01a08c56-ed22-73a2-80b0-bd38266df2c7", "title": "6 Reasons Why Doctrine is Alive and Kicking", "url": "https://tomasvotruba.com/blog/2018/07/09/6-reasons-why-doctrine-is-alive-and-kicking", "published_at": "2018-07-09T00:00:00+00:00" }, { "id": "01a08c56-ed22-73a2-80b0-bd382697f55a", "title": "How to Convert Latte Templates to Twig in 27 Regular Expressions", "url": "https://tomasvotruba.com/blog/2018/07/05/how-to-convert-latte-templates-to-twig-in-27-regular-expressions", "published_at": "2018-07-05T00:00:00+00:00" }, { "id": "01a08c56-ed22-73a2-80b0-bd38279269f7", "title": "Don't Read Books", "url": "https://tomasvotruba.com/blog/2018/06/28/dont-read-books", "published_at": "2018-06-28T00:00:00+00:00" }, { "id": "01a08c56-ed22-73a2-80b0-bd3827e4b811", "title": "14 Surprising Tips from Selling is Human to Influence Others", "url": "https://tomasvotruba.com/blog/2018/06/18/14-surprising-tip-from-selling-is-human-to-influence-others", "published_at": "2018-06-18T00:00:00+00:00" }, { "id": "01a08c56-ed22-73a2-80b0-bd3828e18651", "title": "Collector Pattern for Dummies", "url": "https://tomasvotruba.com/blog/2018/06/14/collector-pattern-for-dummies", "published_at": "2018-06-14T00:00:00+00:00" }, { "id": "01a08c56-ed22-73a2-80b0-bd3829a009fd", "title": "How to Turn Mocks from Nightmare to Solid Kiss Tests", "url": "https://tomasvotruba.com/blog/2018/06/11/how-to-turn-mocks-from-nightmare-to-solid-kiss-tests", "published_at": "2018-06-11T00:00:00+00:00" }, { "id": "01a08c56-ed22-73a2-80b0-bd382a70232e", "title": "How to Migrate From PHP CS Fixer to ECS in 6 Steps", "url": "https://tomasvotruba.com/blog/2018/06/07/how-to-migrate-from-php-cs-fixer-to-easy-coding-standard", "published_at": "2018-06-07T00:00:00+00:00" }, { "id": "01a08c56-ed22-73a2-80b0-bd382b1894a5", "title": "How to Migrate From PHP_CodeSniffer to ECS in 7 Steps", "url": "https://tomasvotruba.com/blog/2018/06/04/how-to-migrate-from-php-code-sniffer-to-easy-coding-standard", "published_at": "2018-06-04T00:00:00+00:00" }, { "id": "01a08c56-ed22-73a2-80b0-bd382bee0ff8", "title": "Symfony vs Laravel vs Nette - Which PHP Framework Should You Choose", "url": "https://tomasvotruba.com/blog/2018/05/31/symfony-vs-laravel-vs-nette-which-php-framework-you-should-choose", "published_at": "2018-05-31T00:00:00+00:00" }, { "id": "01a08c56-ed22-73a2-80b0-bd382c0b67ca", "title": "Build Your First Symfony Console Application with Dependency Injection Under 4 Files", "url": "https://tomasvotruba.com/blog/2018/05/28/build-your-first-symfony-console-application-with-dependency-injection-under-4-files", "published_at": "2018-05-28T00:00:00+00:00" }, { "id": "01a08c56-ed22-73a2-80b0-bd382caa2284", "title": "How to Test Private Services in Symfony", "url": "https://tomasvotruba.com/blog/2018/05/17/how-to-test-private-services-in-symfony", "published_at": "2018-05-17T00:00:00+00:00" }, { "id": "01a08c56-ed22-73a2-80b0-bd382cd9fba7", "title": "How to Load --config With Services in Symfony Console", "url": "https://tomasvotruba.com/blog/2018/05/14/how-to-load-config-with-services-in-symfony-console", "published_at": "2018-05-14T00:00:00+00:00" }, { "id": "01a08c56-ed22-73a2-80b0-bd382d84f8ff", "title": "Why You Should Combine Symfony Console and Dependency Injection", "url": "https://tomasvotruba.com/blog/2018/05/07/why-you-should-combine-symfony-console-and-dependency-injection", "published_at": "2018-05-07T00:00:00+00:00" }, { "id": "01a08c56-ed22-73a2-80b0-bd382e6c833c", "title": "How Do You Treat Your Own First AI", "url": "https://tomasvotruba.com/blog/2018/05/03/how-do-you-treat-your-own-first-ai", "published_at": "2018-05-03T00:00:00+00:00" }, { "id": "01a08c56-ed22-73a2-80b0-bd382f4ce1d8", "title": "Programming = Climbing a Huge Mountain", "url": "https://tomasvotruba.com/blog/2018/04/30/programming-climbing-a-huge-mountain", "published_at": "2018-04-30T00:00:00+00:00" }, { "id": "01a08c56-ed22-73a2-80b0-bd3830060b5e", "title": "How I Got into Static Trap and Made Fool of Myself", "url": "https://tomasvotruba.com/blog/2018/04/26/how-i-got-into-static-trap-and-made-fool-of-myself", "published_at": "2018-04-26T00:00:00+00:00" }, { "id": "01a08c56-ed22-73a2-80b0-bd3830859ad2", "title": "4 Tips To Get Emotions to Your Blogging About Programming", "url": "https://tomasvotruba.com/blog/2018/04/19/4-tips-to-get-emotions-to-your-blogging-about-programming", "published_at": "2018-04-19T00:00:00+00:00" }, { "id": "01a08c56-ed22-73a2-80b0-bd383120bfb0", "title": "The Best 5 of 256 Bloghacks Book", "url": "https://tomasvotruba.com/blog/2018/04/12/the-best-5-of-256-bloghacks-book", "published_at": "2018-04-12T00:00:00+00:00" }, { "id": "01a08c56-ed22-73a2-80b0-bd3831897679", "title": "Try PSR-12 on Your Code Today", "url": "https://tomasvotruba.com/blog/2018/04/09/try-psr-12-on-your-code-today", "published_at": "2018-04-09T00:00:00+00:00" }, { "id": "01a08c56-ed22-73a2-80b0-bd3831bf96d0", "title": "New in Coding Standard 4: Long Line Breaks Automated and 3 Legacy Prevention Fixers", "url": "https://tomasvotruba.com/blog/2018/03/29/new-in-coding-standard-4-long-line-breaks-automated-and-3-legacy-prevention-fixers", "published_at": "2018-03-29T00:00:00+00:00" }, { "id": "01a08c56-ed22-73a2-80b0-bd38324abaf3", "title": "How Teaching Suicides Itself by Killing the Passion", "url": "https://tomasvotruba.com/blog/2018/03/22/how-teaching-suicides-itself-by-killing-the-passion", "published_at": "2018-03-22T00:00:00+00:00" }, { "id": "01a08c56-ed22-73a2-80b0-bd383255c813", "title": "How to Criticize like a Senior Programmer", "url": "https://tomasvotruba.com/blog/2018/03/19/how-to-criticize-like-a-senior-programmer", "published_at": "2018-03-19T00:00:00+00:00" }, { "id": "01a08c56-ed22-73a2-80b0-bd3832fd6985", "title": "NEON vs. YAML and How to Migrate Between Them", "url": "https://tomasvotruba.com/blog/2018/03/12/neon-vs-yaml-and-how-to-migrate-between-them", "published_at": "2018-03-12T00:00:00+00:00" }, { "id": "01a08c56-ed22-73a2-80b0-bd3833f8f4af", "title": "Why is Collector Pattern so Awesome", "url": "https://tomasvotruba.com/blog/2018/03/08/why-is-collector-pattern-so-awesome", "published_at": "2018-03-08T00:00:00+00:00" }, { "id": "01a08c56-ed22-73a2-80b0-bd3834aa4403", "title": "Rector: Part 3 - Why Instant Upgrades", "url": "https://tomasvotruba.com/blog/2018/03/05/rector-part-3-why-instant-upgrades", "published_at": "2018-03-05T00:00:00+00:00" }, { "id": "01a08c56-ed22-73a2-80b0-bd38353792fe", "title": "Rector: Part 2 - Maturity of PHP Ecosystem and Founding Fathers", "url": "https://tomasvotruba.com/blog/2018/02/26/rector-part-2-maturity-of-php-ecocystem-and-founding-fathers", "published_at": "2018-02-26T00:00:00+00:00" }, { "id": "01a08c56-ed22-73a2-80b0-bd3835ff1e79", "title": "Rector: Part 1 - What and How", "url": "https://tomasvotruba.com/blog/2018/02/19/rector-part-1-what-and-how", "published_at": "2018-02-19T00:00:00+00:00" }, { "id": "01a08c56-ed22-73a2-80b0-bd3836ea96b1", "title": "Sleep Shorter to Get 62 % Smarter", "url": "https://tomasvotruba.com/blog/2018/02/12/sleep-shorter-to-get-62-percent-smarter", "published_at": "2018-02-12T00:00:00+00:00" }, { "id": "01a08c56-ed22-73a2-80b0-bd383750564d", "title": "How to Deal With Haters in Comments and Github", "url": "https://tomasvotruba.com/blog/2018/01/29/how-to-deal-with-haters-in-comments-and-github", "published_at": "2018-01-29T00:00:00+00:00" }, { "id": "01a08c56-ed22-73a2-80b0-bd383839e4ad", "title": "Clean and Decoupled Controllers, Commands and Event Subscribers Once and for All with Delegator Pattern", "url": "https://tomasvotruba.com/blog/2018/01/08/clean-and-decoupled-controllers-commands-and-event-subscribers-once-and-for-all-with-delegator-pattern", "published_at": "2018-01-08T00:00:00+00:00" }, { "id": "01a08c56-ed22-73a2-80b0-bd38391a5d39", "title": "Composer Local Packages for Dummies", "url": "https://tomasvotruba.com/blog/2017/12/25/composer-local-packages-for-dummies", "published_at": "2017-12-25T00:00:00+00:00" }, { "id": "01a08c56-ed22-73a2-80b0-bd3839484eb1", "title": "Life 3.0: What Will You Do When AI Takes Over the World", "url": "https://tomasvotruba.com/blog/2017/12/04/life30-what-will-you-do-when-ai-takes-over-the-world", "published_at": "2017-12-04T00:00:00+00:00" }, { "id": "01a08c56-ed22-73a2-80b0-bd3839fc88a3", "title": "How to Write Interesting Jobs Offers for Programmers", "url": "https://tomasvotruba.com/blog/2017/11/20/how-to-write-interesting-job-offers-for-programmers", "published_at": "2017-11-20T00:00:00+00:00" }, { "id": "01a08c56-ed22-73a2-80b0-bd383a9422aa", "title": "7 Tips You Should Know Before Going To University", "url": "https://tomasvotruba.com/blog/2017/11/13/7-tips-you-should-know-before-going-to-university", "published_at": "2017-11-13T00:00:00+00:00" }, { "id": "01a08c56-ed22-73a2-80b0-bd383b5e4de2", "title": "How to change PHP code with Abstract Syntax Tree", "url": "https://tomasvotruba.com/blog/2017/11/06/how-to-change-php-code-with-abstract-syntax-tree", "published_at": "2017-11-06T00:00:00+00:00" }, { "id": "01a08c56-ed22-73a2-80b0-bd383c15201c", "title": "What can You Learn from Menstruation and Symfony Releases", "url": "https://tomasvotruba.com/blog/2017/10/30/what-can-you-learn-from-menstruation-and-symfony-releases", "published_at": "2017-10-30T00:00:00+00:00" }, { "id": "01a08c56-ed22-73a2-80b0-bd383c3e069d", "title": "IMbox Zero", "url": "https://tomasvotruba.com/blog/2017/10/23/imbox-zero", "published_at": "2017-10-23T00:00:00+00:00" }, { "id": "01a08c56-ed22-73a2-80b0-bd383cbed44c", "title": "How to use Repository with Doctrine as Service in Symfony", "url": "https://tomasvotruba.com/blog/2017/10/16/how-to-use-repository-with-doctrine-as-service-in-symfony", "published_at": "2017-10-16T00:00:00+00:00" }, { "id": "01a08c56-ed22-73a2-80b0-bd383d5d5998", "title": "How to Get the Most Valuable Feedback You Can Get", "url": "https://tomasvotruba.com/blog/2017/10/09/how-to-get-the-most-valuable-feedback-you-can-get", "published_at": "2017-10-09T00:00:00+00:00" }, { "id": "01a08c56-ed22-73a2-80b0-bd383d6e4d02", "title": "3 non-IT Books That Help you to Become Better Programmer", "url": "https://tomasvotruba.com/blog/2017/09/25/3-non-it-books-that-help-you-to-become-better-programmer", "published_at": "2017-09-25T00:00:00+00:00" }, { "id": "01a08c56-ed22-73a2-80b0-bd383e6ad003", "title": "How PHP Coding Standard Tools Actually Work", "url": "https://tomasvotruba.com/blog/2017/07/31/how-php-coding-standard-tools-actually-work", "published_at": "2017-07-31T00:00:00+00:00" }, { "id": "01a08c56-ed22-73a2-80b0-bd383ecc1ba5", "title": "How to Write Custom Fixer for PHP CS Fixer 3", "url": "https://tomasvotruba.com/blog/2017/07/24/how-to-write-custom-fixer-for-php-cs-fixer-24", "published_at": "2017-07-24T00:00:00+00:00" }, { "id": "01a08c56-ed22-73a2-80b0-bd383f27c0e1", "title": "How to Write Custom Sniff for Code Sniffer 3+", "url": "https://tomasvotruba.com/blog/2017/07/17/how-to-write-custom-sniff-for-code-sniffer-3", "published_at": "2017-07-17T00:00:00+00:00" }, { "id": "01a08c56-ed22-73a2-80b0-bd383fcf39cb", "title": "How to Deprecate PHP Package Without Leaving Anyone Behind", "url": "https://tomasvotruba.com/blog/2017/07/03/how-to-deprecate-php-package-without-leaving-anyone-behind", "published_at": "2017-07-03T00:00:00+00:00" }, { "id": "01a08c56-ed22-73a2-80b0-bd3840376e98", "title": "Thank you David Grudl", "url": "https://tomasvotruba.com/blog/2017/06/01/thank-you-david", "published_at": "2017-06-01T00:00:00+00:00" }, { "id": "01a08c56-ed22-73a2-80b0-bd3840499b01", "title": "How to refactor to new Dependency Injection features in Symfony 3.3", "url": "https://tomasvotruba.com/blog/2017/05/07/how-to-refactor-to-new-dependency-injection-features-in-symfony-3-3", "published_at": "2017-05-07T00:00:00+00:00" }, { "id": "01a08c56-ed22-73a2-80b0-bd3840b8d8bd", "title": "Combine power of PHP_CodeSniffer and PHP CS Fixer in 3 lines", "url": "https://tomasvotruba.com/blog/2017/05/03/combine-power-of-php-code-sniffer-and-php-cs-fixer-in-3-lines", "published_at": "2017-05-03T00:00:00+00:00" }, { "id": "01a08c56-ed22-73a2-80b0-bd384185235c", "title": "3 Symfony and Laravel Patterns that Make Code Easy to Extend Without Modification", "url": "https://tomasvotruba.com/blog/2017/04/14/3-symfony-and-laravel-patterns-that-make-code-easy-to-extends-without-modification", "published_at": "2017-04-14T00:00:00+00:00" }, { "id": "01a08c56-ed22-73a2-80b0-bd384259d6bf", "title": "Drop all Service Tags in Your Nette and Symfony Applications", "url": "https://tomasvotruba.com/blog/2017/02/12/drop-all-service-tags-in-your-nette-and-symfony-applications", "published_at": "2017-02-12T00:00:00+00:00" }, { "id": "01a08c56-ed22-73a2-80b0-bd384356eac6", "title": "Why I Switched Scrutinizer for PHPStan and You Should Too", "url": "https://tomasvotruba.com/blog/2017/01/28/why-I-switched-scrutinizer-for-phpstan-and-you-should-too", "published_at": "2017-01-28T00:00:00+00:00" }, { "id": "01a08c56-ed22-73a2-80b0-bd38437c96df", "title": "7 rad, které bych si dal před odchodem na vysokou školu", "url": "https://tomasvotruba.com/blog/2017/01/15/7-rad-ktere-bych-si-dal-pred-odchodem-na-vysokou-skolu", "published_at": "2017-01-15T00:00:00+00:00" } ] posts Claim your blog
Back to tomasvotruba.com
Blog · corpus.blog/blogs/tomasvotruba.com/posts

tomasvotruba.com

tomasvotruba.com

2018

2017