Start using Git version control on the command line

If you want to start using Git version control and GitLab, make sure that you have created and/or signed into an account on GitLab.

Open a shell 

Depending on your operating system, you will need to use a shell of your preference. Here are some suggestions:

Check if Git has already been installed 

Git is usually preinstalled on Mac and Linux.

Type the following command and then press enter:

git --version

You should receive a message that tells you which Git version you have on your computer. If you don‚Äôt receive a “Git version” message, it means that you need to¬†download Git.

If Git doesn’t automatically download, there’s an option on the website to¬†download manually. Then follow the steps on the installation window.

After you are finished installing Git, open a new shell and type git --version again to verify that it was correctly installed.

Add your Git username and set your email 

It is important to configure your Git username and email address, since every Git commit will use this information to identify you as the author.

On your shell, type the following command to add your username:

git config --global "YOUR_USERNAME"

Then verify that you have the correct username:

git config --global

To set your email address, type the following command:

git config --global ""

To verify that you entered your email correctly, type:

git config --global

You’ll need to do this only once, since you are using the¬†--global¬†option. It tells Git to always use this information for anything you do on that system. If you want to override this with a different username or email address for specific projects, you can run the command without the¬†--global¬†option when you‚Äôre in that project.

Check your information 

To view the information that you entered, along with other global options, type:

git config --global --list

Basic Git commands 

Go to the master branch to pull the latest changes from there 

git checkout master

Download the latest changes in the project 

This is for you to work on an up-to-date copy (it is important to do this every time you start working on a project), while you set up tracking branches. You pull from remote repositories to get all the changes made by users since the last time you cloned or pulled the project. Later, you can push your local commits to the remote repositories.


When you first clone a repository, REMOTE is typically “origin”. This is where the repository came from, and it indicates the SSH or HTTPS URL of the repository on the remote server. NAME-OF-BRANCH is usually “master”, but it may be any existing branch.

View your remote repositories 

To view your remote repositories, type:

git remote -v

Create a branch 

To create a branch, type the following (spaces won’t be recognized in the branch name, so you will need to use a hyphen or underscore):

git checkout -b NAME-OF-BRANCH

Work on an existing branch 

To switch to an existing branch, so you can work on it:

git checkout NAME-OF-BRANCH

View the changes you’ve made¬†

It’s important to be aware of what’s happening and the status of your changes. When you add, change, or delete files/folders, Git knows about it. To check the status of your changes:

git status

View differences 

To view the differences between your local, unstaged changes and the repository versions that you cloned or pulled, type:

git diff

Add and commit local changes 

You’ll see your local changes in red when you type¬†git status. These changes may be new, modified, or deleted files/folders. Use¬†git add¬†to stage a local file/folder for committing. Then use¬†git commit¬†to commit the staged files:


Add all changes to commit 

To add and commit all local changes in one command:

git add .

Note: The . character typically means all in Git.

Send changes to 

To push all local commits to the remote repository:


For example, to push your local commits to the master branch of the origin remote:

git push origin master

Delete all changes in the Git repository 

To delete all local changes in the repository that have not been added to the staging area, and leave unstaged files/folders, type:

git checkout .

Delete all untracked changes in the Git repository 

git clean -f

Unstage all changes that have been added to the staging area 

To undo the most recent add, but not committed, files/folders:

git reset .

Undo most recent commit 

To undo the most recent commit, type:

git reset HEAD~1

This leaves the files and folders unstaged in your local repository.Warning: A Git commit is mostly irreversible, particularly if you already pushed it to the remote repository. Although you can undo a commit, the best option is to avoid the situation altogether.

Merge created branch with master branch 

You need to be in the created branch.

git checkout NAME-OF-BRANCH
git merge master

Merge master branch with created branch 

You need to be in the master branch.

git checkout master
git merge NAME-OF-BRANCH

Sumber: Gitlab.Com

Jom lihat kelebihan dan kenapa kita perlu beralih ke PHP 7.

Seperti yang semua sedia maklum melalui portal, rasmi telah menghentikan pembangunan PHP 5 (versi terakhir sehingga artikel ini ditulis adalah 5.6.30) dan mula fokus kepada pembangunan PHP 7:

The PHP development team announces the immediate availability of PHP 5.6.30. This is a security release. Several security bugs were fixed in this release. All PHP 5.6 users are encouraged to upgrade to this version.

