Re[6]: More accurate compiled file names

Dmitry Koteroff <[email protected]>
Newsgroups gmane.comp.php.smarty.devel
Message-ID <[email protected]>
>> There  are  a  lot  of  other  situations. To handle all of them,
>> Smarty  has  to  be PHP. "To parse Perl you must be Perl" - Larry
>> Wall's words, and for PHP they are correct too: "To parse PHP you
>> must be PHP itself".
AD> Yep,  but  we're  talking about Smarty templates and they are
AD> much  more  easier,  than  PHP-code. Btw, Smarty already does
AD> parse  them.  Anyway,  I'll try to write a patch myself. I'll
AD> show you when it's ready.
OK,  but are you agree that it's only another crutch (in addition
to lots of others) and no more?
 
>> What about PHP insertions in the template?
>> {php}
>> spoon(); // non-existent
>> {/php}
AD> This  is  not the case I'm talking about. PHP-code insertions
AD> in templates are evil and you should be ready to pay for that
AD> ({insert}  is  a special case and can be quite useful in some
AD> situations).
Why  should I pay for something if I can get the same on the next
street corner? I don't understand.

I  agree  that  {php}  is a bad solution. But we really can do it
more friendly for developer -

+                $_filename = $auto_source;
+                $_filename = preg_replace("{[/\\\\]}s", "^", $_filename);
+                $_filename = preg_replace("{[^a-z0-9~!_=.^-]}si", "_", $_filename);
+                $_return .= $_filename;

(Maybe with concatenating crc32() result in addition, no matter).
Why not? Can you motivate that?

>> What about {$spoon+1}, where $spoon is undefined? Smarty does not
>> handle at all situations like this!
AD> Just turn E_NOTICE off, in this case it doesn't matter, of course
AD> if you know what you're doing.
Oh, good advice - "just turn E_ERROR off and enjoy debugging hell
forever  -  it is so masochistical!". It is NOT a solution, it is
true  crutch.  I  love  E_ALL,  PHP  developers  -  too; it makes
debugging process much easier.

>> No, I think it is a bad way to manually handle all errors.
AD> And you're offering to debug templates using compiled code instead..
AD> This is not the best way we can find imho.
I  am  offering  to  make  fatal  error  more  friendly IF it has
happened  with  NO  pay for that at all. If I have choose - debug
compiled  template or tear my hairs unsuccessfully trying to find
problem file, I will choose debug compiled code. (-; If I have to
choose  pick up purse full of money wallowed the road or go past,
I will choose to pick up.

>> AD> Hmm.. how can eval() help us, if Smarty doesn't use it at all?
>> I  know,  but, if PHP's eval() would be the same as Perl's eval()
>> and,  in addition, handles #line directive (as in Perl and C), it
>> would  be  great.  But  -  not  in  this life, of course. Dreams,
>> dreams...  I  only  want to say that fatal error messages must be
>> debugging-friendly, and we CAN do so (more or less).
AD> And  I'm  trying  to  say that Smarty just should prevent all
AD> fatal errors like mismatched tags, using non-existent methods
AD> and functions etc.
It  is  impossible,  I  have  said  it before. How do you plan to
handle such situation, for example?

{math equation="($a + spoon())*20"}

Do  you  want to write complete expression parser? Maybe you want
to write PHP itself in PHP? (-;

Again:  my solution does not make our to pay something for it. It
only  simplifies debugging in critical cases, no more, no less. I
don't understand why don't you want to use it.

-- 
Best regards,
  Dmitry Koteroff.

-- 
Smarty Development Mailing List (http://smarty.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.