The issue here is because of the way that PHP resolves include paths. It's 
really bizarre and unexpected, but when you say "include <relative path>" in 
PHP the path is NOT relative to the file that contains the statement, but 
rather it is relative to the directory from which the PHP interpreter was 
originally invoked.

This is fine if you dump all your code into one big folder and run your 
interpreter from there, but if you want to organize your code into folders, the 
cleanest viable solution is to just switch to using absolute paths to reference 
your files. This is why we define a THRIFT_ROOT and declare all generated 
includes relative to that.

There are also some benefits to using absolute paths if you are running PHP on 
Apache with APC byte-code caching enabled. The absolute paths allow you to 
avoid doing filesystem operations when you're checking for a script's presence 
in the cache, you can just treat the absolute path as a simple string key.

-----Original Message-----
From: Dvir Volk [mailto:[email protected]] 
Sent: Monday, July 20, 2009 5:52 AM
To: [email protected]
Subject: Re: wrong include paths in PHP

I could, but I figured since in python it's not mandatory, there might be a
trick to achieve that in PHP as well...

On Mon, Jul 20, 2009 at 3:37 PM, Patrick Schlangen <[email protected]>wrote:

> Hi,
>
> why don't you just use the directory structure suggested by Thrift?
> It's very logical and tidy.
>
> Patrick
>
> Am Montag 20 Juli 2009 um 02:34PM schrieb "Dvir Volk" <[email protected]>:
> >Hi,
> >When I'm generating php from thrift files, I always get this thing:
> >if I generate a service called Foo, the output is 2 files, one is
> >FooService.php and the other Foo_types.php, FooService.php will contain
> the
> >following include:
> >
> >include_once $GLOBALS['THRIFT_ROOT'].'/packages/Foo/Foo_types.php';
> >
> >when actually they are both located in the the same directory, and it
> should
> >just be:
> >include_once 'Foo_types.php';
> >
> >How do I stop this behavior? It's driving me crazy editing generated files
> >all the time...
> >
> >
>

Reply via email to