logo       
Bookmark and Share

Re: beginning plannings for PEAR for PHP6: msg#00020

php.pear.core

Subject: Re: beginning plannings for PEAR for PHP6

Justin Patrin wrote:
On 10/14/06, Gregory Beaver <greg@xxxxxxxxxxxxxxxxx> wrote:
#2 libraries need to be opcode cache-friendly (require instead of
require_once, or a class loader)


Could you explain more about this (or point us to some resources on
it)? This is the first I've heard of require_once not being ok to use.
Why in the world would using _once break an opcode cache?

Ok, looking myself I found:
http://www.phpinsider.com/smarty-forum/viewtopic.php?t=7674&sid=a4a5feb6971f5dd4201d34aa6327d4d3
which links to a post by Rasmus explaining this somewhat:
http://marc.theaimsgroup.com/?l=php-dev&m=113883455711935&w=2
and a post to the lighttpd forum:
http://forum.lighttpd.net/topic/864

Rasmus' message says he's looking into ways to fix this and tihs was
back in Feb. Perhaps he's fixed it by now? (I'm not subscribed to
php-internals, so...)

We don't have a decent fix. And it isn't that it breaks an opcode cache, just that it isn't very efficient because we end up with a useless open() syscall. In general you are way better off declaring your dependencies up front and avoiding include spaghetti. No matter what we do, if a script makes 5 calls to require_once on the same file that is always going to be way slower than a better organized application that makes a single call to require. We should be encouraging the latter, not the former.

-Rasmus



<Prev in Thread] Current Thread [Next in Thread>
Google Custom Search

News | Mail Home | sitemap | FAQ | advertise