A page using PHP is cached by DokuWiki and subseuent views of the page show only the cached content... the PHP isn't run (and the page's content not updated) until the page expires from the cache.
Because an author will *usually* put PHP code in their pages to generate *dynamic* content, this means that most page views are showing old versions of the content.
While using "&purge=true" helps with links the author creates, it isn't added to any links generated by DokuWiki (like the breadcrumb trail). The PHP is no longer run (because the content is pulled from the cache) and the page is no longer displaying the correct content.
Possible fixes (merely suggestions on my part):
Having a ~~nocache~~ tag in the page tell DokuWiki to *never* cache the page. (Works well if PHP is only added to a handful of the site's pages, which I would guess is the most common case.)
Settings in a config file (similar to the acl?) so that pages or namespaces can be specified "nocache".
I haven't looked closely enough at the cacheing scheme to know what backend changes need to be made to accomodate this work.
Is this really a bug?
PHP code may nearly always be dynamic, but I don't think its guaranteed to be. Given that adding PHP code is likely to be done by the technically aware it shouldn't be too difficult to ensure a ~~NOCACHE~~ directive is added at the same time.
On the other hand, you could add a config setting along the lines of 'php_cache', which the php handler in the parser would check and if required disable caching for any page that included php.
Nevermind - I think this should *not* be classified as a bug.
The ~~NOCACHE~~ directive accomplishes the task just fine.
The real problem is that I didn't know about it... maybe I should file a bug requesting a better user manual? :) (Or write a more usable manual myself...)