アプリのいくつかのページで使用する必要がある税目的のクラスを作成しています。一般的な提案が必要です。それが良い方法であるか、Singleton を使用するかです。Singleton は使用したくありませんが、クラスの静的バージョンを使用します。コードは次のとおりです。
class CalculationCommon extends ObjectModel
{
// Customer Address Array Object
public static $userCountryCode;
public static $cartProducts;
public static $shopID;
public static $theTaxRateIs;
public static $context;
public function __construct( $cartProductList )
{
self::$shopID = Context::getContext()->shop->id
self::$userCountryCode = cart::getCustomerAddressDetail($cartProductList[0]['id_address_delivery']);
self::$cartProducts = $cartProductList;
}
/*
* @param array Product obj (all products in current cart)
* Calculate the Tax Rate Globally for the cart, instead of caluculating individually everywehre.
* If Address is in Canada then check if the tax rate is Flat or Destination base
* If Outside of Canada then check the export rate whether flat or Individual attribute base
*/
public static function calculateGlobalTaxRate( )
{
//Check if any attribute is taxable then apply Tax in Cart
if( self::taxableCart())
{
if(self::$userCountryCode[0]['iso_code'] =='CA') // Inside of Canada
{
echo "CANADA<br>";
}
else
{
// Reserved for Export Rate Outside of Canada
}
}
else
$globalTaxRateIs = 0; // if No attribute prone for tax then no Tax
// self::$theTaxRateIs = $globalTaxRateIs;
return $globalTaxRateIs;
}
/*
* Check if any attribute is taxable before apply Tax in Cart
*/
public static function taxableCart()
{
return true;
}
}
これは、abc ページでこのクラスのインスタンスを作成しているものです。
$this->thisOrderProduct //having an array for current cart products.
$calculationClass = new CalculationCommon( $this->thisOrderProduct );
echo $calculationClass::calculateGlobalTaxRate( );
別のクラスでこのクラスの関数にアクセスしているときにエラーが発生しました。ベスト プラクティスまたは経験則を教えてください。
前もって感謝します、ナディーム