yii2

[Yii2] Perbandingan Kecepatan Cache

[Yii2] Perbandingan Kecepatan Cache

Sebagian besar pengembang website cenderung mengabaikan caching tanpa menyadari bahwa hal itu dapat merugikan aplikasi mereka. Penundaan satu detik dalam waktu akses dapat berarti Anda kehilangan pelanggan atau pengguna karena pesaing. Yii2 mendukung caching dalam berbagai metode. Mendukung caching fragmen, caching data, caching halaman dan konten dinamis. Komponen penyimpanan cache dapat ditukar tanpa harus mengubah kode yang menggunakan cache. Dalam artikel ini, kita akan membuat perbandingan kecepatan cache dalam beberapa metode. Tanpa menggunakan cacheFileCacheDbCacheRedis Langkah-langkah membuat perbandingan kecepatan cache pada yii2 Menyiapkan tabel dengan menggunakan MySQL CREATE TABLE `test_cache` ( `id` INTEGER(11) NOT NULL AUTO_INCREMENT, `data` VARCHAR(20) COLLATE utf8mb4_general_ci DEFAULT NULL, PRIMARY KEY USING BTREE (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=1 ROW_FORMAT=DYNAMIC CHARACTER SET 'utf8mb4' COLLATE 'utf8mb4_general_ci'; Buat tabel sederhana dengan kolom id dan data. Setelah itu buat record untuk tabel tersebut. Dalam ujicoba kali ini, kita menambahkan kolom data dengan random karakter dengan 20 buah karakter. Jumlah baris yang kita buat sebanyak 10.000 baris. Buat model dari tabel tersebut, misal dengan nama "Testcache".Buat Controller untuk menampilkan respon, misal dengan nama "TestcacheController" "TestcacheController" tanpa cache public function actionIndex() { $data=TestCache::find()->all(); Yii::$app->response->format =...

Dashboard Aplikasi Real Time dengan Yii2, Node.js, MySQL dan Chart.js

Dashboard Aplikasi Real Time dengan Yii2, Node.js, MySQL dan Chart.js

Dalam artikel ini kita akan membuat sebuah dashboard yang bisa menampilkan grafik dari data secara real time. Data yang kita gunakan sebagai simulasi adalah populasi penduduk suatu kota. Jika kita melakukan update data penduduk, menambahkan atau menghapus, tampilan grafik akan berubah secara real time tanpa perlu melakukan refresh dari halaman. Sebelum kita memulai, kita perlu mempersiapkan: Webserver sudah terpasang, lihat Cara Konfigurasi Virtual Host XAMPP di Windows 10.Yii2 sudah terpasang, lihat Cara Install Yii2 Advanced via Composer.Node.js sudah terpasang, lihat Membuat aplikasi real time dengan Node.js.Chart.js. Langkah-Langkah Membuat Dashboard Aplikasi Real Time dengan Yii2, Node.js, MySQL dan Chart.js A. Membuat tabel dengan MySQL Buat tabel dengan nama "city", dan kolom dengan nama "id" dan "population". Atau lebih mudahnya anda dapat menjalankan script sql berikut ini CREATE TABLE `city` ( `id` CHAR(16) NOT NULL PRIMARY KEY, `population` INT(11) NOT NULL DEFAULT '0' ) ENGINE=InnoDB DEFAULT CHARSET=utf8; B. Membuat server Node.js Siapkan server Node.js seperti pada Membuat aplikasi real time dengan Node.js.Pada file "server.js", yang perlu kita buat adalah "API" yang akan melakukan update data pada grafik yang kita buat dengan Chart.js setelah data berhasil di simpan oleh Yii.Ketika user pertama kali membuka halaman dashboard, kita lakukan pengecekan apakah data awal untuk grafik dasboard sudah tersedia, jika belum Yii akan mengirimkan data awal tersebut....

[Yii2] Cara membuat dan menggunakan Fungsi pada Yii2

[Yii2] Cara membuat dan menggunakan Fungsi pada Yii2

Fungsi adalah blok kode yang terorganisir dan dapat digunakan kembali yang digunakan untuk melakukan satu tindakan terkait atau mencapai hasil tertentu. Dalam membuat aplikasi dengan menggunakan Yii2, sering kali kita membutuhkan sebuah fungsi untuk mempermudah dan mempercepat pembuatan aplikasi yang sedang kita buat. Nah... Sekarang bagaimana caranya agar fungsi yang kita buat tersebut dapat kita akses di View maupun Controller. Dalam artikel ini kita akan belajar cara membuat dan menggunakan fungsi pada Yii2 basic dan advanced template. Langkah-langkah membuat dan menggunakan fungsi pada Yii2 basic dan advanced template. Buat folder dengan nama "components". Untuk Yii2 basic buat folder tersebut pada root dan pada Yii2 advanced buat folder tersebut di dalam folder "common". Buat file "MyFunction.php" pada folder components tersebut, dan tulis fungsinya sebagai berikut namespace commoncomponents; //Yii2 Advanced template namespace appcomponents; //Yii2 basic template use yiibaseComponent; class MyFunction extends Component { public function hello() { ...... return "Hello, World!"; } } Pada Yii2 Advanced, edit file "common/config/main-local.php" dan tambahkan kode berikut return [ 'components' => [ ............... 'MyFunction'=>[ 'class' =>'commoncomponentsMyFunction' ], ........... ], ]; Sedangkan pada Yii2 Basic, edit file "config/web.php" dan salin kode berikut ........... $config = [ ............ 'components' => [ ............ 'MyFunction'=>[ 'class'...

[yii2] Cara membuat ekstensi baru  tanpa kontrol versi atau Git

[yii2] Cara membuat ekstensi baru tanpa kontrol versi atau Git

Menggunakan Git dalam membangun ekstensi sangat bagus. Ketika menggunakan Git, Anda harus memuat ekstensi tersebut melalui Komposer. Demikian juga ketika memperbarui atau memperbaiki kesalahan yang terjadi. Tentu saja hal ini akan merepotkan, ketika ekstensi yang di buat masih dalam tahap pengembangan. Untuk menghindari hal ini, kita bisa menggunakan komposer secara local tanpa kontrol versi atau Git. Sehingga setiap perubahan kode yang di buat dapat langsung berfungsi tanpa perlu update dan mengkomit perubahan melalui komposer atau git. Berikut langkah-langkah untuk melakukannya: 1. Generate Ekstensi via Gii Hal pertama yang harus and lakukan adalah membuat template ekstensi dari gii, bisa anda buka "http://hostname/index.php?r=gii". Kemudian pilih "Extension Generator". Setelah itu lengkapi isian form sesuai dengan ekstensi yang anda buat. Hal terpenting dalam isian adalah "output path", bisa anda isi dengan "@vendorbardimin" jika anda membuat ekstensinya pada direktori vendorbardimin. Setelah itu pilih "Generate" untuk membuat file-file ekstensi. Selanjut buka direktori "vendorbardiminyii2-myextension" jika anda mengisi form diatas seperti contoh. Terbentuk 3 buah file dengan nama AutoloadExample.php, composer.json, dan README.md. 2. Edit Composer.json Kemudian buka file composer.json dari ekstensi yang telah dibuat tadi dan tambahkan "minimum-stability": "dev", 3. Edit Yii2 Composer.json Setelah itu, kembali ke root direktori instalasi yii2 dan buka file composer.json...

[yii2] Cara mudah encrypt / decrypt parameter URL

[yii2] Cara mudah encrypt / decrypt parameter URL

Jika anda ingin mengenkripsi parameter url seperti ini: https://frontend.bardimin/country/view?id=1 menjadi seperti ini: https://frontend.bardimin/country/view?MN13pDvH/4+94LNY/NXJiDM4YTMwZjc5ZjRmMzA0Y2RjMDRmMjUyYmI5M2Q4MmE2ZDE4ODNkOTdkNzc1MGI3Yzg5OTE4NzVlMzBlMjZmNzkXVSsTf7d1y5a26LK8IcsggrWQi+hW4b0xIFKnIZowSTXZVxu+t2lGyx/skNKFo6g= Anda dapat melakukannya dengan mudah di yii2. Berikut langkah-langkah untuk melakukan encript/decript pada parameter URL seperti contoh di atas: 1. Membuat class UrlRule Langkah pertama yang harus Anda lakukan adalah membuat file UrlRule.php pada direktori "common/helpers" jika menggunakan yii2 advanced atau direktori "helpers" jika menggunakan yii2 basic. Kemudian copy/paste kode berikut ini: <?php namespace common\helpers; use yii; class UrlRule implements yii\web\UrlRuleInterface { public $jklKey = '-YD07LTTJdSVB6oThcC7l60KeZTUXcNA'; //change if necessary public function createUrl($manager, $route, $params) { if ($params!==null) { $paramString = serialize($params); $paramStringEncoded = $paramString ? base64_encode(Yii::$app->security->encryptByKey($paramString,$this->jklKey,null)) : ''; } return empty($params) ? $route : $route . '?' . $paramStringEncoded; } public function parseRequest($manager, $request) { $pathInfo = $request->getPathInfo(); $queryString=$request->getQueryString(); if(!empty($queryString)) { $params=unserialize(Yii::$app->security->decryptByKey(base64_decode($queryString),$this->jklKey,null)); foreach...