簡體   English   中英

Cakephp 3.x如何與第三方建立關系?

[英]Cakephp 3.x How to set up with 3rd parties?

我不知道這是不是最好的標題。 伙計們,如果我錯了,請糾正我。 現在解釋一下我要問的問題。

我們有一家公司將由多家供應商出售的產品發貨。 這些供應商都有不同的POS(銷售點)系統。 大概有5種不同的POS系統。 這意味着每個POS系統的每個數據庫表都不同。 我們與他們的數據庫同步,那里POS將數據存儲到我們的服務器。 因此,我要在cakephp應用程序中嘗試做的是創建一個對象接口,然后創建單獨的類(針對每個POS),以實現該接口以提取數據並將其集中化。 我正在考慮通過將這些類放置在Vendor目錄中,然后使用配置告訴它在我的應用程序中使用哪些模型來做到這一點。 這是解決問題的方法,還是打破了MVC模式???

編輯:我將詳細解釋我必須使用的內容。 目前,我們主要使用5個POS系統中的兩個。 與他們的數據庫同步后,我的數據庫中現在有以下表。

[POS1] => [
   customers=>[
      'id', 'FIRSTNAME', 'LASTNAME'
   ],
   products=>[
      'id', 'TYPE', 'TITLE', 'PRICE'
   ],
   'orders'=>[
       'id', 'PRODUCT_ID' 
    ],
    'transactions'=>[
       'id', 'ORDER_ID', 'CUSTOMER_ID'
     ]
];
[POS2] => [
   customers=>[
      'id', 'name'
   ],
   products=>[
      'id', 'price'
  ],
  transactions=>[
       'id', 'order_id', 'customer_id'
     ]
];

供應商通常是“第三方材料”,您想為您的應用程序構建一些東西,而不是真正使用外部第三方庫。 因此它將成為您應用程序的一部分。

我將這些新庫放在App / Lib或App / Pos中,然后實現一個工廠模式和一個抽象類,這些類實現它們將共同擁有的通用方法。

use App/Pos/PosSystem;
/* ... */
$Pos = PosSystem::get('SomeName');
$Pos->save($data);
$Pos->read('...');

編輯:

您基本上只需要進行數組轉換即可將POS數據轉換為統一結構。 我認為使用CakePHP 3.0可以通過多種方法完成此任務。 也許是一個裝飾器(我自己還沒有使用過它們),一個自定義實體對象或一個非常經典的行為。

我認為您不需要CakePHP 3.0已經提供的任何自定義類。 您只需要轉換數據結構。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM