@@ -32,7 +32,7 @@ class FileMakerConnection extends Connection
3232
3333 protected $ password ;
3434
35- protected $ sessionToken ;
35+ protected static $ sessionToken ;
3636
3737 protected $ retries = 1 ;
3838
@@ -63,15 +63,8 @@ public function getLayout()
6363
6464 public function login ()
6565 {
66- // Cache a session token so we can reuse the same thing for 14.75 minutes
67- // FileMaker data API sessions expire after 15 minutes
68- // 14.75 * 60 = 885 seconds
69- $ token = Cache::remember ($ this ->getSessionTokenCacheKey (), 885 , function () {
70- return $ this ->fetchNewSessionToken ();
71- });
72-
7366 // Store the session token
74- $ this -> sessionToken = $ token ;
67+ self :: $ sessionToken = $ this -> fetchNewSessionToken () ;
7568 }
7669
7770 /**
@@ -594,11 +587,6 @@ public function performScript(FMBaseBuilder $query)
594587 return $ this ->executeScript ($ query );
595588 }
596589
597- protected function getSessionTokenCacheKey ()
598- {
599- return 'filemaker-session- ' . $ this ->getName ();
600- }
601-
602590 /**
603591 * Log out of the database, invalidating our session token
604592 *
@@ -608,9 +596,15 @@ protected function getSessionTokenCacheKey()
608596 */
609597 public function disconnect ()
610598 {
611- $ url = $ this ->getDatabaseUrl () . '/sessions/ ' . $ this ->sessionToken ;
599+ if (! self ::$ sessionToken ) {
600+ return ;
601+ }
612602
613- $ response = $ this ->makeRequest ('delete ' , $ url );
603+ $ url = $ this ->getDatabaseUrl () . '/sessions/ ' . self ::$ sessionToken ;
604+
605+ // make an http delete request to the data api to end the session
606+ $ response = Http::delete ($ url );
607+ $ this ->checkResponseForErrors ($ response );
614608
615609 $ this ->forgetSessionToken ();
616610
@@ -622,7 +616,7 @@ public function disconnect()
622616 */
623617 public function forgetSessionToken ()
624618 {
625- Cache:: forget ( $ this -> getSessionTokenCacheKey ()) ;
619+ self :: $ sessionToken = null ;
626620 }
627621
628622 public function layout ($ layoutName )
@@ -647,9 +641,9 @@ public function setGlobalFields(array $globalFields)
647641 protected function prepareRequestForSending ($ request )
648642 {
649643 if ($ request instanceof PendingRequest) {
650- $ request ->withToken ($ this -> sessionToken );
644+ $ request ->withToken (self :: $ sessionToken );
651645 } else {
652- $ request = Http::withToken ($ this -> sessionToken );
646+ $ request = Http::withToken (self :: $ sessionToken );
653647 }
654648
655649 $ request ->withMiddleware ($ this ->retryMiddleware ());
0 commit comments