در مطالب پيشين در مورد اينکه توسعه Tidy چيست و چه امکاناتی را در اختيار ما قرار می دهد صحبت کرديم. در اين مطلب می خواهم به نحوه بهينه سازی فايلها توسط Tidy بپردازم و با ذکر گوشه ای از واسط شی گرای آن بحث اين توسعه را خاتمه دهم.
Tidy اختیاراتی را فراهم آورده است که به موجب آن می توان حجم فایلهای خروجی را کاهش داد. با حذف فضاهای خالی(Whitespaces) زائد، توضیحات(Comments) و تبدیل تگ های font به CSS این امر محقق می شود.
یک نمونه پیکربندی ساده جهت حذف تمام کاراکترهای غیرضروری موجود در یک فایل:
<?php
$options = array(
'clean' => true,
'drop-proprietary-attributes' => true,
'drop-empty-paras' => true,
'hide-comments' => true,
'hide-endtags' => true,
'join-classes' => true,
'join-styles' => true,
'wrap' => 0,
);
$tidy = tidy_parse_file('http://www.example.org/', $options);
tidy_clean_repair($tidy);
print $tidy;
?>
با وضع چنين گزينه هايی جهت پيکربندی، توانستيم آن تگهای HTML ای که مرورگر کاری با آنها ندارد و به عبارتی در هنگام نمايش صفحه، آنها را در نظر نمی گيرد حذف کنيم؛ همچنين استايلهای تکراری موجود در فايل را به يک استايل واحد تبديل کرديم.
به خاطر داشته باشيد که مقدار بهينه سازی که در حجم فايلهای خود انجام می دهيد به ازای هر صفحه ای که سرويس دهنده به سمت سرويس گيرنده ارسال می کند، باعث تاثیر بسزايی در کاهش پهنای باند مصرفی و هزينه اخذ شده جهت اين مهم دارد و به عبارتی چاره درد سايتهايی با ترافيک بالاست.
جدول پايين، حاوی گزينه های پيکربندی Tidy جهت بهينه سازی فايلهاست:
| نام | توضيح | مقادير | مقدار پيش فرض | | clean | آيا تگ هاي نمايشي نظير center با استايلهاي مربوطه جايگزين شود؟ | Boolean | no | | drop-proprietary-attributes | آيا خصيصه هاي اختصاصي كه توسط برخي برنامه هاي نظير FrontPage توليد مي شود حذف شود؟ | Boolean | no | | drop-font-tags | حذف تگ هاي font در صورتيكه گزينه clean فعال باشد. | Boolean | no | | drop-empty-paras | حذف تگ هاي p خالي | Boolean | yes | | hide-comments | پاك كردن توضيحات | Boolean | no | | hide-endtags | حذف تگ هاي پاياني در صورت امكان(البته با توجه به Document Type) | Boolean | no | | join-classes | ادغام كلاس هاي مرتبط با هم | Boolean | no | | join-styles | ادغام استايلهاي مرتبط با هم | Boolean | yes | | wrap | عرض Line Wrapping (مقدار صفر براي از كار انداختن Wrapping) | Integer | 68 |
واسط شی گرايی(Object-Oriented Interface)
Tidy علاوه بر واسط رويه ای خود، دارای واسط شی گرايی نيز می باشد.
<?php
$tidy = new Tidy('I am <b>bold and I am <i>bold and italic</b>');
$tidy->cleanRepair( );
print $this->getOutput( );
?>
نظير ساير توسعه ها که علاوه بر واسط رويه ای دارای واسط شی گرايی هم هستند، متدهای Tidy از شيوه نامگذاری studlyCaps استفاده می کند. اين نوع نامگذاری را کوهان شتری ميگويند و توصيه می شود که برنامه نويسان هنگام توسعه برنامه های کاربردی اين قاعده را رعایت کنند.
(برای دوستانی که معنی studlyCaps را نمی دانند، بايد عرض کنم قاعده این شیوه نامگذاری بر این اساس است که حرف اول نام متد را کوچک و حرف اول ساير کلمات را بزرگ می نويسيم. روش ديگر استفاده از زيرخط(Underscore) است که برنامه نويسان قديمی با آن مانوس هستند؛ بدين ترتيب که کلمات را با زيرخط از هم جدا می کنیم.)
در ضمن يک منبع يا Resource از نوع Tidy را نمی توان به متدهای آن ارسال کرد چون منبع در خود آبجکتی که نمونه گرفته ايم، ذخيره می شود.
والسلام! 
|