পিএইচপি কি? কেন কিছু মানুষের কাছে এটি পছন্দনীয় নয়?

পিএইচপি'র আদ্যপান্ত

ওয়েবের ৭৮.৯% ওয়েবসাইটই পিএইচপি তে রান হয়। ওয়েব টেকনোলজি গুলোর মধ্যে- এইচটিএমএল (HTML), জাভাস্ক্রিপ্ট (JavaScript), সিএসএস (CSS) এবং পিএইচপি (PHP) এই চারটি মিলে পিএইচপি স্ট্যাক তৈরী হয়। সম্ভবত ওয়েব আগামী ৫-৬ বছর পর্যন্ত এই টেকনোলজিগুলোই ব্যবহার করতে থাকবে। তবে এদের মধ্যে দুটি টেকনোলজি- পিএইচপি (PHP) এবং জাভাস্ক্রিপ্ট (JavaScript) ডেভেলপারদের মনে সাইলেন্ট ক্রোধ সৃষ্টি করতে পারে।

যেখান থেকে পিএইচপির উৎপত্তি হলো

ধরা যাক এটা ১৯৯৫ সাল, এবং আপনার একটি পার্সোনাল সাইট আছে। সেখানে আপনার ছবি, সাইন্টিফিক পেপার, পছন্দের কিছু লিংক এবং সব চেয়ে গুরুত্বপূর্ণ- আপনার গেস্ট বুক রয়েছে। যে কেউ চাইলেই আপনার সাইটটি ভিজিট করতে পারে এবং আপনার জন্য ম্যাসেজ দিয়ে যেতে পারে।

এটি মডার্ন ওয়েব শুরু হওয়ার অনেক আগে অর্থাৎ, ফেসবুক এবং ইন্সট্রাগ্রাম আসার অনেক আগে। একটি রেগুলার ওয়েবপেইজ এবং গেস্ট বুকের মধ্যে পার্থক্য এটাই যে গেস্ট বুক তখন ডায়নামিক হতো।

তখনকার সময়ে, যখন পেইজ আপডেট করার প্রয়োজন হতো, টেক্সট ইডিটরে ইডিট করে এরপর ওয়েব সাইটে আপলোড করতে হতো। কিন্তু গেস্ট বুকের ক্ষেত্রে- যে কেউ কনটেন্ট এড করতে পারতো তখন এটা খুবই রোমাঞ্চকর মনে হতো কারণ শুধু সেই পেইজটিই ডায়নামিক ছিল।

একটি গেস্ট তৈরী করতে, সিজিআই (CGI), সি (C), পার্ল (Perl), অথবা অন্য প্রোগ্রামিং ল্যাঙ্গুয়েজে একটি স্ক্রিপ্ট লিখার প্রয়োজন হতো। সেই প্রোগ্রামগুলো রিকুয়েস্ট পেলে সার্ভার থেকে ডায়নামিক কন্টেন্ট ডেলিভারি দিতো। সেই সময়ের জন্য এটি খুবই এক্সাইটিং ব্যাপার ছিল। যাইহোক, সেখানে দুটি বড় সমস্যা ছিলঃ

  • পার্ল (Perl), সিজিআই (CGI), সি (C) এই স্ক্রিপ্টগুলো এইচটিএমএল (HTML) পেইজগুলো থেকে আলাদা থাকত। স্ক্রিপ্টগুলো লিমিটেড এ্যাক্সেসেস দিয়ে বিভিন্ন ফোল্ডারে রাখতে হতো।
  • এবং ওয়েব পেইজটি স্ক্রিপ্টের ভিতর থেকে জেনারেট করতে হতো। ওয়েব পেইজের ডিজাইন, ইলিমেন্ট বা কন্টেন্ট এডজাস্ট করতে চাইলে নতুন করে স্ক্রিপ্ট লিখতে হতো।

তাই ডেনমার্কের একজন প্রোগ্রামার (Rasmus Lerdorf) ওয়েবের জন্য একটি টেমপ্লেটিং ইঞ্জিন তৈরি করার সিদ্ধান্ত নেন। তিনি মূলত পার্ল (Perl)/ সিজিআই (CGI) প্রোগ্রাম নিয়ে চিন্তা করেছিলেন যা এইচটিএমএল (HTML) টেমপ্লেট ধারণ করবে এবং এগুলো ডায়নামিক ওয়েব পেইজ তৈরির ফাউন্ডেশন হিসাবে ব্যবহার করবে। এই কনসেপ্ট টি অনেকটা এরকম যে, আপনি যদি কোনো পেইজের ডিজাইন আপডেট করতে চান তবে আপনি শুধু টেমপ্লেটটি চেঞ্জ করবেন, স্ক্রিপ্টটি নয়, যা আগের চেয়ে অনেক সহজ।

