Penggunaan fungsi UNSTRINGIFY pada PHP

Indonesian (Bahasa Indonesia) translation by Muhammad Gufron (you can also view the original English article)

Saya penggemar berat Parse, teknologi yang membuat pengembangan web dan aplikasi mobile lebih cepat. Hal ini memungkinkan Anda menyimpan, sinkronisasi dan push data di Internet tanpa menulis baris kode sisi server. Baca terus untuk melihat bagaimana Anda dapat mengintegrasikan Parse di proyek berikutnya.


Sedikit latar belakang

Berinteraksi dengan database sangat menyenangkan!

Mari kita mengambil langkah mundur dan mengevaluasi pengembangan web pada lima tahun yang lalu. Kami menggunakan bahasa seperti PHP Ruby pada back-end yang berinteraksi dengan database relasional (seperti MySQL), dan kami front-end penuh dengan berbagai file JavaScript. Aku tidak tahu tentang Anda, tetapi sebagian besar proyek-proyek saya adalah pada beberapa server dengan sejumlah kecil dari ruang disk, RAM dan bandwidth.

Banyak teknologi baru leverage cloud, dan hal ini tidak jarang untuk melihat pengembang yang mengambil keuntungan dari layanan ini hemat biaya, seperti AWS, Amazon S3, Heroku, dan banyak lagi. Pengenalan layanan ini pada dasarnya mengubah landscape pengembangan web; lebih dari apa yang kita lakukan di cloud.

Hari ini, kita akan melihat Parse, startup yang menawarkan sistem manajemen berbasis data. Dengan memanfaatkan layanan mereka, saya mampu untuk dengan cepat menciptakan mobile baru dan aplikasi web. Kita akan menggunakan Parse untuk membuat aplikasi web wajib To-do, dan saya berharap hal ini memberi Anda rasa apa yang Layanan dapat menawarkan.

Penggunaan fungsi UNSTRINGIFY pada PHP
Penggunaan fungsi UNSTRINGIFY pada PHP
Penggunaan fungsi UNSTRINGIFY pada PHP


Apa itu Parse?

Sederhananya, Parse adalah sebuah sistem manajemen data berbasis Internet yang memungkinkan Anda dengan cepat mengembangkan web dan aplikasi mobile.

Itu membuat mengembangkan aplikasi benar-benar mudah dengan mengambil back-end dari tangan Anda.

Jadi, Bagaimana Apakah ini bekerja? Yah, mari kita asumsikan Anda seorang web developer. Anda dapat menambahkan file Parse JavaScript pada halaman Anda, Dapatkan kunci API, dan mulai menyimpan "objek" di dalam cloud dengan hanya beberapa baris kode. Parse membebaskan Anda dari menyiapkan tumpukan sisi server.

Pikirkan hal ini sejenak. Sederhananya, Anda mengatur tumpukan sisi server (lampu, atau RoR, ASP.NET, atau sesuatu yang lain), set up database, dan kemudian berinteraksi dengan itu melalui Ajax pada klien. Parse hanya mengurangi semua yang bekerja untuk beberapa baris kode.

Dalam tutorial ini, kita akan menggunakan Parse JavaScript SDK. Anda tidak terbatas hanya menggunakan JavaScript, namun; ada library Parse dalam banyak bahasa yang berbeda, termasuk PHP, NodeJS, Java, C# dan banyak lagi. Anda dapat menemukan semua library tersedia di sini.


Menggunakan Parse untuk proyek berbasis Web Anda

Sebelum kita mulai, mari kita luangkan waktu sebentar dan berpikir bagaimana sebuah To-do list app sederhana dapat dibuat menggunakan LAMP stack.

  • Anda dapat membuat sebuah database MySQL.
  • Anda mungkin memiliki kelas PHP yang menangani operasi CRUD. Opsional, Anda hanya bisa memiliki banyak fungsi PHP.
  • Anda dapat menggunakan JavaScript dan Ajax di sisi klien memanggil skrip PHP masing-masing dan lulus dalam query string.
  • Anda akan perlu untuk membersihkan input untuk melindungi terhadap serangan XSS, serta khawatir tentang keamanan database secara umum.
  • Jika sebuah aplikasi kolaboratif, Anda akan perlu untuk melacak pengguna yang berbeda dan mengelola daftar mereka. Kode yang lain, lebih banyak tabel, dan skema yang lain.
  • Anda akan perlu untuk memastikan bahwa database Anda tetap performant.