According to our release calendar, this PHP 5.6 version is the last planned release that contains regular bugfixes. All the consequent releases will contain only security-relevant fixes, for the term of two years. PHP 5.6 users that need further bugfixes are encouraged to upgrade to PHP 7.

Jadi sudah masanya untuk kita turut mengemaskini server dan aplikasi agar selari versi terkini ini. Untuk itu jom kita lihat beberapa features baru yang terdapat dalam PHP 7 ini.

Null coalescing operator

The null coalescing operator (??) has been added as syntactic sugar for the common case of needing to use a ternary in conjunction with isset(). It returns its first operand if it exists and is not NULL; otherwise it returns its second operand.

// Fetches the value of $_GET['user'] and returns 'nobody'
// if it does not exist.
$username = $_GET['user'] ?? 'nobody';
// This is equivalent to:
$username = isset($_GET['user']) ? $_GET['user'] : 'nobody';

// Coalescing can be chained: this will return the first
// defined value out of $_GET['user'], $_POST['user'], and
// 'nobody'.
$username = $_GET['user'] ?? $_POST['user'] ?? 'nobody';

Spaceship operator

The spaceship operator is used for comparing two expressions. It returns -1, 0 or 1 when $a is respectively less than, equal to, or greater than $b. Comparisons are performed according to PHP’s usual type comparison rules.

// Integers
echo 1 <=> 1; // 0
echo 1 <=> 2; // -1
echo 2 <=> 1; // 1

// Floats
echo 1.5 <=> 1.5; // 0
echo 1.5 <=> 2.5; // -1
echo 2.5 <=> 1.5; // 1

// Strings
echo "a" <=> "a"; // 0
echo "a" <=> "b"; // -1
echo "b" <=> "a"; // 1

Constant arrays using define()

Array constants can now be defined with define(). In PHP 5.6, they could only be defined with const.

