file_put_contents写到哪里?

I am working with Authorize.NET's SDK, which I pulled in through composer. It's sitting in the vendor/authorizenet directory in my app.

I am struggling with a permissions error for a call to file_put_contents made by Authorize.NET's Log class (in namespace net\authorize\util). At the top of the class, a constant is defined for a log file:

define ("ANET_LOG_FILE","phplog");

Every time I try to submit a request to Authorize.NET, I get the following:

file_put_contents(phplog): failed to open stream: Permission denied

So obviously there is some kind of permissions error going on that is preventing the Log class from writing to the phplog file. However, I can't figure out what directory has the permissions error.

I tried a recursive chmod -R 777 on the vendor/authorizenet folder. I tried a chmod 777 on my workspace directory (not recursive). I also tried the same on vendor/authorizenet/authorizenet/lib/net/authorize/util (where Log.php is located), and that also didn't work.

Any ideas about what directory file_put_contents is looking in for the 'phplog' file?

Unless you specify a path, all filesystem functions work on the process's current working directory. You can find out what that is by calling getcwd.

I figured it out. I'm using Laravel, so using getcwd pointed out that my current working directory when the file_put_contents call is made is to my public directory.