Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. Yii
Code

Membangun Startup Anda: Menggunakan Route untuk Menjadwalkan Dengan Saya

by
Difficulty:IntermediateLength:MediumLanguages:
This post is part of a series called Building Your Startup With PHP.
Building Your Startup: Leveraging Bootstrap, Ajax, and jQuery
Building Your Startup: Leveraging Crowdfunding

Indonesian (Bahasa Indonesia) translation by Kurniawan Sugi Purwanto (you can also view the original English article)

Final product image
What You'll Be Creating

Tutorial ini adalah bagian dari Seri Membangun Startup Anda Dengan PHP di Envato Tuts+. Dalam seri ini, saya akan memandu Anda dalam perintisan usaha rintisan dari konsep hingga kenyataan dengan menggunakan aplikasi Meeting Planner saya sebagai contoh di kehidupan nyata. Untuk setiap langkah di sepanjang perjalanan, saya akan merilis kode Meeting Planner sebagai contoh sumber terbuka yang Anda bisa mempelajarinya. Saya juga akan menunjukkan isu-isu terkait usaha rintisan ketika isu tersebut muncul.

Baru-baru ini saya bertanya apakah seri rintisan kami telah menginspirasi ide-ide kewirausahaan Anda dan membuat Anda menulis kode. Jika ya, silakan berbagi sedikit dengan kami di komentar.

Mari Bertemu, Kunjungi Halaman Saya Schedule With Me

Untuk waktu yang lama sejak saya memulai proyek ini, saya menginginkan Meeting Planner dan Simple Planner punya halaman yang bisa diakses oleh umum yang bisa Anda bagikan dengan orang untuk menjadwalkan rapat dengan Anda. Dengan kata lain, "Tentu saja, mari bertemu, kunjungi saja halaman saya schedule with me di Meeting Planner, saya Bernie Sanders (tanpa spasi)."

Dalam tutorial hari ini, akan saya tunjukkan pada Anda yang telah saya lakukan padanya dengan menggunakan routing Yii dan beberapa isu terkait yang muncul.

Jika Anda belum mencoba penjadwalan suatu rapat, Anda bisa melihat cara melakukannya dalam video di bawah ini:

Halaman Schedule With Me adalah sesuatu semacam halaman PayPal Pay Me:

Building Your Startup Schedule With Me - Paypal Pay Me

Saya sungguh berpartisipasi dalam thread komentar di bawah ini, jadi beritahu saya apa yang Anda pikirkan! Anda juga bisa menjangkau saya di Twitter @lookahead_io. Saya pada khususnya tertarik jika Anda ingin fitur-fitur baru atau menyarankan topik untuk tutorial-tutorial di kemudian hari.

Sebagai pengingat, semua kode Meeting Planner ditulis dalam Framework Yii2 untuk PHP. Jika Anda ingin belajar lebih banyak tentang Yii2, silakan cek seri paralel kami Pemrograman Dengan Yii2.

Mari kita mulai.

Merencanakan Halaman Schedule With Me

Building Your Startup Schedule With Me - Bernie Sanders Schedule With Me

Catatan: Sejauh ini setahu saya Bernie bukanlah pengguna Meeting Planner

Tiap pengguna Meeting Planner punya nama pengguna yang unik, misalnya berniesanders, dan saya putuskan untuk menggunakannya dalam URL schedule with me. Ada sedikit tantangan terhadap fitur ini:

  1. Mendesain halamannya
  2. Bekerja dengan Yii Routing untuk memetakan root path ke tiap orang.
  3. Mengelola signup, login, dan kembali ke schedule (jadwal)

Mendesain Halamannya

Terinpirasi oleh halama PayPal Pay Me (di atas) dan yang lain yang serupa, pada awalnya saya ingin membuat tetap sederhana. Saya menggunakan kisi-kisi responsif dengan offset dan ditengahkan:

Berikut adalah tampilan /frontend/views/meeting/scheduleme.php untuk halamannya:

Kode tersebut menampilkan profil gambar yang diunggah pengguda dalam pengaturan pengguna atau yang digunakannya di Gravatar umum.

Tentu saja saya menggunakan /frontend/web/css/site.css untuk mengubahsuai marjin, bingkai, dan latar belakang:

Mengelola Perubahan Yii Routing

Routing untuk cara Yii menangani permintaan peramban yang masuk ditangai dalam /frontend/config/main.php di bawah component. Jika Anda tidak cermat dalam mengonfigurasinya, Anda bisa menghancurkan keseluruhan aplikasinya karena permintaan yang masuk gagal ke pesan kesalahan.

Berikut adalah routing yang lebih awal sebelum schedule with me: 

Saya telah menulis sedikit tentang routing di Bagaimana Pemrograman Dengan Yii2: Perilaku yang Sluggable, bagian dari seri pemrograman Yii kami, dan Anda bisa membaca lebih banyak latar belakangnya di Yii documentation.

