Archive

Posts Tagged ‘Php’

Tutorial Doctrine (Part-3-CRUD-Insert)

November 6th, 2010
Comments Off

Untuk menggunakan Doctrine, kita harus mereferensi file ./toko/config.php ke aplikasi yang akan kita buat. Kembali pada tujuan kita untuk membuat aplikasi toko sederhana, maka kita akan mencoba membuat formulir input data pelanggan.

Buka file index.php yang berada di direktori ./toko, kemudian tambahkan kode berikut di bagian bawah.


$c = $_GET['c'];
include $c.'.php';

Buat file ./toko/add_pelanggan.php, dengan isi sebagai berikut:


<?php
//Mengecek ketersediaan value di variable POST
if(!empty($_POST['Pelanggan'])){
//Membuat/Instansiasi Object Pelanggan
$pel = new Pelanggan();
//mengisi object pelanggan dengan data yang dikirim melalui variable POST
$pel->fromArray($_POST['Pelanggan']);
//menyimpan data object pelanggan ke dalam database
$pel->save();
$pesan = &quot;Data Berhasil Disimpan&quot;;
}
include(&quot;aplikasi/view_add_pelanggan.php&quot;);
?>

Kemudian buat folder ./toko/aplikasi, dan buat file ./toko/aplikasi/view_add_pelanggan.php, dengan isi:


<h2>Penambahan data Pelanggan</h2>
<br><br>
<?php if(!empty( $pesan ) ) : ?>
<?php echo $pesan ?><br>
<?php endif ?>
<form method='POST' action='index.php?c=add_pelanggan'>
Nama Pelanggan :
<input type='text' name='Pelanggan[nama_pelanggan]'/>
<input type='submit' value='Simpan'/>
</form>

Keterangan kode:

$pel= new Pelanggan();

Ini merupakan instansiasi/pembuatan objek model pelanggan yang akan digunakan untuk melakukan penyimpanan data.

$pel->fromArray($_POST['Pelanggan']);

Fungsi/method fromArray() dari sebuah model, berfungsi untuk mengisi atribut2/field sebuah model dari sebuah array yang dijadikan parameter input.

$pel->save();

method save() digunakan untuk menyimpan data ke dalam database.

<input type='text' name='Pelanggan[nama_pelanggan]'/>

Penggunaan name=’Pelanggan[nama_pelanggan]‘, bertujuan agar variable post yang di dapat dikelompokan ke dalam sebuah array $_POST['Pelanggan'].

Sampai di sini kita sudah berhasil membuat aplikasi untuk penambahan data pelanggan. Silahkan ditest, dengan url : localhost/toko/index.php?c=add_pelanggan.

Untuk tahap selanjutnya, anda dapat berlatih membuat aplikasi penambahan Produk, kategori Produk, dan Kasir.

Author: yaya Categories: PHP-Doctrine, Programming Tags: ,

Tutorial-Doctrine (Part-2-Schema)

November 3rd, 2010
Comments Off

Skema/Schema, merupakan definisi database yang akan digunakan dalam sistem yang kita kembangkan. Skema ini harus disimpan di dalam folder ./root/schema.

Untuk mempermudah dalam melakukan pemeliharaan sistem, maka skema database yang akan dibuat disimpan dan didefinisikan dalam format YAML. Adapun aturan/syntax penulisannya adalah sebagai berikut:

schema

Catatan :

  • Gunakan spasi untuk mengganti karakter TAB.
  • Tambahkan spasi setelah tanda titik dua (“:”).
  • Penamaan identifier hanya boleh mengandung huruf dan under score (_)

Type data yang bisa digunakan:

Type Data

Keterangan

integer(n) Bilangan bulat, n = nilai maksimal
string(n) Teks/Karakter, n=panjang karakter
boolean Hanya bernilai TRUE/FALSE
timestamp Tanggal dan Waktu dengan format : “YYYY-MM-DD H:M:S”
date Tanggan dengan format : “YYYY-MM-DD”
time Waktu dengan format: “H:M:S”
float Bilangan Real
decimal(n) Bilangan Desimal dengan n buah di belakang koma
enum Type data yang nilainya sudah didefinisikan

