Takrorlash belgisi ( iteratsiya marker ) xabar nomiga qo'shilgan * belgisi bilan belgilanadi. Takrorlanishlar sonini belgilash uchun markerga kvadrat qavs ichidagi matn qo'shilishi mumkin, masalan, marker - * [barcha massiv elementlari uchun] u qo'shilgan xabar massivning barcha elementlariga qo'llanilishi kerakligini bildiradi.
Qo'riqchi ( qo'riqchi ) - shartli ibora bo'lib, kvadrat qavslar ichida yozilgan va xabar faqat qo'riqchi rost deb baholaganda yuborilishi kerakligini anglatadi.
Bir oz dizayn
Svetofor xabarlarini amalga oshirish uchun bizga 2 ta sinf kerak:
xabarning o'zini tavsiflovchi sinf;
xabarlarni ko'rsatish uchun mas'ul bo'lgan sinf.
Shunday qilib, bizning misolimizning sinf diagrammasi:
Endi ish algoritmini simulyatsiya qilaylik:
Ushbu diagrammada aniqroq bo'lishi uchun noaniqlik qilingan - ehtimol, MessageBox ob'ekti diagrammada ko'rsatilganidek, foydalanuvchi tomonidan emas, balki biron bir ob'ekt, masalan, kontroller tomonidan ishga tushiriladi. Bu ma'lum bir tizimga bog'lanmagan holda xabarlarni amalga oshirishni tavsiflaydi.
Xabar sinf kodi quyidagicha ko'rinadi:
sinf xabari
{
xususiy $content ;
ommaviy funktsiya __construct (string $content )
{
$this ->content = $content ;
}
ommaviy send() funktsiyasi
{
$_SESSION [ 'session_messages' ][] = $this ->kontent;
}
ommaviy funktsiya ko'rinishi()
{
qaytish $tush -> kontent;
}
}
?>
Keyinchalik, MessageBox sinfini tasvirlaymiz :
sinf xabarlar qutisi
{
ommaviy $xabarlar = massiv ();
ommaviy funktsiya __construct()
{
if ( isset ( $_SESSION [ 'session_messages' ]) && is_array( $_SESSION [ 'session_messages' ])) {
$xabarlar = $_SESSION [ 'session_messages' ];
$co = sizeof( $xabarlar );
uchun ( $i = 0 ; $i < $co ; $i ++) {
$this ->xabarlar[] = yangi xabar( $messages [ $i ]);
}
}
//Xabarlar qatorini tozalang, bizga endi kerak emas
if ( isset ( $_SESSION [ 'session_messages' ])) $_SESSION [ 'session_messages' ] = massiv ();
}
ommaviy getMessage() funktsiyasi
{
$ma'lumotlar = '' ;
uchun ( $i = 0 , $k = sizeof( $this ->xabarlar); $i < $k ; $i ++) {
$data .= $this ->xabarlar[ $i ]->view() . '
' ;
}
qaytish $ma'lumotlar ;
}
}
?>
Hamma kod shu. Va endi uni qanday ishlatish kerak. Masalan, post qo'shgandan so'ng, foydalanuvchini operatsiya natijasi haqida xabardor qilishingiz kerak:
$post = new Post();
$post ->title = 'Sinov' ;
$post ->text = '
matn
' ;
agar ( $post ->saqlash) {
$msg = new Message( 'Sizning postingiz muvaffaqiyatli qo'shildi.' );
} boshqa {
$msg = new Message( 'Qo'shishda xatolik!' );
}
$ msg -> yuborish ();
//Va kerak bo'lganda qayta yo'naltirish ...
sarlavha ( 'Joylashuv: http://qaerda_qilish' );
chiqish (); // Qayta yo'naltirishdan keyin exit () ni qo'yishni hech qachon unutmang
?>
Bundan tashqari, tizimingiz qanday joylashtirilganiga qarab, biz oldingi kontrollerdagi MessageBox sinfini chaqiramiz. Masalan, kod parchasi indeksi . php :
php
/**
* Mana bir nechta kod
**/
// Chunki biz xabarlarni yo'naltirgandan so'ng darhol ko'rsatamiz
// va u GET usulidan foydalanadi
agar ( 'POST' != $_SERVER [ 'REQUEST_METHOD' ]) {
$ mBox = yangi MessageBox ();
// Xabarlarni shablon mexanizmiga o'tkazish
$view ->set( 'notice' , $mBox ->getMessage());
}
/**
* Mana bir nechta kod
**/
?>
Barcha xabarlar svetofor, ular flesh - xabarlar tayyor!
Xabarlarning eng oddiy turi tasvirlangan. Sinfni to'ldirish juda mantiqiy bo'lar edi turi kabi boshqa xususiyatga ega xabar . Bu xabar turini ko'rsatadi: bildirishnoma, xato, tasdiqlash. Va turiga qarab , xabarning CSS dizayni tanlanadi.
Do'stlaringiz bilan baham: |