Dalam Membangun Startup Anda: Rapat Dengan Banyak Peserta, saya menulis dua episode tentang dynamic path dengan nama pengguna untuk URL unik rapat sebagaimana ditunjukkan di bawah ini:

'<username>/<identity:[A-Za-z0-9_-]{8}>' => 'meeting/identity',

Ini akan memecah banyak route dua item seperti meeting/[meeting_id] sampai saya menggerakkan lebih banyak pemetaan dinamis (dynamic mapping) di atas untuk diprioritaskan.

Tambahkan item path kedua apa saja dengan karakter yang dibutuhkan untuk didefinisikan secara statis karena string identitas untuk rapat adalah sebanyak delapan karakter, misalnya features.

Routes seperti features bersifat tetap, yang menuju ke controller sites dan features action sebagaimana ditunjukkan di atas. Fitur-fitur lainnya dipetakan secara dinamis sebagaimana di: '<controller:\w+>/<action:\w+>' => '<controller>/<action>',

Cobalah untuk membuat route variable dinamis one-item seperti /[username], misalnya https://meetingplanner.io/berniesanders, memecahkan banyak route item tunggal seperti https://meetingplanner.io/about dan halaman pengingat https://meetingplanner.io/reminder.

Jadi saya harus memulai secara statis mendefinisikan sebagian besarnya.

Berikut adalah routing akhir dengan route statis baru untuk path satu kata:

Dan Anda bisa mengecek "halaman Bernie" dan menjadwalkan pertemuan dengannya di sini:

https://simpleplanner.io/berniesanders

Catatan: Meeting Planner dan Simple Planner bekerja saling menggantikan, dan saya menjalankan kedua situs tersebut untuk menawarkan multi brand bagi para pengguna. Simple planner adalah untuk bersama-sama secara sosial sedangkan Meeting Planner adalah lebih terkait dengan bisnis.

Menangani Signup dan Login dari Halaman Schedule With Me

Sebagian besar orang yang melakukan kunjungan awal ke halaman schedule with me tidak akan memiliki akun kita. Jadi mereka akan diarahkan ke halaman signup atau login ketika mengklik Schedule With Me.

Setelah mereka masuk, kita ingin mengembalikan mereka ke halaman pembuatan rapat yang dimuat sebelumnya dengan pemilik halaman schedule with me sebagai partisipan. Kita menggunakan setReturnUrl untuk melakukan ini:

Ini akan memperbarui sesi (biasanya melalui cookie) sehingga setelah orang mendaftar (signup) atau masuk (login), mereka akan dikembalikan ke halaman target.

Berikut adalah metode lengkap /frontend/controllers/MeetingController.php actionScheduleme:

Menambahkan Pemilik Halaman Penjadwalan sebagai Partisipan

Berikut adalah metode /frontend/controllers/MeetingController.php actionCreate:

Ini akan memroses id pengguna pemilik halaman schedule with me sebagai $with_id untuk menambahkan mereka sebagai seorang partisipan. Dan juga mengecek terlebih dahulu untuk memastikan tidak ada lagi pertemuan antara kedua orang itu—untuk menghindari duplikat.

Awalnya saya menambahkan fitur untuk mencegah pengguna membuat rapat baru aabila sudah ada rapat baru kosong lainnya yang sudah mereka buat sebelumnya.

Melihat ke Depan

Akan ada beberapa hal terkait halaman ini yang akan saya bersihkan di kemudian hari setelah saya bicara dengan pengguna sungguhan dan mengumpulkan umpan balik. Mungkin saya akan secara otomatis membagikan hari dan waktu pengguna yang paling sering untuk rapat. Dan saya akan membuat pengaturan pengguna untuk mematikan halaman penjadwalan jika Anda tidak menginginkannya.

Penutup

Semua pekerjaan yang saya lakukan baru-baru ini dengan Bootstrap untuk membuat antarmuka responsif yang lebih baik bagi Meeting Planner memudahkan saya untuk dengan cepat menulis kode halaman schedule with me.

Memastikan bahwa route baru Yii bekerja dan tidak merusak apapun di situsnya adalah bagian tersulit di sini. Saya juga memeriksa semua panggilan Ajax untuk memastikan tak ada satupun yang terdampak.

Saya harap tutorial hari ini bermanfaat bagi Anda untuk belajar mengubahsuai URL situs bagi basis pengguna Anda dan dasar-dasar routing MVC.

Anda punya pemikiran? Ide? Umpan balik? Anda selalu bisa menghubungi saya di Twitter @lookahead_io secara langsung. Lihat tutorial-tutorial yang akan datang di sini, di seri Membangun Startup Anda Dengan PHP. Sejumlah fitur keren sedang disiapkan.

Sekali lagi, jika Anda belum mencoba Meeting Planner atau Simple Planner, cobalah dan jadwalkan rapat pertama Anda.

Tautan-Tautan Terkait

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.