app/Plugin/SlnPayment42/Service/SlnAction/Content/Basic.php line 37

Open in your IDE?
  1. <?php
  2. namespace Plugin\SlnPayment42\Service\SlnAction\Content;
  3. use Plugin\SlnPayment42\Service\SlnContent\Basic as contentBasic;
  4. abstract class Basic implements \ArrayAccess
  5. {
  6.     
  7.     /**
  8.      * @var contentBasic
  9.      */
  10.     protected $content;
  11.     
  12.     abstract function getOperatePrefix();
  13.     
  14.     abstract function setContent(contentBasic $content);
  15.     
  16.     abstract function getContent();
  17.     
  18.     abstract function getDataKey();
  19.     
  20.     public function __construct($content
  21.     {
  22.         $this->setContent($content);
  23.     }
  24.     
  25.     public function offsetExists($offset)
  26.     {
  27.         if(!array_key_exists($offset$this->getDataKey())) {
  28.             return false;
  29.         }
  30.         $method $offset;
  31.         return method_exists($this->content"get$method") || method_exists($this->content"is$method");
  32.     }
  33.     
  34.     public function offsetSet($offset$value)
  35.     {
  36.         if(!array_key_exists($offset$this->getDataKey())) {
  37.             return ;
  38.         }
  39.         
  40.         $method $offset;
  41.     
  42.         if (method_exists($this->content"set$method")) {
  43.             $this->content->{"set$method"}($value);
  44.         }
  45.     }
  46.     
  47.     protected function changeData($key$value)
  48.     {
  49.         switch ($key) {
  50.             case 'NameKanji':
  51.                 // ユーザ漢字氏名
  52.                 return mb_substr(mb_convert_kana($value'KVSA''UTF-8'),0,20);
  53.             case 'NameKana':
  54.                 // ユーザカナ氏名
  55.                 return mb_substr(mb_convert_kana($value'KVSA''UTF-8'),0,20);;
  56.             case 'PayLimit':    // 支払期限
  57.                 return date("YmdHi"strtotime("+7 day"));
  58.             case 'ShouhinName':    // 商品名
  59.                 return mb_substr(mb_convert_kana($value'KVSA''UTF-8'),0,16);
  60.             case 'KanaSei':
  61.             case 'KanaMei':
  62.                 return mb_convert_kana($value'kha''UTF-8');
  63.             case 'Free1':
  64.             case 'Free2':
  65.             case 'Free3':
  66.             case 'Free4':
  67.             case 'Free5':
  68.             case 'Free6':
  69.             case 'Free7':
  70.             case 'Comment':
  71.             case 'Free8':
  72.             case 'Free9':
  73.             case 'Free10':
  74.             case 'Free11':
  75.             case 'Free12':
  76.             case 'Free13':
  77.             case 'Free14':
  78.             case 'Free15':
  79.             case 'Free16':
  80.                 return mb_convert_kana($value'ASK''UTF-8');
  81.                 // あとは変数名中にあればそのまま使う
  82.             default:
  83.                 return $value;
  84.         }
  85.     }
  86.     
  87.     public function offsetGet($offset)
  88.     {
  89.     
  90.         if(!array_key_exists($offset$this->getDataKey())) {
  91.             throw new \Exception("not get data");
  92.         }
  93.     
  94.         $method $offset;
  95.     
  96.         if (method_exists($this->content"get$method")) {
  97.             return $this->content->{"get$method"}();
  98.         }
  99.     }
  100.     
  101.     public function offsetUnset($offset)
  102.     {
  103.     }
  104.     
  105.     public function newOperateId()
  106.     {
  107.         $lastName explode('\\'get_class($this));
  108.         return $this->getOperatePrefix() . array_pop($lastName);
  109.     }
  110.     
  111.     public function getPostData()
  112.     {
  113.         $reData = array();
  114.         if(!$this->content->getOperateId()) {
  115.             $this->content->setOperateId($this->newOperateId());
  116.         }
  117.         foreach ($this->getDataKey() as $key => $value) {
  118.             $value $this->changeData($key$this->content[$key]);
  119.             if (!is_null($value) && strlen($value)) {
  120.                 $reData[$key] = $value;
  121.             }
  122.         }
  123.         
  124.         return $reData;
  125.     }
  126. }