Parse Parse là gì

Parse là gì

admin-26/06/2021181

Theo phương thức truyền thống thì khi lập trình viên mobile khi tạo ra 1 ứng dụng mà cần liên quan đến dữ liệu thì sẽ cần phải kèm theo một web developer để tạo 1 backend để có thể kết nối đến cơ sơ dữ liệu cũng như làm việc trên nó. Như vậy các lập trình viên di động sẽ cần phải đợi chờ backend và viết ra những service phục vụ cho công việc yêu cầu. Nếu cứ theo mô hình như vậy khi làm gì cũng phải phụ thuộc vào web develop và khi cần chỉnh sửa gì thì chỉ có đợi backend và đôi khi việc backend trả giá trị như thế nào thì chỉ biết như vậy. Điều này khiến cho các lập trình viên mobile khó linh động và luôn phải chờ đợi. Điều này giờ đã được giải quyết bằng cách các lập trình viên mobile sẽ làm việc trực tiếp qua 1 serice trung gian chuyên xử lý dự liệu là Parse. Trong bài viết này tôi xin hướng dẫn các bạn 1 cách cơ bản làm quen với việc sử dụng Parse cho việc lập trình cho mobile [Android] và Backend [Php].

Bạn đang xem: Parse là gì

Trước khi đi vào chi tiết tôi xin giới thiệu qua cho các bạn Parse là gì và hỗ trợ gì cho chúng ta. Bạn có thể vào trực tiếp trang chủ của Parse để có thể tìm hiểu cũng như đăng ký cho mình 1 tài khoản hoàn toàn miễn phí. Khi vào trang chủ của Parse chúng ta có thể thấy Parse cung cấp cho chúng ta 3 dịch vụ chính đó là:

Xử lý dữ liệu: Sẽ cung cấp cho ứng dụng của bạn lưu trữ dữ liệu, làm việc dễ dàng với cơ sở dữ liệu đồng thời có thể dễ dàng trao đổi dữ liệu từ server đến Parse.Push notification: Đây là 1 dịch vụ rất tiện lợi cho các nhà phát triển mobile vì Parse cung cấp sẵn việc Push notification một cách tiện lợi và vô cùng đơn giản [Tôi sẽ nói rõ hơn khi hướng dẫn làm việc với Android].Thống kê: Đây là dịch vụ để nhà phát triển nắm bắt được sự phát triển của ứng dụng mình làm ra để có những phương án phát triển tiếp theo.

Một điều đáng nói nữa là Parse cung cấp cho lập trình viên bộ thư viện đầy đủ cho gần như toàn bộ các ngôn ngữ lập trình cho Mobile [iOs, Android, Windows Phone, Unity, Xamarin, ..], cho web hay ứng dụng desktop [OsX, Windows, Php, Unity,..]. Thực sự mọi người lập trình viên đều có thể làm việc với Parse vì được cung cấp tài liệu hướng dẫn đầy đủ cho từng ngôn ngữ lập trình tại đây.

Để bắt tay vào làm quen với Parse tôi sẽ đưa ra 1 yêu cầu khá đơn giản đó là sẽ tạo ra 1 Object là Blog gồm các trường là name - author - content. Công việc yêu cầu phía backend [Php] thì cần quản trị được các Blog này và khi thêm mới sẽ gửi 1 thông báo về các client về Blog mới được thêm này. Còn về phía Client [Android App] sẽ hiển thị các Blog và hiển thị thông báo và click vào đó thì sẽ ra list các Blog gồm cả Blog mới được thêm.

Xem thêm: Cách Cập Nhật Và Cài Đặt Lại Realtek High Definition Audio Driver Là Gì ?

Tạo app mới từ Parse

Sau khi đăng ký mới 1 tài khoản chúng ta đã bắt đầu có thể sử dụng Parse cho công việc của mình, đầu tiên ta cần tạo 1 app mới. Sau khi App mới được tạo ra thì tại màn hình quản lý App ta vào phần Setting rồi vào phần Keys.

