Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:59836 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 55890 invoked from network); 13 Apr 2012 01:26:16 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 13 Apr 2012 01:26:16 -0000 Authentication-Results: pb1.pair.com smtp.mail=arvids.godjuks@gmail.com; spf=pass; sender-id=pass Authentication-Results: pb1.pair.com header.from=arvids.godjuks@gmail.com; sender-id=pass Received-SPF: pass (pb1.pair.com: domain gmail.com designates 209.85.210.45 as permitted sender) X-PHP-List-Original-Sender: arvids.godjuks@gmail.com X-Host-Fingerprint: 209.85.210.45 mail-pz0-f45.google.com Received: from [209.85.210.45] ([209.85.210.45:34425] helo=mail-pz0-f45.google.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 40/B0-00290-6B0878F4 for ; Thu, 12 Apr 2012 21:26:15 -0400 Received: by dacx6 with SMTP id x6so3213387dac.18 for ; Thu, 12 Apr 2012 18:26:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=bBtcBYNUcLYwEv/p/JUHbaW+R00p/M/uOZX7rr83RF4=; b=uoLiPjcsKKJioQAHiz3ZI8ffJNNCb7y3Cfimh+yC8Brb5CDVB+w+YIfe+jyAbVw8ib rq4w6sW82bCUPpTn+yjJzxMtkjaXh1F/hdvYKq4HJ/U6Md38zHs6oMoNs66WaJLO9zF6 Cz+x3zfc83UHxy6YttSuzhLvta+Om4L2gIuLabsRM0v0h5dA6HOXCJdUhoxn9mjcpB2s E2g21LKZLtS2yeJuaNI8lKmMheE+U8/gBYlVFIat1nPP8RImhhud0tJ+uKPkUVVmVN+3 cIjapklwjYnMcKVANg/6xJpwcvnxYgHqWLVv+ls/k4EZsXPoPRLFnb/7hOI3UOZbJpdy DlPQ== MIME-Version: 1.0 Received: by 10.68.72.70 with SMTP id b6mr347076pbv.58.1334280370853; Thu, 12 Apr 2012 18:26:10 -0700 (PDT) Received: by 10.68.230.72 with HTTP; Thu, 12 Apr 2012 18:26:10 -0700 (PDT) Received: by 10.68.230.72 with HTTP; Thu, 12 Apr 2012 18:26:10 -0700 (PDT) In-Reply-To: References: <4F876943.8030105@gmail.com> <4F877777.8050806@gmail.com> Date: Fri, 13 Apr 2012 04:26:10 +0300 Message-ID: To: Kris Craig Cc: PHP internals list , Yasuo Ohgaki , David Muir Content-Type: multipart/alternative; boundary=f46d041702a789196104bd855b01 Subject: Re: [PHP-DEV] [RFC] New .phpp File Type for Pure-Code PHP Scripts From: arvids.godjuks@gmail.com (Arvids Godjuks) --f46d041702a789196104bd855b01 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Well, i can say that any template engine that is not a pure php extension does template inclusion via an include of a file with html and embedded php code. Because to make things fast you have to convert your templates from tags and pseudo code to that state and cache the result so not to make parsing on every request. And right now there is a standard for autoloading the libraries and frameworks that most big players agreed on, that will make loading of 3rd party stuff easy. Untill one converts to pphp and other does not. Autoloadijg will just break because of mixed approaches. Hm, you wrote that you have configured php only with IIS and Apache (any *nix expirience?). Try nginx, see for yourself how different it is. 13.04.2012 3:05 =D0=BF=D0=BE=D0=BB=D1=8C=D0=B7=D0=BE=D0=B2=D0=B0=D1=82=D0= =B5=D0=BB=D1=8C "Kris Craig" =D0=BD=D0=B0=D0=BF=D0= =B8=D1=81=D0=B0=D0=BB: > On Thu, Apr 12, 2012 at 5:46 PM, David Muir wrote: > > > On 13/04/12 10:04, Kris Craig wrote: > > > > > > > > On Thu, Apr 12, 2012 at 4:46 PM, David Muir > wrote: > > > >> On 13/04/12 09:38, Yasuo Ohgaki wrote: > >> > Hi, > >> > > >> > 2012/4/13 Kris Craig : > >> >> Per recent discussions, I have drafted an RFC for this. This > proposal > >> >> offers what I believe to be a more sane and realistic approach to > >> >> addressing the question of incorporating a new breed of tag-less PH= P > >> >> scripts. > >> >> > >> >> https://wiki.php.net/rfc/phpp > >> > This may work for LFI issue for new codes. > >> > Few questions. > >> > > >> > CLI may use .phpp as PHP script always. (i.e. execute w/o else) > >> > It's like DOS, though. > >> > > >> > How do you enforce .phpp as script only for Web? > >> > Is it a rule for configuration? or .phpp just never supposed to loca= te > >> > under docroot? > >> > It relates previous question. How about bootstrap script for > frameworks? > >> > > >> >> A regular .php script cannot be included from a .phpp script. An > >> E_WARNING will be thrown for include and an E_RECOVERABLE_ERROR will b= e > >> thrown for require; in both instances, the included file will be > ignored. > >> > Some people may try to make .phpp handled by web. > >> > I cannot tell if this setting is going to be popular, but if it > >> > does, isn't it the end of embedded PHP? > >> > It might be good if PHP is more tolerant for this usage. > >> > > >> > Regards, > >> > > >> > -- > >> > Yasuo Ohgaki > >> > yohgaki@ohgaki.net > >> > > >> > >> That's a huge WTF that a templating library can't be written as .phpp= , > >> because it then won't be able to load a template. > >> > > > > That's actually not true. Please refer to the diagram embedded in the > RFC. > > > > Basically, you can load a template just fine-- you just can't do it > > directly from a .phpp file, which you shouldn't be doing, anyway. The > > .phpp file is, at least for the most part, intended to be included from= a > > regular .php file, which also would include whatever you're using for > your > > templates. In other words, they can interact just fine; you just can't > put > > the template upstream from a .phpp file in the include stack-- which, > > again, you really shouldn't be doing, anyway, as it's just bad > architecture. > > > > > > > > How is this bad architecture? Every framework I've seen that has some > kind > > of templating layer that handles the scope and inclusion of the templat= e, > > and it happens further down the chain from the controlling code. > > > > Zend_View, Twig or Smarty would have to remain as .php and not .phpp, > > otherwise they wouldn't be able to render the templates. > > > > In the case of Zend Framwork, which I'm most familiar with, the > > application, front controller, dispatcher, and action controllers, and > some > > services would have to remain as .php so that templates could be > executed. > > > > Oh, and the autoloader can't be .phpp either. But then if it's .php, th= en > > the autoloader can't be called from .phpp files to include .php files. > > > > Cheers, > > David > > > > It's been awhile since I've used Smarty, but unless my memory is failing > me, I'm pretty sure it's not restricted to being several points removed > upstream as you described. I'm not familiar with Zend_View or Twig so I > can't comment on those. > > Thing is, there's no reason why you can't hook any framework into this. > Worst-case scenario, if the library you're hooking into has a rigid > structure, just write a simple controller class layer to operate on top o= f > it, then use that same controller class to interface with the .phpp stack= . > Problem solved. It's really not as complicated or confusing as you're > making it out to be. > > --Kris > --f46d041702a789196104bd855b01--