define('ANIMALS', [

echo ANIMALS[1]; // outputs "cat"

Session options

session_start() now accepts an array of options that override the session configuration directives normally set in php.ini.

These options have also been expanded to support session.lazy_write, which is on by default and causes PHP to only overwrite any session file if the session data has changed, and read_and_close, which is an option that can only be passed to session_start() to indicate that the session data should be read and then the session should immediately be closed unchanged.

For example, to set session.cache_limiter to private and immediately close the session after reading it:

'cache_limiter' => 'private',
'read_and_close' => true,

random_bytes & random_int

Generates an arbitrary length string of cryptographic random bytes that are suitable for cryptographic use, such as when generating salts, keys or initialization vectors.

Essentially secure way of generating random data. There are random number generators in PHP, rand() for instance, but none of the options in version 5 are very secure. In PHP 7, they put together a system interface to the operating system’s random number generator. Because we can now use the operating system’s random number generator, if that gets hacked we have bigger problems. It probably means your entire system is compromised and there is a flaw in the operating system itself.

Secure random numbers are especially useful when generating random passwords or password salt.

What does this look like for you as a developer? You now have 2 new functions to use: random_int and random_bytes.

$bytes = random_bytes(5);
var_dump(bin2hex($bytes)); // outputs string(10) "385e33f741"

Generates cryptographic random integers that are suitable for use where unbiased results are critical, such as when shuffling a deck of cards for a poker game.

Benchmarks for PHP 7 consistently show speeds twice as fast as PHP 5.6 and many times even faster! Although these results are not guaranteed for your project, the benchmarks were tested against major projects, Drupal and WordPress, so these numbers don’t come from abstract performance tests.

var_dump(random_int(100, 999)); // outputs int(248)
var_dump(random_int(-1000, 0)); // outputs int(-898)

Selain itu antara kelebihan yang ada pada PHP 7 adalah lebih laju daripada PHP 5.6

Benchmarks for PHP 7 consistently show speeds twice as fast as PHP 5.6 and many times even faster! Although these results are not guaranteed for your project, the benchmarks were tested against major projects, Drupal and WordPress, so these numbers don’t come from abstract performance tests.

Untuk rujukan dan maklumat lebih lanjut, sila refer ke pautan berikut:

Sublime Text 3 Plugin For Fast Coding

Sublime Text 3 adalah satu editor yang saya gunakan untuk membuat kod-kod pengaturcaraan. Walaupun ia harus mempunyai lesen berbayar, namun harga lesennya adalah agak murah berbanding kepelbagaian ciri-ciri yang ada padanya. Hampir semua ciri-ciri yang saya perlukan semasa membuat kod untuk membangunkan sesebuah laman web terdapat pada aplikasi ini. Ini membantu saya membangunkan laman web yang dikehendaki dengan lebih mudah dan cepat.

Saya menggunakan OS Windows 10. Di antara Sublime Text 3 Plugin yang wajib pada saya perlu dipasang sebelum Sublime Text 3 anda menjadi lebih superb adalah seperti berikut:

1. Control Package

Control Package merupakan pengurus setiap package yang anda pasang/kemaskini/buang. Shortcut-key: Ctrl + Shift + P

2. Alignment

Alignment memudahkan akan untuk menyusun kod anda agar lebih teratur
Shortcut-key: Ctrl + Alt + A

3. Emmet

Plugin wajib yang mencepatkan untuk menghasilkan kod melalui shortcut yang telah ditetapkan oleh plugin ini. Untuk senarai shortcut, sila ke url berikut –¬†

4. SidebarEnhancement

Plugin ini akan menambah menu pada sidebar yang terdapat dalam Sublime Text 3. Pada asasnya sidebar sedia ada dalam Sublime Text 3 adalah sangat asas.

5. ColorPicker

ColorPicker memudahkan kita untuk memilih warna yang dikehendaki untuk menetapkan warna tulisan, background dan sebagainya. Sebelum ini saya terpaksa membuka another browser tab untuk melihat HEX bagi sesuatu warna.
Shortcut-key: Ctrl + Shift + C

6. Color Highlighter

Color Highlighter memudahkan kita untuk melihat warna setelah hexadecimal (HEX) ditulis. Sebelum ini saya terpaksa refresh page yang telah dibuat untuk melihat hasil warna yang dipilih.

7. Bootstrap 3 Snippets

Snippets untuk Twitter Bootstrap 3. Untuk menghasilkan elemen form, table, alerts, badges, carousel, icons, images, pagination, navigations, panel dan sebagainya
Shortcut-key: bs3-*

8. GIT

Saya menggunakan version control system (VCS) GIT. Melalui plugin ini, aplikasi GIT dapat diintergrasikan dengan Sublime Text 3. Namun begitu, saya masih suka menggunakan git bash :p. Setelah pemasangan GIT, jangan lupa untuk menetapkan dalam Environment Variables > System Variables > Path dan tambahkan lokasi pemasangan cthnya: D:\Software\Git\bin.

9. GitGutter

Plugin GIT sahaja tidak lengkap tanpa dipasang plugin GitGutter. Plugin ini memudahkan kita untuk melihat perbezaan apabila berlaku conflict. Kita dapat melihat perbezaan yang ditambah/dibuang/diubah

10. Predawn Theme

Tema kegemaran saya. Tema ini menukar icon yang terdapat dalam Sublime Text 3. Tema Predawn ini juga menyediakan skema warnanya sendiri iaitu Predawn Monokai

11. Material Theme

Selain daripada Predawn, tema ini juga kelihatan menarik untuk digunapakai pada Sublime Text 3 anda.

12. HTML5

Snippets HTML5 untuk aplikasi Sublime Text 3.

13. HTMLBeautify

Plugin untuk membetulkan format (indents) kod HTML. Tujuan indents ini adalah untuk memudahkan kod kita dibaca oleh pengaturcara lain.
Shortcut-key: Ctrl + Alt + Shift + F

14. SublimeLinter

Sekiranya anda inginkan plugin yang memudahkan anda untuk melihat kesilapan semasa menulis kod, plugin ini adalah pilihan yang terbaik. Kesilapan seperti close bracket yang tertinggal dapat dikesan dengan mudah.

15. GitStatus

Saya baru memasang plugin ini (13/05/2016) dan memudahkan saya untuk melihat status pada¬†setiap perubahan yang dilakukan dalam¬†repository projek. Status ini dipaparkan pada ‘command palette’ seperti¬†Git: Dirty, Git: Clean, Git: Changed files dan Git: Unmerged files

Terdapat juga beberapa plugin yang saya rasa bagus dipasang sekiranya anda menggunakan PHP Framework: Laravel 5 seperti berikut:

1. Laravel 5 Artisan

2. Laravel 5 Snippets

3. Laravel Blade Highlighter

Akhir sekali bagi mereka yang baru menggunakan Sublime Text 3 bolehlah memasang plugin berikut untuk memudahkan serta mempercepatkan kita mempelajari dan mahir menggunakan Sublime Text 3

1. Sublime Tutor

Update: 11/06/2016

1. BracketHighlighter

2. Autoprefixer

Update: 20/04/2017

1. AdvancedNewFile

2. JavaScript & NodeJS Snippets

Update: 12/09/2018

1. All Autocomplete

PHP OOP : Siri1 – Apa itu OOP dalam PHP

Tahun 2016 ini jom kita belajar PHP OOP. PakCu akan cuba untuk menterjemahkan konsep OOP dalam PHP sebaik yang mungkin akan lebih mudah untuk dipahami dan dipelajari. Terlebih dahulu, kita semua perlu buangkan tanggapan bahawa mempelajari OOP adalah sangat susah dan kompleks. Setiap benda sekiranya selalu diamalkan akan menjadi mudah akhirnya. Sebagai contoh, cuba tulis nama ada menggunakan tangan kiri (bagi mereka yang lazimnya menggunakan tangan kanan).

Susah bukan? Walaupun nama tersebut biasa kita tulis tapi apabila kita keluar daripada kelaziman kita; bagi kes ini kita menggunakan tangan kiri untuk menulis nama kita, kita akan dapati benda tersebut sukar dilakukan. Begitu juga dengan mempelajari OOP. Pada awalnya akan ada sedikit kesukaran untuk memahami. Namun setelah kita paham dan tahu cara penggunaannya, ia akan memudah dan memahirkan kita.

Secara kita tidak sedar, ada antara kita sebenarnya telah mula menggunakan konsep, struktur dan fungsi asas yang terdapat dalam OOP. Cuma dalam OOP, ia mempunya istilahnya sendiri seperti properties, methods, encaplution, instance dan sebagainya. Insyallah tutorial PHP OOP akan ada beberapa bahagian/siri. Untuk Siri 1 kali ini, PakCu akan lebih kepada pengenalan kepada OOP. Banyak PHP framework yang terdapat dalam pasaran menggunakan konsep OOP dalam struktur framework mereka. Ini disebabkan fungsi OOP telah mengalami perubahan yang besar setelah PHP5 diperkenalkan.

Classes, Properties dan Methods

Class adalah satu blueprint @ template yang menerangkan sesuatu objek. Melalui template ini, berbagai objek yang sama tetapi mempunyai ciri-ciri yang berbeza dapat dihasilkan. Sebagai contoh objek ialah pengguna, apabila kita membina class pengguna ia akan mengandungi maklumat/data/ciri-ciri pengguna. Di dalam OOP, ciri-ciri ini dikenali sebagai properties dan methods.

Untuk menambah/menetapkan data ke dalam sesuatu class, kita menggunakan properties atau lebih dikenali sebagai variables dalam procedural PHP. Contoh properties yang boleh ditetapkan dalam class pengguna adalah id pengguna, email, jantina dan sebagainya.

Method pula adalah kaedah yang lazimnya dipanggil function dalam procedural PHP. Contoh methods yang boleh dicipta dalam class pengguna adalah daftar masuk, daftar keluar, tambah pengguna, hapus pengguna dan sebagainya.

Setelah class dihasilkan,¬†class ini boleh digunakan untuk menetapkan/mencipta pelbagai pengguna lain tetapi berbeza data/maklumat/ciri. Jadi kenapa perlu belajar OOP ini? Dengan adanya ilmu OOP ini kita tidak lagi perlu menulis kod-kod pengaturcaraan secara berulang-ulang untuk sesuatu fungsi. Terdapat istilah DRY (Don’t Repeat Yourself)¬†yang perlu kita amalkan¬†dalam menghasilkan sesuatu aplikasi agar¬†kod kita lebih teratur, mudah dipahami dan yang paling penting senang untuk diselenggara pada masa akan datang sekiranya perlu.

Jumpa lagi di Siri 2 akan datang dengan tajuk Mencipta dan Menggunakan Class.

Prinsip MVC untuk Pengaturcara PHP

Apakah itu MVC?

MVC adalah singkatan daripada Model-View-Controller (MVC). Ia adalah satu seni bina perisian (software architecture) atau corak reka bentuk (design pattern) yang digunakan secara meluas dalam pembangunan laman web. Ia biasanya digunakan untuk mencipta aplikasi web atau perisian dengan lebih cekap atau efisyen. Pada topik kali ini, perbincangan MVC adalah dalam skop bahasa pengaturcaraan PHP; satu bahasa pengaturcaraan yang banyak membangunkan framework berkonsepkan MVC, selain daripada ASP.NET, Ruby on Rails dan Zend Framework.

Ketiga-tiga modul utama diterapkan dalam pembangunan web PHP yang mengakibatkan pembangunan aplikasi web berskala dan menarik.

Mengapa anda harus menggunakannya?

Untuk pengaturcara PHP, MVC menawarkan konsep dan idea yang kreatif dan lebih baik berbanding procedural PHP. Pada asasnya, struktur MVC yang menyediakan susunan kod atau fungsi dalam bentuk yang mudah serta dapat menambah fungsi baru dengan lebih efisyen untuk penyesuaian atau penggunaan semula kod agar pembangunan aplikasi menjadi lebih cepat.

MVC membantu pengaturcara PHP menguruskan pembangunan aplikasi web dengan lebih konsisten dan mudah. Melalui MVC juga, anda boleh memisahkan antara logik pengaturcaraan (programming logic) dan kod antara muka (interface code).

Keperluan MVC framework bagi pengaturcara PHP

Dengan menggunakan MVC Framework, pengaturcara PHP dapat membangunkan, menguruskan, menyelenggara dan memastikan prestasi aplikasi web yang dibangunkan dengan lebih mudah, tersusun dan cekap. Terdapat berbagai PHP MVC Framework yang telah dibangunkan seperti Laravel, CakePHP, CodeIgniter, Yii, FuelPHP, Symfony, Kohana, Zend Framework dan sebagainya. Setiap framework mempunyai kelebihan dan kekurangannya tersendiri.

Kebaikan MVC framework

MVC memudahkan anda untuk dalam menaiktaraf dan menyelenggara aplikasi web anda. Selain itu, MVC framework juga mempunyai pengurusan modules yang teratur dan cekap bagi memudahkan pembangunan aplikasi web yang besar. Ia juga memudahkan pengaturcara baru dilantik untuk menyelenggara aplikasi web yang telah dibangunkan menggunakan MVC tersebut. Mereka yang menggunakan struktur dan logik MVC semasa membangunkan aplikasi juga akan mendapati untuk menambah fungsi baru atau menggunakan semula kod-kod yang telah dibuat adalah lebih cepat dan tersusun; terutama bagi mereka yang membangunkan aplikasi web secara berkumpulan. Dengan menggunakan MVC framework, aplikasi web dapat dihasilkan dengan cepat dan seterusnya akan menjimatkan masa pembangunan dan penyelenggaraan.

Struktur fail MVC

MVC framework menawarkan struktur fail dengan paling mudah untuk dipelajari, dipahami dan digunakan seperti View untuk paparan, Model untuk pengurusan pengkalan data Controller sebagai penghubung antara kehendak pengguna (user request) dan paparan yang ingin dilihat. Setiap struktur ini berkait antara satu sama lain. Terdapat juga folder-folder lain di dalam MVC framework yang digunakan sesuai dengan keperluan dan fungsi framework itu sendiri.



JomLaunch 2015

Acara yang saya nantikan oleh JomWeb untuk tahun ini bermula pada @ 04 April, 2014 @ 09:00 lagi. Program ini adalah idea yang dicetuskan oleh saudara Nazrol Hazif bersama-sama dengan Komuniti JomWeb untuk membolehkan ahli-ahli jomweb yang telah menyiapkan @ merancang aplikasi mereka membentang projek yang mereka telah/sedang bangunkan. Pelbagai syarikat dan individu melancarkan aplikasi mereka.

Posto Express


Sistem ala transporter dimana pengirim barang akan menghantar barangan kepada pembeli melalui penghantar yang dilantik oleh Posto Express sendiri. Setiap barangan yang dihantar akan dicaj RM0.90 bagi setiap KM. Melalui sistem ini, pengirim dan penerima dapat memantau progres dan pergerakan barangan yang dihantar melalui GPS Location (menggunakan google map). Bagi anda yang berminat untuk menjadi penghantar barangan secara part-time @ full-time. Penghantar akan menerima bayaran sebanyak RM10.00 (minima) bagi setiap barangan yang berjaya dihantar.

Pong Flashback – Android Game


Satu penghormatan kepada permainan pong (game android) klasik oleh Mikhail Game Tech. App ini dibina untuk acara JomLaunch bagi kumpulan JomWeb untuk pemaju dan pengaturcara Malaysia.



Projek ini dibentangkan oleh saudara Azrul Rahim. Bagi anda yang ingin mendapatkan khidmat pembantu rumah dengan cepat dan pantas, sila layari web MaidEasy.My



Projek keempat yang dikongsikan adalah laman perkongsian yang khusus untuk pekan Banting di Selangor. Projek GPS Social Network ini dicipta untuk menggalakkan perkongsian maklumat, dan membolehkan pengguna bersembang dan juga mengetahui lokasi-lokasi disekitar Banting. Pemilik perniagaan disekitar Banting juga boleh mengiklan di halaman ini.



Saudara Zulfa Juniadi yang saya kenal memang seorang yang kreatif untuk menghasilkan projek-projek yang bernas. Untuk sesi kali ini beliau membentangkan projek CastMyCode. melalui aplikasi¬†ini, pelajar dapat mengikut/menyalin kod-kod pengaturcaraan yang dibuat oleh pengajar dengan mudah dan dengan jelas secara ‘live’. Insyallah, saya akan gunakan aplikasi ini pada kursus akan datang.¬†Buat masa ini sesi yang disediakan akan lupus selepas seminggu.

Engine Scheduler


Sekiranya anda menghadapi masalah kekangan waktu untuk membuat servis kereta. Engine Scheduler adalah satu aplikasi mudah untuk anda menentukan jadual agar kereta anda boleh diservis pada waktu yang ditetapkan.

Alambiz Malaysia


Satu portal membeli-belah dalam talian yang menawarkan pelbagai produk halal. Ahli yang berdaftar mendapat kelebihan harga diskaun sebanyak 10% dan rebat yang berpatutan.



Sistem Pengurusan Tempahan Secara Online. Dengan, pembangunnya menyediakan sistem pengurusan dimana peniaga boleh mendaftar dan mewujudkan borang tempahan dengan mudah. Kesemua pembelian akan direkodkan dan terdapat kemudahan kod penjejak (Trackback) untuk pengeposan Pos Malaysia. Buat masa ini projek ini masih ditahap percubaan namun bagi peniaga yang ingin mendaftar minat boleh melawati halaman mereka.



Pembangun ini menghadapi masalah perlu membuka sejumlah halaman untuk membandingkan kereta sewa yang diinginkan. Projek Sewapandu boleh dikatakan penyewaan kereta berasaskan AirBNB, membolehkan pemilik kenderaan menyewakan kenderaan mereka kepada pengguna lain. Menariknya selain dari melihat maklumat berkenaan kereta, pengguna juga boleh melihat rekod selenggara kereta sewa tersebut, sekaligus menjamin keselamatannya. Projek ini masih di peringkat Beta dan akan dilancarkan tidak lama lagi.

Nexmo Dashboard


Satu Dashboard untuk memudahkan pelanggan Nexmo menguruskan SMS Nexmo mereka. Ia dibangunkan oleh saudara Mohd Sulaiman.

Go Tickets


Pembelian tiket secara atas talian untuk tempat-tempat menarik di Malaysia


Satu portal untuk jual-beli khusus untuk pelajar IPT.

DNS Vault


Slogan mereka ‘DNS Management Made Easy’. Pembentangan oleh otai Localhost Sdn Bhd¬†iaitu saudara Amir Haris.


Satu lagi aplikasi ‘All-in-one office information system’.¬†Pembentangan juga oleh saudara Amir Haris.


a adalah perisian perakaunan yang mematuhi kehendak GST yang dapat memenuhi keperluan sama ada perniagaan kecil mahupun sederhana di Malaysia. Ia akan membantu anda, pemilik perniagaan untuk lebih memberi tumpuan kepada perniagaan anda.



Satu aplikasi mobile untuk mencari masjid yang terdekat atau kedai halal yang berhampiran di lokasi anda dengan cepat dan mudah.


Trainer.My adalah satu portal untuk memudahkan kita mendapatkan tenaga pengajar sesuai dengan kepakaran yang diperlukan. Dibangunkan oleh saudara Nazrul Hazhan Nazlan (juga membangunkan AlQurah.My).


Aplikasi ini juga dibangunkan oleh saudara¬†Nazrul Hazhan Nazlan untuk memudahkan kita menjual / membeli / ‘menyedekahkan’ peralatan / pakaian bayi kita.


Program JomLaunch ini berjalan dengan lancar sekali dan¬†berakhir pada jam 02:00 petang. Saya mengucapkan sebanyak tahniah kepada penganjur ( dan komuniti JomWeb serta tidak lupa juga kepada pihak sponsor yang telah sudi menjadi sponsor agar program berjalan dengan lancar dan baik. Sesi akhir… makan tengahari. Hopefully penganjur boleh buat sesi bergambar untuk program akan datang.

Sumber: Amanz.My, Gambar drp Album Jomweb saudara Jasdy Syarman dan saudara Iszuddin Ismail

PHP PDO Constants

The constants below are defined by this extension, and will only be available when the extension has either been compiled into PHP or dynamically loaded at runtime.


PDO::PARAM_BOOL (integer) – Represents a boolean data type.
PDO::PARAM_NULL (integer) – Represents the SQL NULL data type.
PDO::PARAM_INT (integer) – Represents the SQL INTEGER data type.
PDO::PARAM_STR (integer) – Represents the SQL CHAR, VARCHAR, or other string data type.
PDO::PARAM_LOB (integer) – Represents the SQL large object data type.
PDO::PARAM_STMT (integer) – Represents a recordset type. Not currently supported by any drivers.
PDO::PARAM_INPUT_OUTPUT (integer) – Specifies that the parameter is an INOUT parameter for a stored procedure. You must bitwise-OR this value with an explicit PDO::PARAM_* data type.


PDO::FETCH_LAZY (integer) – Specifies that the fetch method shall return each row as an object with variable names that correspond to the column names returned in the result set.
PDO::FETCH_LAZY – creates the object variable names as they are accessed. Not valid inside PDOStatement::fetchAll().
PDO::FETCH_ASSOC (integer) – Specifies that the fetch method shall return each row as an array indexed by column name as returned in the corresponding result set. If the result set contains multiple columns with the same name, PDO::FETCH_ASSOC returns only a single value per column name.
PDO::FETCH_NAMED (integer) – Specifies that the fetch method shall return each row as an array indexed by column name as returned in the corresponding result set. If the result set contains multiple columns with the same name, PDO::FETCH_NAMED returns an array of values per column name.
PDO::FETCH_NUM (integer) – Specifies that the fetch method shall return each row as an array indexed by column number as returned in the corresponding result set, starting at column 0.
PDO::FETCH_BOTH (integer) – Specifies that the fetch method shall return each row as an array indexed by both column name and number as returned in the corresponding result set, starting at column 0.
PDO::FETCH_OBJ (integer) – Specifies that the fetch method shall return each row as an object with property names that correspond to the column names returned in the result set.
PDO::FETCH_BOUND (integer) – Specifies that the fetch method shall return TRUE and assign the values of the columns in the result set to the PHP variables to which they were bound with the PDOStatement::bindParam() or PDOStatement::bindColumn() methods.
PDO::FETCH_COLUMN (integer) – Specifies that the fetch method shall return only a single requested column from the next row in the result set.
PDO::FETCH_CLASS (integer) – Specifies that the fetch method shall return a new instance of the requested class, mapping the columns to named properties in the class. Note: The magic __set() method is called if the property doesn’t exist in the requested class
PDO::FETCH_INTO (integer) – Specifies that the fetch method shall update an existing instance of the requested class, mapping the columns to named properties in the class.
PDO::FETCH_FUNC (integer) – Allows completely customize the way data is treated on the fly (only valid inside PDOStatement::fetchAll()).
PDO::FETCH_GROUP (integer) – Group return by values. Usually combined with PDO::FETCH_COLUMN or PDO::FETCH_KEY_PAIR.
PDO::FETCH_UNIQUE (integer) – Fetch only the unique values.
PDO::FETCH_KEY_PAIR (integer) – Fetch a two-column result into an array where the first column is a key and the second column is the value. Available since PHP 5.2.3.
PDO::FETCH_CLASSTYPE (integer) – Determine the class name from the value of first column.
PDO::FETCH_SERIALIZE (integer) – As PDO::FETCH_INTO but object is provided as a serialized string. Available since PHP 5.1.0. Since PHP 5.3.0 the class constructor is never called if this flag is set.
PDO::FETCH_PROPS_LATE (integer) – Call the constructor before setting properties. Available since PHP 5.2.0.


PDO::ATTR_AUTOCOMMIT (integer) – If this value is FALSE, PDO attempts to disable autocommit so that the connection begins a transaction.
PDO::ATTR_PREFETCH (integer) – Setting the prefetch size allows you to balance speed against memory usage for your application. Not all database/driver combinations support setting of the prefetch size. A larger prefetch size results in increased performance at the cost of higher memory usage.
PDO::ATTR_TIMEOUT (integer) – Sets the timeout value in seconds for communications with the database.
PDO::ATTR_ERRMODE (integer) – See the Errors and error handling section for more information about this attribute.
PDO::ATTR_SERVER_VERSION (integer) – This is a read only attribute; it will return information about the version of the database server to which PDO is connected.
PDO::ATTR_CLIENT_VERSION (integer) – This is a read only attribute; it will return information about the version of the client libraries that the PDO driver is using.
PDO::ATTR_SERVER_INFO (integer) – This is a read only attribute; it will return some meta information about the database server to which PDO is connected.
PDO::ATTR_CASE (integer) – Force column names to a specific case specified by the PDO::CASE_* constants.
PDO::ATTR_CURSOR_NAME (integer) – Get or set the name to use for a cursor. Most useful when using scrollable cursors and positioned updates.
PDO::ATTR_CURSOR (integer) – Selects the cursor type. PDO currently supports either PDO::CURSOR_FWDONLY and PDO::CURSOR_SCROLL. Stick withPDO::CURSOR_FWDONLY unless you know that you need a scrollable cursor.
PDO::ATTR_DRIVER_NAME (string) – Returns the name of the driver.
PDO::ATTR_ORACLE_NULLS (integer) – Convert empty strings to SQL NULL values on data fetches.
PDO::ATTR_PERSISTENT (integer) – Request a persistent connection, rather than creating a new connection. See Connections and Connection management for more information on this attribute.
PDO::ATTR_FETCH_CATALOG_NAMES (integer) – Prepend the containing catalog name to each column name returned in the result set. The catalog name and column name are separated by a decimal (.) character. Support of this attribute is at the driver level; it may not be supported by your driver.
PDO::ATTR_FETCH_TABLE_NAMES (integer) – Prepend the containing table name to each column name returned in the result set. The table name and column name are separated by a decimal (.) character. Support of this attribute is at the driver level; it may not be supported by your driver.
PDO::ATTR_DEFAULT_FETCH_MODE (integer) – Available since PHP 5.2.0
PDO::ATTR_EMULATE_PREPARES (integer) – Available since PHP 5.1.3.


PDO::ERRMODE_SILENT (integer) – Do not raise an error or exception if an error occurs. The developer is expected to explicitly check for errors. This is the default mode. See Errors and error handling for more information about this attribute.
PDO::ERRMODE_WARNING (integer) – Issue a PHP E_WARNING message if an error occurs. See Errors and error handling for more information about this attribute.
PDO::ERRMODE_EXCEPTION (integer) – Throw a PDOException if an error occurs. See Errors and error handling for more information about this attribute.
PDO::ERR_NONE (string) – Corresponds to SQLSTATE ‘00000’, meaning that the SQL statement was successfully issued with no errors or warnings. This constant is for your convenience when checking PDO::errorCode() or PDOStatement::errorCode() to determine if an error occurred. You will usually know if this is the case by examining the return code from the method that raised the error condition anyway.


PDO::CASE_NATURAL (integer) – Leave column names as returned by the database driver.
PDO::CASE_LOWER (integer) – Force column names to lower case.
PDO::CASE_UPPER (integer) – Force column names to upper case.

Sumber: PHP.Net