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
Comments
Post a Comment