This really depends heavily on what kind of server-side configuration you have setup. Lets take apache for example, your Apache threads are all going to be run as the system user defined in the User directive (usually something like _www, www-data, or apache) found in your httpd.conf file. If your project includes files from your vendor at any point, those will be executed with the same User (thus the same permission level) as the core files, giving them access to read everything.
I believe only way to achieve what you're proposing is a complete division of the core and vendor libraries, manually changing the current user and then executing the vendor libraries as separate executions. The vendors would need to support this kind of interaction. It could get pretty nasty though, and wouldn't recommend this in a production environment (could be manipulated by the vendor libraries if they are malicious):
<?php
$restricted_user = 'vendor';
$user_info = posix_getpwnam($restricted_use);
// change the user before executing the external vendor scripts
posix_setuid($user_info['uid']);
posix_setgid($user_info['gid']);
// run the vendor scripts using exec, shell_exec, system, pass_thru...
system('php /path/to/vendor/script.php');
Generally speaking, it's a bad idea to allow any executable code on your server whose execution patterns you don't trust.