১৯৯৫ সালের মধ্যে, টেম্পলেটিং ইঞ্জিনটি পিএইচপি (PHP) – পার্সোনাল হোম পেইজ (Personal Home Page) প্রথম পাবলিক ভার্সনে পরিণত হয়েছিল। এরপর থেকে, পিএইচপির নতুন ভার্সনগুলো ওয়েবের অধিকাংশ সাইটে ব্যবহার করা শুরু হলো।

পিএইচপি যেভাবে কাজ করে!

পিএইচপি (PHP) কোড ওয়েব পেইজের যে কোনও জায়গা থেকে কল করা যেতে পারে এবং এটি একাধিকবার কল করা যায়। এখানে একটি সহজ উদাহরণ দেওয়া যাক-

মনে করি ওয়েব পেজের কোনো একটি জায়াগায় আপনার পাই এর নাম্বারটি দরকার। আপনি এর সঠিক মানটি পেতে গুগলের সাহায্য নিতে পারেন তারপর রেজাল্টটি এইচটিএমএলে কপি-পেস্ট করতে পারেন, তবে আপনি পিএইচপি ব্যবহার করেও এটি ক্যালকুলেট করতে পারেনঃ

<p>The value of Pi is around <?PHP echo(pi()); ?>. 

Now let’s use it in calculating the perimeter of our circle. If the circle has a radius of 5, its perimeter would be <?PHP echo(5*2*pi()); ?>. How cool is that?</p>

এই কোডটি যখন কোনও ওয়েব সার্ভারে এক্সিকিউট করা হয়, তখন এর ফলাফল অনেকটা এরকম দেখাবেঃ

The value of Pi is around 3.1415926535898. Now let’s use it in calculating the perimeter of our circle. If the circle has a radius of 5, its perimeter would be 31.415926535898. How cool is that?

এই উদাহরণে, কেবল পাই এর মান বের করা হয়েছে। একটি ছোট ফরমুলা ক্যালকুলেট করা হয়েছেঃ 5*2*pi(). পিএইচপি আউটপুটটিকে প্রিন্ট করতে echo() ফাংশনটি ব্যবহার করা হয়।

আরেকটা বিষয় জানা দরকার যে, প্রতিটি পেইজের রিকুয়েস্টে পিএইচপি এক্সিকিউট করা হয়। সুতরাং যদি আপনাকে এই পাই টেক্সটটি এক মিনিটের মধ্যে ১০০০ লোকের কাছে সার্ভ করার প্রয়োজন হয়, আপনার সার্ভারকে পাই () ফাংশনটি ২০০০ বার (প্রতি রিকুয়েস্টের জন্য দুইবার) কল করতে হবে।

যেভাবে পিএইচপি ব্যবহার করা হয়ে থাকে

ডায়নামিক সাইট তৈরি করার কথা শুনলেই প্রথমেই পিএইচপি’র কথা মাথায় আসবে। ফোরাম, অনলাইন স্টোর, নিউজ সাইট, ক্যাটালগ, থেকে শুরু করে ওয়েব অ্যাপ্লিকেশন সব ক্ষেত্রেই পিএইচপি’র দাপট রয়েছে। যদি ডাটাবেজে প্রচুর পরিমাণে কন্টেন্ট স্টোর করা থাকে তবে পিএইচপি সেই কন্টেন্টটি স্টোর, আউটপুট এবং অর্গানাইজ করা সহজ করে তোলে।

যখন অনেকগুলো আলাদা পেইজের সিঙ্গেল কনট্যাক্সকে একসাথে ব্যবহার করতে হলে, পিএইচপি ব্যবহার হয়। সব পেইজে হেডার ও ফুটার থাকে আপনি যদি এটিকে একটি ব্লক তৈরী করে প্রতিটি সিঙ্গেল পেইজে প্রিন্ট করতে চান, তখন বিষয় এমন দেখাবে।

<? include(“header.php”); ?>
<! — your content goes here →
<? include(“footer.php”); ?>

এই কোডটি হেডার.পিএইচপি এবং ফুটার.পিএইচপিতে থাকা সব কিছু লোড করবে, মূলত সেই ব্লকগুলি থেকে আপনার পুরো পেইজটি কালেক্ট করে। যদি আপনি হেডার বা ফুটারে কিছু পরিবর্তন করেন, তবে পরিবর্তনটি এমন পেইজগুলোতে রিফ্লেক্ট করবে যা এই ‘include’ ব্যবহার করে।

কেনো সব জায়গায় পিএইচপি দেখা যায়