Anda paham idenya. Ada banyak untuk berpikir tentang dan banyak daerah untuk membuat error. Parse menangani masalah ini bagi kita.

Membuat Account Parse

Sebelum Anda melakukan apapun, buatlah Parse account gratis. Kemudian menciptakan sebuah aplikasi baru yang disebut EnvatoTodo.

Penggunaan fungsi UNSTRINGIFY pada PHP
Penggunaan fungsi UNSTRINGIFY pada PHP
Penggunaan fungsi UNSTRINGIFY pada PHP

Download Proyek Kosong

Parse menyediakan panduan QuickStart besar untuk membantu Anda memulai. Pilih JavaScript dan memilih EnvatoTodo dari drop-down menu di langkah 2 (ditunjukkan dalam gambar di bawah). Parse akan menghasilkan sebuah file zip yang berisi Parse SDK dan index.html.

Penggunaan fungsi UNSTRINGIFY pada PHP
Penggunaan fungsi UNSTRINGIFY pada PHP
Penggunaan fungsi UNSTRINGIFY pada PHP

Sisi klien

Sebelum kita mulai berinteraksi dengan Parse, mari kita mengatur struktur sisi klien dasar untuk aplikasi kita. Karena UI tidak fokus dari aplikasi ini, saya hanya akan menunjukkan Anda kode yang saya gunakan. Tidak mewah, tapi saya menggunakan YUI3. Anda opsional dapat menggunakan jQuery. Semuanya ada di index.html.



  

  Todo App Built on Parse
  
  
  
  
  
  

    



  

Todo List built on Parse

Incomplete Tasks

  • There are no incomplete tasks! Consider adding one above.

Hal penting yang harus diperhatikan dalam kode di atas adalah dimasukkannya Parse JavaScript file, . File ini berisi objek Parse yang kita akan berinteraksi dengannya.

Menambahkan kelas dalam Data Browser

Mengurai membebaskan Anda dari mendirikan setumpuk sisi server.

Mari kita kembali untuk Parse. Lihat Data Browser untuk EnvatoTodo (itu masih kosong). Data Browser ini mirip dengan sebuah MySQL database server, tapi Parse DB tanpa skema. Meskipun Anda dapat menentukan kolom dalam Data Browser, Anda benar-benar dapat menyimpan objek dengan sederhana JSON (tidak seperti banyak NoSQL dokumen database). Ini adalah fitur yang sangat penting dan berguna dari Parse.

Kita akan pergi ke depan dan menambahkan "class" ke database. Pikirkan kelas sebagai meja. Ini disebut kelas alasannya karena Anda akan umumnya membuat objek dari kelas tertentu dan kemudian menyimpan objek ke database.

Disclaimer: JavaScript secara resmi tidak memiliki kelas (belum), tetapi memiliki setara dengan logis. Demi kesederhanaan, saya akan menggunakan istilah "class" dalam tutorial ini.

Parse memiliki lima jenis kelas.

  • Kelas User menyimpan informasi pengguna tertentu, dan Parse menyediakan metode sugar seperti signUp(), login() dan lebih banyak untuk membantu dengan administrasi pengguna.
  • Instalasi class biasanya digunakan untuk mengirim pemberitahuan push untuk aplikasi mobile. Ya, Parse mendukung push notification untuk semua klien.
  • Role class membantu memisahkan pengguna ke role tertentu, mengontrol akses ke membaca/menulis ke kelas-kelas lain. Ini disebut ACL (access control list) dalam Parse.
  • Kelas produk menyimpan data produk di app.
  • Kelas kustom adalah untuk apa pun.

Mari kita membuat sebuah class custom yang disebut ListItem. Setelah itu dibuat, Anda akan melihat itu sudah memiliki empat properti. Parse otomatis update properties dari setiap kelas yang Anda buat. Beberapa kelas, seperti kelas pengguna, mungkin memiliki properti tertentu yang mereka miliki sendiri.

Objek ListItem kami akan berisi properti content untuk menunjukkan apa yang berisi Todo, dan isComplete properti untuk menunjukkan apakah Todo selesai. Kita bisa menambahkan kolom untuk properti ini, tapi Parse akan mengetahuinya dari JSON kami.

Inisialisasi Parse

