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

Membina Startup Anda: Menghampiri Tambahan Ciri Utama

by
Difficulty:IntermediateLength:LongLanguages:
This post is part of a series called Building Your Startup With PHP.
Building Your Startup: Securing an API
Using Faker to Generate Filler Data for Automated Testing

Malay (Melayu) translation by Meyria (you can also view the original English article)

Final product image
What You'll Be Creating

Tutorial ini adalah sebahagian daripada Membina Permulaan Anda Dengan siri PHP pada Envato Tuts. Dalam siri ini, saya membimbing anda melalui melancarkan permulaan dari konsep ke realiti menggunakan aplikasi Perancang Mesyuarat saya sebagai contoh kehidupan sebenar. Setiap langkah di sepanjang jalan, saya akan melepaskan kod Perancang Mesyuarat sebagai contoh sumber terbuka yang boleh anda pelajari. Saya juga akan menangani isu-isu perniagaan yang berkaitan dengan permulaan apabila ia timbul.

Cara Pendekatan Kemas Kini Ciri Utama

Hari ini saya sering bekerja untuk menambah penambahbaikan kecil untuk Perancang Mesyuarat. Asas-asasnya berfungsi dengan baik, dan saya cuba meningkatkan secara perlahan-lahan aplikasi berdasarkan pandangan saya dan maklum balas orang ramai. Kadang-kadang, penglihatan saya adalah untuk perubahan yang lebih besar, dan itu boleh menjadi lebih sukar sekarang bahawa basis kod telah berkembang begitu banyak.

Dalam tutorial hari ini, saya akan bercakap tentang cara untuk berfikir tentang membuat perubahan yang lebih besar ke asas yang sedia ada. Khususnya, saya akan memandu anda melalui kesan menambahkan keupayaan untuk bertemu peserta untuk melakukan brainstorming secara bersama dan membuat keputusan mengenai aktiviti, iaitu apa yang perlu kita lakukan apabila kita bertemu.

Sekiranya belum, cubalah untuk menjadualkan mesyuarat, dan kini anda juga boleh menjadualkan aktiviti. Ia akan membantu anda memahami semasa anda meneruskan tutorial.

Sebelum memulakan, sila ingat untuk berkongsi ulasan dan maklum balas anda di bawah. Saya memantau mereka, dan anda juga boleh menghubungi saya di Twitter @lookahead_io. Saya sangat berminat jika anda ingin mencadangkan ciri atau topik baru untuk tutorial masa depan.

Sebagai peringatan, semua kod Perancang Mesyuarat ditulis dalam Rangka Kerja Yii2 untuk PHP. Sekiranya anda ingin mengetahui lebih lanjut mengenai Yii2, periksa siri Pengaturcaraan Dengan Yii2.

Ciri Perancangan Aktiviti

Building Startups - Approaching Major Features - Planning an Activity page

Pada asasnya, Perancang Mesyuarat dan Perancang Mudah direka untuk membuat penjadualan semudah itu. Anda mencadangkan beberapa kali dan tempat dan berkongsi dengan satu lagi orang untuk mereka menimbang pada pilihan. Kemudian, anda membuat keputusan bersama, dan Perancang Mesyuarat mengesan dengan entri kalendar, peringatan dan cara mudah untuk membuat penyesuaian selepas fakta.

Sebagai contoh, inilah video penjadualan untuk kumpulan:

Saya ingin memperluas sokongan penjadualan yang disediakan untuk masa dan tempat untuk konsep aktiviti. Sebagai contoh, apabila merancang untuk bertemu dengan rakan-rakan anda, anda pada asasnya bertanya, jika kita pergi ke filem, pergi menari atau meluncur snowboarding.

Dengan kata lain, saya ingin membuat panel seperti yang ditunjukkan pada masa ini tetapi untuk aktiviti:

Building Startups - Approaching Major Features - The Older Plan a Time Panel

Seni bina MVC dan skema penamaan kod saya sangat hampir sama antara waktu dan tempat mesyuarat, jadi aktiviti pembinaan kelihatan agak mudah di permukaan. Walau bagaimanapun, keputusan untuk berbuat demikian mempunyai kesan besar.

Mengukur Perubahan

Adalah penting apabila menambah ciri besar untuk berfikir tentang kod mana yang perlu diubah dan juga semua tempat dalam aplikasi anda yang mungkin dipengaruhi untuk memikirkan kesannya.

Impak Pelanggan-Menghadapi

