Re: A couple questions about templating

From: Date: Mon, 09 May 2005 23:46:44 +0000
Subject: Re: A couple questions about templating
References: 1  Groups: php.general 
Request: Send a blank email to php-general+get-214800@lists.php.net to get a copy of this message
> I am trying to make a small, fast, and simple templating class... Now > I have mastered the art of variable replacement, and have made two > versions. The first one I made simply used file() to load up the file > into an array, Personally I think you should use file_get_contents() instead. > str_replace() to replace variables, then it printed it > back. Unless you're doing only very basic substitution, you may need to consider regex, and preg_replace(). > I made a second one, which reads the file into an array, > changes the variables the same way, but instead compiles the finished > product into a compile directory and then reads the compiled file back > to the page. the benefit to this being that I can easily create a > simple cache system now. All I'd change here, is that instead of reading the file into an array, I'd load it into a string. > 1st question) I need a professionaly opinion on to which solution is > better, considering speed, security, and expandability. Depends on how it's implemented. When you 'compile' the script into native php, you are having a highly optimised parser do the variabe insertion. Your main problem here would be register_globals, so you need to ensure that you initialise any variables used. > 2nd question) Like I said before, I've mastered the art of variable > replacement, but how would one go about adding support for if {} > statements as well as loops. I'm a little bit lost when it comes to > this. You could use a full featured tokeniser/parser(and you'd probably IIRC find one in Pear), but it may perhaps be simpler, to simply use preg to replace something like {foreach:var:list}, or whatever your perfered syntax. > Thank-you guys very very much. > -- > jamwil.com > > -- > PHP General Mailing List (http://www.php.net/) > To unsubscribe, visit: http://www.php.net/unsub.php > >

« previous php.general (#214800) next »