41554 blogs · [ { "id": "01a0877d-bcf7-70e0-8f14-680f437a3c2e", "title": "Turn your PHP app into a standalone binary", "url": "https://gnugat.github.io/2026/03/25/turn-you-php-app-into-a-standalone-binary.html", "published_at": "2026-03-25T00:00:00+00:00" }, { "id": "01a0877d-bcf7-70e0-8f14-680f43f1f8eb", "title": "PHP-TUI", "url": "https://gnugat.github.io/2026/03/18/xl-12-php-tui.html", "published_at": "2026-03-18T00:00:00+00:00" }, { "id": "01a0877d-bcf7-70e0-8f14-680f44aef3e2", "title": "eXtreme Legacy 11: A PHP Monorepo of Apps and Packages", "url": "https://gnugat.github.io/2026/03/04/xl-11-monorepo.html", "published_at": "2026-03-04T00:00:00+00:00" }, { "id": "01a0877d-bcf7-70e0-8f14-680f44b9e4b4", "title": "Qalin: Test Control Interface, built with modern Symfony", "url": "https://gnugat.github.io/2026/02/25/xl-10-qalin-test-control-interface-with-symfony.html", "published_at": "2026-02-25T00:00:00+00:00" }, { "id": "01a0877d-bcf7-70e0-8f14-680f4593d7d6", "title": "eXtreme Legacy 9: XSS Vulnerability", "url": "https://gnugat.github.io/2026/01/21/xl-9-xss-vulnerability.html", "published_at": "2026-01-21T00:00:00+00:00" }, { "id": "01a0877d-bcf7-70e0-8f14-680f468800a8", "title": "eXtreme Legacy 8: From MySQL to PostgreSQL", "url": "https://gnugat.github.io/2025/12/03/xl-8-postgresql.html", "published_at": "2025-12-03T00:00:00+00:00" }, { "id": "01a0877d-bcf7-70e0-8f14-680f46f498cc", "title": "eXtreme Legacy 7: Rector", "url": "https://gnugat.github.io/2025/11/26/xl-7-rector.html", "published_at": "2025-11-26T00:00:00+00:00" }, { "id": "01a0877d-bcf7-70e0-8f14-680f47164b4d", "title": "eXtreme Legacy 6: From PHP 5 to PHP 8", "url": "https://gnugat.github.io/2025/11/19/xl-6-php-8.html", "published_at": "2025-11-19T00:00:00+00:00" }, { "id": "01a0877d-bcf7-70e0-8f14-680f47ff5a8b", "title": "eXtreme Legacy 5: PDO", "url": "https://gnugat.github.io/2025/10/22/xl-5-pdo.html", "published_at": "2025-10-21T23:00:00+00:00" }, { "id": "01a0877d-bcf7-70e0-8f14-680f483df266", "title": "eXtreme Legacy 4: Coding Standards", "url": "https://gnugat.github.io/2025/10/01/xl-4-coding-standards.html", "published_at": "2025-09-30T23:00:00+00:00" }, { "id": "01a0877d-bcf7-70e0-8f14-680f48526120", "title": "eXtreme Legacy 3: End to End Tests", "url": "https://gnugat.github.io/2025/09/24/xl-3-end-to-end-tests.html", "published_at": "2025-09-23T23:00:00+00:00" }, { "id": "01a0877d-bcf7-70e0-8f14-680f48cb572c", "title": "eXtreme Legacy 2: Smoke Tests", "url": "https://gnugat.github.io/2025/09/17/xl-2-smoke-tests.html", "published_at": "2025-09-16T23:00:00+00:00" }, { "id": "01a0877d-bcf7-70e0-8f14-680f496da39b", "title": "eXtreme Legacy 1: Dockerizing a 2005 LAMP app", "url": "https://gnugat.github.io/2025/09/10/xl-1-dockerizing-2005-lamp-app.html", "published_at": "2025-09-09T23:00:00+00:00" }, { "id": "01a0877d-bcf7-70e0-8f14-680f49efa4fc", "title": "My IDE is Vim", "url": "https://gnugat.github.io/2025/09/03/my-ide-is-vim.html", "published_at": "2025-09-02T23:00:00+00:00" }, { "id": "01a0877d-bcf7-70e0-8f14-680f4a6d9d13", "title": "My Dotfiles", "url": "https://gnugat.github.io/2025/08/27/my-dotfiles.html", "published_at": "2025-08-26T23:00:00+00:00" }, { "id": "01a0877d-bcf7-70e0-8f14-680f4aa5215e", "title": "My Git Workflow", "url": "https://gnugat.github.io/2025/08/20/my-git-workflow.html", "published_at": "2025-08-19T23:00:00+00:00" }, { "id": "01a0877d-bcf7-70e0-8f14-680f4aeabd3a", "title": "My Symfony Makefile", "url": "https://gnugat.github.io/2025/08/13/my-symfony-makefile.html", "published_at": "2025-08-12T23:00:00+00:00" }, { "id": "01a0877d-bcf7-70e0-8f14-680f4b60b072", "title": "My Symfony Dockerfile", "url": "https://gnugat.github.io/2025/08/06/my-symfony-dockerfile.html", "published_at": "2025-08-05T23:00:00+00:00" }, { "id": "01a0877d-bcf7-70e0-8f14-680f4c51d6d8", "title": "PHPUnit Best Practices (Ultimate Guide)", "url": "https://gnugat.github.io/2025/07/31/phpunit-best-practices.html", "published_at": "2025-07-30T23:00:00+00:00" }, { "id": "01a0877d-bcf7-70e0-8f14-680f4ccb1b25", "title": "PHP devs are Pirates", "url": "https://gnugat.github.io/2025/01/06/php-devs-are-pirates.html", "published_at": "2025-01-06T00:00:00+00:00" }, { "id": "01a0877d-bcf7-70e0-8f14-680f4d972e56", "title": "My role as a Lead PHP Engineer", "url": "https://gnugat.github.io/2024/12/09/my-role-as-a-lead-php-engineer.html", "published_at": "2024-12-09T00:00:00+00:00" }, { "id": "01a0877d-bcf7-70e0-8f14-680f4e2dfdc3", "title": "Don't mock what you don't own -- phpspec isn't a test framework", "url": "https://gnugat.github.io/2024/09/11/don-t-mock-what-you-don-t-own.html", "published_at": "2024-09-10T23:00:00+00:00" }, { "id": "01a0877d-bcf7-70e0-8f14-680f4e530320", "title": "phpspec tip: don't mock SUT inputs", "url": "https://gnugat.github.io/2024/08/19/phpspec-tip-don-t-mock-sut-inputs.html", "published_at": "2024-08-18T23:00:00+00:00" }, { "id": "01a0877d-bcf7-70e0-8f14-680f4e5ad900", "title": "Strategy Pattern, Symfony and autowiring", "url": "https://gnugat.github.io/2024/08/16/strategy-pattern-symfony-autowiring.html", "published_at": "2024-08-15T23:00:00+00:00" }, { "id": "01a0877d-bcf7-70e0-8f14-680f4eab8b5d", "title": "PHPUnit setUp() is a lie", "url": "https://gnugat.github.io/2024/07/03/phpunit-setup-is-a-lie.html", "published_at": "2024-07-02T23:00:00+00:00" }, { "id": "01a0877d-bcf7-70e0-8f14-680f4f1b53e2", "title": "ChatGPT: fluff or not? SpecBDD", "url": "https://gnugat.github.io/2023/04/19/chat-gpt-spec-bdd.html", "published_at": "2023-04-18T23:00:00+00:00" }, { "id": "01a0877d-bcf7-70e0-8f14-680f4fac37da", "title": "ChatGPT: fluff or not? Goldfish Memory", "url": "https://gnugat.github.io/2023/04/04/chat-gpt-goldfish-memory.html", "published_at": "2023-04-03T23:00:00+00:00" }, { "id": "01a0877d-bcf7-70e0-8f14-680f4fe1cfd4", "title": "ChatGPT: fluff or not? Academic Prompt Engineering", "url": "https://gnugat.github.io/2023/03/24/chat-gpt-academic-prompt-engineering.html", "published_at": "2023-03-24T00:00:00+00:00" }, { "id": "01a0877d-bcf7-70e0-8f14-680f50a136ef", "title": "ChatGPT: fluff or not? Prompt Engineering", "url": "https://gnugat.github.io/2023/03/01/chat-gpt.html", "published_at": "2023-03-01T00:00:00+00:00" }, { "id": "01a0877d-bcf7-70e0-8f14-680f511fccef", "title": "Short Identifier", "url": "https://gnugat.github.io/2018/06/15/short-identifier.html", "published_at": "2018-06-14T23:00:00+00:00" }, { "id": "01a0877d-bcf7-70e0-8f14-680f51fb7416", "title": "PragmatiClean - Command Bus", "url": "https://gnugat.github.io/2017/09/20/pragmaticlean-command-bus.html", "published_at": "2017-09-19T23:00:00+00:00" }, { "id": "01a0877d-bcf7-70e0-8f14-680f52dfcf99", "title": "PragmatiClean - introduction", "url": "https://gnugat.github.io/2017/09/13/pragmaticlean-introdution.html", "published_at": "2017-09-12T23:00:00+00:00" }, { "id": "01a0877d-bcf7-70e0-8f14-680f52f9cc3a", "title": "Links from 2016", "url": "https://gnugat.github.io/2017/05/24/links-from-2016.html", "published_at": "2017-05-23T23:00:00+00:00" }, { "id": "01a0877d-bcf7-70e0-8f14-680f53c7cbad", "title": "Mars Rover, Locating moving", "url": "https://gnugat.github.io/2016/10/12/mars-rover-locating-moving.html", "published_at": "2016-10-11T23:00:00+00:00" }, { "id": "01a0877d-bcf7-70e0-8f14-680f54161bc6", "title": "Mars Rover, Locating geolocation", "url": "https://gnugat.github.io/2016/10/05/mars-rover-locating-geolocation.html", "published_at": "2016-10-04T23:00:00+00:00" }, { "id": "01a0877d-bcf7-70e0-8f14-680f54967c48", "title": "Mars Rover, Locating refactoring", "url": "https://gnugat.github.io/2016/09/28/mars-rover-locating-refactoring.html", "published_at": "2016-09-27T23:00:00+00:00" }, { "id": "01a0877d-bcf7-70e0-8f14-680f54d679e3", "title": "Mars Rover, Locating handler", "url": "https://gnugat.github.io/2016/09/21/mars-rover-locating-handler.html", "published_at": "2016-09-20T23:00:00+00:00" }, { "id": "01a0877d-bcf7-70e0-8f14-680f54e6954a", "title": "Mars Rover, Locating package", "url": "https://gnugat.github.io/2016/09/14/mars-rover-locating-package.html", "published_at": "2016-09-13T23:00:00+00:00" }, { "id": "01a0877d-bcf7-70e0-8f14-680f54faa2ca", "title": "Mars Rover, Driving event", "url": "https://gnugat.github.io/2016/09/07/mars-rover-driving-event.html", "published_at": "2016-09-06T23:00:00+00:00" }, { "id": "01a0877d-bcf7-70e0-8f14-680f554b1517", "title": "Mars Rover, Driving instruction", "url": "https://gnugat.github.io/2016/08/17/mars-rover-driving-instruction.html", "published_at": "2016-08-16T23:00:00+00:00" }, { "id": "01a0877d-bcf7-70e0-8f14-680f55944121", "title": "Mars Rover, Driving", "url": "https://gnugat.github.io/2016/08/10/mars-rover-driving.html", "published_at": "2016-08-09T23:00:00+00:00" }, { "id": "01a0877d-bcf7-70e0-8f14-680f55f20865", "title": "Mars Rover, Event Sourcing code", "url": "https://gnugat.github.io/2016/08/03/mars-rover-event-sourcing-code.html", "published_at": "2016-08-02T23:00:00+00:00" }, { "id": "01a0877d-bcf7-70e0-8f14-680f565cae4b", "title": "Mars Rover, Event Sourcing package", "url": "https://gnugat.github.io/2016/07/27/mars-rover-event-sourcing-package.html", "published_at": "2016-07-26T23:00:00+00:00" }, { "id": "01a0877d-bcf7-70e0-8f14-680f56b46709", "title": "Mars Rover, Landing event", "url": "https://gnugat.github.io/2016/07/20/mars-rover-landing-event.html", "published_at": "2016-07-19T23:00:00+00:00" }, { "id": "01a0877d-bcf7-70e0-8f14-680f57a6f7e9", "title": "Mars Rover, Landing orientation", "url": "https://gnugat.github.io/2016/07/13/mars-rover-landing-orientation.html", "published_at": "2016-07-12T23:00:00+00:00" }, { "id": "01a0877d-bcf7-70e0-8f14-680f5874fe2e", "title": "Mars Rover, Landing coordinates", "url": "https://gnugat.github.io/2016/07/06/mars-rover-landing-coordinates.html", "published_at": "2016-07-05T23:00:00+00:00" }, { "id": "01a0877d-bcf7-70e0-8f14-680f58898020", "title": "Mars Rover, Landing", "url": "https://gnugat.github.io/2016/06/29/mars-rover-landing.html", "published_at": "2016-06-28T23:00:00+00:00" }, { "id": "01a0877d-bcf7-70e0-8f14-680f58d34903", "title": "Mars Rover, Initialization", "url": "https://gnugat.github.io/2016/06/22/mars-rover-initialization.html", "published_at": "2016-06-21T23:00:00+00:00" }, { "id": "01a0877d-bcf7-70e0-8f14-680f5999552f", "title": "Mars Rover, Introduction", "url": "https://gnugat.github.io/2016/06/15/mars-rover-introduction.html", "published_at": "2016-06-14T23:00:00+00:00" }, { "id": "01a0877d-bcf7-70e0-8f14-680f59c60ff8", "title": "Towards CQRS, Search Engine", "url": "https://gnugat.github.io/2016/05/18/towards-cqrs-search-engine.html", "published_at": "2016-05-17T23:00:00+00:00" }, { "id": "01a0877d-bcf7-70e0-8f14-680f59cbe21c", "title": "Towards CQRS, Command Bus", "url": "https://gnugat.github.io/2016/05/11/towards-cqrs-command-bus.html", "published_at": "2016-05-10T23:00:00+00:00" }, { "id": "01a0877d-bcf7-70e0-8f14-680f59d379b7", "title": "Event Driven Architecture", "url": "https://gnugat.github.io/2016/04/27/event-driven-architecture.html", "published_at": "2016-04-26T23:00:00+00:00" }, { "id": "01a0877d-bcf7-70e0-8f14-680f5a7ee502", "title": "Super Speed Symfony - nginx", "url": "https://gnugat.github.io/2016/04/20/super-speed-sf-nginx.html", "published_at": "2016-04-19T23:00:00+00:00" }, { "id": "01a0877d-bcf7-70e0-8f14-680f5b7641dd", "title": "Super Speed Symfony - ReactPHP", "url": "https://gnugat.github.io/2016/04/13/super-speed-sf-react-php.html", "published_at": "2016-04-12T23:00:00+00:00" }, { "id": "01a0877d-bcf7-70e0-8f14-680f5c692bc0", "title": "The Ultimate Developer Guide to Symfony - CLI Example", "url": "https://gnugat.github.io/2016/04/06/ultimate-symfony-cli-example.html", "published_at": "2016-04-05T23:00:00+00:00" }, { "id": "01a0877d-bcf7-70e0-8f14-680f5d196dc1", "title": "The Ultimate Developer Guide to Symfony - Web Example", "url": "https://gnugat.github.io/2016/03/30/ultimate-symfony-web-example.html", "published_at": "2016-03-29T23:00:00+00:00" }, { "id": "01a0877d-bcf7-70e0-8f14-680f5da0d1c0", "title": "The Ultimate Developer Guide to Symfony - API Example", "url": "https://gnugat.github.io/2016/03/24/ultimate-symfony-api-example.html", "published_at": "2016-03-24T00:00:00+00:00" }, { "id": "01a0877d-bcf7-70e0-8f14-680f5e9cc806", "title": "The Ultimate Developer Guide to Symfony - Skeleton", "url": "https://gnugat.github.io/2016/03/16/ultimate-symfony-skeleton.html", "published_at": "2016-03-16T00:00:00+00:00" }, { "id": "01a0877d-bcf8-73c8-a7aa-8501849901a1", "title": "The Ultimate Developer Guide to Symfony - Bundle", "url": "https://gnugat.github.io/2016/03/09/ultimate-symfony-bundle.html", "published_at": "2016-03-09T00:00:00+00:00" }, { "id": "01a0877d-bcf8-73c8-a7aa-850184e70317", "title": "The Ultimate Developer Guide to Symfony - Console", "url": "https://gnugat.github.io/2016/03/02/ultimate-symfony-console.html", "published_at": "2016-03-02T00:00:00+00:00" }, { "id": "01a0877d-bcf8-73c8-a7aa-850185ad6356", "title": "The Ultimate Developer Guide to Symfony - Dependency Injection", "url": "https://gnugat.github.io/2016/02/24/ultimate-symfony-dependency-injection.html", "published_at": "2016-02-24T00:00:00+00:00" }, { "id": "01a0877d-bcf8-73c8-a7aa-850186581242", "title": "The Ultimate Developer Guide to Symfony - Routing", "url": "https://gnugat.github.io/2016/02/17/ultimate-symfony-routing.html", "published_at": "2016-02-17T00:00:00+00:00" }, { "id": "01a0877d-bcf8-73c8-a7aa-85018702be5a", "title": "The Ultimate Developer Guide to Symfony - Event Dispatcher", "url": "https://gnugat.github.io/2016/02/10/ultimate-symfony-event-dispatcher.html", "published_at": "2016-02-10T00:00:00+00:00" }, { "id": "01a0877d-bcf8-73c8-a7aa-8501875590e4", "title": "The Ultimate Developer Guide to Symfony - HTTP Kernel", "url": "https://gnugat.github.io/2016/02/03/ultimate-symfony-http-kernel.html", "published_at": "2016-02-03T00:00:00+00:00" }, { "id": "01a0877d-bcf8-73c8-a7aa-850187848906", "title": "Links from 2015", "url": "https://gnugat.github.io/2016/01/27/links-from-2015.html", "published_at": "2016-01-27T00:00:00+00:00" }, { "id": "01a0877d-bcf8-73c8-a7aa-85018871bfaa", "title": "Couscous", "url": "https://gnugat.github.io/2016/01/20/couscous.html", "published_at": "2016-01-20T00:00:00+00:00" }, { "id": "01a0877d-bcf8-73c8-a7aa-850188990788", "title": "Scuplin", "url": "https://gnugat.github.io/2016/01/15/sculpin.html", "published_at": "2016-01-15T00:00:00+00:00" }, { "id": "01a0877d-bcf8-73c8-a7aa-850188e1d51f", "title": "Symfony Micro Framework", "url": "https://gnugat.github.io/2015/12/23/symfony-micro-framework.html", "published_at": "2015-12-23T00:00:00+00:00" }, { "id": "01a0877d-bcf8-73c8-a7aa-850189580c66", "title": "HTTP Cache", "url": "https://gnugat.github.io/2015/11/26/http-cache.html", "published_at": "2015-11-26T00:00:00+00:00" }, { "id": "01a0877d-bcf8-73c8-a7aa-850189bc7b1d", "title": "Beyond PSR-7", "url": "https://gnugat.github.io/2015/11/11/beyond-psr7.html", "published_at": "2015-11-11T00:00:00+00:00" }, { "id": "01a0877d-bcf8-73c8-a7aa-850189c0b53d", "title": "porpaginas", "url": "https://gnugat.github.io/2015/11/05/porpaginas.html", "published_at": "2015-11-05T00:00:00+00:00" }, { "id": "01a0877d-bcf8-73c8-a7aa-85018a3cd533", "title": "Decouple from Decoupling", "url": "https://gnugat.github.io/2015/10/26/decouple-from-decoupling.html", "published_at": "2015-10-26T00:00:00+00:00" }, { "id": "01a0877d-bcf8-73c8-a7aa-85018b1dcfcd", "title": "Decouple from Libraries", "url": "https://gnugat.github.io/2015/10/12/decouple-from-libraries.html", "published_at": "2015-10-11T23:00:00+00:00" }, { "id": "01a0877d-bcf8-73c8-a7aa-85018bcb6c83", "title": "Decouple from Frameworks", "url": "https://gnugat.github.io/2015/09/30/decouple-from-frameworks.html", "published_at": "2015-09-29T23:00:00+00:00" }, { "id": "01a0877d-bcf8-73c8-a7aa-85018cbc3458", "title": "PHPUnit with phpspec", "url": "https://gnugat.github.io/2015/09/23/phpunit-with-phpspec.html", "published_at": "2015-09-22T23:00:00+00:00" }, { "id": "01a0877d-bcf8-73c8-a7aa-85018d8788d2", "title": "Tactician", "url": "https://gnugat.github.io/2015/09/09/tactician.html", "published_at": "2015-09-08T23:00:00+00:00" }, { "id": "01a0877d-bcf8-73c8-a7aa-85018e03fc41", "title": "Command/Query Responsibility Segregation", "url": "https://gnugat.github.io/2015/08/25/cqrs.html", "published_at": "2015-08-24T23:00:00+00:00" }, { "id": "01a0877d-bcf8-73c8-a7aa-85018e6fb890", "title": "Diactoros (PSR-7)", "url": "https://gnugat.github.io/2015/08/07/diactoros-psr7.html", "published_at": "2015-08-06T23:00:00+00:00" }, { "id": "01a0877d-bcf8-73c8-a7aa-85018f081783", "title": "Pomm Foundation", "url": "https://gnugat.github.io/2015/08/06/pomm-foundation.html", "published_at": "2015-08-05T23:00:00+00:00" }, { "id": "01a0877d-bcf8-73c8-a7aa-85018f6c7b4f", "title": "phinx", "url": "https://gnugat.github.io/2015/08/05/phinx.html", "published_at": "2015-08-04T23:00:00+00:00" }, { "id": "01a0877d-bcf8-73c8-a7aa-85019023afa7", "title": "Simple Bus", "url": "https://gnugat.github.io/2015/08/04/simple-bus.html", "published_at": "2015-08-03T23:00:00+00:00" }, { "id": "01a0877d-bcf8-73c8-a7aa-85019062cd30", "title": "phpspec", "url": "https://gnugat.github.io/2015/08/03/phpspec.html", "published_at": "2015-08-02T23:00:00+00:00" }, { "id": "01a0877d-bcf8-73c8-a7aa-850190f05b60", "title": "Symfony Differently - part 3: Conclusion", "url": "https://gnugat.github.io/2015/08/02/sf-differently-part-3-conclusion.html", "published_at": "2015-08-01T23:00:00+00:00" }, { "id": "01a0877d-bcf8-73c8-a7aa-850191e3ba9a", "title": "Symfony Differently - part 2: Bootstrap", "url": "https://gnugat.github.io/2015/06/10/sf-differently-part-2-bootstrap.html", "published_at": "2015-06-09T23:00:00+00:00" }, { "id": "01a0877d-bcf8-73c8-a7aa-85019214ba7c", "title": "Symfony Differently - part 1: Introduction", "url": "https://gnugat.github.io/2015/06/03/sf-differently-part-1-introduction.html", "published_at": "2015-06-02T23:00:00+00:00" }, { "id": "01a0877d-bcf8-73c8-a7aa-850193007583", "title": "SpecGen v0.3", "url": "https://gnugat.github.io/2015/05/28/spec-gen-0-3.html", "published_at": "2015-05-27T23:00:00+00:00" }, { "id": "01a0877d-bcf8-73c8-a7aa-850193788938", "title": "SpecGen v0.2", "url": "https://gnugat.github.io/2015/05/20/spec-gen-0-2.html", "published_at": "2015-05-19T23:00:00+00:00" }, { "id": "01a0877d-bcf8-73c8-a7aa-850194361180", "title": "Memio SpecGen v0.1", "url": "https://gnugat.github.io/2015/05/13/memio-spec-gen.html", "published_at": "2015-05-12T23:00:00+00:00" }, { "id": "01a0877d-bcf8-73c8-a7aa-850194c18550", "title": "Memio v1.0", "url": "https://gnugat.github.io/2015/05/06/memio.html", "published_at": "2015-05-05T23:00:00+00:00" }, { "id": "01a0877d-bcf8-73c8-a7aa-850194cda695", "title": "Memio Pretty Printer", "url": "https://gnugat.github.io/2015/04/29/memio-pretty-printer.html", "published_at": "2015-04-28T23:00:00+00:00" }, { "id": "01a0877d-bcf8-73c8-a7aa-8501957899b0", "title": "Memio validator and linter", "url": "https://gnugat.github.io/2015/04/22/memio-validator-linter.html", "published_at": "2015-04-21T23:00:00+00:00" }, { "id": "01a0877d-bcf8-73c8-a7aa-8501962aa5e0", "title": "Memio models", "url": "https://gnugat.github.io/2015/04/15/memio-models.html", "published_at": "2015-04-14T23:00:00+00:00" }, { "id": "01a0877d-bcf8-73c8-a7aa-850196b9bf72", "title": "Introducing Memio, code generator", "url": "https://gnugat.github.io/2015/04/08/introducing-memio-code-generator.html", "published_at": "2015-04-07T23:00:00+00:00" }, { "id": "01a0877d-bcf8-73c8-a7aa-8501978e1b73", "title": "Hello World, best practices - part 1.1.1", "url": "https://gnugat.github.io/2015/04/01/hello-world-best-practices.html", "published_at": "2015-03-31T23:00:00+00:00" }, { "id": "01a0877d-bcf8-73c8-a7aa-850197e1e2d8", "title": "Symfony / Web Services - part 3.3: Consuming, remote calls", "url": "https://gnugat.github.io/2015/03/25/sf-ws-part-3-3-consuming-remote.html", "published_at": "2015-03-25T00:00:00+00:00" }, { "id": "01a0877d-bcf8-73c8-a7aa-8501989aeedc", "title": "Symfony / Web Services - part 3.2: Consuming, Guzzle", "url": "https://gnugat.github.io/2015/03/18/sf-ws-part-3-2-consuming-guzzle.html", "published_at": "2015-03-18T00:00:00+00:00" }, { "id": "01a0877d-bcf8-73c8-a7aa-8501991724e2", "title": "Symfony / Web Services - part 3.1: Consuming, RequestHandler", "url": "https://gnugat.github.io/2015/03/11/sf-ws-part-3-1-consuming-request-handler.html", "published_at": "2015-03-11T00:00:00+00:00" }, { "id": "01a0877d-bcf8-73c8-a7aa-85019995e0d6", "title": "Symfony / Web Services - part 2.3: Creation, refactoring", "url": "https://gnugat.github.io/2015/03/04/sf-ws-part-2-3-creation-refactoring.html", "published_at": "2015-03-04T00:00:00+00:00" }, { "id": "01a0877d-bcf8-73c8-a7aa-85019a02071e", "title": "Symfony / Web Services - part 2.2: Creation, the pragmatic way", "url": "https://gnugat.github.io/2015/01/28/sf-ws-part-2-2-creation-pragmatic.html", "published_at": "2015-01-28T00:00:00+00:00" }, { "id": "01a0877d-bcf8-73c8-a7aa-85019a2b0e23", "title": "Symfony / Web Services - part 2.1: Creation bootstrap", "url": "https://gnugat.github.io/2015/01/21/sf-ws-part-2-1-creation-bootstrap.html", "published_at": "2015-01-21T00:00:00+00:00" } ] posts Claim your blog
Back to gnugat.github.io
Blog · corpus.blog/blogs/gnugat.github.io/posts

gnugat.github.io

gnugat.github.io

2026

2025

2024

2023

2018

2017

2016

2015