Tại đây App sẽ sinh ra các Key cho mục đích làm việc của lập trình. Ví dụ như Backend Php sẽ cần đến Application Id, REST API KeyMaster Key, Android thì cần Application IDClinet Key

Backend

Để cài đặt và sử dụng Parse cho Php ta cần phải cài Composer trước sau đó tạo 1 file là composer.json có nội dung như sau:

{ "require": { "parse/php-sdk" : "1.1.*" }}Sau đó download Parse bằng lệnh composer install . Sau khi chạy xong thì ta sẽ có thư viện Parse trong folder Vendor. Và ở đây để làm việc với Parse, tôi tạo thêm 1 file có tên là parse.php trong folder vendor vừa sinh ra. Nội dung file đó như sau

require "autoload.php";//Load toàn bộ thư viện và các hàm của Parseuse Parse\ParseObject;use Parse\ParseQuery;use Parse\ParseACL;use Parse\ParsePush;use Parse\ParseUser;use Parse\ParseInstallation;use Parse\ParseException;use Parse\ParseAnalytics;use Parse\ParseFile;use Parse\ParseCloud;use Parse\ParseClient;class Parse{ //Để chạy được Parse thì cần 3 thông số được nhập ở dưới đây là app_id, rest_id và master_id private $_app_id = ""; private $_rest_key = ""; private $_master_key = ""; private $_object_name = ""; //Khởi tạo class với tên của Object, tên Object có thể để trống public function __construct[$sObject = ""] { $this->_object_name = $sObject; $this->init[]; } //Hàm khởi tạo Parse public function init[] { ParseClient::initialize[$this->_app_id, $this->_rest_key, $this->_master_key]; } /** Hàm gửi push notification đến mọi máy di động có sử dụng đến Parse $sMessage: Là nội dung thông báo gửi đến các máy client. Parse có cung cấp cho người dùng gửi push notification đến những người dùng chọn lọc và có 2 cách chọn lọc là Chanel và Advance Targeting. Ở đây là dùng cách Advancer Targetting với việc gửi cho tất cả các máy */ public function sendPushNotification[$sMessage] { $data = array["alert" => $sMessage]; $this->init[]; $query = ParseInstallation::query[]; ParsePush::send[array[ "where" => $query, "data" => $data ]]; } /** Hàm thêm dữ liệu vào object, dữ liệu truyền vào là các mảng với key là filed và value là giá trị còn đưa vào Hàm trả về id của object do Parse sinh ra */ public function add[$aVals = ] { $oObject = new ParseObject[$this->_object_name]; foreach [$aVals as $sField => $val] { $oObject->set[$sField, $val]; } try { $oObject->save[]; return $oObject->getObjectId[]; } catch [ParseException $ex] { return false; } } /** Hàm lấy tất cả dữ liệu của 1 Object */ public function getList[] { $query = new ParseQuery[$this->_object_name]; $results = $query->find[]; return $results; } /** Hàm lấy toàn bộ thông tin của 1 Item vừa vào Id của Parse đã cung cấp lúc thêm mới Hàm trả về là 1 Object */ public function getItemById[$sObjectId] { $query = new ParseQuery[$this->_object_name]; return $query->get[$sObjectId]; } /** Hàm cập nhật dữ liệu vào object, dữ liệu truyền vào là các mảng với key là filed và value là giá trị còn đưa vào Hàm trả về item với thông tin mới cập nhật */ public function update[$aVals, $sObjectId] { if [$oObject = $this->getItemById[$sObjectId]] { foreach [$aVals as $sField => $val] { $oObject->set[$sField, $val]; } $oObject->save[]; } return $oObject->fetch[]; } /** Xóa 1 item từ database với id của Parse */ public function delete[$sObjectId] { if [$oObject = $this->getItemById[$sObjectId]] { $oObject->destroy[]; } return true; }}Giờ khi cần làm việc với Parse ta chỉ cần thêm dòng require "vendor/parse.php";. Theo yêu cầu của đề bài đưa ra thì chúng ta sẽ cần 2 trang là màn hình danh sách các Blog và xóa từng Blog và màn hình thứ 2 cho việc thêm mới, sửa xóa Blog. Tương ứng với 2 trang này tôi tạo ra 2 file index.php và add.php.