পিএইচপি শেখা এবং ওয়েবসাইটে ব্যবহার করা খুব সহজ ছিলো, তাই এটি সর্বত্রই দেখা যায়ঃ প্রায় সমস্ত ব্লগ এবং নিউজ সাইট পিএইচপিতে রান হচ্ছে। ওয়েবসাইট তৈরি এবং ম্যানেজ করার জন্য জনপ্রিয় প্ল্যাটফর্মগুলি, ওয়ার্ডপ্রেস, জুমলা এবং দ্রুপাল, এই সবকিছু পিএইচপিতে রান হয়। জনপ্রিয় সোশ্যাল মিডিয়া প্ল্যাটফর্ম ফেসবুকও পিএইচপিতে রান হয়। পিএইচপি এত বিস্তৃত হওয়ার কারণগুলি হচ্ছেঃ

  • যা আগেও উল্লেখ করা হয়েছে, পিএইচপি সার্ভারে রান করা সহজ এবং ওয়েবের জন্য দরকারি ফিচার তৈরি করাও সহজ করে তোলে।
  • পিএইচপিতে প্রতিটি ভেরিয়েবল কোন ধরণের ডেটা ব্যবহার করবে তা আগে থেকে নির্দিষ্ট করতে হয়না।
  • অনেক মডিউল এবং এক্সটেনশান রয়েছে যা পিএইচপির কার্যকারিতা বাড়ায়।
  • ওয়েবে ওপেন-সোর্স সফ্টওয়্যার হিসাবে ডেভেলপ করা প্রয়োজনীয় প্রায় সব কিছুই পিএইচপিতে রান হয়।

পিএইচপি তে যেসব সমস্যা রয়েছে

পিএইচপিকে একটি সাধারণ স্ক্রিপ্টিং ল্যাংগুয়েজ হিসাবে ডিজাইন করা হয়েছিল। এটি জটিল এবং এডভান্ডস ক্ষেত্রে ব্যবহারের উদ্দেশ্যে তৈরি করা হয়নি। পিএইচপি-তে যেসব ক্রটি হয়েছে তার কয়েকটি উদাহরণ এখানে দেওয়া হলো:

সিকিউরিটি- একটা সময় ছিলো যখন, হ্যাকার ক্ষতিকর (Malicious) পিএইচপি কোড ইউআরএল (URL) এ প্রবেশ করাতে পারতো এবং সার্ভারে সেই কোডটি রান করতো। এখনও পিএইচপিতে সবচেয়ে বেশী ম্যালওয়্যার এটাক হয়, তবে এই পদ্ধতিতে নয়।

সবকিছু একসাথে- এই একই কারণে পিএইচপি শেখা এত সহজ হতে পারে। তবে বড় প্রজেক্টগুলো মেইন্টেইন করা বেশ কঠিন। উদাহরণস্বরূপ, পিএইচপি কোডটি সাধারণত এইচটিএমএল ট্যাগ এবং একটি এইচটিএমএল (HTML) ডকুমেন্টে ওয়েবসাইটের কন্টেন্টের সাথে মিশ্রিত থাকে। যখন, কন্টেন্ট ও জটিল ওয়েবসাইট এবং একটি হাজার লাইন কোডের থাকে, তখন প্রজেক্ট মেইন্টেন করা কঠিন হয়।

মাল্টিথ্রেডিং- আধুনিক কম্পিউটার প্রসেসরগুলি একই সাথে অনেকগুলি কাজ সম্পূর্ণ করতে পারে এবং প্রোগ্রামিং ল্যাংগুয়েজগুলো এই সুবিধা গ্রহণ করবে এটা স্বাভাবিক। একই প্রসেসিং রিসোর্সগুলো শেয়ার করার সময়, একই সময়ে কোনও প্রসেসরের একাধিক থ্রেড চালানোকে মাল্টিথ্রেডিং বলা হয়। পিএইচপিতে মাল্টিথ্রেডিং এর কাজ করতে বেশ বেগ পেতে হয়। এখনো এমন অনেক লিগ্যাসি সফ্টওয়্যার রয়েছে যা সিংগেল থ্রেডযুক্ত।

পার্ফরমেন্স- হাই-লোড প্রজেক্টগুলোর জন্য, ক্যাশিং এবং প্রি-কম্পাইলেশনের মতো প্রযুক্তি ব্যবহার করা বেশি এখন খুবই জরুরী। ‘ক্যাশিং’ এর কাজ হচ্ছে একই রিকুয়েস্ট দ্রুত সার্ভ করার জন্য একটি নির্দিষ্ট পরিমাণের ডেটা স্টোর করে রাখা। আর ‘প্রি-কম্পাইলিং’ হচ্ছে কোড বা ডেটা সেটআপ করা যাতে কম্পিউটার এটি চালাতে বা অন্য প্রোগ্রামে আরও দ্রুত অন্তর্ভুক্ত করতে পারে। পিএইচপি আপনাকে সীমিত পরিমাণে এই সব কিছু করার অনুমতি দিয়ে থাকে।

