@@ -26,13 +26,8 @@ final class Bolt
2626
2727 public function __construct (private IConnection $ connection )
2828 {
29- $ _ENV ['TEMP_DIR ' ] = getenv ('TEMP ' ) ?: getenv ('TMPDIR ' ) ?: (dirname (__DIR__ ) . DIRECTORY_SEPARATOR . 'temp ' );
30- var_dump ($ _ENV ['TEMP_DIR ' ]);
31- if (!file_exists ($ _ENV ['TEMP_DIR ' ])) {
32- mkdir ($ _ENV ['TEMP_DIR ' ], recursive: true );
33- }
34-
35- if (!getenv ('BOLT_ANALYTICS_OPTOUT ' )) {
29+ $ this ->tempDirectoryInit ();
30+ if (!getenv ('BOLT_ANALYTICS_OPTOUT ' ) && is_writable ($ _ENV ['TEMP_DIR ' ] . DIRECTORY_SEPARATOR )) {
3631 if (!file_exists ($ _ENV ['TEMP_DIR ' ] . DIRECTORY_SEPARATOR . 'php-bolt-analytics ' . DIRECTORY_SEPARATOR )) {
3732 mkdir ($ _ENV ['TEMP_DIR ' ] . DIRECTORY_SEPARATOR . 'php-bolt-analytics ' );
3833 }
@@ -42,18 +37,31 @@ public function __construct(private IConnection $connection)
4237 $ this ->setProtocolVersions (5.4 , 5 , 4.4 );
4338 }
4439
40+ private function tempDirectoryInit (): void
41+ {
42+ $ _ENV ['TEMP_DIR ' ] = getenv ('TEMP ' );
43+ if ($ _ENV ['TEMP_DIR ' ] === false || !is_writable ($ _ENV ['TEMP_DIR ' ] . DIRECTORY_SEPARATOR )) {
44+ $ _ENV ['TEMP_DIR ' ] = getenv ('TMPDIR ' );
45+ }
46+ if ($ _ENV ['TEMP_DIR ' ] === false || !is_writable ($ _ENV ['TEMP_DIR ' ] . DIRECTORY_SEPARATOR )) {
47+ $ _ENV ['TEMP_DIR ' ] = dirname (__DIR__ ) . DIRECTORY_SEPARATOR . 'temp ' ;
48+ }
49+ if (!file_exists ($ _ENV ['TEMP_DIR ' ])) {
50+ mkdir ($ _ENV ['TEMP_DIR ' ], recursive: true );
51+ }
52+ }
53+
4554 private function track (): void
4655 {
4756 foreach (glob ($ _ENV ['TEMP_DIR ' ] . DIRECTORY_SEPARATOR . 'php-bolt-analytics ' . DIRECTORY_SEPARATOR . 'queries.*.cnt ' ) as $ file ) {
4857 $ time = intval (explode ('. ' , basename ($ file ))[1 ]);
4958 if ($ time < strtotime ('today ' )) {
5059 $ count = file_get_contents ($ file );
51- unlink ($ file );
5260
5361 $ curl = curl_init ();
5462 curl_setopt_array ($ curl , [
5563 CURLOPT_URL => 'https://api-eu.mixpanel.com/import?strict=0&project_id=3355308 ' ,
56- CURLOPT_RETURNTRANSFER => true ,
64+ CURLOPT_RETURNTRANSFER => false ,
5765 CURLOPT_ENCODING => '' ,
5866 CURLOPT_MAXREDIRS => 10 ,
5967 CURLOPT_TIMEOUT => $ this ->connection ->getTimeout (),
@@ -77,7 +85,10 @@ private function track(): void
7785 'authorization: Basic MDJhYjRiOWE2YTM4MThmNWFlZDEzYjNiMmE5M2MxNzQ6 ' ,
7886 ],
7987 ]);
80- curl_exec ($ curl );
88+
89+ if (curl_exec ($ curl )) {
90+ unlink ($ file );
91+ }
8192 curl_close ($ curl );
8293 }
8394 }
0 commit comments