Archive for category PHP

Salah satu cara membuat cake yang betul

Haha … lama dah tak update blog ni, tapi kali ini agak critical sikit sebab ada beberapa pelajar yang memerlukan bantuan untuk bake cake didalam CakePHP. Jadi adik adik, ini salah satu cara yang betul untuk membuat scaffolding.

STEP 1: Pastikan CakePHP telah didownload, diinstall dan diconfigure dengan betul. Anda semua adalah pelajar2 degree, jadi tak perlu saya ajar bagaimanakah cara memegang mouse yang betul, kan? Kalau semuanya sudah dibuat dengan betul, anda patut dapat page yang penuh dengar jalur hijau seperti ini.

Successful Installation of CakePHP

Cantik sangat kan? Rasa macam nak update Facebook status kerana terlalu gembira!

STEP 2: Siapkan segala table dan field-field yang diperlukan bagi database. Ini penting, untuk scaffolding, sekurang-kurangnya database perlulah berada dalam keadaan siap sempurna dan mantap beb! Contoh database yang dah siap macam ni. ( credit to student yang bertanyakan soalan ini).

Database with all the tables created.

STEP 3: Jadi bila dah bertapa selama beberapa bulan dan janggut pun dah panjang, baru lah boleh kita mula menggunakan bake. Tak perlulah kita cerita panjang tentang fungsi bake ini yer sebab untuk itu anda semua boleh menggunakan google yang hebat. Oh lupa … ada satu lagi step yang anda perlukan. Bagi setiap table, anda perlu create satu file model bagi table tersebut. Sebagai contoh, pada database cakecms diatas ada table bernama posts. ( Didalam CakePHP, nama tables mesti dalam bentuk plural, walaupun ada masih single dan available.). Jadi anda perlu create file model bagi table tersebut.

Masuk ke dalam folder app, kemudian folder model dan create satu file bernama Post.php. Ingat pesan datuk harimau, walaupun nama database adalah plural, tetapi nama Model beserta dengan nama file mesti dalam bentuk singular. Ini adalah ketentuan jadi jangan banyak tanya dan buat saja, hahaha. Didalam file tersebut perlu ada coding ini:

Every table needs to model by its own model file, like so.

Simple bukan, file Post.php cuma perlu ada nama kelas, dan variable $name yang bagitahu cake nama table tersebut didalam DB adalah posts. Sekali lagi diingatkan, file ini terletak didalam /App/Model/Post.php. Jadi kita perlu buat file model bagi semua table yang ada, sebagai contoh, database cakecms diatas perlu ada file PostTag.php, Status.php dan Tag didalam folder model.

STEP 4: Selepas memberitahu CakePHP model-model yang ada, boleh lah kita mula membake. Buka terminal, console, command prompt atau apa-apa saja yang benarkan anda untuk execute command. Masuk ke dalam folder app. Kemudian run command berikut, php -f … haha malas lah nak taip, tengok je la gambar ni.

Cake Console

Perasan tak dekat atas, kita duduk dalam folder app semasa kita run bake. Ini penting, seperti pentingnya untuk kita menarik nafas, penting untuk kita pastikan kita berada dalam folder app semasa execute command bake. Dan kalau kita execute dengan betul, kita akan dapat paparan seperti diatas.

Wah banyaknya pilihan, nak pilih yang mana yer? Sabar anak muda …. tak perlu gopoh.

Memandangkan kita telah pun create file untuk model, langkah seterusnya adalah kita perlu create file controller. Jadi pilih C untuk controller, dan pilih default database. Sepatutnya kita akan dapat list of possible controllers based on Model yang kita dah buat. Sebagai contoh kita akan bake controller untuk Posts dulu, jadi tekan 1. Kemudian tekan butang hash untuk mendapatkan baki terkini prepaid, hahaha …

Baik, tekan 1, macam dalam gambar ni.

Mari kita bake controller

Kemudian ikut langkah berikut, malas nak taip … orang putih kata picture is better than a thousand words …

Controller akan dibuatkan oleh bake

Haha sekejap je dah siap file controller, best tak? Jadi sekarang ini kita cuma perlu repeat untuk model2 yang lain. Tunggu apa lagi, pergilah buat …..

STEP Err .. SETERUSNYA: Haha .. lost count, anyway CakePHP adalah berdasarkan arkitektur Model-View-Controller (MVC) jadi kita sudah ada model, kita sudah ada controller, jadi yang kita tidak ada adalah view, jom kita bake view. Seperti biasa, ikut je gambar ni, kalau kecik klik la kasi besar, takkan itu pun nak ajar kot …. Siapa PA ko ni haa ? Hahaha ….

Gambar terakhir untuk posting ni.

Alhamdulillah jadi kita sudah berjaya bake both controller dan view. Quit bake dan cubalah akses application anda di http://127.0.0.1/posts dan rasailah kehebatan CakePHP. Yeeaahh!

No Comments

Masalah “PHP Warning: strtotime(): … ” pada CakePHP

Baru-baru ini aku telah pun menginstal CakePHP versi 1.2.6 keatas Mac Book Pro aku. Selepas dinaik taraf ke Snow Leopard, versi PHP didalam MB Pro ini juga telah menjadi PHP versi 5.3. Sebelum ini aku memang tidak mempunyai masalah dengan instalasi CakePHP ke atas Mac OS, tapi kali ni bila aku akses muka depan untuk CakePHP, dia keluar error yang macam ni:

