আপনার প্রশ্নের সরাসরি উত্তর দিতে: কখনও স্থির পাঠ্য বা এইচটিএমএল প্রতিধ্বনি করবেন না । আপনার পিএইচপি এর বাইরে এটি ছেড়ে দিন।
<?php echo "<p>Hello World</p>"; // Alway wrong. ?>
<p>Hello World</p> <!-- Does the same thing, faster, and is more readable. -->
আপনি যা করতে যাচ্ছেন সমস্ত স্ট্যাটিক পাঠ্য বা স্ট্যাটিক এইচটিএমএল পাস করা হলে পিএইচপি থেকে বেরিয়ে আসা অপব্যয়। এর ভিতরে থাকা সমস্ত কোড <?php ?>
ব্যাখ্যা করার জন্য পিএইচপিতে প্রেরণ করা হয়। এর অর্থ আপনার ওয়েবসাইটটি ধীর গতির এবং আপনি যদি অকারণে পিএইচপি-তে প্রচুর পরিমাণে স্থিতিশীল পাঠ্য পাঠাচ্ছেন তবে আপনি বিদ্যুত নষ্ট করছেন। (কখনও কখনও কারণ আছে।)
সেরা অনুশীলনটি হ'ল কোনও পিএমএল, কেবল পিএইচপি ছাড়াই আপনার যুক্তিযুক্ত এবং উদ্বেগজনক ফাইলে কাজ করা উচিত।
আমি এটি করতে যেভাবে পছন্দ করি তা হ'ল এমভিসি ফ্রেমওয়ার্কের সাথে। আমার কাছে মডেলগুলি এবং নিয়ন্ত্রণকারীগুলিতে খাঁটি পিএইচপি রয়েছে এবং ভিউগুলিতে এইচটিএমএল এবং পিএইচপি মিশ্রণ রয়েছে। আপনার কোনও এমভিসি কাঠামো দরকার নেই; আপনি কেবলমাত্র টেমপ্লেট ফাইলগুলিতে এইচটিএমএল এর মিশ্রণটি আটকে রাখতে পারেন, যা আপনি নিজের খাঁটি পিএইচপি ফাইলগুলিতে অন্তর্ভুক্ত করেছেন।
খাঁটি পিএইচপি ফাইলগুলিতে আপনার যখন আপনার ভেরিয়েবলগুলি (যার মধ্যে এইচটিএমএল অন্তর্ভুক্ত থাকে না) তৈরি হয়ে যায়, আপনি সেগুলি আপনার এইচটিএমএল দিয়ে ফাইলটিতে সরিয়ে দিতে পারেন। সেখানে এবং কেবল সেখানেই এইচটিএমএল এবং পিএইচপি মিশ্রিত করা ভাল? তবে, এবং এটি একটি গুরুত্বপূর্ণ তবে এইচটিএমএল থাকা ফাইলগুলির সাথে কাজ করার সময় পিএইচপি সর্বনিম্ন রাখুন।
ভাগ্যক্রমে, এইচটিএমএল মিশ্রিত হয়ে পিএইচপি পড়তে সহজতর করার জন্য বন্ধুত্বপূর্ণ সরঞ্জামগুলি নিয়ে পিএইচপি আসে।
বিকল্প সিনট্যাক্স
খাঁটি পিএইচপি লেখার সময় নিয়মিত পিএইচপি সিনট্যাক্স ব্যবহার করা সবচেয়ে ভাল অনুশীলন, তবে পিএইচপি এবং এইচটিএমএল মিশ্রণের সময় বিকল্প সিনট্যাক্স।
কোনও HTML ছাড়াই নিয়মিত পিএইচপি ফাইলগুলিতে:
if ($something) {
do_something(); // do_something() shouldn't echo or print.
}
এটি খাঁটি পিএইচপি এর জন্য সুন্দর তবে এইচটিএমএল থেকে পালানোর সময় আদর্শ নয়। বিশেষত, বন্ধ হওয়া ধনুর্বন্ধনীগুলি যখন HTML এর বড় পাইলগুলিতে প্রদর্শিত হয় তখন তা বোঝা প্রায়শই শক্ত।
আপনার প্রশ্নের ভিত্তিতে মনে হচ্ছে আপনি এইচটিএমএল এবং পিএইচপি মিশ্রিত একটি ফাইলে লিখেছেন:
<?php
if ($something) {
echo '<p>Hello World.</p>';
}
?>
উপরে বর্ণিত কারণে, আমরা চাই যে এইচটিএমএল পিএইচপিকে প্রেরণ করা না হয়। আমরা এটি এর মতো করি:
<?php if ($something) { ?>
<p>Hello World.</p>
<?php } ?>
আমরা আমাদের পিএইচপি ট্যাগগুলির বাইরে আমাদের এইচটিএমএল পেয়েছি, এটি একটি উন্নতি। তবে আমরা আরও যেতে পারে।
লক্ষ্য করুন বন্ধ বন্ধনীটি কতটা অবজ্ঞাত নয়? আমরা জানি না এটি কোনও লুপ বন্ধ করে দিচ্ছে বা যদি একটি বিবৃতি দেয়। উপরের উদাহরণে এটি তুচ্ছ মনে হয়, তবে প্রায়শই লুপ / এন্ডলুপের ভিতরে / এন্ডেফের ভিতরে এইচটিএমএল এর কয়েক ডজন লাইন থাকে।
সর্বোত্তম অনুশীলন হ'ল পিএইচপি এবং এইচটিএমএল মিশ্রিত কোনও ফাইলে আপনি বিকল্প সিনট্যাক্স ব্যবহার করেন যা খোলার এবং বন্ধ বন্ধনীগুলি বাদ দেয় ( { }
):
<?php if ($something): ?>
<p>Hello world.</p>
<?php endif; ?>
নতুন বাক্য গঠন ( :
এবং এর endif;
পরিবর্তে {
এবং এর }
) শব্দার্থতত্ত্বগুলি বাদ দিয়ে আপনার দুটি বিষয় লক্ষ্য করা উচিত:
- আবার, এইচটিএমএল এবং পাঠ্য, যখন পিএইচপি দ্বারা নিয়ন্ত্রিত হয়,
<?php ?>
ট্যাগগুলির বাইরে থাকে , সুতরাং এটি ব্যাখ্যা করা হয় না। উপরে বর্ণিত কারণগুলির জন্য, এটি ভাল।
- এটি যদি এলোমেলো বন্ধের ধনুর্বন্ধনী (
<?php } ?>
) বন্ধ করে দেয় এমন জিনিস যেখানে তারা কোথায় খোলা ছিল (যেগুলি এলোমেলো বর্ণবাদী এইচটিএমএলগুলির সাথে মিশ্রিত হয়) সহ শক্তিশালী এমনগুলি সহ পিএইচপি থাকলে এই তথ্যটি অনেক বেশি তথ্যযুক্ত। আবার, লুপ এবং যদি বিবৃতি সহ একটি বড় এইচটিএমএল ফাইল কল্পনা করুন। আপনি কী বন্ধ করছেন তা নির্দিষ্ট করে অনেক কিছু স্পষ্ট করতে পারে।
একই টেম্পলেট বন্ধুত্বপূর্ণ সিনট্যাক্স লুপগুলির জন্যও ব্যবহার করা যেতে পারে:
<?php foreach ($things as $thing): ?>
<li><?php echo $thing; ?></li>
<?php endforeach; ?>
শর্ট ট্যাগস
পিএইচপি দ্বারা প্রদত্ত আরেকটি দুর্দান্ত সরঞ্জাম যা আবার, কেবলমাত্র পিএইচপি এবং এইচটিএমএলকে একসাথে মিশ্রিত করার সময় আপনি ব্যবহার করতে চান, তা হ'ল সংক্ষিপ্ত ট্যাগ। আপনাকে পিএইচপি.আইএনআই ফাইলে সংক্ষিপ্ত ট্যাগগুলি চালু করতে হতে পারে। একবার চালু হয়ে গেলে, সংক্ষিপ্ত ট্যাগগুলি সবকিছুকে আরও বেশি পঠনযোগ্য করে তোলে।
সংক্ষিপ্ত ট্যাগ ছাড়া, আপনাকে লিখতে হবে <?php echo $something; ?>
তবে সংক্ষিপ্ত ট্যাগ সহ আপনি লিখতে পারেন <?=$something?>
এবং এটির সঠিক ফলাফল হবে have
সংক্ষিপ্ত ট্যাগ এবং বিকল্প পিএইচপি সিনট্যাক্সের সমন্বয় করার সময়, আপনি সত্যিই কিছু মার্জিত HTML ফাইল লিখতে পারেন, যার মধ্যে পিএইচপি উপাদান রয়েছে। আমাদের শেষ লুপের উদাহরণটি (লুপটির কেবলমাত্র অংশ) গ্রহণ করে, সংক্ষিপ্ত ট্যাগগুলি আমাদের হ্রাস করতে দেয়:
<li><?php echo $thing; ?></li>
থেকে
<li><?=$thing?></li>
যা অনেক বেশি পঠনযোগ্য।
আমরা কি আরও যেতে পারি? হ্যাঁ। বিভিন্ন টেম্প্লেটিং সিস্টেম ব্যবহার করে আপনি যেমন কাজগুলি করতে পারেন:
<li>{thing}</li>
যা আশ্চর্যরূপে পঠনযোগ্য। টেম্প্লেটিং সিস্টেমগুলি মূল প্রশ্নের ক্ষেত্রের বাইরে (যা আমি কিছুক্ষণ আগে রেখেছি) left