Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:59830 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 45668 invoked from network); 13 Apr 2012 01:04:03 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 13 Apr 2012 01:04:03 -0000 Authentication-Results: pb1.pair.com header.from=kris.craig@gmail.com; sender-id=pass Authentication-Results: pb1.pair.com smtp.mail=kris.craig@gmail.com; spf=pass; sender-id=pass Received-SPF: pass (pb1.pair.com: domain gmail.com designates 74.125.82.54 as permitted sender) X-PHP-List-Original-Sender: kris.craig@gmail.com X-Host-Fingerprint: 74.125.82.54 mail-wg0-f54.google.com Received: from [74.125.82.54] ([74.125.82.54:58874] helo=mail-wg0-f54.google.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id A1/6E-00290-08B778F4 for ; Thu, 12 Apr 2012 21:04:01 -0400 Received: by wgbdq13 with SMTP id dq13so2089519wgb.11 for ; Thu, 12 Apr 2012 18:03:56 -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=gwcuiZh8umztMxGsIkPjuEq6soL9bLFV0L6X4D7F++4=; b=J21CDBn9Q3A6rlOzJcDtlAM19yFukc190JFHwInDrVQ2DzILA46kRD2SFczYF/gNIm rMaaB0V++w84G6EZvXqPhFbvXLp7j7ak6c+i5a4rPqQCuYeFr01dLbmOmoO9jhCX1LGR IgWppin1YvuC+ygWzeK/Ih7gq7omMnQrI5J51OXbDfy2l7wjInRnHWJ4DTQuY4QC0fX9 VC5UN5XfSqk1hjL4XIvDSJjyNxUNAauaU/TF8G+icXELdG6XeZZ3eQ5uzulv1slVUdNu 9Sjb2v4zcliA3cFdgOVVj+Uia5b2sNRTEFmIREv1H50Y+v5T2k3eDVeG855USliGm9tc KtQw== MIME-Version: 1.0 Received: by 10.180.91.168 with SMTP id cf8mr377587wib.0.1334279036675; Thu, 12 Apr 2012 18:03:56 -0700 (PDT) Received: by 10.223.79.67 with HTTP; Thu, 12 Apr 2012 18:03:56 -0700 (PDT) In-Reply-To: <4F877777.8050806@gmail.com> References: <4F876943.8030105@gmail.com> <4F877777.8050806@gmail.com> Date: Thu, 12 Apr 2012 18:03:56 -0700 Message-ID: To: David Muir Cc: Yasuo Ohgaki , PHP internals list Content-Type: multipart/alternative; boundary=f46d0438934703267804bd850c7c Subject: Re: [PHP-DEV] [RFC] New .phpp File Type for Pure-Code PHP Scripts From: kris.craig@gmail.com (Kris Craig) --f46d0438934703267804bd850c7c Content-Type: text/plain; charset=ISO-8859-1 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 PHP >> >> 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 > > 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 locate >> > 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 be >> 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 template, > 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, then > 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 of 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 --f46d0438934703267804bd850c7c--