Dari sisi reka bentuk, saya berfikir tentang bagaimana aktiviti akan mempengaruhi perkhidmatan yang dihadapi pelanggan:

  • Ia akan mengubah penganjuran mesyuarat untuk membenarkan jenis baru, acara yang didorong oleh aktiviti. Akan ada panel tambahan pada halaman perancangan.
  • Panel aktiviti perlu direka untuk membenarkan orang memilih daripada lalai atau untuk menyesuaikan dan menambah mereka sendiri, cth. ski ski di belakang bukan hanya ski, "Pergi melihat Star Wars Rogue One" bukan hanya "Pergi menonton filem."
  • Undangan e-mel perlu memasukkan ruang ke senarai pilihan kegiatan.
  • Acara kalendar akan mahu mengintegrasikan aktiviti yang dipilih dengan subjek pertemuan.
  • Penganjur mungkin ingin menghantar beberapa idea aktiviti kepada rakan atau kumpulan tanpa memilih tempat, jadi saya perlu membenarkan perkara ini. Pada masa ini, sistem tidak membenarkan anda menghantar jemputan sehingga sekurang-kurangnya satu kali dan tempat dicadangkan.
  • Jika seseorang meminta perubahan kepada mesyuarat, sokongan untuk permintaan perubahan perlu diperluas untuk menyokong aktiviti.

Ini adalah sebahagian daripada asas-asas. Sekarang, mari kita fikirkan kod itu.

Impak Kod

Kod Cawangan Sumber

Lazimnya, membantu cawangan kod anda sendiri dalam GitHub supaya anda dapat mengerjakan ciri baru selain dari basis peringkat peringkat pengeluaran yang stabil. Ini membolehkan anda kembali dan membetulkan pepijat atau membuat perubahan tambahan yang lebih kecil semasa membuat perubahan besar. Orang GitHub lebih ketat dengan cara yang membuat rasa pasti bagi pasukan:

Terdapat satu peraturan sahaja: apa-apa dalam cawangan induk sentiasa dapat digerakkan.

Kerana hanya satu daripada saya dan saya cukup baik dalam menguruskan pangkalan saya, saya lebih adil laissez faire mengenai peraturan ini.

Tetapi kod cawangan juga berguna untuk mengkaji perubahan kod apabila anda sudah bersedia untuk ujian. Saya akan berkongsi demonstrasi ini pada akhir tutorial hari ini.

Menggalakan Kod Biasa

Akan ada dua jenis pertemuan sekarang: yang berdasarkan hanya tarikh dan masa dan orang-orang di sekitar aktiviti, tarikh, dan masa. Jadi model mesyuarat perlu disesuaikan.

Untuk masa dan tempat, terdapat model MeetingTime dan MeetingPlace serta model untuk keutamaan untuk peserta ini, yang dipanggil MeetTimeChoices dan MeetingPlace Choices. Anda boleh membaca lebih lanjut mengenai membina ini dalam Membina Permulaan Anda Dengan PHP: Penjadwalan Ketersediaan dan Pilihan.

Jadi menambah aktiviti pada dasarnya memerlukan menduplikasi ini, mewujudkan MesyuaratActivity dan MeetingActivityChoices dan pengawal, model, pandangan, JavaScript dan Ajax serta migrasi pangkalan data mereka.

Tetapan Akaun dan Mesyuarat

Selain itu, penganjur mempunyai keutamaan pelbagai tetapan akaun dan setiap tetapan mesyuarat sama ada peserta boleh mencadangkan dan memilih aktiviti akhir.

Templat E-mel

Menambah aktiviti turut mempengaruhi template e-mel untuk jemputan dan mesyuarat yang lengkap.

Sejarah dan Log Peristiwa

Memandangkan setiap pertukaran ke mesyuarat dilog, setiap pilihan aktiviti dan perubahan juga perlu dilog masuk.

Kawasan Pelbagai Lain

Fail Kalender .ics hendaklah diubah untuk menyertakan aktiviti tersebut. Pada akhirnya, API perlu dikemaskini-dan juga statistik untuk papan pemuka pentadbiran.

Walaupun kelihatannya mudah di depan, penambahan aktiviti sebenarnya memerlukan banyak kod dan ujian baru.

Sorotan Pengekodan

Walaupun terdapat terlalu banyak kod baru untuk dipenuhi dalam satu tutorial, mari kita melalui aspek yang diserlahkan dari beberapa konsep di atas.

Migrasi Pangkalan Data

Pertama, saya mencipta migrasi pangkalan data. Terdahulu saya bercakap mengenai kod replika dengan aspek ciri yang sama. Berikut adalah contoh penghijrahan MesyuaratAktiviti vs penghijrahan jadual MeetingTime yang lebih lama:

Berikut adalah penghijrahan MeetingTime, dan anda boleh melihat persamaan:

Pada akhirnya, saya memerlukan lima untuk jadual baru berikut:

  1. m161202_020757_create_meeting_activity_table
  2. m161202_021355_create_meeting_activity_choice_table, untuk menyimpan keistimewaan ketersediaan setiap peserta mesyuarat untuk setiap aktiviti
  3. m161202_024352_extend_meeting_setting_table_for_activities untuk tetapan mesyuarat tertentu untuk menambah atau memilih aktiviti
  4. m161202_024403_extend_user_setting_table_for_activities untuk tetapan lalai akaun
  5. m161203_010030_extend_meeting_table_for_activities dan untuk menambah is_activity untuk menandakan sifat pertemuan dengan atau tanpa aktiviti

