
قالب بندی یا Formatting در فریمورک Yii
برای نمایش داده ها در فرمت هایی که خوانایی لازم را داشته باشند، می توانید از کامپوننت formatter در برنامه استفاده کنید.
مرحله 1 - متد actionFormatter را به SiteController اضافه کنید.
public function actionFormatter(){
return $this->render('formatter');
}
در کد بالا، ما view با نام formatter را رندر کردیم.
مرحله 2 - در این مرحله، یک فایل view با نام formatter.php را داخل پوشه views/site folder ایجاد کنید.
<?php
$formatter = \Yii::$app->formatter;
// output: January 1, 2016
echo $formatter->asDate('2016-01-01', 'long'),"<br>";
// output: 51.50%
echo $formatter->asPercent(0.515, 2),"<br>";
// output: <a href = "mailto:test@test.com">test@test.com</a>
echo $formatter->asEmail('test@test.com'),"<br>";
// output: Yes
echo $formatter->asBoolean(true),"<br>";
// output: (Not set)
echo $formatter->asDate(null),"<br>";
?>
مرحله 3 – در این مرحله وارد مرورگر وب تان شوید و به آدرس http://localhost:8080/index.php?r=site/formatter بروید، آنچه که مشاهده خواهید کرد مطابق با تصویر زیر می باشد.
کامپوننت formatter فرمت های مرتبط با تاریخ و زمان را پشتیبانی می کند:
فرمت خروجیt |
مثال |
date |
January 01, 2016 |
time |
16:06 |
datetime |
January 01, 2016 16:06 |
timestamp |
1512609983 |
relativeTime |
1 hour ago |
duration |
5 minutes |
مرحله 4 – ویو formatter را مطابق با کد زیر ویرایش کنید.
<?php
$formatter = \Yii::$app->formatter;
echo $formatter->asDate(date('Y-m-d'), 'long'),"<br>";
echo $formatter->asTime(date("Y-m-d")),"<br>";
echo $formatter->asDatetime(date("Y-m-d")),"<br>";
echo $formatter->asTimestamp(date("Y-m-d")),"<br>";
echo $formatter->asRelativeTime(date("Y-m-d")),"<br>";
?>
مرحله 5 – در نوار آدرس مرورگر وب تان آدرس http://localhost:8080/index.php?r=site/formatter را تایپ کنید، انچه که مشاهده خواهید کرد مطابق با تصویر زیر خواهد بود.
انواع فرمت های تاریخ
چهار میانبر کوتاه برای فرمت تاریخ، وجود دارد که عبارتند از :
short, medium, long, and full.
مرحله 1 - فایل ویو formatter را اینگونه تغییر دهید.
<?php
$formatter = \Yii::$app->formatter;
echo $formatter->asDate(date('Y-m-d'), 'short'),"<br>";
echo $formatter->asDate(date('Y-m-d'), 'medium'),"<br>";
echo $formatter->asDate(date('Y-m-d'), 'long'),"<br>";
echo $formatter->asDate(date('Y-m-d'), 'full'),"<br>";
?>
مرحله 2 – در نوار آدرس مرورگر وب تان آدرس http://localhost:8080/index.php?r=site/formatter را تایپ کنید، انچه که مشاهده خواهید کرد مطابق با تصویر زیر خواهد بود.
فرمت های عددی
کامپوننت formatter فرمت های مرتبط با اعداد را نیز پشتیبانی می کند :
فرمت خروجی |
مثال |
integer |
51 |
decimal |
105.51 |
percent |
51% |
scientific |
1.050000E+2 |
currency |
$105 |
size |
105 bytes |
shortSize |
105 B |
مرحله 1 – ویو formatter را به شکل زیر ویرایش کنید.
<?php
$formatter = \Yii::$app->formatter;
echo Yii::$app->formatter->asInteger(105),"<br>";
echo Yii::$app->formatter->asDecimal(105.41),"<br>";
echo Yii::$app->formatter->asPercent(0.51),"<br>";
echo Yii::$app->formatter->asScientific(105),"<br>";
echo Yii::$app->formatter->asCurrency(105, "$"),"<br>";
echo Yii::$app->formatter->asSize(105),"<br>";
echo Yii::$app->formatter->asShortSize(105),"<br>";
?>
مرحله 2 - در نوار آدرس مرورگر وب تان آدرس http://localhost:8080/index.php?r=site/formatter را تایپ کنید، انچه که مشاهده خواهید کرد مطابق با تصویر زیر خواهد بود.
فرمت های دیگر
فریمورک Yii همچنین از فرمت های دیگر پشتیبانی می کند :
- text – مقدار بصورت HTML-encoded است.
- raw - مقدار خروجی به صورت isاست.
- paragraphs – مقدار به صورت پاراگراف های متنی HTML به وسیله ی تگ p قالب بندی می شود.
- ntext - مقدار به صورت یک متن ساده ی HTML که در آن خطوط جدید به line breaks تبدیل می شوند، قالب بندی می شوند.
- html - مقدار آن با استفاده از HtmlPurifier برای جلوگیری حملات XSS پالایش می شود.
- image - مقدار به عنوان تگ image قالب بندی می شود.
- boolean - مقدار به صورت یک مقدار Boolean قالب بندی می شود.
- url - مقدار به عنوان یک لینک، قالب بندی می شود.
- email - مقدار به عنوان mailto-link قالب بندی می شود.
formatter میتواند از موقعیتِ مکانیِ فعالِ جاری، برای تعیین نحوه قالببندی یک مقدار، برای یک کشور خاص، استفاده کند.
مثال زیر نحوه قالب بندی تاریخ، برای مکان های مختلف را نشان می دهد.
<?php
Yii::$app->formatter->locale = 'ru-RU';
echo Yii::$app->formatter->asDate('2016-01-01'); // output: 1 января 2016 г.
Yii::$app->formatter->locale = 'de-DE';
// output: 1. Januar 2016
echo Yii::$app->formatter->asDate('2016-01-01');
Yii::$app->formatter->locale = 'en-US';
// output: January 1, 2016
echo Yii::$app->formatter->asDate('2016-01-01');
?>
این فصل در یک نگاه:
…
سلام . پیشنهاد میکنم حتما دموی دوره رو مشاهده کنید درباره فریم ورک Yii: در پاسخ به سوالات : آیا این فریم ورک سریع است؟ آیا این یک فریم ورک امن است؟ آیا این یک فریم ورک حرفه ای است؟ آیا ا…این فصل در یک نگاه:
…
پیشنهاد میکنیم دمو دوره رو حتما مشاهده کنید با سلام خدمت دوستان عزیز . ابتدا عرض کنم که این دوره برای دوستانی آماده شده که میخوان وب اپلیکیشن های مدرنی رو طراحی بکنن و وارد بازار کار ط…