File index.php

Trang này sẽ thực hiện 2 chức năng là hiển thị toàn bộ Blog đã được thêm và, với mỗi Blog sẽ có 2 đường link để sửa và xóa từng Blog, và thêm 1 đường link để thêm mới Blog. Để xóa 1 Blog thì sẽ cần gửi đến link của file này với biến là delete có giá trị là id của Blog này lấy từ dữ liệu trả về từ Parse và sau khi xóa xong thì hiển thị danh sách mới. Tương tự link để update Blog này sẽ sang file app.php với id là Id của Blog này.

Xem thêm: Key Visual Là Gì ? 5 Xu Hướng Key Visual Doanh Nghiệp Nên Áp Dụng

Tại đây ta có thể mỗi Item mà Parse trả về đều ở dạng Object và muốn lấy các trường trong đấy ta dùng đến hàm get[tên trường], tuy nhiên có 3 hàm đặc biệt riêng của Parse đó là

Hàm getObjectId[] là để lấy id của Item.Hàm getUpdatedAt[] lấy thời điểm cập nhật gần nhất.Hàm getCreatedAt[] lấy thời gian tạo ra Item.

compile "com.parse.bolts:bolts-android:1.+" compile "com.parse:parse-android:1.+"Sau khi thêm dòng đó thì để kết nối được đến Parse thì bạn cần chạy đoạn code này:

Parse.initialize[this, "{app_id}", "{client_id}"]; ParseInstallation.getCurrentInstallation[].saveInBackground[];Và đoạn code này chúng ta cần đưa vào file Application của Android vì Plugin Parse chỉ cần được load 1 lần duy nhất. Và để load duy nhất 1 lần chúng ta cần tạo 1 file và extends đến class Application của Android và trong file AndroidManifest.xml khai báo thêm tên file class đó. Cụ thể ta sẽ tạo 1 file là ParseApplication.java với nội dung như sau:

Theo phương thức truyền thống thì khi lập trình viên mobile khi tạo ra 1 ứng dụng mà cần liên quan đến dữ liệu thì sẽ cần phải kèm theo một web developer để tạo 1 backend để có thể kết nối đến cơ sơ dữ liệu cũng như làm việc trên nó. Như vậy các lập trình viên di động sẽ cần phải đợi chờ backend và viết ra những service phục vụ cho công việc yêu cầu. Nếu cứ theo mô hình như vậy khi làm gì cũng phải phụ thuộc vào web develop và khi cần chỉnh sửa gì thì chỉ có đợi backend và đôi khi việc backend trả giá trị như thế nào thì chỉ biết như vậy. Điều này khiến cho các lập trình viên mobile khó linh động và luôn phải chờ đợi. Điều này giờ đã được giải quyết bằng cách các lập trình viên mobile sẽ làm việc trực tiếp qua 1 serice trung gian chuyên xử lý dự liệu là Parse. Trong bài viết này tôi xin hướng dẫn các bạn 1 cách cơ bản làm quen với việc sử dụng Parse cho việc lập trình cho mobile [Android] và Backend [Php].

Bạn đang xem: Parse là gì

Trước khi đi vào chi tiết tôi xin giới thiệu qua cho các bạn Parse là gì và hỗ trợ gì cho chúng ta. Bạn có thể vào trực tiếp trang chủ của Parse để có thể tìm hiểu cũng như đăng ký cho mình 1 tài khoản hoàn toàn miễn phí. Khi vào trang chủ của Parse chúng ta có thể thấy Parse cung cấp cho chúng ta 3 dịch vụ chính đó là:

