Re: More accurate compiled file names

From: Date: Sat, 29 May 2004 22:38:49 +0000
Subject: Re: More accurate compiled file names
References: 1  Groups: php.smarty.dev 
Request: Send a blank email to php-smarty-dev+get-2327@lists.php.net to get a copy of this message
Attachment. -- Best regards, Dmitry Koteroff. DK> Hello. DK> Smarty saves its compiled code to files with unreadable names DK> (like %%23t2763%%sjhdjsdhjshgd.php). It makes too difficult to DK> find fatal error in the template (for example, {$obj->spoon()}, DK> where spoon is non-existent method). DK> Attached patch corrects this problem - it replaces "/" by "^" and DK> saves the file to temporary location. DK> Replacement code: DK> $_filename = preg_replace("{[/\\\\]}s", "^", $_filename); DK> $_filename = preg_replace("{[^a-z0-9~!_=.^-]}si", "_", $_filename); DK> Don't you plan to insert this patch to production version?

--- Distrib.orig/libs/Smarty.class.php Wed Feb 18 03:00:58 2004 +++ Distrib/libs/Smarty.class.php Sun May 30 02:23:16 2004 @@ -1791,11 +1791,18 @@ if(isset($auto_source)) { - // make source name safe for filename - $_filename = urlencode(basename($auto_source)); - $_crc32 = crc32($auto_source) . $_compile_dir_sep; - // prepend %% to avoid name conflicts with - // with $params['auto_id'] names - $_crc32 = '%%' . substr($_crc32,0,3) . $_compile_dir_sep . '%%' . $_crc32; - $_return .= $_crc32 . $_filename; + if (0) { + // make source name safe for filename + $_filename = urlencode(basename($auto_source)); + $_crc32 = crc32($auto_source) . $_compile_dir_sep; + // prepend %% to avoid name conflicts with + // with $params['auto_id'] names + $_crc32 = '%%' . substr($_crc32,0,3) . $_compile_dir_sep . '%%' . $_crc32; + $_return .= $_crc32 . $_filename; + } else { + $_filename = $auto_source; + $_filename = preg_replace("{[/\\\\]}s", "^", $_filename); + $_filename = preg_replace("{[^a-z0-9~!_=.^-]}si", "_", $_filename); + $_return .= $_filename; + } }
« previous php.smarty.dev (#2327) next »