Membina Rangka Kerja MVC untuk Aktiviti

Building Startups - Approaching Major Features - The Gii Scaffolding Menu

Saya menggunakan kemampuan perancah Gii Yii untuk mencipta model, pengawal, dan pandangan awal. Saya telah menutup migrasi dan Gii lebih awal dalam siri ini.

JavaScript dan Perubahan jQuery

Terdapat juga penambahan besar pada JavaScript dan jQuery yang digunakan, terutama sekali sekarang yang berinteraksi dengan elemen perancangan untuk pertemuan dilakukan dengan Ajax, tanpa menyegarkan halaman.

Di sini, misalnya, ialah gelung kod untuk melihat jika masa mesyuarat dipilih:

Dengan menggunakan skema penamaan umum, menulis kod untuk aktiviti boleh direplikasi dari ini:

Fungsi lain, seperti yang memaparkan tindak balas kepada pengguna, hanya perlu dilanjutkan untuk aktiviti:

Walaupun dengan ciri yang begitu mencerminkan kualiti sebagai ciri yang ada, penambahan kod baru adalah luas. Contohnya, contohnya JavaScript. Kod ini merangkumi lebih banyak fungsi ajax interaktif waktu mesyuarat di halaman perancangan:

Tambahan Kerangka

Sudah tentu, terdapat model, pengawal dan pandangan yang perlu ditambah. Berikut adalah petikan dari model MeetingActivity.php yang menyenaraikan beberapa aktiviti lalai yang pengguna boleh dengan cepat menaip jenis:

Building Startups - Approaching Major Features - Activity Typeahead List

Dan inilah petikan dari /frontend/views/activity/_form.php dengan widget TypeaheadBasic menggunakan defaultActivityList() di atas:

Tetapi ada banyak perubahan pada kod di luar keperluan kerangka umum. Berikut adalah canSend() model Meeting.php, fungsi yang menentukan sama ada pengguna dibenarkan menghantar jemputan untuk mesyuarat. Ia menentukan jika mesyuarat memenuhi keperluan minimum untuk menghantar, seperti mempunyai masa dan aktiviti atau masa dan tempat.

Di bawah, anda dapat melihat bagaimana seksyen baru perlu ditambah untuk aktiviti:

Templat E-mel

Mengemaskini susun atur e-mel memerlukan sedikit pemikiran tentang reka bentuk dan cara terbaik untuk membentangkan aktiviti dalam memenuhi jemputan dan pengesahan. Berikut adalah contoh jemputan emel terkini:

Building Startups - Approaching Major Features - Email Invitation Theme

Pada dasarnya, jika pertemuan mempunyai kegiatan, maka jemputan itu termasuk baris lebar di atas waktu dan tempat, sekali lagi mereplikasi banyak kod yang ada untuk waktu dan tempat:

Menggambarkan Perubahan

Pada akhirnya, ciri aktiviti memerlukan cawangan kod baru yang besar. Inilah permintaan tarik:

Ia begitu besar sehingga saya memutuskan untuk membuat video bergulir yang menyenangkan melalui semua perubahan dalam GitHub dengan muzik yang sesuai bermain di latar belakang ... menikmati:

Secara keseluruhannya, membina ciri-ciri aktiviti adalah mencabar dan bermanfaat untuk saya berfikir tentang seni bina laman web dan bagaimana untuk membuat kemajuan cepat dan stabil pada asas satu permulaan satu orang. Gunakan replikasi, tetapi terangkan terlebih dahulu pada keseluruhan skop.

Ciri aktiviti akhirnya menyentuh lebih banyak kawasan daripada yang saya jangkakan.

Perancangan ke depan akan membantu anda mengelakkan terjebak dalam perangkap pengekalan tidak pernah berakhir untuk ciri-ciri baru. Jika anda mendapati diri anda dalam parit yang mendalam, mimpi ngeri kod yang tidak akan berakhir, semak perubahan anda ke cawangan ciri anda, beralih kembali kepada tuan, dan kerja pada sesuatu yang lain. Ia membantu membersihkan kepala anda.

Saya pasti mengambil pendekatan yang sedikit berbeza untuk membimbing anda dalam episod ini, dan saya harap ia membantu.

Mempunyai pemikiran anda sendiri? Idea? Maklum balas? Anda sentiasa boleh menghubungi saya di Twitter @lookahead_io secara langsung. Tonton tutorial yang akan datang di sini dalam Membina Permulaan Anda Dengan siri PHP. Ada banyak perkara yang mengejutkan di hadapan.

Sekali lagi, jika anda belum mencuba Perancang Mesyuarat atau Perancang Mudah, teruskan dan jadwal pertemuan pertama anda:

Pautan Berkaitan

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.