Xử lý dữ liệu: Sẽ cung cấp cho ứng dụng của bạn lưu trữ dữ liệu, làm việc dễ dàng với cơ sở dữ liệu đồng thời có thể dễ dàng trao đổi dữ liệu từ server đến Parse.Push notification: Đây là 1 dịch vụ rất tiện lợi cho các nhà phát triển mobile vì Parse cung cấp sẵn việc Push notification một cách tiện lợi và vô cùng đơn giản [Tôi sẽ nói rõ hơn khi hướng dẫn làm việc với Android].Thống kê: Đây là dịch vụ để nhà phát triển nắm bắt được sự phát triển của ứng dụng mình làm ra để có những phương án phát triển tiếp theo.

Một điều đáng nói nữa là Parse cung cấp cho lập trình viên bộ thư viện đầy đủ cho gần như toàn bộ các ngôn ngữ lập trình cho Mobile [iOs, Android, Windows Phone, Unity, Xamarin, ..], cho web hay ứng dụng desktop [OsX, Windows, Php, Unity,..]. Thực sự mọi người lập trình viên đều có thể làm việc với Parse vì được cung cấp tài liệu hướng dẫn đầy đủ cho từng ngôn ngữ lập trình tại đây.

Để bắt tay vào làm quen với Parse tôi sẽ đưa ra 1 yêu cầu khá đơn giản đó là sẽ tạo ra 1 Object là Blog gồm các trường là name - author - content. Công việc yêu cầu phía backend [Php] thì cần quản trị được các Blog này và khi thêm mới sẽ gửi 1 thông báo về các client về Blog mới được thêm này. Còn về phía Client [Android App] sẽ hiển thị các Blog và hiển thị thông báo và click vào đó thì sẽ ra list các Blog gồm cả Blog mới được thêm.

Xem thêm: Cách Cập Nhật Và Cài Đặt Lại Realtek High Definition Audio Driver Là Gì ?

Tạo app mới từ Parse

Sau khi đăng ký mới 1 tài khoản chúng ta đã bắt đầu có thể sử dụng Parse cho công việc của mình, đầu tiên ta cần tạo 1 app mới. Sau khi App mới được tạo ra thì tại màn hình quản lý App ta vào phần Setting rồi vào phần Keys.

Tại đây App sẽ sinh ra các Key cho mục đích làm việc của lập trình. Ví dụ như Backend Php sẽ cần đến Application Id, REST API KeyMaster Key, Android thì cần Application IDClinet Key

Backend

Để cài đặt và sử dụng Parse cho Php ta cần phải cài Composer trước sau đó tạo 1 file là composer.json có nội dung như sau:

{ "require": { "parse/php-sdk" : "1.1.*" }}Sau đó download Parse bằng lệnh composer install . Sau khi chạy xong thì ta sẽ có thư viện Parse trong folder Vendor. Và ở đây để làm việc với Parse, tôi tạo thêm 1 file có tên là parse.php trong folder vendor vừa sinh ra. Nội dung file đó như sau

