I use a structure like:
/var/www/sites/project.com/www/ is set as the virtual host's document root, and I use
index.php to include files from
This way I have organized my project to have the bulk of the PHP outside of apache's document root -- as you're looking to do. So that the server doesn't 'blat' the contents of PHP scripts, etc.
However -- if it's managed hosting, you're going to have to play within the box drawn by the host.
I'd say at the same level as
public_html/ is a good place to put your directories with PHP files. The
public_html/ is about equivalent to
/var/www/sites/project.com/www/ in my example directory structure.
As to the nature of the
php/ directory, maybe only your host knows. If it's empty, I'd say that they're encouraging you to use it.