Hướng dẫn dùng mongodb isset trong PHP

MongoDB hỗ trợ rất nhiều Driver cho các ngôn ngữ lập trình khác nhau. Trong bài viết này, SmartJob trình bày về việc kết nối, truy vấn từ PHP.

Máy tính sử dụng: Windows 10, 64 bit, sử dụng bộ tích hợp XAMPP.
Cài đặt MongoDB sử dụng MEAN stack (bạn xem các bài viết trước đã hướng dẫn cách cài đặt).

Hướng dẫn dùng mongodb isset trong PHP
Hướng dẫn dùng mongodb isset trong PHP

Việc làm php và việc làm mongoBD hấp dẫn

Bước 1. Tải về tập tin mở rộng dll tại đường link:

http://windows.php.net/downloads/pecl/releases/mongodb/1.1.4/php_mongodb-1.1.4-7.0-ts-vc14-x86.zip

Bước 2. Giải nén. Copy file php_mongodb.dll  vào thư mục ext, ví dụ trên máy của tác giả là: C:\xampp\php\ext

Bước 3. Tìm file php.ini , ví dụ, trên máy tác giả là: C:\xampp\php\php.ini .

Chèn vào cuối tập tin này:

extension=php_mongodb.dll

Bước 4. Giả sử có thư mục: C:\xampp\htdocs\vy\mongophp
Sử dụng cmd:

Gõ lệnh:

composer require "mongodb/mongodb=^1.0.0"

để tải thư viện bằng Composer về.

Composer tự động tải về và thư mục có thêm 1 thư mục và 2 tập tin mới:

Tạo 3 tập tin info.php, add.php, find.php để kiểm tra các tính năng mà thư viện MongoDB PHP cung cấp:

Tập tin info.php

Tập tin add.php

insource->devs;

$result = $collection->insertOne ( [ 
'fullname' => 'Phạm Văn Đoan',
'site' => 'Viettel Telecom' 
] );
echo "Đã thêm thành công một document có ID là '{$result->getInsertedId()}'
"; $result2 = $collection->insertOne ( [ 'fullname' => 'Lê Văn Kiên', 'site' => 'Viettel Software I' ] ); echo "Đã thêm thành công một document có ID là '{$result2->getInsertedId()}'";

Tập tin find.php

insources->devs;

$result = $collection->find ( [ 
'fullname' => 'Phạm Văn Đoan' 
] );

var_dump($result);

// foreach ( $result as $entry ) {
// echo $entry ['_id'], ': ', $entry ['fullname'], "\n";
// }

Bước 5. Khởi chạy máy chủ PHP dựng sẵn

php -S localhost:1111 -t C:\xampp\htdocs\vy\mongo-php

Bước 6. Truy cập

http://localhost:1111/info.php

xem kết quả để thấy rằng extension MongoDB đã được cài đặt thành công trong PHP.

Bước 7. Thêm dữ liệu bằng cách truy cập đường dẫn

http://localhost:1111/add.php

Bước 8. Tìm kiếm dữ liệu, bằng cách truy cập đường dẫn

http://localhost:1111/find.php

Để thực hiện nhiều thao tác đa dạng khác (đọc, ghi, sửa, xóa), bạn hãy xem thêm tài liệu như bên dưới.

Tiếp tục với series bài này chúng ta sẽ tìm hiểu chi tiết về 2 magic methods __isset()__unset() xem nó có gì đặc biệt không nhé!

1, __isset().

-Phương thức __isset() sẽ được gọi khi chúng ta thực hiện kiểm tra một thuộc tính không được phép truy cập của một đối tượng, hay kiểm tra một thuộc tính không tồn tại trong đối tượng đó. Cụ thể là hàm isset() và hàm

name);
//Kết quả: false

empty($connguoi->name);
//Kết quả: true
0.

-Chú ý: phương thức __isset() không sử dụng được với thuộc tính tĩnh.

Cú Pháp:

public function __isset($name)
{
	//code
}

Trong đó:

name);
//Kết quả: false

empty($connguoi->name);
//Kết quả: true
2 là tên thuộc tính mà các bạn đang thực hiện kiểm tra.

VD:

Không sử dụng __isset()

name);
//Kết quả: false

empty($connguoi->name);
//Kết quả: true

Khi sử dụng __isset()

name);
//Kết quả: Bạn vừa kiểm tra thuộc tính: name

empty($connguoi->name);
//Kết quả Bạn vừa kiểm tra thuộc tính: name

/*kiểm tra thuộc tính không tồn tại trong đối tượng*/
isset($connguoi->age);
//Kết quả: Bạn vừa kiểm tra thuộc tính: age

2, __unset().

-Phương thức __unset() sẽ được gọi khi chúng ta thực hiện hủy (unset) một thuộc tính không được phép truy cập của một đối tượng, hay hủy một thuộc tính không tồn tại trong đối tượng đó. Cụ thể là hàm

name);
//Kết quả: false

empty($connguoi->name);
//Kết quả: true
4.

-Chú ý: phương thức __unset()  cũng không sử dụng được với thuộc tính tĩnh.

Cú Pháp:

public function __unset($name)
{
	//code
}

Trong đó:

name);
//Kết quả: false

empty($connguoi->name);
//Kết quả: true
2 là tên thuộc tính mà các bạn đang thực hiện hủy.

VD:

Không sử dụng __unset()

name);
//Kết quả: Cannot access private property ConNguoi::$name

Khi sử dụng __unset()

name);
//Kết quả: Bạn vừa hủy thuộc tính: name

/* unset thuộc tính không tồn tại trong đối tượng*/
unset($connguoi->age);
//Kết quả: Bạn vừa hủy thuộc tính: age

3, Lời kết.

-Hai magic methods này rất hữu dụng khi kết hợp với  __set() và __get() để xây dựng một ứng dụng hoàn hảo (core).