2014-09-04 3 views
1

이것이 최고의 제목인지 나는 모른다. 내가 틀렸다면 나를 바로 잡아라. 이제 내가 묻고있는 것을 설명해주십시오.Cakephp 3.x 제 3 자와의 셋업 방법은?

우리는 여러 공급 업체가 판매하는 제품을 공급하는 회사가 있습니다. 이 공급 업체들은 모두 서로 다른 POS (Point of Sale) 시스템을 가지고 있습니다. 아마 약 5 개의 다른 POS 시스템이 있습니다. 즉, 데이터베이스 테이블 각각은 각 POS 시스템마다 다 (니다. POS에서 데이터베이스에 저장된 데이터를 동기화합니다. 그래서, 우리가 우리의 cakephp 애플리케이션에서하려고하는 것은 객체 인터페이스를 생성 한 다음 데이터를 가져 와서 중앙화하기위한 인터페이스를 구현하는 별도의 클래스 (각 POS에 대해)를 생성하는 것입니다. 나는이 클래스들을 Vendor 디렉토리에 놓고 config를 사용하여 내 애플리케이션에서 사용할 모델을 알려줌으로써 이것을 수행하려고 생각했다. 이 방법에 대해 갈 방법이 아니면 MVC 패턴을 깰합니까 ???

편집 : 내가 함께해야하는 것에 대해 더 자세히 설명하겠습니다. 현재 우리가 주로 작업하고있는 5 가지 POS 시스템 중 2 가지가 있습니다. 자신의 데이터베이스와 동기화 한 후 지금 데이터베이스에 다음 표가 있습니다.

[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' 
    ] 
]; 

답변

1

일반적으로 공급 업체는 "타사 제품"이므로 외부 타사 라이브러리를 사용하지 않는 앱을 ​​만들려고합니다. 따라서 앱의 일부가 될 것입니다.

이 새로운 libs를 App/Lib 또는 App/Pos에 넣은 다음 팩터 리 패턴을 구현하고 모두 공통으로 사용할 수있는 제네릭 메서드를 구현하는 추상 클래스를 구현합니다.

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

편집 :

당신이 통합 된 구조에 POS 데이터를 설정합니다 단지 배열 변환이 기본적으로 필요한 것은. CakePHP 3.0에서는이 작업을 수행하는 몇 가지 방법이 있다고 생각합니다. 어쩌면 데코레이터 (아직 사용하지 않았 음), 사용자 정의 엔티티 객체 또는 꽤 고전적인 동작 일 수 있습니다.

CakePHP 3.0이 제공하는 것 외에는 사용자 정의 클래스가 필요하다고 생각하지 않습니다. 데이터 구조 만 변형하면됩니다.

+0

내가 작업중인 cakephp 버전을 반영하도록 제목을 편집했습니다. – chrisShick

+0

또한 POS 시스템에 대한 자세한 내용을 제공했습니다. – chrisShick

+0

나는 내 대답을 업데이트했다. 그 작업은 매우 쉽다. 원하는 것은 데이터 구조를 표준화하는 것이다. – burzum