کدوم بهتره ؟؟

be099

Member
از نظر استفاده از منابع سیستم کدوم بهتره؟ (با دلیل)

کد:
<?php
if ($a=1) {echo '<b>a</b>'; }
?>
کد:
<?php
if ($a=1) {
?>
<b>a</b>
<?php } ?>
 
آخرین ویرایش:

Masoud1365

مدیر انجمن
هرچه قدر که از تگهای سرور کمتر استفاده کنی بهتره ! فکر کنم روش اول بهتر باشه ولی کلا کد رو بد ریخت میکنه البته به نظر من :d
 
آخرین ویرایش:
سلام . من هم از دوران طفولیت این سئوال توو ذهنم بود و هست . واقعا چرا ؟! :shock:
من خودم از روش اول استفاده می کنم .
ممنون میشم اگه سایر اساتید هم توضیحی در این زمینه بدند . ممنون
 
آخرین ویرایش:

Masoud1365

مدیر انجمن
ببین روش اول بهتره من توی مقالات امنیتی همین سایت بود فکر کنم که خوندم ولی این جوری همه جای کد نمیشه استفاده کرد مثلا برای یه فرم ثبت نام اگه بیایی یه تابع تعریف کنی ظاهر کدت زیبا تر میشه و خودت هم راحت تر میتونی ویرایش کنی در صورتی که در روش دوم راحت تری .
 

sunrise

Member
البته من خودم تا بحال به اين موضوع فکر نکرده بودم چون هميشه کدهاي HTML رو از کدهاي PHP جدا نگه داشتم و در نهايت با يک echo اطلاعات مورد نياز رو بر روي صفحه چاپ کردم و چيزي که در اکثر برنامه هاي مطرح که با PHP نوشته شده مشاهده ميشه همين هست.

اما با در نظر گرفتن اينکه <?php ... ?> يک نماد آغازگر براي انجام عمليات پردازش سرور به شمار ميره اصولا باز و بسته شدن اون به دفعات براي سرور خوش آيند به نظر نميرسه، چرا که با هر بار رسيدن به اين نماد يک مرحله به مرحله تشخيص اضافه ميشه (البته اون قدر نيست که واقعا بشه گفت مشکل ايجاد ميکنه).

موضوع ديگه اي که ميشه به اون پرداخت اين هست که نه ميشه روش اول رو رد کرد و نه روش دوم، هر کدوم براي موقعيت خاص مي تونند بهتر واقع بشن، فرض کنيد شما صفحه اي داريد که 90 درصد اون رو کدهاي HTML ساده (فاقد متغيرهايي که نتيجه آنها حاصل پردازشگر PHP هستند) تشکيل ميدهند و تنها 10 درصد اطلاعات پردازشي هستند، به طبع روش دوم بهتر هست نه به اين معني که روش اول فاجعه به بار مياره! گاهي اوقات اين قضيه برعکس هست و خب در اين حالت باز روش اول مي تونه بهتر باشه و باز هم نه به اين معنا که روش دوم فاجعه به بار مياره، چه بسا در Smarty اگه فايل هاي حاصل از کامپايل توسط اين کلاس رو در فايل هاي cache شده ملاحظه نموده باشيد <?php ... ?> بسيار به چشم مي خورند و خب با توجه به اينکه Smarty يکي از پکيج هاي معتبري هست که براي PHP ارائه شده بنابراين ميشه نتيجه گرفت که اين روش هم مناسب هست.

شايد مزيتي که روش اول نسبت به روش دوم مي تونه داشته باشه کاهش حجم فايل هست. وجود يک <?php ... ?> بهتر از اينه که چندين <?php ... ?> وجود داشته باشه.

خودتون تصميم بگيريد، کدوم زيباتر هست و به فهم و خوانايي کمک بيشتري مي کنه؟

اين قطعه برنامه:
PHP:
<?php
$start = explode(' ', microtime());
$a = 'Text 1';
$b = 'Text 2';
$c = 'Text 3';
$d = 'Text 4';
$e = 'Text 5';
?>
<div><?php echo $a; ?></div>
<div><?php echo $b; ?></div>
<div><?php echo $c; ?></div>
<div><?php echo $d; ?></div>
<div><?php echo $e; ?></div>
<hr size="1" />
<?php
echo "Finish.";
$end = explode(' ', microtime());
$response = $end[0] - $start[0] + $end[1] - $start[1];
?>
<br />
Taken Time: <?php echo number_format($response, 6); ?>
يا اين:
PHP:
<?php
$start = explode(' ', microtime());
$a = 'Text 1';
$b = 'Text 2';
$c = 'Text 3';
$d = 'Text 4';
$e = 'Text 5';
$html = '<div>$a</div>
<div>$b</div>
<div>$c</div>
<div>$d</div>
<div>$e</div>
<hr size="1" />
Finish.
<br />
Taken Time: $response';
$end = explode(' ', microtime());
$response = number_format(($end[0] - $start[0] + $end[1] - $start[1]), 6);
eval('echo "' . addslashes($html) . '";');
?>
قطعه برنامه دوم 40% بطور ميانگين سرعت بالاتري داره، اما ممکنه گاهي اين تناسب برعکس باشه.
 

P.H.P

Member
از نظر استفاده از منابع سیستم کدوم بهتره؟ (با دلیل)

کد:
<?php
if ($a=1) {echo '<b>a</b>'; }
?>
کد:
<?php
if ($a=1) {
?>
<b>a</b>
<?php } ?>


هر دو صحیح هستن روش دوم رو برای template استفاده کنید مناسبه

چرا که template به راحتی میشه با روش دوم بدون تفکر اضافه تغییر داد

از نظر استفاده منابع فکر نمیکنم فرقی داشته باشه

به جای روش دوم میتونید از روش زیر هم استفاده کنید

کد:
<? if ($a=1): ?>
<b>a</b>
<? endif; ?>

که php short tag باید فعال باشه


موفق
 

I.NoBody

Active Member
اگر تفاوت ها در اين حد باشه، اصلاً قابل بحث نيست. ولي اگر اين باز و بسته شدن تگ هاي php زياد باشه(كه قطعاً منظور شما همين بوده) ميشه اينطور گفت:
روش اول فشار كمتري به سرور مياره
روش دوم براي توسعه برنامه مناسبتره

البته يادتون باشه كه اين بارهاي اضافه روي سرور كه بحثش ميشه، اونقدرها نيست كه محسوس باشه. مگر اينكه تعداد تگ هاي php بيش از حد زياد باشه.
موفق باشيد
 

P.H.P

Member
تعداد تگ ها تاثیر داره برای همین باید از short tag استفاده کنید

به این صورت بهینه سازی میشه
 

I.NoBody

Active Member
استفاده از short tag هيچ گونه بهينه سازي رو تو پردازش اعمال نميكنه.
استفاده از short tag نياز به فعال بودن ماژول مربوطه نيز داره
كار short tag هم اينه كه تگ <? ?> رو هم مثل تگ <? php?> ميشناسه
 

جدیدترین ارسال ها

بالا