Commit 32696c91 authored by 王源's avatar 王源 🎧

[功能]添加shopify集合相关类文件

parent 0c883be6
...@@ -8,7 +8,13 @@ ...@@ -8,7 +8,13 @@
namespace Meibuyu\Micro\Shopify; namespace Meibuyu\Micro\Shopify;
use Exception;
use Meibuyu\Micro\Shopify\lib\AbstractShopify; use Meibuyu\Micro\Shopify\lib\AbstractShopify;
use Meibuyu\Micro\Shopify\lib\Collect;
use Meibuyu\Micro\Shopify\lib\Collection;
use Meibuyu\Micro\Shopify\lib\CustomCollection;
use Meibuyu\Micro\Shopify\lib\Metafield;
use Meibuyu\Micro\Shopify\lib\SmartCollection;
use Meibuyu\Micro\Shopify\lib\Webhook; use Meibuyu\Micro\Shopify\lib\Webhook;
/** /**
...@@ -16,20 +22,46 @@ use Meibuyu\Micro\Shopify\lib\Webhook; ...@@ -16,20 +22,46 @@ use Meibuyu\Micro\Shopify\lib\Webhook;
* @package Meibuyu\Shopify * @package Meibuyu\Shopify
* *
* @property-read Webhook $Webhook * @property-read Webhook $Webhook
* @property-read Collect $Collect
* @property-read Collection $Collection
* @property-read CustomCollection $CustomCollection
* @property-read SmartCollection $SmartCollection
* @property-read Metafield $Metafield
*
* @method Webhook Webhook(integer $id = null)
* @method Collection Collection(integer $id = null)
* @method CustomCollection CustomCollection(integer $id = null)
* @method SmartCollection SmartCollection(integer $id = null)
* @method Metafield Metafield(integer $id = null)
*
*/ */
class ShopifyApp class ShopifyApp
{ {
protected $resources = [ protected $resources = [
'Webhook', 'Webhook',
'Collect',
'Collection',
'CustomCollection',
'SmartCollection',
'Metafield',
]; ];
protected $childResources = array(
'Fulfillment' => 'Order',
'FulfillmentEvent' => 'Fulfillment',
'OrderRisk' => 'Order',
'ProductImage' => 'Product',
'ProductVariant' => 'Product',
'DiscountCode' => 'PriceRule',
'Refund' => 'Order',
'Transaction' => 'Order',
);
public $config = []; public $config = [];
public $defaultApiVersion = '2020-07'; public $defaultApiVersion = '2020-07';
public $timeAllowedForEachApiCall = .5;
/** /**
* ShopifyApp constructor. * ShopifyApp constructor.
* @param array $config * @param array $config
...@@ -51,15 +83,34 @@ class ShopifyApp ...@@ -51,15 +83,34 @@ class ShopifyApp
* 返回AbstractShopify实例 * 返回AbstractShopify实例
* @param string $className 实现的类名 * @param string $className 实现的类名
* @return AbstractShopify * @return AbstractShopify
* @throws \Exception * @throws Exception
*/ */
public function __get($className) public function __get($className)
{
return $this->$className();
}
/**
* 返回AbstractShopify实例
* @param string $className 实现的类名
* @param $arguments
* @return AbstractShopify
* @throws Exception
*/
public function __call($className, $arguments)
{ {
if (!in_array($className, $this->resources)) { if (!in_array($className, $this->resources)) {
throw new \Exception("未知方法 $className"); if (isset($this->childResources[$className])) {
$message = "$className 是属于 {$this->childResources[$className]} 的子集, 无法直接访问";
} else {
$message = "未知类 $className";
}
throw new Exception($message);
} }
$resourceID = !empty($arguments) ? $arguments[0] : null;
$resourceClassName = __NAMESPACE__ . "\\lib\\$className"; $resourceClassName = __NAMESPACE__ . "\\lib\\$className";
return new $resourceClassName($this->config); return new $resourceClassName($this->config, $resourceID);
} }
public function setApiUrl() public function setApiUrl()
......
This diff is collapsed.
<?php
/**
* Created by PhpStorm.
* User: Zero
* Date: 2020/8/24
* Time: 16:50
*/
namespace Meibuyu\Micro\Shopify\lib;
class Collect extends AbstractShopify
{
protected $resourceKey = 'collect';
}
<?php
/**
* Created by PhpStorm.
* User: Zero
* Date: 2020/8/24
* Time: 16:50
*/
namespace Meibuyu\Micro\Shopify\lib;
/**
* Class Collection
* @package Meibuyu\Micro\Shopify\lib
*
* @property-read Metafield $Metafield
*
* @method Metafield Metafield(integer $id = null)
*/
class Collection extends AbstractShopify
{
protected $resourceKey = 'collection';
protected $childResource = [
'Metafield',
];
}
<?php
/**
* Created by PhpStorm.
* User: Zero
* Date: 2020/8/22
* Time: 16:14
*/
namespace Meibuyu\Micro\Shopify\lib;
/**
* Class CustomCollection
* @package Meibuyu\Micro\Shopify\lib
*
* @property-read Metafield $Metafield
*
* @method Metafield Metafield(integer $id = null)
*/
class CustomCollection extends AbstractShopify
{
protected $resourceKey = 'custom_collection';
protected $childResource = [
'Metafield',
];
}
<?php
/**
* Created by PhpStorm.
* User: Zero
* Date: 2020/8/26
* Time: 15:50
*/
namespace Meibuyu\Micro\Shopify\lib;
class Metafield extends AbstractShopify
{
protected $resourceKey = 'metafield';
}
<?php
/**
* Created by PhpStorm.
* User: Zero
* Date: 2020/8/24
* Time: 16:50
*/
namespace Meibuyu\Micro\Shopify\lib;
/**\
* Class SmartCollection
* @package Meibuyu\Micro\Shopify\lib
*
* @property-read Metafield $Metafield
*
* @method Metafield Metafield(integer $id = null)
*/
class SmartCollection extends AbstractShopify
{
protected $resourceKey = 'smart_collection';
protected $childResource = [
'Metafield',
];
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment