[pmwiki-users] Still php5.5 deprecated /e modifier errors

Petko Yotov 5ko at 5ko.fr
Fri May 15 09:40:27 CDT 2015


On 2015-05-15 14:32, ABClf wrote:
> I'm trying to build an updated version of my website, notably using
> FastCache recipe, and I get a few errors related to php 5.5.
> Among others, FastCache recipe is subject to this issue.

You may prefer to write more precise subject lines on messages, for 
example "Cookbook recipe FastCache PHP 5.5 compatibility". This way the 
author of the recipe may notice it more quickly and reply and fix it.

> Exploring the code, it looks like there is only one line using the
> deprecated code in the markup declaration, at the very beginning. Here 
> it
> is :
> 
> Markup( 'nofastcache', 'directives', '/\\(:nofastcache:\\)/ei', "PZZ(
> \$GLOBALS['FastCacheValid'] = FALSE )" );
> 
> I don't know how to fix it : the documentation at PmWiki/CustomMarkup
> doesn't talk about this case

There are examples how to convert older markup rules to the new format.

1. Replace "Markup(" with "Markup_e(".

2. In the "search" pattern, don't use the /e modifier (remove the letter 
"e" after the slash).

3. In the "replace" code, replace '$1', '$2', etc. with \$m[1], \$m[2], 
etc.; remove any PSS() calls.

In your case you don't have things like '$1' to replace, so it is 
simpler:

   Markup_e('nofastcache', 'directives',
'/\\(:nofastcache:\\)/i', "PZZ(\$GLOBALS['FastCacheValid'] = FALSE)");



   "Markup_e($name, $when, $pattern, $replace);
    * $pattern cannot have an "/e" modifier
    * $replace can be a string with program code to be evaluated;
      note that the matches can be accessed with $m[1], $m[2]
      instead of '$1', '$2'



and PmWiki/CustomMarkupAlt, which does, has
> not been updated to handle php5.5 new rules.
> 
> May someone help fixing this case ?





More information about the pmwiki-users mailing list