Arsitektur
ArsitekturAgnostisisme CMS

Agnostisisme CMS

Server GraphQL yang mendasari Gato GraphQL bersifat agnostik terhadap CMS, sehingga dapat bekerja dengan CMS atau framework PHP apa pun (tidak hanya WordPress, tetapi juga Laravel dan Symfony).

Untuk mencapai sifat agnostik terhadap CMS ini, semua fungsionalitas yang harus berinteraksi dengan CMS dibagi menjadi 2 paket terpisah:

  • Paket agnostik CMS, yang berisi semua kode bisnis dan kontrak untuk berinteraksi dengan CMS yang mengimplementasikannya, apa pun itu (mis: posts)
  • Paket spesifik CMS, yang berisi implementasi kontrak untuk CMS tertentu (mis: posts-wp, yang mengimplementasikan kontrak untuk WordPress)

Dengan demikian, sebagian besar kode (sekitar 90%) berada dalam paket agnostik CMS. Untuk memindahkan API ke CMS yang berbeda (mis: dari WordPress ke Laravel), hanya paket spesifik CMS yang perlu diimplementasikan (mewakili sekitar 10% dari keseluruhan kode).

Meminimalkan jumlah kode yang harus diimplementasikan ulang, dan menghindari duplikasi kode antar paket, merupakan pendorong utama yang menentukan bagaimana kode dibagi ke dalam paket-paket.

Next