<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Php on Damjan Cvetko</title>
    <link>https://damjan.cvetko.org/categories/php/</link>
    <description>Recent content in Php on Damjan Cvetko</description>
    <generator>Hugo</generator>
    <language>en</language>
    <lastBuildDate>Mon, 02 Feb 2026 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://damjan.cvetko.org/categories/php/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>VSCode PHP Debug Update January 2026</title>
      <link>https://damjan.cvetko.org/blog/2026-02-02-vscode-php-debug-update-january-2026/</link>
      <pubDate>Mon, 02 Feb 2026 00:00:00 +0000</pubDate>
      <guid>https://damjan.cvetko.org/blog/2026-02-02-vscode-php-debug-update-january-2026/</guid>
      <description>&lt;p&gt;A long overdue update of what was happening in the VS Code PHP Debug extension.&lt;/p&gt;&#xA;&lt;!-- raw HTML omitted --&gt;&#xA;&lt;p&gt;The current version is 1.40.0.&lt;/p&gt;&#xA;&lt;!-- raw HTML omitted --&gt;&#xA;&lt;p&gt;Since it has been so long since the last post, I&amp;rsquo;ll list the versions and link relevant release issues.&lt;/p&gt;&#xA;&lt;h2 id=&#34;2023-11-07-1340---virtual-workspaces-support&#34;&gt;2023-11-07 1.34.0 - Virtual workspaces support&lt;/h2&gt;&#xA;&lt;p&gt;Part of &lt;a href=&#34;https://github.com/xdebug/vscode-php-debug/issues/942&#34;&gt;November 2023 release plan&lt;/a&gt;, this was connected to people using extensions like &lt;a href=&#34;https://marketplace.visualstudio.com/items?itemName=Kelvin.vscode-sshfs&#34;&gt;SSH FS&lt;/a&gt; that add an extra folder to your workspace that lives in a separate schema like &lt;code&gt;ssh://&lt;/code&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>VSCode PHP Debug Update November 2023</title>
      <link>https://damjan.cvetko.org/blog/2023-11-04-vscode-php-debug-update-november-2023/</link>
      <pubDate>Sat, 04 Nov 2023 00:00:00 +0000</pubDate>
      <guid>https://damjan.cvetko.org/blog/2023-11-04-vscode-php-debug-update-november-2023/</guid>
      <description>&lt;p&gt;This is a cumulative update post on changes in the VS Code PHP Debug adapter since last year.&lt;/p&gt;&#xA;&lt;!-- raw HTML omitted --&gt;&#xA;&lt;p&gt;The current version is 1.33.1.&lt;/p&gt;&#xA;&lt;!-- raw HTML omitted --&gt;&#xA;&lt;p&gt;Since it has been so long since the last post, I&amp;rsquo;ll list the versions and link relevant release issues.&lt;/p&gt;&#xA;&lt;h2 id=&#34;1270---variable-paging&#34;&gt;1.27.0 - Variable paging&lt;/h2&gt;&#xA;&lt;p&gt;This was still tracked under &lt;a href=&#34;https://github.com/xdebug/vscode-php-debug/issues/797&#34;&gt;May 2022 GitHub issue&lt;/a&gt;. This is an issue I wanted to solve for a long time, but it was actually VS Code that did not have the right support.&#xA;The &lt;a href=&#34;https://microsoft.github.io/debug-adapter-protocol/specification#Types_Variable&#34;&gt;DAP Variable&lt;/a&gt; construct understands tha there are &lt;em&gt;namedVariables&lt;/em&gt; and &lt;em&gt;indexedVariables&lt;/em&gt;.&#xA;VS Code - as a DAP client - can handle paging only of &lt;em&gt;indexed&lt;/em&gt; variables. So the only solution was to present all variables as such. And as an additional quirk, they can only be paged in increments of 100.&lt;/p&gt;</description>
    </item>
    <item>
      <title>VSCode PHP Debug Release April 2022</title>
      <link>https://damjan.cvetko.org/blog/2022-04-12-vscode-php-debug-release-april-2022/</link>
      <pubDate>Tue, 12 Apr 2022 00:00:00 +0000</pubDate>
      <guid>https://damjan.cvetko.org/blog/2022-04-12-vscode-php-debug-release-april-2022/</guid>
      <description>&lt;p&gt;I couldn&amp;rsquo;t make an update in a while, but I did manage to release a few things. &lt;a href=&#34;https://github.com/xdebug/vscode-php-debug/issues/765&#34;&gt;February GitHub issue&lt;/a&gt; and &lt;a href=&#34;https://github.com/xdebug/vscode-php-debug/issues/749&#34;&gt;March GitHub issue&lt;/a&gt; and &lt;a href=&#34;https://github.com/xdebug/vscode-php-debug/issues/797&#34;&gt;April GitHub issue&lt;/a&gt; outline the work done.&lt;/p&gt;&#xA;&lt;p&gt;The current version is 1.26.1.&lt;/p&gt;&#xA;&lt;!-- raw HTML omitted --&gt;&#xA;&#xA;&#xA;&lt;a href=&#34;https://damjan.cvetko.org/blog/2022-04-12-vscode-php-debug-release-april-2022/featured.png&#34;&gt;&#xA;  &lt;img src=&#34;https://damjan.cvetko.org/blog/2022-04-12-vscode-php-debug-release-april-2022/featured.png&#34; /&gt;&#xA;&lt;/a&gt;&#xA;&#xA;&lt;h2 id=&#34;error-on-irrelevant-env-configuration&#34;&gt;Error on irrelevant env configuration&lt;/h2&gt;&#xA;&lt;p&gt;The extension will now throw an error saying &lt;em&gt;Cannot set env without running a program. Please remove env from [xxx] configuration&lt;/em&gt; if the configuration contains &lt;code&gt;env&lt;/code&gt; and neither &lt;code&gt;program&lt;/code&gt; nor &lt;code&gt;runtimeArgs&lt;/code&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>VSCode PHP Debug Release January 2022</title>
      <link>https://damjan.cvetko.org/blog/2022-01-22-vscode-php-debug-release-january-2022/</link>
      <pubDate>Sat, 22 Jan 2022 00:00:00 +0000</pubDate>
      <guid>https://damjan.cvetko.org/blog/2022-01-22-vscode-php-debug-release-january-2022/</guid>
      <description>&lt;p&gt;I didn&amp;rsquo;t put up an update or made any releases for a while, but that doesn&amp;rsquo;t mean nothing was going on.&#xA;Here is the current release cycle cover &lt;a href=&#34;https://github.com/xdebug/vscode-php-debug/issues/688&#34;&gt;GitHub issue&lt;/a&gt;. But the most important change was the migration of the extension.&lt;/p&gt;&#xA;&lt;!-- raw HTML omitted --&gt;&#xA;&#xA;&#xA;&lt;a href=&#34;https://damjan.cvetko.org/blog/2022-01-22-vscode-php-debug-release-january-2022/featured.png&#34;&gt;&#xA;  &lt;img src=&#34;https://damjan.cvetko.org/blog/2022-01-22-vscode-php-debug-release-january-2022/featured.png&#34; /&gt;&#xA;&lt;/a&gt;&#xA;&#xA;&lt;h2 id=&#34;the-migration&#34;&gt;The migration&lt;/h2&gt;&#xA;&lt;p&gt;Just when the year turned to 2022, I wanted to make a small release since I had prepared a PR. However what I saw was that the Personal Access Token (PAT) used to deploy the extension was expired. It felt that this was a good excuse to try to solve one outstanding issue that was left after the code was migrated from Felix Becker&amp;rsquo;s GitHub account to Xdebug.&lt;/p&gt;</description>
    </item>
    <item>
      <title>VSCode PHP Debug Release September 2021</title>
      <link>https://damjan.cvetko.org/blog/2021-10-15-vscode-php-debug-release-september-2021/</link>
      <pubDate>Fri, 15 Oct 2021 00:00:00 +0000</pubDate>
      <guid>https://damjan.cvetko.org/blog/2021-10-15-vscode-php-debug-release-september-2021/</guid>
      <description>&lt;p&gt;This is a small writeup on the September 2021 release of VSCode PHP Debug adapter extension. A cover issue describing all work can be found on &lt;a href=&#34;https://github.com/xdebug/vscode-php-debug/issues/648&#34;&gt;GitHub issues&lt;/a&gt;.&#xA;I intended to do a &amp;ldquo;release&amp;rdquo; every month, but I just do incremental releases and write up a monthly (or so) report&amp;hellip; It was summer :)&lt;/p&gt;&#xA;&lt;!-- raw HTML omitted --&gt;&#xA;&#xA;&#xA;&lt;a href=&#34;https://damjan.cvetko.org/blog/2021-10-15-vscode-php-debug-release-september-2021/featured.png&#34;&gt;&#xA;  &lt;img src=&#34;https://damjan.cvetko.org/blog/2021-10-15-vscode-php-debug-release-september-2021/featured.png&#34; /&gt;&#xA;&lt;/a&gt;&#xA;&#xA;&lt;h2 id=&#34;no-folder-debugging&#34;&gt;No-folder debugging&lt;/h2&gt;&#xA;&lt;p&gt;A large task was the No-folder debugging. This is when VS Code has the purple status bar, no folder is open at that time, and so no launch.json file is available. I was actually &lt;a href=&#34;https://github.com/xdebug/vscode-php-debug/issues/638&#34;&gt;brought to my attention&lt;/a&gt; by Microsoft&amp;rsquo;s VS Code PM. We had a conf call and discussed what can be done to make PHP debugging in VS Code simpler. Especially the initial setup.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Interactive debugging PHP with VS Code and Xdebug</title>
      <link>https://damjan.cvetko.org/blog/2021-10-01-interactive-debugging-php/</link>
      <pubDate>Fri, 01 Oct 2021 00:00:00 +0000</pubDate>
      <guid>https://damjan.cvetko.org/blog/2021-10-01-interactive-debugging-php/</guid>
      <description>&lt;p&gt;A while back I presented this talk at a local PHP Meetup, and not to forget about it, here is the (much) cleaned up version in written format.&lt;/p&gt;&#xA;&lt;!-- raw HTML omitted --&gt;&#xA;&lt;p&gt;&#xA;&#xA;&lt;a href=&#34;https://damjan.cvetko.org/blog/2021-10-01-interactive-debugging-php/Slide1.png&#34;&gt;&#xA;  &lt;img src=&#34;https://damjan.cvetko.org/blog/2021-10-01-interactive-debugging-php/Slide1.png&#34; /&gt;&#xA;&lt;/a&gt;&#xA;&#xA;I have recently taken over development and maintenance of vscode-php-debug project. I have worked with PHP for 15 or more years and interactive debugging was always something I wanted, needed, and tried to push others to also use. I like to start with querying the audience. Who here knows what interactive debugging is? Who used it? With PHP? Specifically with VS Code?&lt;/p&gt;</description>
    </item>
    <item>
      <title>Compiling PHP extension on Windows (update)</title>
      <link>https://damjan.cvetko.org/blog/2021-09-01-php-compiling-ext-update/</link>
      <pubDate>Wed, 01 Sep 2021 00:00:00 +0000</pubDate>
      <guid>https://damjan.cvetko.org/blog/2021-09-01-php-compiling-ext-update/</guid>
      <description>&lt;p&gt;After posting how I compiled &lt;a href=&#34;https://damjan.cvetko.org/blog/2021-08-11-php-compiling-ext/&#34;&gt;Xdebug PHP extension on Windows&lt;/a&gt; I got an interesting comment how I can improve the process.&lt;/p&gt;&#xA;&lt;!-- raw HTML omitted --&gt;&#xA;&lt;p&gt;The comment came again from Christoph on Twitter:&lt;/p&gt;&#xA;&lt;blockquote class=&#34;twitter-tweet&#34;&gt;&lt;p lang=&#34;en&#34; dir=&#34;ltr&#34;&gt;Great!&lt;br&gt;&lt;br&gt;If you&amp;#39;d need bison etc., you can fetch &lt;a href=&#34;https://t.co/058sby3fSg&#34;&gt;https://t.co/058sby3fSg&lt;/a&gt;, and use phpsdk-vs16-x64.bat instead of the x64 Native Tools Command Prompt for VS 2019.&lt;/p&gt;&amp;mdash; Christoph M. Becker (@cmbecker69) &lt;a href=&#34;https://twitter.com/cmbecker69/status/1427598343362985984?ref_src=twsrc%5Etfw&#34;&gt;August 17, 2021&lt;/a&gt;&lt;/blockquote&gt;&#xA;&lt;script async src=&#34;https://platform.twitter.com/widgets.js&#34; charset=&#34;utf-8&#34;&gt;&lt;/script&gt;&#xA;&#xA;&#xA;&lt;p&gt;I wasn&amp;rsquo;t aware of this precomputed SDK from Microsoft. Here is the link: &lt;a href=&#34;https://github.com/microsoft/php-sdk-binary-tools&#34;&gt;https://github.com/microsoft/php-sdk-binary-tools&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Compiling Xdebug for PHP on Windows</title>
      <link>https://damjan.cvetko.org/blog/2021-08-11-php-compiling-ext/</link>
      <pubDate>Wed, 11 Aug 2021 00:00:00 +0000</pubDate>
      <guid>https://damjan.cvetko.org/blog/2021-08-11-php-compiling-ext/</guid>
      <description>&lt;p&gt;Derick was nice enough to &lt;a href=&#34;https://github.com/xdebug/vscode-php-debug/issues/627&#34;&gt;point&lt;/a&gt; &lt;a href=&#34;https://github.com/xdebug/vscode-php-debug/issues/628&#34;&gt;out&lt;/a&gt; that the soon-to-be-released PHP 8.1 and Xdebug 3.1.0 will need some protocol level adjustments. Since I develop on Windows, building PHP or Xdebug from source isn&amp;rsquo;t something I did recently. Lets see what we need to do.&lt;/p&gt;&#xA;&lt;!-- raw HTML omitted --&gt;&#xA;&lt;p&gt;First, the nice people of Twitter pointed out prebuilt QA builds can be found on the windows php site: &lt;a href=&#34;https://windows.php.net/qa#php-8.1&#34;&gt;https://windows.php.net/qa#php-8.1&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>VSCode PHP Debug Release May 2021</title>
      <link>https://damjan.cvetko.org/blog/2021-06-06-vscode-php-debug-release-may-2021/</link>
      <pubDate>Sun, 06 Jun 2021 00:00:00 +0000</pubDate>
      <guid>https://damjan.cvetko.org/blog/2021-06-06-vscode-php-debug-release-may-2021/</guid>
      <description>&lt;p&gt;This is a small writeup on the May 2021 release of VSCode PHP Debug adapter extension. A cover issue describing all work can be found on &lt;a href=&#34;https://github.com/xdebug/vscode-php-debug/issues/575&#34;&gt;GitHub issues&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;!-- raw HTML omitted --&gt;&#xA;&#xA;&#xA;&lt;a href=&#34;https://damjan.cvetko.org/blog/2021-06-06-vscode-php-debug-release-may-2021/featured.png&#34;&gt;&#xA;  &lt;img src=&#34;https://damjan.cvetko.org/blog/2021-06-06-vscode-php-debug-release-may-2021/featured.png&#34; /&gt;&#xA;&lt;/a&gt;&#xA;&#xA;&lt;h2 id=&#34;switch-to-xdebug-3-port&#34;&gt;Switch to Xdebug 3 port&lt;/h2&gt;&#xA;&lt;p&gt;Since Xdebug 2 has been deprecated for a while now, this plugin has switched to default port 9003 - from previous, 9000. The change in Xdebug was introduced by Derick due to often conflicting default PHP-FCGI port also being 9000.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How I took over VSCode PHP Debug extension and broke it on first release</title>
      <link>https://damjan.cvetko.org/blog/2021-05-31-vscode-php-debug/</link>
      <pubDate>Mon, 31 May 2021 00:00:00 +0000</pubDate>
      <guid>https://damjan.cvetko.org/blog/2021-05-31-vscode-php-debug/</guid>
      <description>&lt;p&gt;I am passionate about debugging and debuggers since, well, forever. When I started working with PHP many many years ago this was the one thing that truly bothered me - there was no &amp;ldquo;native&amp;rdquo; way to debug the code interactively. Then I discovered Xdebug.&lt;/p&gt;&#xA;&lt;p&gt;Fast forward to end of 2020, I got the chance to take over maintenance of &lt;a href=&#34;https://github.com/xdebug/vscode-php-debug/&#34;&gt;PHP Debug Adapter for Visual Studio Code&lt;/a&gt; and since I already contributed to it and knew a lot about the topic I took it.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Writing your own PHP APM Agent horror stories 2</title>
      <link>https://damjan.cvetko.org/blog/2021-05-20-writing-your-own-php-apm-horror-stories-2/</link>
      <pubDate>Thu, 20 May 2021 00:00:00 +0000</pubDate>
      <guid>https://damjan.cvetko.org/blog/2021-05-20-writing-your-own-php-apm-horror-stories-2/</guid>
      <description>&lt;p&gt;On a nice May day, we spent a whole day going through Elastic APM Go Agent code, to try to figure out why it doesn&amp;rsquo;t log Spans, and all Transactions of a certain kind are just always not sampled.&#xA;Once again, because wrote our own Elastic APM PHP Agent, we got bit in the behind and spent a better part of the day WTF-ing through all the code, just to switch ONE BIT in the end, to solve the issue.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Writing your own PHP APM Agent horror stories</title>
      <link>https://damjan.cvetko.org/blog/2020-04-24-writing-your-own-php-apm-agent-horror-stories/</link>
      <pubDate>Fri, 24 Apr 2020 00:00:00 +0000</pubDate>
      <guid>https://damjan.cvetko.org/blog/2020-04-24-writing-your-own-php-apm-agent-horror-stories/</guid>
      <description>&lt;p&gt;One of my projects the last few months was getting our own PHP framework to send&#xA;data to Elastic APM for performance logging and debugging. We decide on Elastic&#xA;APM since we already started using it for our Golang services and wanted a more&#xA;complete picture.&lt;/p&gt;&#xA;&lt;p&gt;There will be another post on why and how we implemented this, I just wanted to&#xA;share one of the horror stories that happened in the last days.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
