Pemberitahuan dan peringatan masa nyata sistem pengundian dalam talian yang dibangunkan oleh PHP
Dalam masyarakat moden, sistem pengundian dalam talian digunakan secara meluas dalam pelbagai senario, seperti pembuatan keputusan dalaman syarikat, pemilihan kesatuan pelajar, dsb. Untuk meningkatkan pengalaman pengguna dan kecekapan sistem pengundian, kami selalunya perlu menambah pemberitahuan masa nyata dan fungsi peringatan pada sistem untuk segera memberitahu peserta mengundi tentang keputusan pengundian atau maklumat penting. Artikel ini akan memperkenalkan cara menggunakan PHP untuk membangunkan sistem pengundian dalam talian dan menambah fungsi pemberitahuan dan peringatan masa nyata.
Pertama, kita perlu membina sistem pengundian dalam talian asas. Anda boleh menggunakan rangka kerja PHP seperti Laravel atau menulis kod PHP sendiri. Dalam artikel ini, kami akan menggunakan rangka kerja Laravel untuk menunjukkan.
Pertama, kita perlu mencipta pangkalan data sistem pengundian. Anda boleh menggunakan phpMyAdmin atau alat pengurusan pangkalan data lain untuk mencipta pangkalan data baharu dan membuat jadual undian dan jadual pengguna yang sepadan.
Dalam sistem pengundian, pengguna perlu mendaftar dan log masuk sebelum mereka boleh mengambil bahagian dalam mengundi. Kita boleh menggunakan sistem pengesahan yang disertakan dengan rangka kerja Laravel untuk membina fungsi pendaftaran dan log masuk pengguna dengan cepat. Semasa mendaftar, kita perlu mendapatkan nombor telefon bimbit atau alamat e-mel pengguna sebagai maklumat hubungan.
Dalam sistem pengundian, pentadbir perlu membuat tinjauan pendapat dan menetapkan pilihan pengundian. Kita boleh membuat jadual data bernama undi untuk menyimpan maklumat pengundian. Jadual boleh mengandungi medan seperti berikut:
Pertama, kita perlu mencipta acara baharu, seperti VoteCreatedEvent. Acara itu boleh mengandungi maklumat pengundian, serta maklumat lain yang berkaitan yang diperlukan untuk menghantar pemberitahuan. Kami kemudiannya boleh membuat pendengar acara, VoteCreatedListener, di mana pemberitahuan dihantar kepada semua pengguna log masuk.
Berikut ialah contoh kod:
// VoteCreatedEvent.php namespace AppEvents; use IlluminateFoundationEventsDispatchable; use IlluminateQueueSerializesModels; class VoteCreatedEvent { use Dispatchable, SerializesModels; public $vote; public function __construct($vote) { $this->vote = $vote; } } // VoteCreatedListener.php namespace AppListeners; use AppEventsVoteCreatedEvent; use IlluminateContractsQueueShouldQueue; use IlluminateQueueInteractsWithQueue; use Notification; use AppNotificationsNewVoteNotification; class VoteCreatedListener implements ShouldQueue { use InteractsWithQueue; public function handle(VoteCreatedEvent $event) { $vote = $event->vote; $users = User::all(); Notification::send($users, new NewVoteNotification($vote)); } } // NewVoteNotification.php namespace AppNotifications; use IlluminateBusQueueable; use IlluminateContractsQueueShouldQueue; use IlluminateNotificationsMessagesMailMessage; use IlluminateNotificationsNotification; class NewVoteNotification extends Notification { use Queueable; protected $vote; public function __construct($vote) { $this->vote = $vote; } public function via($notifiable) { return ['mail']; } public function toMail($notifiable) { return (new MailMessage) ->line('新投票已发布,请尽快参与投票') ->line('投票标题:' . $this->vote->title) ->action('立即参与', url('/vote/' . $this->vote->id)) ->line('感谢您的参与!'); } }
Dalam kod di atas, VoteCreatedEvent mewakili acara penciptaan undi, VoteCreatedListener ialah pendengar untuk acara pengundian dan NewVoteNotification ialah maklumat pemberitahuan yang dihantar. Kami menggunakan kelas Pemberitahuan Laravel dalam VoteCreatedListener untuk menghantar pemberitahuan e-mel kepada semua pengguna yang log masuk Kandungan pemberitahuan termasuk tajuk undian dan pautan penyertaan.
Lawati halaman pengundianAnda boleh menggunakan fungsi Penyiaran Laravel untuk mencapai fungsi kemas kini masa nyata. Pertama, kita perlu mengkonfigurasi pemacu dan saluran siaran Laravel. Kami kemudiannya boleh menggunakan pustaka Echo Laravel untuk melanggan saluran undian dan menggunakan kod JavaScript dalam halaman untuk mengemas kini keputusan pengundian dalam masa nyata.
Berikut ialah contoh kod:
// resources/js/app.js import Echo from 'laravel-echo'; window.io = require('socket.io-client'); window.Echo = new Echo({ broadcaster: 'socket.io', host: 'http://localhost:6001', });
// routes/channels.php use IlluminateSupportFacadesBroadcast; Broadcast::channel('vote.{voteId}', function ($user, $voteId) { return true; });
// VoteController.php namespace AppHttpControllers; use IlluminateHttpRequest; use AppModelsVote; class VoteController extends Controller { public function show($id) { $vote = Vote::findOrFail($id); return view('vote.show', ['vote' => $vote]); } }
<!-- resources/views/vote/show.blade.php --> <!DOCTYPE html> <html> <head> <title>投票</title> <script src="{{ asset('js/app.js') }}"></script> </head> <body> <h1>{{ $vote->title }}</h1> <p>{{ $vote->description }}</p> <ul> @foreach($vote->options as $option) <li>{{ $option }}</li> @endforeach </ul> <script> window.Echo.channel('vote.{{ $vote->id }}') .listen('.vote.updated', (data) => { console.log(data); // 更新投票结果的显示 }); </script> </body> </html>
Dalam kod di atas, kami menyusun kod JavaScript dalam halaman undian melalui Laravel Mix dan memperkenalkannya ke dalam halaman. Apabila halaman dimuatkan, kami menggunakan pustaka Echo untuk melanggan saluran undian (undi.{voteId}) dan mendengar acara .vote.updated. Apabila keputusan pengundian dikemas kini, halaman akan menerima data yang dikemas kini dan memaparkannya dengan sewajarnya.
Melalui langkah di atas, kami telah berjaya menambah fungsi pemberitahuan dan peringatan masa nyata sistem pengundian dalam talian. Pengguna boleh mendapatkan pemberitahuan pengundian dalam masa nyata dalam sistem dan melihat keputusan pengundian serta-merta. Sistem sedemikian bukan sahaja meningkatkan pengalaman pengguna, tetapi juga meningkatkan kecekapan dan keadilan pengundian.
Ringkasnya, kami telah berjaya menambahkan fungsi pemberitahuan dan peringatan masa nyata pada sistem pengundian dalam talian yang dibangunkan menggunakan PHP, dan menyediakan contoh kod yang sepadan. Fungsi ini bukan sahaja membolehkan pengguna mengikuti maklumat terkini pengundian, tetapi juga memperoleh keputusan pengundian dalam masa nyata, membawa kemudahan dan keadilan kepada proses pengundian.
Atas ialah kandungan terperinci Pemberitahuan masa nyata dan peringatan sistem pengundian dalam talian yang dibangunkan oleh PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!