Dalam tutorial ini, kita akan mencoba membuat schema untuk aplikasi penjualan sangat sangat sederhana sekali. Silahkan buat schema berikut, kemudian simpan di folder ./root/schema dengan nama toko_skema.yml.
<skema_toko.yml>

yml

download skema_toko.yml

Di dalam file skema di atas, kita mendefinisikan enam table dan enam model. Nama table dan nama model boleh berbeda, tapi disarankan sama. Untuk penulisan nama table disarankan menggunakan huruf capital di awal setiap kata yang mendefinisikan nama model tersebut.

Dalam definisi file YAML di atas, berikut penjelasannya :

detect_relations: true

Mendefinisikan, bahwa CLI (Command Line Interface) harus melakukan deteksi dan membuat Relasi antar model secara secara otomatis.

actAs: [Timestampable]

Mendefinisikan agar di setiap class model yang dibuat dapat melakukan pencatatan tanggal pembuatan dan tanggal update untuk setiap data yang tersimpan di dalamnya.

package: Master

Mendefinisikan package yang digunakan, yaitu Master


options:
type: MyISAM

Mendefinisikan tipe table yang akan digunakan di dalam database.

Pembuatan Model

Model dalam konsep MVC, secara sederhana diartikan sebagai representasi dari table-tabel dan relasinya yang tersimpan di dalam database.

Pembuatan model ini sendiri, dapat dilakukan secara manual, maupun secara otomatis dengan bantuan tool yang telah disediakan oleh doctrine. Untuk mempermudah proses pengembangan dan pemeliharaan, disarankan untuk menggunakan tool, karena dengan bantuan tool ini, maka model, dan database (termasuk table dan relasinya) akan secara otomatis dibuatkan/digenerate dari file skema yang tersimpan di dalam folder ./root/schema.

Untuk membuat model secara otomatis, langkah-langkahnya sebagai berikut:

  1. Buka Comand Line (cmd)
  2. Kemudian pindahkan direktori kerja ke interpreter php yang dimiliki webserver.
    >Cd c:\xampp\php
  3. Eksekusi file : .\toko\doctrine dengan parameter build-all-reload
    >php c:\xampp\htdocs\toko\doctrine build-all-reload
  4. Masukan “y”, jika muncul pertanyaan konfirmasi.
  5. Finish…

Asumsi:

  • XAMPP diinstall di C:\
  • Root Direktori Aplikasi adalah “toko”

Sampai tahap ini, kita telah berhasil membuat model sesuai yang didefinisikan di dalam ./root/schema/toko_skema.yml. Model yang telah dibuat bisa dilihat di ./root/models.

Author: yaya Categories: PHP-Doctrine, Programming Tags: , ,

Cakephp: Helper di dalam Controller

August 6th, 2009
Comments Off

Selama ini kita mengetahui bahwa helper dapat digunakan untuk memudahkan dalam pembuatan tampilan (view) yang berulang. Sehingga mayoritas diantara kita menggunakannya di dalam bagian view. Tapi secara tidak sadar, Dalam pembuatan suatu aplikasi berbasis cakephp, terkadang kita membutuhkan fungsi-fungsi dalam sebuah Helper untuk digunakan di dalam sebuah controller. Lalu bagai mana caranya??

Baiklah, caranya relative mudah, kita cukup menggunakan fungsi App::import yang telah disediakan cakephp. Ikuti contoh berikut :


class PostController extends AppController {
    function index() {
        App::import('Helper', 'Html'); // Me-Load Helper HTML
        $html = new HtmlHelper(); //MElakukan Instansiasi Class HTMLHelper
        debug($html->link('Kunjungi Blog Saya', 'http://blog.yw.web.id'));
    }
}

Mudah bukan, Let’s Try,,

Author: yaya Categories: Cakephp, Programming Tags: , , ,