Mengubah Page-Base App Ke MVC Dengan PHP

 

Saat ini saya sedang mengerjakan project untuk menggubah aplikasi dari bahasa PHP 5 ke PHP 7.

Namun kendala terbesarnya adalah aplikasi versi jadul ini masih menggunakan struktur per halaman. Bukan MVC. 

Wacana untuk mengubah aplikasi jadul ini ke dalam versi MVC sudah ada sejak pertama kali saya melihat susunan source-code nya. Namun saat itu saya menganggap ini semua merupakan hal yang sulit dan tak mungkin bisa saya pecahkan

Sehingga saya memutuskan untuk lebih baik memperbaiki setiap error yang bermunculan

Penyebab errornya beragam. Mulai dari constant yang tak terhubung, built-in function yang sudah kadar luarsa, dan variabel yang tak dideklerasikan secara global

Satu persatu bisa saya atasi dengan segala cara. Dan aplikasi berjalan sebagaimana seharusnya


 

Sewaktu saya kumpulkan ke client. Ternyata, client saya kecewa karena ternyata source code tersebut masih dengan struktur yang perisi sama. Saya malu. Dan saya akhirnya berubah pikiran untuk menggubah aplikasi ini ke struktur lain, yaitu MVC

Mungkin keputusan itu seakan akan didasari sekedar aplikasi saya terlihat berbeda. Namun, percayalah ketika saya sedikit demi sedikit mengubahnya menjadi MVC. Ternyata berhasil, meskipun saya juga masih bingung bagaimana menyesuaikan mana dulu yang saya atur. Apakah index halaman pertama, atau koneksi ke database

Entahlah. Yang pasti disini saya akan memberikan tips bagaimana jika kalian menghadapi aplikasi dengan struktur jadul seperti diatas

Apa Itu Page-Based App?

Page based application uses pageViewController that switches pages while swiping just like turn pages of a book. single view application creates a single view controller and its view

Adalah aplikasi yang menggunakan controller halaman perview untuk mengubah halaman layaknya buku, yang mana setiap aplikasi view menciptakan sebuah controller baru dan tampilannya

Apa Itu MVC?

Model–view–controller is a software design pattern commonly used for developing user interfaces that divides the related program logic into three interconnected elements. This is done to separate internal representations of information from the ways information is presented to and accepted from the user


Langkah pertama untuk mengubahnya adalah dengan menyusun struktur aplikasi pada folder kita. Dimulai dari app dan public

app berisi  folder core, views, controllers, dan models. Sedangkan public berisi folder img, css, js, dan file index.php

Sedangkan aplikasi dengan page based memiliki struktur folde yang lebih kompleks



Lalu bagaimana cara saya mengubah aplikasi dari MVC ke Page Based App yangs seribet itu?

Caranya adalah dengan membagi antara views dan model.

Sedangkan controller saya khususkan hanya menangani model dan view. Dan tak menangani apapun

Segala function yang berada dala kumpulan class pada struktur aplikasi jadul tersebut akan saya distribusikan menjadi Object pada struktur MVC. Dengan cara menjadikan setiap functionnya adalah file, dan berisi class dan beberapa method

Pasti ada error yang mendera saya selama saya menerjemahkan struktur file ini. Biasanya error berupa built-in function yang sudah kadal luarsa, dan beberapa file yang tak terkoneksi satu sama lain

Built-in function yang sudah kadal luarsa akan saya carikan alternatifnya di internet (jika ada) atau membiarkannya kosong dulu sementara waktu

Tak hanya itu, error berupa constant  yang tak terbaca. Bisa built-in function atau constant yang kita definisikan sendiri pun ada beberapa yang tak terbaca. 

Aplikasi jadul dengan basis Page Based, memiliki file tersendiri dan mengkoneksikannya kepada beberapa file yang membutuhkan dengan requirce_once. Namun hal tersebut ada yang tak berjalan sebagaimana mestinya sehingga saya harus mendefinisikannya kembali pada file tersebut

Contoh file class pada aplikasi Page Based yang berada dalam file common_class.php

 

common_class.php memiliki beberapa class di dalamnya. Termasuk messageStack, toolbar dan lain sebagainya

Lalu saya ubah setiap classnya menjdi beberapa file terpisah dalam folder model

 


Yang selanjutnya file file ini akan menjadi model komunikasi data yang diproses melalui controller. 

Kesimpulan

Segala hal yang saya lakukan dalam proses ini masih mengalami trial and error. Namun, dengan cara ini setidaknya berhasil menyelesaikan beberapa hal seperti, menujukkan tampilan web dengan BASEURL

Kalian bisa melihat sourcecode project tersebut yang mana saat ini sedang saya kerjakan

https://github.com/yasyaindra/phreebooks-but-php8

Comments

Video Baru!