<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="/blog/rss.xsl"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel>
        <title>Christophe Avonture &#x2014; PHP</title>
        <link>https://www.avonture.be/blog/tags/php</link>
        <description>PHP development, environment setup, and tips.</description>
        <lastBuildDate>Thu, 29 Oct 2026 00:00:00 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <language>en</language>
        <item>
            <title><![CDATA[Let Readers Flag Issues — A Multi-Type Feedback Widget for Docusaurus]]></title>
            <link>https://www.avonture.be/blog/docusaurus-typo-report-component</link>
            <guid isPermaLink="false">/blog/docusaurus-typo-report-component</guid>
            <pubDate>Thu, 29 Oct 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[<img src="https://www.avonture.be/img/v2/docusaurus_typos.webp" alt="Let Readers Flag Issues — A Multi-Type Feedback Widget for Docusaurus" style="display:block;max-width:100%;height:auto;">Build a secure, SSR-safe reader-feedback widget for your Docusaurus blog — text selection, 4 feedback types, PHP API with HMAC nonce, rate limiting, deduplication, admin dashboard, and email notifications.]]></description>
            <author>Christophe</author>
            <category>docusaurus</category>
            <category>component</category>
            <category>php</category>
            <category>react</category>
            <category>security</category>
            <enclosure length="0" type="image/webp" url="https://www.avonture.be/img/v2/docusaurus_typos.webp"/>
        <dc:creator><![CDATA[Christophe]]></dc:creator></item>
        <item>
            <title><![CDATA[ai-test: Generate Missing Unit Tests From Your Terminal With a Local LLM]]></title>
            <link>https://www.avonture.be/blog/ollama-test-generator</link>
            <guid isPermaLink="false">/blog/ollama-test-generator</guid>
            <pubDate>Mon, 03 Aug 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[<img src="https://www.avonture.be/img/v2/ai_test.webp" alt="ai-test: Generate Missing Unit Tests From Your Terminal With a Local LLM" style="display:block;max-width:100%;height:auto;">Turn your local Ollama model into an on-demand unit test generator. A zsh function that reads a Bash, PHP or Python file, detects whether you already have tests for it, prints only the missing Bats/Pest/Pytest cases needed for full coverage, offers to save them where the framework expects them, and runs the suite in a throw-away Docker container.]]></description>
            <author>Christophe</author>
            <author>Claude Code</author>
            <category>ai</category>
            <category>ollama</category>
            <category>zsh</category>
            <category>tests</category>
            <category>bash</category>
            <category>php</category>
            <category>python</category>
            <enclosure length="0" type="image/webp" url="https://www.avonture.be/img/v2/ai_test.webp"/>
        <dc:creator><![CDATA[Christophe]]></dc:creator><dc:creator><![CDATA[Claude Code]]></dc:creator></item>
        <item>
            <title><![CDATA[Adding Reader Reactions to Your Docusaurus Blog]]></title>
            <link>https://www.avonture.be/blog/docusaurus-reactions</link>
            <guid isPermaLink="false">/blog/docusaurus-reactions</guid>
            <pubDate>Mon, 27 Jul 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[<img src="https://www.avonture.be/img/v2/docusaurus_like_button.webp" alt="Adding Reader Reactions to Your Docusaurus Blog" style="display:block;max-width:100%;height:auto;">Build a fully working "Was this article helpful?" widget for your Docusaurus blog. Step-by-step guide covering the PHP backend, React component, CSS module, Docusaurus swizzle, and an admin dashboard — everything you need to reproduce it from scratch.]]></description>
            <author>Christophe</author>
            <category>docusaurus</category>
            <category>php</category>
            <category>react</category>
            <enclosure length="0" type="image/webp" url="https://www.avonture.be/img/v2/docusaurus_like_button.webp"/>
        <dc:creator><![CDATA[Christophe]]></dc:creator></item>
        <item>
            <title><![CDATA[Writing functional tests with Pest]]></title>
            <link>https://www.avonture.be/blog/pest-functional-testing</link>
            <guid isPermaLink="false">/blog/pest-functional-testing</guid>
            <pubDate>Sat, 30 Aug 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[<img src="https://www.avonture.be/img/v2/functional_tests.webp" alt="Writing functional tests with Pest" style="display:block;max-width:100%;height:auto;">Discover how to write clean and expressive functional tests using the Pest PHP testing framework.]]></description>
            <author>Christophe</author>
            <category>laravel</category>
            <category>php</category>
            <category>tests</category>
            <enclosure length="0" type="image/webp" url="https://www.avonture.be/img/v2/functional_tests.webp"/>
        <dc:creator><![CDATA[Christophe]]></dc:creator></item>
        <item>
            <title><![CDATA[API REST - How to write good APIs]]></title>
            <link>https://www.avonture.be/blog/php-api-tips</link>
            <guid isPermaLink="false">/blog/php-api-tips</guid>
            <pubDate>Mon, 19 May 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[<img src="https://www.avonture.be/img/v2/api.webp" alt="API REST - How to write good APIs" style="display:block;max-width:100%;height:auto;">Master REST API best practices for clean and scalable design. Get tips on correct URI notation, using plural nouns, and utilizing HTTP verbs for semantically correct endpoints.]]></description>
            <author>Christophe</author>
            <category>api</category>
            <category>docker</category>
            <category>php</category>
            <enclosure length="0" type="image/webp" url="https://www.avonture.be/img/v2/api.webp"/>
        <dc:creator><![CDATA[Christophe]]></dc:creator></item>
        <item>
            <title><![CDATA[Using Mustache templating with Quarto]]></title>
            <link>https://www.avonture.be/blog/quarto-mustache</link>
            <guid isPermaLink="false">/blog/quarto-mustache</guid>
            <pubDate>Thu, 15 May 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[<img src="https://www.avonture.be/img/v2/mustache.webp" alt="Using Mustache templating with Quarto" style="display:block;max-width:100%;height:auto;">Master Mustache templating in Quarto! Discover how to use the quarto-partials extension to create structured, repetitive documentation pages for your static website project.]]></description>
            <author>Christophe</author>
            <category>markdown</category>
            <category>php</category>
            <category>quarto</category>
            <enclosure length="0" type="image/webp" url="https://www.avonture.be/img/v2/mustache.webp"/>
        <dc:creator><![CDATA[Christophe]]></dc:creator></item>
        <item>
            <title><![CDATA[Laravel Telescope]]></title>
            <link>https://www.avonture.be/blog/laravel-telescope</link>
            <guid isPermaLink="false">/blog/laravel-telescope</guid>
            <pubDate>Sat, 22 Mar 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[<img src="https://www.avonture.be/img/v2/laravel.webp" alt="Laravel Telescope" style="display:block;max-width:100%;height:auto;">Laravel Telescope is your ultimate debugging assistant, offering realtime insights into your application's queries, exceptions, cache, and logs. Understand and fix issues faster.]]></description>
            <author>Christophe</author>
            <category>laravel</category>
            <category>php</category>
            <enclosure length="0" type="image/webp" url="https://www.avonture.be/img/v2/laravel.webp"/>
        <dc:creator><![CDATA[Christophe]]></dc:creator></item>
        <item>
            <title><![CDATA[Using Docker init to quickly dockerize your PHP application]]></title>
            <link>https://www.avonture.be/blog/docker-init-php-apache</link>
            <guid isPermaLink="false">/blog/docker-init-php-apache</guid>
            <pubDate>Sun, 05 Jan 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[<img src="https://www.avonture.be/img/v2/docker_init.webp" alt="Using Docker init to quickly dockerize your PHP application" style="display:block;max-width:100%;height:auto;">Quickly dockerize your PHP application with Apache using the docker init command. This wizard-based tool generates the necessary Docker files and shows secure database integration.]]></description>
            <author>Christophe</author>
            <category>apache</category>
            <category>docker</category>
            <category>php</category>
            <category>security</category>
            <enclosure length="0" type="image/webp" url="https://www.avonture.be/img/v2/docker_init.webp"/>
        <dc:creator><![CDATA[Christophe]]></dc:creator></item>
        <item>
            <title><![CDATA[Format poorly formatted PHP code]]></title>
            <link>https://www.avonture.be/blog/online-php-linter</link>
            <guid isPermaLink="false">/blog/online-php-linter</guid>
            <pubDate>Sun, 01 Dec 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[<img src="https://www.avonture.be/img/v2/clean_code.webp" alt="Format poorly formatted PHP code" style="display:block;max-width:100%;height:auto;">Need to clean up messy PHP code fast? Discover the best online PHP linter, Pint-express (based on Laravel Pint), to instantly format and beautify your code. No installation needed!]]></description>
            <author>Christophe</author>
            <category>code-quality</category>
            <category>laravel</category>
            <category>php</category>
            <category>vscode</category>
            <enclosure length="0" type="image/webp" url="https://www.avonture.be/img/v2/clean_code.webp"/>
        <dc:creator><![CDATA[Christophe]]></dc:creator></item>
        <item>
            <title><![CDATA[Write PHP unit tests using Pest]]></title>
            <link>https://www.avonture.be/blog/pest_tips</link>
            <guid isPermaLink="false">/blog/pest_tips</guid>
            <pubDate>Fri, 27 Sep 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[<img src="https://www.avonture.be/img/v2/unit_tests.webp" alt="Write PHP unit tests using Pest" style="display:block;max-width:100%;height:auto;">Master PHP unit testing with Pest! Discover easy installation, the expressive expect syntax, datasets, snapshots, and powerful architectural testing features.]]></description>
            <author>Christophe</author>
            <category>code-quality</category>
            <category>laravel</category>
            <category>php</category>
            <category>tests</category>
            <category>vscode</category>
            <enclosure length="0" type="image/webp" url="https://www.avonture.be/img/v2/unit_tests.webp"/>
        <dc:creator><![CDATA[Christophe]]></dc:creator></item>
    </channel>
</rss>