舒舒服服水电费多少发多少*(^&*(
<?php
/**
* SessionService class.
*
* @package WooCommerce\Payments
*/
namespace WCPay\Internal\Service;
use WC_Session;
use WCPay\Internal\Proxy\LegacyProxy;
/**
* Session service. Use as a translation layer between `src` classes and Woo core WC_Session class.
*/
class SessionService {
/**
* Legacy Proxy.
*
* @var LegacyProxy
*/
private $legacy_proxy;
/**
* Constructor.
*
* @param LegacyProxy $legacy_proxy Legacy proxy instance.
*/
public function __construct( LegacyProxy $legacy_proxy ) {
$this->legacy_proxy = $legacy_proxy;
}
/**
* Getter.
*
* @param string $key Session key.
* @param mixed|null $initial Default value to return if key is not set.
*
* @return mixed
*/
public function get( string $key, $initial = null ) {
if ( $this->has_wc_session() ) {
return $this->get_wc_session()->get( $key, $initial );
} else {
return $initial;
}
}
/**
* Setter.
*
* @param string $key Session key.
* @param mixed $value Value to set.
*
* @return void
*/
public function set( string $key, $value ): void {
if ( $this->has_wc_session() ) {
$this->get_wc_session()->set( $key, $value );
}
}
/**
* Checks whether the WC_Session has been initialized.
*
* @return bool Whether the WC_Session has been initialized.
*/
private function has_wc_session(): bool {
return $this->legacy_proxy->call_function( 'WC' )->session instanceof WC_Session;
}
/**
* Gets the WC_Session instance.
*
* @return WC_Session|null
*/
private function get_wc_session(): ?WC_Session {
return $this->legacy_proxy->call_function( 'WC' )->session;
}
}