Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
CreateCaseBuilder.php
Go to the documentation of this file.
1 <?php
7 
8 use Magento\Sales\Model\OrderFactory;
9 
17 {
21  private $orderFactory;
22 
26  private $purchaseBuilder;
27 
31  private $cardBuilder;
32 
36  private $recipientBuilder;
37 
41  private $sellerBuilder;
42 
46  private $clientVersionBuilder;
47 
51  private $userAccountBuilder;
52 
62  public function __construct(
63  OrderFactory $orderFactory,
64  PurchaseBuilder $purchaseBuilder,
65  CardBuilder $cardBuilder,
66  RecipientBuilder $recipientBuilder,
67  SellerBuilder $sellerBuilder,
68  ClientVersionBuilder $clientVersionBuilder,
69  UserAccountBuilder $userAccountBuilder
70  ) {
71  $this->orderFactory = $orderFactory;
72  $this->purchaseBuilder = $purchaseBuilder;
73  $this->cardBuilder = $cardBuilder;
74  $this->recipientBuilder = $recipientBuilder;
75  $this->sellerBuilder = $sellerBuilder;
76  $this->clientVersionBuilder = $clientVersionBuilder;
77  $this->userAccountBuilder = $userAccountBuilder;
78  }
79 
83  public function build($orderId)
84  {
85  /* @var $order \Magento\Sales\Model\Order */
86  $order = $this->orderFactory->create()->load($orderId);
87 
88  return $this->removeEmptyValues(
89  array_merge(
90  $this->purchaseBuilder->build($order),
91  $this->cardBuilder->build($order),
92  $this->recipientBuilder->build($order),
93  $this->userAccountBuilder->build($order),
94  $this->sellerBuilder->build($order),
95  $this->clientVersionBuilder->build()
96  )
97  );
98  }
99 
106  private function removeEmptyValues($data)
107  {
108  foreach ($data as $key => $value) {
109  if (is_array($value)) {
110  $data[$key] = $this->removeEmptyValues($data[$key]);
111  }
112 
113  if ($this->isEmpty($data[$key])) {
114  unset($data[$key]);
115  }
116  }
117 
118  return $data;
119  }
120 
127  private function isEmpty($value)
128  {
129  return $value === null || (is_array($value) && empty($value));
130  }
131 }
__construct(OrderFactory $orderFactory, PurchaseBuilder $purchaseBuilder, CardBuilder $cardBuilder, RecipientBuilder $recipientBuilder, SellerBuilder $sellerBuilder, ClientVersionBuilder $clientVersionBuilder, UserAccountBuilder $userAccountBuilder)
$order
Definition: order.php:55
$value
Definition: gender.phtml:16