Membuat driver part 2

sebelum lanjut.. mundur dulu ke part 1. pada part 1 kita membuat library yang menjadi fondasi dasar dari driver yang akan kita buat

seuai sebutannya fondasi dasar. Artinya perintah dasar ada disini. Misalnya saya membahas tentang hasil keluaran datatable di CI. Kita mulai dari merancang apa yang akan dibangun. Pertama kita bahas masalah penamaan.

Pada tutorial saya memakai nama “Advanceku” .. ini adalah nama dasar  yang boleh dirubah. Masalah penamaan.. mungkin akan lebih tepat kalau kita asumsikan ini adalah perusahaan atau pabrik Mie. Pabrik mie namanya supermie, memiliki 4 divisi yaitu gudang, proses, pengiriman dan lain-lain. (contoh aja).

disini kita bisa buat nama drivernya adalah “supermie”. lalu targetnya bisa gudang, proses, pengiriman dan lain-lain. saya rasa proses kita ganti hrd saja. dan setiap bagian punya metode masing2 yang namanya sama tetapi prosesnya beda. Misal masuk_kerja.

Bagian gudang masuk kerja harus pagi jam 8. bagian HRD bisa jam 8 (lho sama aja donk).. yah anggap aja bisa jam 9 gitu.

OKe kita lanjut ke studi kasus

pada  proses terakhir kita dapat memakai driver core langsung. Kita juga bisa memasukkan parameter layaknya fungsi. sebelumnya saya akan jelaskan penulisan berikut

$this->{$core}->{$function}();

bagi beberapa orang akan kesulitan baca coding demikian. Saya maklum!! kalau melihatnya seperti ini

mungkin lebih enak..apalagi kl ngoding matanya sudah lelah!

saya tidak akan melanjutkan ke masalah penulisan. Tetapi kita langsung masuk ke arah penggunaan driver.

Driver

saya akan memulai dengan menulis

$this->{$core}->{$driver}->{$function}($row);

atau

$this->advanceku->register->test();

yang menghasilkan

Invalid driver requested: Advanceku_register

ada error lain tapi fokus pada peringatan berikut saja


faktanya dari penggunaan driver adalah.. kamu harus memanggil corenya dahulu baru drivernya. walau dalam ci dianggap ini satu kesatuan! dan sekedar reminder!! ini memakai CI 3 yang konsep drivernya agak berbeda penulisannya !? lebih tepat confignya.

sebelum masuk ke penggunaan driver sebenarnya. Mari kita membuat fungsi sendiri yang bisa counter error di atas! dan untuk mempersingkat.. berikut coding yang akan dijalankan.

silakan di lihat dari pastebin saja

atau

lengkapnya

dari step berikutnya.. saya akan berikan fungsi yang semoga bisa bantu memahami alurnya. perhatikan fungsi run_driver dibawah!! ini fungsi memasukkan perintah log_add( )!!
perintah ini ada pada tutorial saya lainnya yang diangkat pada telegram php indonesia. di paste bin dalam keadaan ‘comment’. Tapi bila ingin memakai.. ubah menjadi bentuk
log_message('debug', 'pesan');
saat dijalankan.. berikut tampilan yang didapat

buatlah confignya di:C:\php_folder\php\application\config/driver_gw.php

ini adalah perintah untuk membuat file confignya.. mari kita ikuti stepnya

CONFIG

tambahkan file pada posisi yang sudah ditentukan. Pada fungsi run_driver dapat diganti nama confignya. tetapi dalam pelajaran ini biarlah namanya tetap driver_gw sampai anda selesai

berikan isinya sebagai berikut

<?php
//driver_gw
$config['hello']  = array('hello');

tolong di ketik manual jangan di copas dari sini!

jalankan dan kita dapatkan

buatlah array confignya $config[‘drivers_advanceku’]=array();

ikuti sesuai permintaan.. tambahkan di config yang barusan dibuat perintah di atas. kemudian jalankan kembali. kita dapatkan

buatlah nilai ‘register’ pada array confignya $config[‘drivers_advanceku’]=array(‘register’);

pada akhirnya kita akan mendapatkan tampilan sebagai berikut untuk config

mari jalankan lagi dan kita dapatkan

buatlah file drivernya di: C:\php_folder\php\application\libraries/Advanceku/drivers/Advanceku_register.php

agak nyebelin ya? namun ini harus dikerjakan. Berikutnya file drivernya

Driver CORE

kita balik ke core dahulu C:\php_folder\php\application\libraries/Advanceku/Advanceku.php
input perintah berikut

construct ini berfungsi load parameter penting yang digunakan untuk driver memanggil subnya. seperti deklarasi sub dari driver ini apa saja. silakan ketik manual agar mudah di ingat. lebih baik anda ketik dari gambar (walau susah) tetapi mudah di ingat.. daripada saya beri ketikan langsung .


Driver Sub

adalah bagian dari drivernya. Saya lebih suka menyebutkan … ini adalah file driver sebenarnya. yang diatasnya adalah core (kendali utamanya). Kita cukup membuat seperti berikut

ini adalah inti dari coding!! buatlah seperti format berikut

line 1 optional.. karena hanya untuk keperluan agar file tidak di akses dari luar CI

kemudian jalankan dan kita dapatkan

buatlah fungsi {$func_name} pada file drivernya di:C:\php_folder\php\application\libraries/Advanceku/drivers/Advanceku_register.php

atau

buatlah fungsi test(params) pada file drivernya di:C:\php_folder\php\application\libraries/Advanceku/drivers/Advanceku_register.php

artinya kita memerlukan fungsi test nya dan pastikan bentuknya sebagai berikut

dan selamat.. anda berhasil membuat driver!! karena sudah keluar seperti yang kita inginkan.. Hello world dari dalam driver

Masukan

mungkin ini adalah masukan dari saya yang sudah lama main coding.

  1. menulis langsung seperti ini
    $this->advanceku->register->run($params);
    lebih efisien daripada harus memakai metode yang saya tunjukkan di atas
  2. pembuatan fungsi yang memusingkan (run_driver) lebih kepada bagaimana caranya agar lebih efektif dan aman. bisa saja kita ngantuk (baca part 1) dan salah ketik!
  3. run_driver akan lebih baik digunakan di area development! bukan area production.
  4. saya merasa pemakaian fungsi tersebut menambah waktu akses sekitar beberapa milidetik! namun anggap aja yg akses ribuan.. itu jadi detik khan!
  5. untuk fungsi dalam driver disarankan memanfaatkan 1 parameter saja! jadi setidaknya menghindari pengetikan
    fungsi(param1, param2.. )
  6. 1 parameter ini berisi array dari nama parameter yang akan dikirim. Jadi ada metode pengiriman
    $param = array(‘nama’=>value);
  7. didalam fungsi driver, ada peletakan variabel sesuai parameternya
    $nama_var  = $params[$nama_var];
  8. untuk penulisan yang baik disarankan
    $nama_var  = isset($params[$nama_var])?$params[$nama_var]:false;
  9. setiap proses harus mengalami pengembalian data . disarankan dimasukkan ke variabel $result;
  10. bila ingin melihat hasil. disarankan memakai log_message(). Jangan lupa di config.php lognya dibuka sesuai kebutuhan.
    perintah dasar :
    log_message(‘info’,’pesan’);
  11. log dapat di lihat di application/logs

Sekian.. apabila ada kesulitan dalam pembuatan driver. silakan bertanya.. saya berharap ini bisa jadi pegangan awal sebelum membuat driver yang lebih rumit.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s