require "autoload.php";//Load toàn bộ thư viện và các hàm của Parseuse Parse\ParseObject;use Parse\ParseQuery;use Parse\ParseACL;use Parse\ParsePush;use Parse\ParseUser;use Parse\ParseInstallation;use Parse\ParseException;use Parse\ParseAnalytics;use Parse\ParseFile;use Parse\ParseCloud;use Parse\ParseClient;class Parse{ //Để chạy được Parse thì cần 3 thông số được nhập ở dưới đây là app_id, rest_id và master_id private $_app_id = ""; private $_rest_key = ""; private $_master_key = ""; private $_object_name = ""; //Khởi tạo class với tên của Object, tên Object có thể để trống public function __construct[$sObject = ""] { $this->_object_name = $sObject; $this->init[]; } //Hàm khởi tạo Parse public function init[] { ParseClient::initialize[$this->_app_id, $this->_rest_key, $this->_master_key]; } /** Hàm gửi push notification đến mọi máy di động có sử dụng đến Parse $sMessage: Là nội dung thông báo gửi đến các máy client. Parse có cung cấp cho người dùng gửi push notification đến những người dùng chọn lọc và có 2 cách chọn lọc là Chanel và Advance Targeting. Ở đây là dùng cách Advancer Targetting với việc gửi cho tất cả các máy */ public function sendPushNotification[$sMessage] { $data = array["alert" => $sMessage]; $this->init[]; $query = ParseInstallation::query[]; ParsePush::send[array[ "where" => $query, "data" => $data ]]; } /** Hàm thêm dữ liệu vào object, dữ liệu truyền vào là các mảng với key là filed và value là giá trị còn đưa vào Hàm trả về id của object do Parse sinh ra */ public function add[$aVals = ] { $oObject = new ParseObject[$this->_object_name]; foreach [$aVals as $sField => $val] { $oObject->set[$sField, $val]; } try { $oObject->save[]; return $oObject->getObjectId[]; } catch [ParseException $ex] { return false; } } /** Hàm lấy tất cả dữ liệu của 1 Object */ public function getList[] { $query = new ParseQuery[$this->_object_name]; $results = $query->find[]; return $results; } /** Hàm lấy toàn bộ thông tin của 1 Item vừa vào Id của Parse đã cung cấp lúc thêm mới Hàm trả về là 1 Object */ public function getItemById[$sObjectId] { $query = new ParseQuery[$this->_object_name]; return $query->get[$sObjectId]; } /** Hàm cập nhật dữ liệu vào object, dữ liệu truyền vào là các mảng với key là filed và value là giá trị còn đưa vào Hàm trả về item với thông tin mới cập nhật */ public function update[$aVals, $sObjectId] { if [$oObject = $this->getItemById[$sObjectId]] { foreach [$aVals as $sField => $val] { $oObject->set[$sField, $val]; } $oObject->save[]; } return $oObject->fetch[]; } /** Xóa 1 item từ database với id của Parse */ public function delete[$sObjectId] { if [$oObject = $this->getItemById[$sObjectId]] { $oObject->destroy[]; } return true; }}Giờ khi cần làm việc với Parse ta chỉ cần thêm dòng require "vendor/parse.php";. Theo yêu cầu của đề bài đưa ra thì chúng ta sẽ cần 2 trang là màn hình danh sách các Blog và xóa từng Blog và màn hình thứ 2 cho việc thêm mới, sửa xóa Blog. Tương ứng với 2 trang này tôi tạo ra 2 file index.php và add.php.

File index.php

Trang này sẽ thực hiện 2 chức năng là hiển thị toàn bộ Blog đã được thêm và, với mỗi Blog sẽ có 2 đường link để sửa và xóa từng Blog, và thêm 1 đường link để thêm mới Blog. Để xóa 1 Blog thì sẽ cần gửi đến link của file này với biến là delete có giá trị là id của Blog này lấy từ dữ liệu trả về từ Parse và sau khi xóa xong thì hiển thị danh sách mới. Tương tự link để update Blog này sẽ sang file app.php với id là Id của Blog này.

Xem thêm: Key Visual Là Gì ? 5 Xu Hướng Key Visual Doanh Nghiệp Nên Áp Dụng

Tại đây ta có thể mỗi Item mà Parse trả về đều ở dạng Object và muốn lấy các trường trong đấy ta dùng đến hàm get[tên trường], tuy nhiên có 3 hàm đặc biệt riêng của Parse đó là

Hàm getObjectId[] là để lấy id của Item.Hàm getUpdatedAt[] lấy thời điểm cập nhật gần nhất.Hàm getCreatedAt[] lấy thời gian tạo ra Item.

compile "com.parse.bolts:bolts-android:1.+" compile "com.parse:parse-android:1.+"Sau khi thêm dòng đó thì để kết nối được đến Parse thì bạn cần chạy đoạn code này:

Parse.initialize[this, "{app_id}", "{client_id}"]; ParseInstallation.getCurrentInstallation[].saveInBackground[];Và đoạn code này chúng ta cần đưa vào file Application của Android vì Plugin Parse chỉ cần được load 1 lần duy nhất. Và để load duy nhất 1 lần chúng ta cần tạo 1 file và extends đến class Application của Android và trong file AndroidManifest.xml khai báo thêm tên file class đó. Cụ thể ta sẽ tạo 1 file là ParseApplication.java với nội dung như sau:

Video liên quan

Chủ Đề