Mari kita kembali ke index.html untuk menambahkan beberapa kode. Hal pertama yang ingin kita lakukan adalah menginisialisasi Parse dengan kunci kami App ID dan JavaScript. Ini dapat ditemukan di bawah tab tampilan aplikasi Anda di dalam Data Browser. Tambahkan baris berikut ke JavaScript Anda, menggantikan APP_ID dan JS_KEY dengan nilai yang sesuai:

Parse.initialize(APP_ID, JS_KEY);

Menyimpan Todos

Mari kita mulai menambahkan fungsionalitas ke aplikasi kita. Kita pertama akan menyimpan To-do item daftar ketika pengguna mengklik tombol add. Kode berikut adalah semua yang kita butuhkan untuk fungsi ini:

submitBtn.on('click', function(e) {

    //Extend the native Parse.Object class.
    var ListItem = Parse.Object.extend("ListItem");

    //Instantiate an object of the ListItem class
    var listItem = new ListItem();

    //listItem is now the object that we want to save, so we assign the properties that we want on it.
    listItem.set("content", text);
    listItem.set("isComplete", false);

    //We call the save method, and pass in success and failure callback functions.
    listItem.save(null, {       
        success: function(item) {
        //Success Callback 
    },
    error: function(gameScore, error) {
        //Failure Callback
    }
    });
});

Berinteraksi dengan database sangat tidak menyakitkan! Setiap kelas kustom dalam mengurai mewarisi dari Parse.Object; oleh karena itu, ListItem adalah sebuah subclass. Argumen string "ListItem" memberitahu Parse bahwa kelas ini berkorelasi dengan tabel ListItem bahwa kita diciptakan. Kemudian kita membuat objek ListItem baru, menetapkan sifat, dan memanggil save().

Menampilkan item

Untuk menampilkan daftar item agenda, kita akan menggunakan Parse JavaScript API untuk query sepuluh item yang paling baru-baru ini disimpan, dan daftar orang-orang di bawah aplikasi. Ini akan memberi Anda ide bagaimana pertanyaan bekerja di Parse.

//Once again, we extend the Parse.Object class to make the ListItem class
ListItem = Parse.Object.extend("ListItem");

//This time, we use Parse.Query to generate a new query, specifically querying the ListItem table.
query = new Parse.Query(ListItem);

//We set constraints on the query.
query.equalTo('isComplete', false)
query.limit = 10;
query.descending('createdAt');

//We submit the query and pass in callback functions.
query.find({
  success: function(results) {
    //Success callback
  },
  error: function(error) {
    //Error Callback
  }
});

Sekali lagi, itu cukup sederhana dan mudah dibaca. Metode Parse.Query() cukup kuat. Di sini, kami melakukan query cukup mendasar, tetapi mengurai pertanyaan dapat menjadi kompleks juga. Anda dapat permintaan untuk string biasa yang spesifik, melakukan query relasional, dan banyak lagi. Pastikan untuk mengunjungi Query dokumentasi untuk informasi lebih contoh dan potongan kode.

Letakkan ini semua bersama

Hal berikutnya yang perlu kita tambahkan adalah kemampuan untuk menandai sebuah to-do item selesai ketika memeriksa item checkbox. Setiap checkbox memiliki id unik yang terkait dengan objek mengurai yang diwakilinya. Oleh karena itu, ketika kotak centang diklik, kita perlu:

  • Dapatkan id.
  • Permintaan untuk parse objek dengan id.
  • Mendapatkan kembali Parse objek, dan memperbarui isComplete properti itu sebagai true.
  • Simpan objek yang diperbarui.
  • Menghapusnya dari daftar yang ditampilkan.

Berikut adalah kode apa yang tampak seperti:

incompleteItemList.delegate('click', function (e) {

    //keep a reference to this
    var self = this;

    //create a Parse query object
    var query = new Parse.Query(ListItem);

    //The query.get() method requires the objectId as its first argument. It returns the object with that id.
    query.get(self.one('input').get('id'), {
      success: function(item) {

        //Once the object is returned, we update its property and save it.
        item.set('isComplete', true);
            item.save();

            //Since the item is no longer incomplete, we remove it from the list.
            self.remove();

            //If there's nothing in the list, show a message saying the list is empty. 
            if (incompleteItemList.all('li').size() >= 1) {
                noTasksMessage.removeClass('hidden');
            }

      },
      error: function(object, error) {
            alert("Error when updating todo item: " + error.code + " " + error.message);
      }
    });
}, 'li');

