<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <atom:link href="https://www.daveliddament.co.uk/feed/" rel="self" type="application/rss+xml" />
        <title>Dave Liddament</title>
        <link>https://www.daveliddament.co.uk</link>
        <description>Articles, talks and videos by Dave Liddament</description>
        <language>en-gb</language>
        <item>
            <title>Introducing Test Splitter</title>
            <link>https://www.daveliddament.co.uk/articles/introducing-test-splitter/</link>
            <description>Test Splitter is a small open source tool that splits a PHPUnit test suite into deterministic batches, so the batches can be run in parallel CI jobs to cut build times.</description>
            <pubDate>Mon, 06 Jul 2026 00:00:00 GMT</pubDate>
            <guid>https://www.daveliddament.co.uk/articles/introducing-test-splitter/</guid>
            <category>Article</category>
        </item>
        <item>
            <title>Introducing SARB (Static Analysis Results Baseliner)</title>
            <link>https://www.daveliddament.co.uk/articles/introducing-sarb/</link>
            <description>SARB (Static Analysis Results Baseliner) is an open source tool that lets you adopt static analysis on an existing PHP codebase by baselining pre-existing issues, so your build only fails on new ones.</description>
            <pubDate>Mon, 06 Jul 2026 00:00:00 GMT</pubDate>
            <guid>https://www.daveliddament.co.uk/articles/introducing-sarb/</guid>
            <category>Article</category>
        </item>
        <item>
            <title>Introducing the PHPStan Rule Test Helper</title>
            <link>https://www.daveliddament.co.uk/articles/introducing-phpstan-rule-test-helper/</link>
            <description>The PHPStan Rule Test Helper is an open source library that makes tests for custom PHPStan rules easier to write and maintain, by removing line numbers and duplicated error messages from tests.</description>
            <pubDate>Sun, 05 Jul 2026 00:00:00 GMT</pubDate>
            <guid>https://www.daveliddament.co.uk/articles/introducing-phpstan-rule-test-helper/</guid>
            <category>Article</category>
        </item>
        <item>
            <title>AI Assisted Coding</title>
            <link>https://www.daveliddament.co.uk/talks/ai-assisted-coding/</link>
            <description>A lightning talk on AI assisted coding (May 2026)</description>
            <pubDate>Wed, 13 May 2026 00:00:00 GMT</pubDate>
            <guid>https://www.daveliddament.co.uk/talks/ai-assisted-coding/</guid>
            <category>Talk</category>
        </item>
        <item>
            <title>Type Safe PHP: Leveraging Static Analysis for Robust Code</title>
            <link>https://www.daveliddament.co.uk/talks/type-safe-php/</link>
            <description>Type hints reduce bugs and enable safe refactoring, but PHP&#039;s type system has limits. Learn how static analysis bridges the gaps.</description>
            <pubDate>Wed, 15 Apr 2026 00:00:00 GMT</pubDate>
            <guid>https://www.daveliddament.co.uk/talks/type-safe-php/</guid>
            <category>Talk</category>
        </item>
        <item>
            <title>Systems Engineer to Cisterns Engineer</title>
            <link>https://www.daveliddament.co.uk/articles/systems-to-cisterns/</link>
            <description>The bootcamp for software engineers who want to switch to plumbing.</description>
            <pubDate>Wed, 01 Apr 2026 00:00:00 GMT</pubDate>
            <guid>https://www.daveliddament.co.uk/articles/systems-to-cisterns/</guid>
            <category>Article</category>
        </item>
        <item>
            <title>AI Writes Code. PHPStan Keeps It Honest.</title>
            <link>https://www.daveliddament.co.uk/talks/ai-writes-code-phpstan-keeps-it-honest/</link>
            <description>As AI generates more of our code, custom PHPStan rules keep quality and coding standards in check.</description>
            <pubDate>Fri, 13 Mar 2026 00:00:00 GMT</pubDate>
            <guid>https://www.daveliddament.co.uk/talks/ai-writes-code-phpstan-keeps-it-honest/</guid>
            <category>Talk</category>
        </item>
        <item>
            <title>Rector Beyond Upgrades: Transforming Your Workflow</title>
            <link>https://www.daveliddament.co.uk/talks/rector-beyond-upgrades/</link>
            <description>Rector is best known for code upgrades, but it can do much more. Learn how to automate repetitive tasks and enforce standards with custom rules.</description>
            <pubDate>Fri, 13 Mar 2026 00:00:00 GMT</pubDate>
            <guid>https://www.daveliddament.co.uk/talks/rector-beyond-upgrades/</guid>
            <category>Talk</category>
        </item>
        <item>
            <title>A static analysis first approach to RFCs</title>
            <link>https://www.daveliddament.co.uk/articles/static-analysis-first/</link>
            <description>Where appropriate should PHP updates start off in static analysis world before becoming part of the PHP language?</description>
            <pubDate>Sun, 08 Mar 2026 00:00:00 GMT</pubDate>
            <guid>https://www.daveliddament.co.uk/articles/static-analysis-first/</guid>
            <category>Article</category>
        </item>
        <item>
            <title>Introducing the InjectableVersion attribute</title>
            <link>https://www.daveliddament.co.uk/articles/introducing-injectable-version-attribute/</link>
            <description>Learn how the InjectableVersion attribute ensures that correct interface of class is used in Dependency Injection.</description>
            <pubDate>Tue, 03 Mar 2026 00:00:00 GMT</pubDate>
            <guid>https://www.daveliddament.co.uk/articles/introducing-injectable-version-attribute/</guid>
            <category>Article</category>
        </item>
        <item>
            <title>Introducing the RestrictTraitTo attribute</title>
            <link>https://www.daveliddament.co.uk/articles/introducing-restrict-trait-to-attribute/</link>
            <description>Learn how the RestrictTraitTo attribute ensures that traits are used correctly.</description>
            <pubDate>Thu, 26 Feb 2026 00:00:00 GMT</pubDate>
            <guid>https://www.daveliddament.co.uk/articles/introducing-restrict-trait-to-attribute/</guid>
            <category>Article</category>
        </item>
        <item>
            <title>PHP Performance Demystified: Internals, Profiling, and the Road to PHP 9 with Volker Dusch</title>
            <link>https://www.youtube.com/watch?v=PYhuj7E16Js</link>
            <description>Is PHP actually slow, or are we just measuring it wrong? We caught up with Volker, PHP 8.5 Release Manager and performance expert at Tideways, to preview his session, &quot;PHP Performance Demystified,&quot; for the PHP UK Conference 2026.</description>
            <pubDate>Wed, 04 Feb 2026 00:00:00 GMT</pubDate>
            <guid>https://www.youtube.com/watch?v=PYhuj7E16Js</guid>
            <category>Video</category>
        </item>
        <item>
            <title>The Art of Software Compromise with Gary Hockin</title>
            <link>https://www.youtube.com/watch?v=mY7SxMWSqG4</link>
            <description>&quot;Should I roll my own implementation or require a package?&quot; &quot;Should I use a framework?&quot; The answer is usually the classic senior developer response: It Depends.</description>
            <pubDate>Tue, 03 Feb 2026 00:00:00 GMT</pubDate>
            <guid>https://www.youtube.com/watch?v=mY7SxMWSqG4</guid>
            <category>Video</category>
        </item>
        <item>
            <title>Mastering PHPStan Custom Rules with Ondřej Mirtes</title>
            <link>https://www.youtube.com/watch?v=XmGfA8nCSQM</link>
            <description>Why write a test for a single bug when you can write a rule that prevents that bug forever? We caught up with Ondřej Mirtes, the creator of PHPStan, to preview his upcoming talk at PHP UK Conference 2026.</description>
            <pubDate>Fri, 02 Jan 2026 00:00:00 GMT</pubDate>
            <guid>https://www.youtube.com/watch?v=XmGfA8nCSQM</guid>
            <category>Video</category>
        </item>
        <item>
            <title>Git tips and tricks. Day 24: git push --force-with-lease</title>
            <link>https://www.youtube.com/watch?v=TgR_fYGoruM</link>
            <description>Force-pushing is one of the most dangerous things you can do in Git. It is, sometimes, necessary.</description>
            <pubDate>Wed, 24 Dec 2025 00:00:00 GMT</pubDate>
            <guid>https://www.youtube.com/watch?v=TgR_fYGoruM</guid>
            <category>Video</category>
        </item>
        <item>
            <title>Git tips and tricks. Day 25. Vanity SHAs</title>
            <link>https://www.youtube.com/watch?v=fFQfe48SOZQ</link>
            <description>This one surprised me. It&#039;s true, you can have vanity git SHAs!</description>
            <pubDate>Wed, 24 Dec 2025 00:00:00 GMT</pubDate>
            <guid>https://www.youtube.com/watch?v=fFQfe48SOZQ</guid>
            <category>Video</category>
        </item>
        <item>
            <title>Git tips and tricks. Day 23: git bisect</title>
            <link>https://www.youtube.com/watch?v=Hsn7Joi0J6w</link>
            <description>Was a feature working last week and has been reported as broken today?</description>
            <pubDate>Tue, 23 Dec 2025 00:00:00 GMT</pubDate>
            <guid>https://www.youtube.com/watch?v=Hsn7Joi0J6w</guid>
            <category>Video</category>
        </item>
        <item>
            <title>Git tips and tricks. Day 22: git reflog</title>
            <link>https://www.youtube.com/watch?v=hY2y3ePXIZk</link>
            <description>You know that moment when you’ve just nuked your Git repo…</description>
            <pubDate>Mon, 22 Dec 2025 00:00:00 GMT</pubDate>
            <guid>https://www.youtube.com/watch?v=hY2y3ePXIZk</guid>
            <category>Video</category>
        </item>
        <item>
            <title>Git tips and tricks. Day 21: git cherry-pick</title>
            <link>https://www.youtube.com/watch?v=HOB6Izb_wK8</link>
            <description>Learn how you can make cherry pick a commit from another branch, on to the branch you&#039;re currently work on.</description>
            <pubDate>Sun, 21 Dec 2025 00:00:00 GMT</pubDate>
            <guid>https://www.youtube.com/watch?v=HOB6Izb_wK8</guid>
            <category>Video</category>
        </item>
        <item>
            <title>Git tips and tricks. Day 20. git config alias</title>
            <link>https://www.youtube.com/watch?v=lyuaxwSh294</link>
            <description>Save typing and your keyboard by using aliases to provide shortcuts for the common git commands you use.</description>
            <pubDate>Sat, 20 Dec 2025 00:00:00 GMT</pubDate>
            <guid>https://www.youtube.com/watch?v=lyuaxwSh294</guid>
            <category>Video</category>
        </item>
        <item>
            <title>Vibe Coding vs. Engineering: Building AI Apps in PHP with Paul Conroy</title>
            <link>https://www.youtube.com/watch?v=nBJJF6fKkJ0</link>
            <description>Is AI just for &quot;vibe coding&quot; weekend projects, or is it ready for real engineering? We sat down with Paul Conroy to preview his upcoming talk at PHP UK Conference 2026.</description>
            <pubDate>Sat, 20 Dec 2025 00:00:00 GMT</pubDate>
            <guid>https://www.youtube.com/watch?v=nBJJF6fKkJ0</guid>
            <category>Video</category>
        </item>
        <item>
            <title>Mastering Event-Driven Testing &amp; The Legacy of PHPUnit with Sebastian Bergmann</title>
            <link>https://www.youtube.com/watch?v=bru2O1310UY</link>
            <description>How do you effectively test software that relies on events rather than standard CRUD layers? We sat down with the creator of PHPUnit, Sebastian Bergmann, to discuss his talk at PHP UK Conference 2026.</description>
            <pubDate>Fri, 19 Dec 2025 00:00:00 GMT</pubDate>
            <guid>https://www.youtube.com/watch?v=bru2O1310UY</guid>
            <category>Video</category>
        </item>
        <item>
            <title>Observability Pillars &amp; Multi-threading in PHP with Florian Engelhardt</title>
            <link>https://www.youtube.com/watch?v=kuuUgPk8qkM</link>
            <description>How can you stop &quot;praying&quot; that your system stays up and start actually observing it? We caught up with Florian to preview his upcoming talk at PHP UK Conference 2026 regarding the four pillars of observability.</description>
            <pubDate>Fri, 19 Dec 2025 00:00:00 GMT</pubDate>
            <guid>https://www.youtube.com/watch?v=kuuUgPk8qkM</guid>
            <category>Video</category>
        </item>
        <item>
            <title>Git tips and tricks. Day 19: git branch</title>
            <link>https://www.youtube.com/watch?v=wcGT3N_xUnI</link>
            <description>Today we&#039;re learning about branches.</description>
            <pubDate>Fri, 19 Dec 2025 00:00:00 GMT</pubDate>
            <guid>https://www.youtube.com/watch?v=wcGT3N_xUnI</guid>
            <category>Video</category>
        </item>
        <item>
            <title>Saving Time using Xdebug with Derick Rethans</title>
            <link>https://www.youtube.com/watch?v=8oCcPuPDgEY</link>
            <description>How much time could you save by switching from var_dump to a step debugger? We sat down with Derick Rethans (creator of Xdebug) to preview his upcoming talk at PHP UK Conference.</description>
            <pubDate>Thu, 18 Dec 2025 00:00:00 GMT</pubDate>
            <guid>https://www.youtube.com/watch?v=8oCcPuPDgEY</guid>
            <category>Video</category>
        </item>
        <item>
            <title>Git tips and tricks. Day 18: git rebase -i (part 3)</title>
            <link>https://www.youtube.com/watch?v=a18jj8dvrFQ</link>
            <description>Learn how we can use interactive rebase to change commits in the past. In this example we&#039;re splitting an  existing commit into 2.</description>
            <pubDate>Thu, 18 Dec 2025 00:00:00 GMT</pubDate>
            <guid>https://www.youtube.com/watch?v=a18jj8dvrFQ</guid>
            <category>Video</category>
        </item>
        <item>
            <title>The Future of AI Integration in PHP with Christopher Hertel</title>
            <link>https://www.youtube.com/watch?v=na8HDuwGkzY</link>
            <description>What will AI development look like for PHP developers in 2026? We sat down with Christopher Hertel to preview his upcoming talk at PHP UK Conference.</description>
            <pubDate>Wed, 17 Dec 2025 00:00:00 GMT</pubDate>
            <guid>https://www.youtube.com/watch?v=na8HDuwGkzY</guid>
            <category>Video</category>
        </item>
        <item>
            <title>Git tips and tricks. Day 17: git rebase -i --autosquash</title>
            <link>https://www.youtube.com/watch?v=qOrWmIHQL20</link>
            <description>My favourite git find of 2025!</description>
            <pubDate>Wed, 17 Dec 2025 00:00:00 GMT</pubDate>
            <guid>https://www.youtube.com/watch?v=qOrWmIHQL20</guid>
            <category>Video</category>
        </item>
        <item>
            <title>Git tips and tricks. Day 16: git rebase -i (part 2)</title>
            <link>https://www.youtube.com/watch?v=C11TX9u6Qac</link>
            <description>Learn how you can reorder commits and combine 2 commits into one with interactive rebase.</description>
            <pubDate>Tue, 16 Dec 2025 00:00:00 GMT</pubDate>
            <guid>https://www.youtube.com/watch?v=C11TX9u6Qac</guid>
            <category>Video</category>
        </item>
        <item>
            <title>Git tips and tricks. Day 15: git rebase -i (part 1)</title>
            <link>https://www.youtube.com/watch?v=6ZWvpT62NUM</link>
            <description>Git&#039;s rebase functionality is one of its most powerful features. Today we&#039;ll learn how to use interactive rebase to reword commit messages.</description>
            <pubDate>Mon, 15 Dec 2025 00:00:00 GMT</pubDate>
            <guid>https://www.youtube.com/watch?v=6ZWvpT62NUM</guid>
            <category>Video</category>
        </item>
        <item>
            <title>Git tips and tricks. Day 14. git reset</title>
            <link>https://www.youtube.com/watch?v=EPXuXW3bCBQ</link>
            <description>Today we learn how to split the previous commit into 2 commits using git reset.</description>
            <pubDate>Sun, 14 Dec 2025 00:00:00 GMT</pubDate>
            <guid>https://www.youtube.com/watch?v=EPXuXW3bCBQ</guid>
            <category>Video</category>
        </item>
        <item>
            <title>Git tips and tricks. Day 13: git commit --amend</title>
            <link>https://www.youtube.com/watch?v=m6hnf929CnA</link>
            <description>Made a mistake with the commit you&#039;ve just created? Don&#039;t panic! With git you can rewrite your git history. Today we take the first step using git commit --amend</description>
            <pubDate>Sat, 13 Dec 2025 00:00:00 GMT</pubDate>
            <guid>https://www.youtube.com/watch?v=m6hnf929CnA</guid>
            <category>Video</category>
        </item>
        <item>
            <title>Git tips and tricks. Day 12: git commit -o --dry-run</title>
            <link>https://www.youtube.com/watch?v=acQAr3UUkAY</link>
            <description>Have you spent ages carefully creating a set of changes in the staging area to be committed, only to realise that you want to commit a completely different set of files?</description>
            <pubDate>Fri, 12 Dec 2025 00:00:00 GMT</pubDate>
            <guid>https://www.youtube.com/watch?v=acQAr3UUkAY</guid>
            <category>Video</category>
        </item>
        <item>
            <title>Git tips and tricks. Day 11: template commit messages</title>
            <link>https://www.youtube.com/watch?v=NsXj0TiwdS0</link>
            <description>Learn how to create a template git commit message.</description>
            <pubDate>Thu, 11 Dec 2025 00:00:00 GMT</pubDate>
            <guid>https://www.youtube.com/watch?v=NsXj0TiwdS0</guid>
            <category>Video</category>
        </item>
        <item>
            <title>Git tips and tricks. Day 10: git commit</title>
            <link>https://www.youtube.com/watch?v=jddcPjjvttM</link>
            <description>Learn about the following git commit flags: -a, -p, -m --allow-empty</description>
            <pubDate>Wed, 10 Dec 2025 00:00:00 GMT</pubDate>
            <guid>https://www.youtube.com/watch?v=jddcPjjvttM</guid>
            <category>Video</category>
        </item>
        <item>
            <title>Git tips and tricks. Day 9: git add -N</title>
            <link>https://www.youtube.com/watch?v=onqSMHAsQqk</link>
            <description>See how you can move untracked files to the working tree using git add -N</description>
            <pubDate>Tue, 09 Dec 2025 00:00:00 GMT</pubDate>
            <guid>https://www.youtube.com/watch?v=onqSMHAsQqk</guid>
            <category>Video</category>
        </item>
        <item>
            <title>Git tips and tricks. Day 8: git diff/git restore</title>
            <link>https://www.youtube.com/watch?v=oBKf70YNVco</link>
            <description>In this video we&#039;ll see how to use git diff to see what changes we&#039;er about to commit.</description>
            <pubDate>Mon, 08 Dec 2025 00:00:00 GMT</pubDate>
            <guid>https://www.youtube.com/watch?v=oBKf70YNVco</guid>
            <category>Video</category>
        </item>
        <item>
            <title>Git Tips and Tricks. Day 7: git add</title>
            <link>https://www.youtube.com/watch?v=RDR35zepCgQ</link>
            <description>Learn about the following git add flags:</description>
            <pubDate>Sun, 07 Dec 2025 00:00:00 GMT</pubDate>
            <guid>https://www.youtube.com/watch?v=RDR35zepCgQ</guid>
            <category>Video</category>
        </item>
        <item>
            <title>Demystifying Dependency Injection in Symfony</title>
            <link>https://www.daveliddament.co.uk/talks/demystifying-dependency-injection-in-symfony/</link>
            <description>The Dependency Injection Component is a key part of all Symfony applications. It helps developers write decoupled and maintainable code.</description>
            <pubDate>Fri, 05 Dec 2025 00:00:00 GMT</pubDate>
            <guid>https://www.daveliddament.co.uk/talks/demystifying-dependency-injection-in-symfony/</guid>
            <category>Talk</category>
        </item>
        <item>
            <title>Git tips and tricks day 6: git shortlog</title>
            <link>https://www.youtube.com/watch?v=Wh6oaQu3uwg</link>
            <description>Learn how you can see a summary of the git commits made by each person on the project.</description>
            <pubDate>Fri, 05 Dec 2025 00:00:00 GMT</pubDate>
            <guid>https://www.youtube.com/watch?v=Wh6oaQu3uwg</guid>
            <category>Video</category>
        </item>
        <item>
            <title>Git tips and tricks day 5: git show</title>
            <link>https://www.youtube.com/watch?v=uOHnEgwRJMs</link>
            <description>With git show we can look at any git commit, tag or branch.</description>
            <pubDate>Fri, 05 Dec 2025 00:00:00 GMT</pubDate>
            <guid>https://www.youtube.com/watch?v=uOHnEgwRJMs</guid>
            <category>Video</category>
        </item>
        <item>
            <title>Git Tips and Tricks. Day 2: git log (searching)</title>
            <link>https://www.youtube.com/watch?v=QxB4OS_yQC0</link>
            <description>This video show various ways of searching and filtering with git log</description>
            <pubDate>Tue, 02 Dec 2025 00:00:00 GMT</pubDate>
            <guid>https://www.youtube.com/watch?v=QxB4OS_yQC0</guid>
            <category>Video</category>
        </item>
        <item>
            <title>Git Tips and Tricks. Day 4: git log -L</title>
            <link>https://www.youtube.com/watch?v=fOEQSLZ5cDU</link>
            <description>Learn how you can follow changes to a single method with git.</description>
            <pubDate>Tue, 02 Dec 2025 00:00:00 GMT</pubDate>
            <guid>https://www.youtube.com/watch?v=fOEQSLZ5cDU</guid>
            <category>Video</category>
        </item>
        <item>
            <title>Git Tips and Tricks. Day 3: git log --follow</title>
            <link>https://www.youtube.com/watch?v=x9_BJ6HH9UI</link>
            <description>This shows how git can track changes to a file even when the file is renamed or moved.</description>
            <pubDate>Tue, 02 Dec 2025 00:00:00 GMT</pubDate>
            <guid>https://www.youtube.com/watch?v=x9_BJ6HH9UI</guid>
            <category>Video</category>
        </item>
        <item>
            <title>Git Tips and Tricks. Day 1: git log (display options)</title>
            <link>https://www.youtube.com/watch?v=xsJ1cnwL8nc</link>
            <description>This shows how to use options on the git log command to control the output.</description>
            <pubDate>Tue, 02 Dec 2025 00:00:00 GMT</pubDate>
            <guid>https://www.youtube.com/watch?v=xsJ1cnwL8nc</guid>
            <category>Video</category>
        </item>
        <item>
            <title>Introducing the TestTag attribute</title>
            <link>https://www.daveliddament.co.uk/articles/introducing-test-tag-attribute/</link>
            <description>Learn how the TestTag attribute helps with testing.</description>
            <pubDate>Fri, 28 Nov 2025 00:00:00 GMT</pubDate>
            <guid>https://www.daveliddament.co.uk/articles/introducing-test-tag-attribute/</guid>
            <category>Article</category>
        </item>
        <item>
            <title>Creating Custom PHPStan and Rector Rules (Workshop)</title>
            <link>https://www.daveliddament.co.uk/talks/creating-custom-phpstan-and-rector-rules/</link>
            <description>Full-day workshop covering how to write custom rules for both PHPStan and Rector.</description>
            <pubDate>Wed, 26 Nov 2025 00:00:00 GMT</pubDate>
            <guid>https://www.daveliddament.co.uk/talks/creating-custom-phpstan-and-rector-rules/</guid>
            <category>Talk</category>
        </item>
        <item>
            <title>Introducing the NamespaceVisibility attribute</title>
            <link>https://www.daveliddament.co.uk/articles/introducing-namespace-visibility-attribute/</link>
            <description>Learn how the NamespaceVisibility attribute emulates the missing package visibility modifier.</description>
            <pubDate>Tue, 21 Oct 2025 00:00:00 GMT</pubDate>
            <guid>https://www.daveliddament.co.uk/articles/introducing-namespace-visibility-attribute/</guid>
            <category>Article</category>
        </item>
        <item>
            <title>Introducing the MustUseResult attribute</title>
            <link>https://www.daveliddament.co.uk/articles/introducing-must-use-result-attribute/</link>
            <description>Learn how the MustUseResult attribute can prevent coding mistakes.</description>
            <pubDate>Sun, 05 Oct 2025 00:00:00 GMT</pubDate>
            <guid>https://www.daveliddament.co.uk/articles/introducing-must-use-result-attribute/</guid>
            <category>Article</category>
        </item>
        <item>
            <title>Introducing the Friend attribute (example 1)</title>
            <link>https://www.daveliddament.co.uk/articles/introducing-the-friend-attribute-in-php-creational-design-patterns-example/</link>
            <description>Learn how the Friend attribute can be used to enforce the usage of creational design patterns.</description>
            <pubDate>Sat, 27 Sep 2025 00:00:00 GMT</pubDate>
            <guid>https://www.daveliddament.co.uk/articles/introducing-the-friend-attribute-in-php-creational-design-patterns-example/</guid>
            <category>Article</category>
        </item>
        <item>
            <title>Introducing the PHP Language Extensions Library</title>
            <link>https://www.daveliddament.co.uk/articles/introducing-php-language-extensions-library/</link>
            <description>It&#039;s possible to use static analysis to emulate new language features in PHP. This article examines how, and introduces the PHP Language Extension Library.</description>
            <pubDate>Sun, 14 Sep 2025 00:00:00 GMT</pubDate>
            <guid>https://www.daveliddament.co.uk/articles/introducing-php-language-extensions-library/</guid>
            <category>Article</category>
        </item>
        <item>
            <title>Custom PHPStan Rules: Automate Standards and Save Time</title>
            <link>https://www.daveliddament.co.uk/talks/custom-phpstan-rules/</link>
            <description>PHPStan increases code quality and reduces bugs. Learn how custom rules amplify these benefits.</description>
            <pubDate>Wed, 30 Apr 2025 00:00:00 GMT</pubDate>
            <guid>https://www.daveliddament.co.uk/talks/custom-phpstan-rules/</guid>
            <category>Talk</category>
        </item>
        <item>
            <title>Mastering automated refactoring with custom Rector rules (Tutorial)</title>
            <link>https://www.daveliddament.co.uk/talks/mastering-automated-refactoring-with-custom-rector-rules/</link>
            <description>Workshop to create your custom Rector rules</description>
            <pubDate>Sun, 03 Nov 2024 00:00:00 GMT</pubDate>
            <guid>https://www.daveliddament.co.uk/talks/mastering-automated-refactoring-with-custom-rector-rules/</guid>
            <category>Talk</category>
        </item>
        <item>
            <title>Elevating Legacy</title>
            <link>https://www.daveliddament.co.uk/talks/elevating-legacy/</link>
            <description>This talks through how to do upgrade legacy codebases.</description>
            <pubDate>Wed, 14 Feb 2024 00:00:00 GMT</pubDate>
            <guid>https://www.daveliddament.co.uk/talks/elevating-legacy/</guid>
            <category>Talk</category>
        </item>
        <item>
            <title>Adding PHPStan to existing projects: Sell the dream, manage the expectations</title>
            <link>https://www.daveliddament.co.uk/articles/adding-phpstan-to-existing-projects/</link>
            <description>This is the first part of a 4 part series of articles about adding PHPStan to existing projects. First we&#039;ll deal with team members who might object.</description>
            <pubDate>Fri, 23 Jun 2023 00:00:00 GMT</pubDate>
            <guid>https://www.daveliddament.co.uk/articles/adding-phpstan-to-existing-projects/</guid>
            <category>Article</category>
        </item>
        <item>
            <title>Getting the most from static analysis</title>
            <link>https://www.daveliddament.co.uk/talks/getting-the-most-from-static-analysis/</link>
            <description>Learn how to write code to get the most from static analysis tools, so you reduce the bug count on projects you&#039;re working on.</description>
            <pubDate>Tue, 23 May 2023 00:00:00 GMT</pubDate>
            <guid>https://www.daveliddament.co.uk/talks/getting-the-most-from-static-analysis/</guid>
            <category>Talk</category>
        </item>
        <item>
            <title>Using AI to convert PHP engine from C to Rust</title>
            <link>https://www.daveliddament.co.uk/articles/converting-php-engine-to-rust/</link>
            <description>The code that executes PHP is currently written in C. Converting this to Rust offers many advantages. This article talks about work in progress to convert the C code to Rust, using Chat GPT.</description>
            <pubDate>Sat, 01 Apr 2023 00:00:00 GMT</pubDate>
            <guid>https://www.daveliddament.co.uk/articles/converting-php-engine-to-rust/</guid>
            <category>Article</category>
        </item>
        <item>
            <title>Writing custom PHPStan rules (Tutorial)</title>
            <link>https://www.daveliddament.co.uk/talks/writing-custom-phpstan-rules/</link>
            <description>Workshop to create your custom PHPStan rules</description>
            <pubDate>Thu, 03 Nov 2022 00:00:00 GMT</pubDate>
            <guid>https://www.daveliddament.co.uk/talks/writing-custom-phpstan-rules/</guid>
            <category>Talk</category>
        </item>
        <item>
            <title>Extending the PHP Language</title>
            <link>https://www.daveliddament.co.uk/talks/extending-the-php-language/</link>
            <description>Learn how to implement new language features using static analysis.</description>
            <pubDate>Thu, 20 Oct 2022 00:00:00 GMT</pubDate>
            <guid>https://www.daveliddament.co.uk/talks/extending-the-php-language/</guid>
            <category>Talk</category>
        </item>
        <item>
            <title>Introducing static analysis tools to legacy projects</title>
            <link>https://www.daveliddament.co.uk/talks/introducing-static-analysis-to-legacy-projects/</link>
            <description>Tips on how to use static analysis tools with legacy projects</description>
            <pubDate>Mon, 03 May 2021 00:00:00 GMT</pubDate>
            <guid>https://www.daveliddament.co.uk/talks/introducing-static-analysis-to-legacy-projects/</guid>
            <category>Talk</category>
        </item>
        <item>
            <title>SARB version 1 released</title>
            <link>https://www.daveliddament.co.uk/articles/sarb-v1-released/</link>
            <description>Static Analysis Results Baseliner (SARB)  is used to create a baseline of these results. As work on the project progresses SARB can takes the latest static analysis results, removes those issues in the baseline and report the issues raised since the baseline. Learn all about version 1.</description>
            <pubDate>Thu, 18 Mar 2021 00:00:00 GMT</pubDate>
            <guid>https://www.daveliddament.co.uk/articles/sarb-v1-released/</guid>
            <category>Article</category>
        </item>
        <item>
            <title>A standard for generics in PHP</title>
            <link>https://www.daveliddament.co.uk/articles/php-generics-standard/</link>
            <description>Generics in PHP is already a reality with static analysis. The leading static analysers have largely converged on an unofficial standard. This article proposes the first steps towards a standard.</description>
            <pubDate>Mon, 14 Dec 2020 00:00:00 GMT</pubDate>
            <guid>https://www.daveliddament.co.uk/articles/php-generics-standard/</guid>
            <category>Article</category>
        </item>
        <item>
            <title>PHP Generics Today (almost)</title>
            <link>https://www.daveliddament.co.uk/articles/php-generics-today-almost/</link>
            <description>Many PHP developers would love generics. We might have to wait a while until they come along. This article shows how existing tools can give us the power of generics now (almost).</description>
            <pubDate>Wed, 05 Jun 2019 00:00:00 GMT</pubDate>
            <guid>https://www.daveliddament.co.uk/articles/php-generics-today-almost/</guid>
            <category>Article</category>
        </item>
        <item>
            <title>PHP Generics Today (almost)</title>
            <link>https://www.daveliddament.co.uk/talks/php-generics-today-almost/</link>
            <description>Many PHP developers would love generics. We might have to wait a while until they come along. This article shows how existing tools can give us the power of generics now (almost).</description>
            <pubDate>Wed, 05 Jun 2019 00:00:00 GMT</pubDate>
            <guid>https://www.daveliddament.co.uk/talks/php-generics-today-almost/</guid>
            <category>Talk</category>
        </item>
        <item>
            <title>Practical Static Analysis</title>
            <link>https://www.daveliddament.co.uk/talks/practical-static-analysis/</link>
            <description>Static Analysis can drastically reduce the bug count in your codebase. This talk gives practical advice on integrating static analysis into your development workflow.</description>
            <pubDate>Sat, 01 Sep 2018 00:00:00 GMT</pubDate>
            <guid>https://www.daveliddament.co.uk/talks/practical-static-analysis/</guid>
            <category>Talk</category>
        </item>
        <item>
            <title>Code review and CI in your lunch break</title>
            <link>https://www.daveliddament.co.uk/talks/code-review-and-ci-in-your-lunch-break/</link>
            <description>Code review and CI are vital parts of the modern software development process. It also dead easy to set these up for your project. Find out why and how in this talk</description>
            <pubDate>Sun, 01 Jul 2018 00:00:00 GMT</pubDate>
            <guid>https://www.daveliddament.co.uk/talks/code-review-and-ci-in-your-lunch-break/</guid>
            <category>Talk</category>
        </item>
        <item>
            <title>AssertTrue(isDecoupled(&quot;my tests&quot;))</title>
            <link>https://www.daveliddament.co.uk/talks/assert-true-is-decoupled-my-tests/</link>
            <description>It&#039;s good practice to write decoupled code. That good practice should include minimising the coupling between your test code and the code under test. This talk examines why this is important and how to achieve it.</description>
            <pubDate>Tue, 01 May 2018 00:00:00 GMT</pubDate>
            <guid>https://www.daveliddament.co.uk/talks/assert-true-is-decoupled-my-tests/</guid>
            <category>Talk</category>
        </item>
        <item>
            <title>Effective Code Review</title>
            <link>https://www.daveliddament.co.uk/talks/effective-code-review/</link>
            <description>There are so many benefits from code review; lower development costs, increased code quality, quick up-skilling and on-boarding of team members. This talk shows you how to get the best out of code review.</description>
            <pubDate>Sun, 01 Apr 2018 00:00:00 GMT</pubDate>
            <guid>https://www.daveliddament.co.uk/talks/effective-code-review/</guid>
            <category>Talk</category>
        </item>
        <item>
            <title>The Git Eureka moment</title>
            <link>https://www.daveliddament.co.uk/talks/the-git-eureka-moment/</link>
            <description>Let me share my git eureka moment with you. The moment when suddenly everything git related made sense. We&#039;ll delve just below the surface to understand what commits and branch really are. With these concepts cemented we&#039;ll look at some of git&#039;s more advanced features.</description>
            <pubDate>Wed, 15 Nov 2017 00:00:00 GMT</pubDate>
            <guid>https://www.daveliddament.co.uk/talks/the-git-eureka-moment/</guid>
            <category>Talk</category>
        </item>
        <item>
            <title>Beat the bugs, before they beat you</title>
            <link>https://www.daveliddament.co.uk/talks/beat-the-bugs-before-they-beat-you/</link>
            <description>This talk will show you how to write cleaner code with fewer bugs. And best of all you can apply them the next time you write code.</description>
            <pubDate>Thu, 29 Jun 2017 00:00:00 GMT</pubDate>
            <guid>https://www.daveliddament.co.uk/talks/beat-the-bugs-before-they-beat-you/</guid>
            <category>Talk</category>
        </item>
        <item>
            <title>Don&#039;t be so primitive</title>
            <link>https://www.daveliddament.co.uk/talks/dont-be-so-primitive/</link>
            <description>A quick look at Value Objects, what they are, the benefits they offer and why sometimes they should be used instead of PHP&#039;s primitive types.</description>
            <pubDate>Wed, 10 May 2017 00:00:00 GMT</pubDate>
            <guid>https://www.daveliddament.co.uk/talks/dont-be-so-primitive/</guid>
            <category>Talk</category>
        </item>
        <item>
            <title>The Test Suite Holy Trinity</title>
            <link>https://www.daveliddament.co.uk/talks/test-suite-holy-trinity/</link>
            <description>This talk look at the properties of unit, integration and system tests in terms of what they test, how fast they run and how quick they are to write. Will look at how to get the most out of testing at each of these levels, how best to architect code for testing and where best to make comprises.</description>
            <pubDate>Sat, 01 Apr 2017 00:00:00 GMT</pubDate>
            <guid>https://www.daveliddament.co.uk/talks/test-suite-holy-trinity/</guid>
            <category>Talk</category>
        </item>
        <item>
            <title>Decoupling with events</title>
            <link>https://www.daveliddament.co.uk/talks/decoupling-with-events/</link>
            <description>Decoupled code is easier to understand, test and extend. This talk looks at how you can use events for decoupling.</description>
            <pubDate>Wed, 12 Oct 2016 00:00:00 GMT</pubDate>
            <guid>https://www.daveliddament.co.uk/talks/decoupling-with-events/</guid>
            <category>Talk</category>
        </item>
        <item>
            <title>Code review with Gerrit</title>
            <link>https://www.daveliddament.co.uk/talks/code-review-with-gerrit/</link>
            <description>Quick introduction to integrating code review using Gerrit into your workflow.</description>
            <pubDate>Wed, 14 Oct 2015 00:00:00 GMT</pubDate>
            <guid>https://www.daveliddament.co.uk/talks/code-review-with-gerrit/</guid>
            <category>Talk</category>
        </item>
        <item>
            <title>Design for testability</title>
            <link>https://www.daveliddament.co.uk/talks/design-for-testability/</link>
            <description>Testing code is difficult right? Not if you design your code with testability in mind. Learn how with this talk.</description>
            <pubDate>Wed, 13 Aug 2014 00:00:00 GMT</pubDate>
            <guid>https://www.daveliddament.co.uk/talks/design-for-testability/</guid>
            <category>Talk</category>
        </item>
    </channel>
</rss>
