Skip to main content

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

Popular posts from this blog

Cara Mengatasi Missing Value Pada Dataset

  Ketika kita ingin mengolah data untuk menjadi sebua model machine learning, maka data yang harus disajikan harus bersih dari field field kosong. Biasanya kita akan menjumpai filed field bernilai NaN yang artinya field tersebut kosong atau tak diketahui. Ini sangat berpengaruh hasil model data kita Inilah yang disebut Missing Value. Nilai yang hilang dari beberapa baris dataset Cara Mengetahui Bahwa Dataset Kita Terdapat Missing Value? Cara termudah adalah dengan menggunakan method method yang tersedia oleh package Pandas Dengan Pandas, tak hanya kita bisa mengetahui dataset terdapat Missing Value atau tidak, kita bisa mencari mean, median dan modus, mengisikan data data yang kosong tersebut, dan melihat hasil data tersebut dari beberapa range tertentu Pandas juga bisa membantu kita untuk memeriksa apakah dataset kita memiliki data yang kosong. Tak mungkinkan kita melihat satu persatu ratusan atau ribuan data. Maka dari itu kita membutuhkan method yang dikerjakan oleh python dalam pa

Cara Mengatasi Hang/Freeze Pada Laptop Asus TUF Gaming

  Ada beberapa kendala ketika membeli laptop. Seperti ada aplikasi yang tidak kompaktibel, ada yang hardwarenya crashed, dan bahkan memang harus dibawa ke manufakturnya untuk diktukar karena ada barang yang kita beli adalah miss saat quality control Terlepas dari semua kendala tersebut. Saya akan memberikan sekedar solusi yang bisa menjadi manfaat jika permasalahan itu sama dengan kalian. Yaitu, laptop yang suka freeze, hang, saat kita operasikan Sedikit Cerita Saya belum ada setahun menggunakan laptop Asus varian Tuf Gaming ini. Namun saat beberapa minggu pertama saya mencobanya, ada beberapa kendala yaitu laptop sering hang dan freeze tanpa sebab. Ini terjadi secara tiba tiba. Dan seumpamam saya bawa lagi ke outlet laptop ini berasal, saya gak bisa memberikan alasan yang jelas kenapa laptop ini bisa freeze dan hang. Karena memang terjadi tiba tiba saja.  Hingga beberapa bulan selanjutnya, laptop ini semakin sering hang. Baru beberapa menit dipakai freeze, saya force shut down lewat t

Kupas Tuntas Seputar Agile Dan Contoh Penerapannya

  Startup, perusahaan digital, atau bahkan programmer yang sedang melayani clientnnya untuk mengerjakan sebuah aplikasi memiliki metode.  Metode ini menjadi panduan baku yang kerap digunakan dimananpun dalam pengemabangan produk digital Lebih mudahnya saat kita membangun aplikasi mobile. Kita akan mempelajari bahasa pemograman apa saja yang dibutuhkan, juga serba serbi framework dan tool yang memudahkan segala prosesnya Metode yang baru saja saya ceritakan diatas dinamakan Agile . Sedangkan project yang menerapkan konsep tersebut dinamakan, Agile Project Apa Itu Agile dan Agile Project? Menurut Wikipedia .  Sekumpulan praktek yang bertujuan untuk menaikkan keefeketifan pengembangan suatu aplikasi secara profesional, tim dan terorganisir. Agile melibatkan pengembangan solusi melalui usaha secara kolaboratif dari sifat yang sudah terorganisir, fungsionalitas dan pelanggan Metode ini sangat mengandalkan kolaborasi. Mulai dari para engineer hingga product manager, semuanya harus melalui s