আপনার কি পিএইচপি শেখা প্রয়োজন?

সত্যি বলতে পিএইচপি বর্তমানের প্রযুক্তি, ভবিষ্যতের জন্য নয়। পিএইচপি’র সহজ লভ্যতাই পিএইপি’কে অন্যদের চেয়ে এগিয়ে রেখেছে। আপনি যদি কম খরচে ও কম সময়ে ওয়েবসাইট বানাতে এবং মেইন্টেইন করতে চান তবে হ্যাঁ, এটি শিখতে পারেন। তবে বর্তমানের ট্রেন্ডের সাথে পিএইচপি একদমই বেমানান। পিএইচপি তে তৈরী করা ওয়েবসাইট তুলনামূলক স্লো ও কম সিকিউরিটি সম্পন্ন হওয়ায় অনেক ডেভেলপরাদের কাছেই এটি বর্তমানে জনপ্রিয় নয়।

মন্তব্য করুন

আপনার ই-মেইল এ্যাড্রেস প্রকাশিত হবে না।

You May Also Like
Projuktir Avijatri Rust Programming language
Read More

Rust নতুন প্রজন্মের প্রোগ্রামিং ল্যাংগুয়েজ

Rust এর জন্ম ২০০৯ সালে মজিলার একটি রিসার্চ প্রজেক্ট হিসেবে। ২০০৯ এ তারা চিন্তা করছিল কিভাবে একটি উন্নত…
Top Six CMS Intro
Read More

৬ টি জনপ্রিয় ও সেরা ওপেন সোর্স সিএমএস সফটওয়্যার

আপনারা হয়তো জেনে থাকবেন, সিএমএস এর পূর্ণরুপ হচ্ছে কন্টেন্ট ম্যানেজমেন্ট সিস্টেম (CMS = Content Management System)। টেকনিক্যাল সংজ্ঞা…
Web-Development-career-roadmap Projuktir Avijatri ওয়েব ডেভেলাপমেন্ট ক্যারিয়ার যেভাবে শুরু করতে হবে প্রযুক্তির অভিযাত্রি Front End Back End Developer ক্যারিয়ার Career
Read More

ওয়েব ডেভেলপমেন্টে ক্যারিয়ার গড়তে যা শিখতে হবে

নতুন সব টেকনোজির পাশাপাশি প্রতিদিন অসংখ্য ওয়েবসাইট ইন্টারনেটে যুক্ত হচ্ছে, যার ফলে ওয়েব ডেভেলপারদের চাহিদা ক্রমশ বাড়ছে। ওয়েব…
Web Design VS Web Development ওয়েব ডিজাইন এবং ওয়েব ডেভেলপমেন্ট
Read More

ওয়েব ডেভেলপমেন্ট: একের ভিতর সব

আমার মনে পড়ছে সেই দিনগুলোর কথা যখন আমি ওয়েব ডেভেলপমেন্ট শেখা শুরু করেছিলাম। আমি তখন ডিজাইন আর ডেভেলপমেন্টের…
রিয়েক্ট জেএস পরিচিতি
Read More

রিয়েক্ট জেএস ফ্রেমওয়ার্ক – নতুন করে পরিচিত হওয়া যাক!

রিয়েক্ট জেএস কি? ফ্রন্ট-এন্ড ওয়েব ডেভেলপমেন্ট রিয়েক্টের ভূমিকা! কেনো আপনার রিয়েক্ট শেখা প্রয়োজন? রিয়েক্ট দিয়ে আপনি কি করতে পারবেন এবং এর ভবিষ্যৎ কি হতে যাচ্ছে? এ সব প্রশ্নের উত্তর পেতে পুরো প্রকাশনাটি পড়ুন।
Kotlin-Programming-Language vs java for android basic প্রযুক্তির অভিযাত্রি introduce google কটলিন কি কটলিন পরিচিতি kotlin পরিচিতি Projuktir Avijatri
Read More

Kotlin পরিচিতি

সম্প্রতি Google I/O তে প্রকাশিত ও পরিচিতি পাওয়া নতুন এই প্রোগ্রামিং ভাষার জীবনবৃত্তান্ত। শূন্যতম কিছু কথাঃ এই প্রোগ্রামিং ভাষার…