Dalam snippet ini, kita query untuk elemen individu dengan id tertentu, update dan menyimpannya. Kemudian kami menghapusnya dari daftar dengan self.remove().

Dalam Parse, memperbarui objek ini sangat mirip dengan menyimpan objek--kita memanggil save() dalam kedua kasus. Mengurai angka keluar Apakah itu adalah objek (kotor) yang ada, atau objek yang sama sekali baru dan melakukan tindakan yang sesuai.

Source Code Lengkap

Dengan itu, kita sedang baik untuk pergi! Cukup mudah, eh? Download file ZIP terlampir dan membuka index.html untuk melihat kode sumber seluruh.


Fitur lain

Dalam tutorial ini, kami terutama melihat Parse dari web pengembangan point-of-view. Namun, Layanan ini awalnya dimulai dengan pengembang mobile di pikiran. Parse memiliki SDK sangat teliti untuk Android dan iOS, dan mendukung fitur seperti pemberitahuan push untuk semua pengguna dari aplikasi mobile Anda.

Beberapa fitur besar lain bahwa kami tidak menutupi dalam tutorial ini melibatkan pengguna, role, dan menyimpan informasi relasional.

Parse membuatnya relatif sederhana untuk membuat pengguna, dan menetapkan peran yang berbeda kepada mereka. Sebagai contoh, dalam pembelajaran sistem manajemen, Anda mungkin memiliki "Teachers", "Students", dan "Administrators". Dengan menetapkan role, Anda dapat menentukan jenis pengguna memiliki akses ke Parse objek tertentu.


Bagaimana dengan Security?

Banyak teknologi baru memanfaatkan internet...

Sebagai seorang pengembang, saya suka Parse mengurus banyak masalah keamanan yang saya miliki. Ketika ia menyatakan di situs web, Parse SDK dirancang "agar Anda biasanya tidak perlu khawatir tentang bagaimana data disimpan." Masih ada masalah pengguna memiliki akses ke informasi yang mereka tidak mampu. Untuk mengatasi masalah ini, Parse menawarkan izin tingkat objek dan tingkat-kelas.

Permission tingkat objek memungkinkan seorang pengembang untuk menentukan sebuah array objek id yang memiliki akses untuk membaca dan/atau menulis objek. Tingkat-kelas permissions memungkinkan pengembang untuk menentukan apa aspek Class Parse dapat dimanipulasi dari API. Operasi berikut dapat diperbolehkan atau ditolak secara per kelas: Get, Find, Update, Create, Delete, dan Add Field.


Pro dan Kontra

Saya ingin menekankan adalah bahwa Parse tidak cocok untuk setiap jenis proyek. Meskipun rencana gratis sangat murah hati, Parse adalah layanan berbayar. Itu bisa mahal jika Anda pergi di atas batas-batas tertentu. Untungnya, model harga sangat transparan, dan Anda harus dapat mengetahui berapa banyak aplikasi Anda dapat biaya. Secara umum, saya menggunakannya untuk proyek-proyek kecil dimana saya dapat mengantisipasi topi tertentu ketika datang ke jumlah permintaan API yang kubuat. Saya belum mencoba mengurai untuk sebuah proyek besar.

Salah satu masalah umum dengan layanan seperti mengurai adalah lock-in efek.

Jika Anda menggunakan Parse untuk proyek kecil yang tiba-tiba menghentikannya, dapat menjadi sulit untuk pindah ke layanan perbedaan atau platform. Seperti yang dapat Anda bayangkan, menggantikan Parse dengan back-end sendiri akan memerlukan sejumlah besar refactoring. Ini tidak berarti Anda tidak boleh menggunakan Parse, tapi itu adalah sesuatu yang perlu diingat.


Dalam tutorial ini, kita melihat bagaimana kita dapat menggunakan Parse untuk menciptakan sebuah aplikasi web yang relatif sederhana. Saya telah menggunakan layanan ini untuk sejumlah proyek-proyek untuk berbagai klien, dan saya menemukan tim mengurai akan sangat membantu ketika masalah muncul. Saya mendorong Anda coba layanan, dan membuat keputusan Anda sendiri!

Pengungkapan: saya memiliki tidak memiliki hubungan dengan Parse atau salah satu karyawannya. Aku hanya seorang pengembang yang menggunakan layanan mereka, dan saya menemukan untuk menjadi tambahan bermanfaat untuk alur kerja pengembangan.