[wp-trac] [WordPress Trac] #19968: Use named regular expression groups to simplify shortcodes code
    WordPress Trac 
    noreply at wordpress.org
       
    Wed Aug 21 19:03:14 UTC 2013
    
    
  
#19968: Use named regular expression groups to simplify shortcodes code
-------------------------------------+------------------------------
 Reporter:  nbachiyski               |       Owner:
     Type:  enhancement              |      Status:  new
 Priority:  normal                   |   Milestone:  Awaiting Review
Component:  Shortcodes               |     Version:  3.3.1
 Severity:  minor                    |  Resolution:
 Keywords:  has-patch needs-refresh  |
-------------------------------------+------------------------------
Description changed by SergeyBiryukov:
Old description:
> Currently in {{{get_shortcode_regex()}}} in [source:trunk/wp-
> includes/shortcodes.php] you are welcomed by:
> {{{
> // WARNING! Do not change this regex without changing do_shortcode_tag()
> and strip_shortcode_tag()
> }}}
>
> because these functions use the regular expression match from the
> shortcode parser.
>
> Instead, we could use named regex groups: {{{(?P<year>\d\d\d\d)}}} or
> {{{(?'year')\d\d\d\d}}} which appear indexed by name in the matches
> array: {{{$matches['year']}}} instead of {{{matches[1]}}}.
>
> Benefits:
>
> 0. Future-proof code. Won't rely on indices, but on names, which we can
> control. Now, if we want to add a group we will have to offset all the
> indices, scattered all over the place.
>
> 1. Less ugly and unreadable code like:
>
> {{{
> if (!empty($m[1]))
>     $atts[strtolower($m[1])] = stripcslashes($m[2]);
> elseif (!empty($m[3]))
>     $atts[strtolower($m[3])] = stripcslashes($m[4]);
> }}}
New description:
 Currently in {{{get_shortcode_regex()}}} in [source:trunk/src/wp-
 includes/shortcodes.php] you are welcomed by:
 {{{
 // WARNING! Do not change this regex without changing do_shortcode_tag()
 and strip_shortcode_tag()
 }}}
 because these functions use the regular expression match from the
 shortcode parser.
 Instead, we could use named regex groups: {{{(?P<year>\d\d\d\d)}}} or
 {{{(?'year')\d\d\d\d}}} which appear indexed by name in the matches array:
 {{{$matches['year']}}} instead of {{{matches[1]}}}.
 Benefits:
 0. Future-proof code. Won't rely on indices, but on names, which we can
 control. Now, if we want to add a group we will have to offset all the
 indices, scattered all over the place.
 1. Less ugly and unreadable code like:
 {{{
 if (!empty($m[1]))
     $atts[strtolower($m[1])] = stripcslashes($m[2]);
 elseif (!empty($m[3]))
     $atts[strtolower($m[3])] = stripcslashes($m[4]);
 }}}
--
--
Ticket URL: <http://core.trac.wordpress.org/ticket/19968#comment:4>
WordPress Trac <http://core.trac.wordpress.org/>
WordPress blogging software
    
    
More information about the wp-trac
mailing list