Warning: strtotime() [http://php.net/function.strtotime]: It is not safe to rely on the system’s timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected ‘Asia/Kuala_Lumpur’ for ‘MYT/8.0/no DST’ instead in …… cake/libs/cache.php on line 429

Di setiap muka surat pulak tu, memang serabut dan mengganggu rekabentuk laman sesawang. Untuk membuang error ini, caranya adalah dengan mengubah fail php.ini. ( Di dalam Mac OS X, fail ini berada di /etc/ )

Cari baris berikut:

; date.timezone =

Dan tukarkan kepada:

date.timezone = “Asia/Kuala_Lumpur”

Restart semula apache dan error tersebut sepatutnya sudah tiada, AlhamduliLlah!

1 Comment

Instalasi Apache dan PHP 4 atas Ubuntu

Pada posting kali ini kita akan lihat bagaimanakah cara untuk menginstal Apache dan PHP 4 di atas Ubuntu Linux. Versi yang digunakan ialah Ubuntu 7.10 tetapi langkah-langkah ini juga boleh digunakan keatas versi Ubuntu yang lain.

Kenapa PHP4? Tidak PHP5?

Bagus soalan tu. Walau pun PHP4 sudah tidak disupport lagi. Tetapi kadangkala masih ada legacy sistem yang cuma boleh beroperasi dengan menggunakan PHP4. Untuk mengubah kod punca (source code) sistem ini mungkin mengambil masa yang lama, jadi nak tak nak, kita guna je lah PHP4, boleh? Contoh salah satu sistem yang cuma boleh run di atas PHP4 adalam sistem i-Learn.

Ok, cukup dengan bebelan, macam mana nak instal ?

Sebelum instal, adalah digalakkan untuk kita mengupdate repository apt dan mengupgrade perisian-perisian yang telah ada didalam Ubuntu. Larikan arahan berikut pada terminal.

sudo apt-get update

sudo apt-get upgrade

Selesai update dan upgrade, kita instal apache dengan melarikan arahan berikut:

sudo apt-get install apache2 libapache2-mod-rpaf libapache2-mod-auth-mysql apache2-threaded-dev

Sedikit penjelasan tentang arahan diatas. Ianya akan menginstal 4 package.

  1. apache2
  2. libapache2-mod-rpaf : Ini adalah modul yang diperlukan untuk menerima IP sebenar daripada nginx ( hanya instal jika anda menggunakan nginx sebagai load balancer)
  3. libapache2-mod-auth-mysql : Modul yang diperlukan oleh apache untuk berkomunikasi dengan MySQL ( juga hanya install jika apache ada perlu membuat connection dengan MySQL Server)
  4. apache2-threaded-dev : Package ini diperlukan untuk kompilasi PHP4

Untuk pastikan samaada Apache telah diinstal, jalankan arahan berikut:

netstat -an | grep :80

Jika tiada masalah, anda sepatutnya mendapat paparan seperti dibawah.

tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN

Atau pun, cara yang lebih mudah untuk pastikan Apache telah diinstal adalah dengan membuka pelayan web e.g. Internet Explorer dan layari IP address komputer anda. e.g. http://127.0.0.1 untuk localhost. Jika anda mendapat paparan “index of / page”, itu bermakna Apache telah diinstal dengan jayanya. Yeahoo … !

Jom kompil PHP4!

Selepas instalasi Apache berjaya, barulah kita boleh mula menginstal PHP. Ada beberapa package yang perlu diinstall, tak perlu tanya banyak, jalankan saja arahan dibawah ini.

sudo apt-get install gcc

sudo apt-get install make

sudo apt-get install bison

sudo apt-get install flex

Selepas selesai proses diatas, muat turun versi terbaru PHP4 iaitu versi 4.4.9. Guna la apa2 tools yang korang suka, aku downoad guna wget.

wget http://my.php.net/distributions/php-4.4.9.tar.gz

Untar kan fail yang baru di muat turun dan masuk ke dalam direktori php hasil dari tar.

tar -zxf php-4.4.9.tar.gz

cd php-4.4.9/

Sebelum kompil kita perlu run skrip configure dahulu. Jika tiada masalah, teruskan dengan arahan make dan make install.

./configure –with-apxs2=/usr/bin/apxs2 –with-mysql –with-zlib –enable-fastcgi

make

sudo make install

Arahan terakhir diatas akan berhenti disebabkan satu error berkaitan dengan LoadModule seperti dibawah:

notice: problem with “At least one ‘LoadModule’ directive already has to exist

Cara untuk membuang error ni sangat mudah, edit fail /etc/apache2/httpd.conf:

sudo nano /etc/apache2/httpd.conf

dan tambahkan maklumat berikut:

#LoadModule foo_module /usr/lib/apache2/modules/foo.so

AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

Jalankan semula arahan make install. Kita sepatutnya berjaya menghabiskan arahan make install tanpa masalah.

sudo make install

Untuk periksa samada PHP telah diinstal dengan betul, edit fail php.ini. Tambahkan path /usr/local/lib/php kepada directive include_path.

Kemudian masuk kedalam folder DocumentRoot (selalunya /var/www) dan buat satu fail bernama info.php.

cd /var/www

sudo nano info.php

Didalam fail tersebut, taipkan kod berikut:

<?php

phpinfo();

?>

Bunuh dan hidupkan semula Apache dengan menjalankan arahan dibawah.

/etc/init.d/apache2 stop

/etc/init.d/apache2 start

Akhir sekali, buka URL http://127.0.0.1/info.php menggunakan pelayar web. Jika anda mendapat laman muka yang mengandungi informasi tetang PHP, tahniah! Kerana anda telah berjaya menginstal Apache dan PHP4.

No Comments