……কিছু এলোমেলো কথা……
স্বাগতম

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

পিএইচপি অধ্যায়-১: পিএইচপি’র ইতিহাস

পিএইচপি কিভাবে এল
আসলে পিএইচপি’র পুরো নাম ছিলো Personal Home Page. ১৯৯৪ সালে গ্রীনল্যান্ডিক প্রোগ্রামার রাসমুস লার্ডর্ফ (Rasmus Lerdorf) এর হাত ধরে কিছু সংখ্যক CGI binaries এর মাধ্যমে পিএইপি’র যাত্রা শুরু হয়। তিনি তার নিজস্ব সাইটের কিছু Perl কোড কে প্রতিস্থাপন করার জন্য C ল্যাঙ্গুয়েজ দিয়ে লিখিত পিএইচপি নামক ল্যাঙ্গুয়েজ টি তৈরী করেন। শুরুতে এটি শুধু তার রিজিউমে ও সাইটের ট্রাফিক সংক্রান্ত তথ্য প্রদান করত। পরবর্তীতে তিনি এই CGI binaries গুলোকে FI (Form Interpreter) এর সাথে সংযুক্ত করে PHP/FI এর তৈরি করেন, যা Database এর সাথে সংযুক্ত হওয়ার মাধ্যমে সাধারণ ডায়নামিক ওয়েব এপ্লিকেশন তৈরীর পথ উন্মুক্ত করে দেয়। ১৯৯৫ সালের ৮ই জুন তিনি PHP/FI  কে সাধারণের ব্যবহারের জন্য উন্মুক্ত করে দেন যা একে ত্রুটিমুক্ত ও অধিকতর কার্যকরী করার আরেকটি ধাপ হিসেবে বিবেচিত হয়। এটি পিএইপি’র ভার্সন-২ নামে পরিচিত যাতে আজকের পিএইচপির প্রায় সকল মৌলিক ফাংশনালিটি বিদ্যমান ছিলো। এই ভার্সনে Perl এর মতো ভ্যারিয়েবল, ফর্ম হ্যান্ডলিং ও HTML embed করার সুবিধা যোগ করা হয়।
পিএইচপি বর্তমানে খুবই জনপ্রিয়, ওপেন সোর্স ভিত্তিক একটি স্ক্রিপ্টিং ল্যাংগুয়েজ যা মূলত ওয়েব অ্যাপ্লিকেশন ডেভেলপ করার জন্য ব্যবহার করা হয়। ইয়াহু, ফেসবুক এর মত বড় বড় ওয়েব সাইট এবং অ্যাপ্লিকেশনগুলো পিএইচপিতে লেখা। আজকের এই পিএইচপি এত জনপ্রিয় হলেও তাকে পার করতে হয়েছে সুদীর্ঘ ১২টি বছর, সেই ১৯৯৫ সাল থেকে যখন এর প্রথম ভার্সনটি অনলাইনে ছাড়া হয়। রাসমুস লার্ডর্ফ (Rasmus Lerdorf ) নামে একজন ডাচ প্রোগ্রামার সে সময়ের সিজিআই প্রোগ্রামিং এর জন্য বহুল ব্যবহৃত প্রোগ্রামিং ল্যাংগুয়েজ পার্লের কিছু কিছু কাজ আরো সহজে করার জন্য সি দিয়ে পিএইচপির প্রথম ভার্সন টি লিখেছিলেন। পিএইচপির রিলিজের সময় (জুন ৮, ১৯৯৫) রাসমুস পাবলিক ফোরামে যে মেইল টি লিখেছিলেন তা আপনি এখনও দেখতে পারবেন এই ইউআরএল থেকে  ।  তখন এর নাম ছিল পিএইচপি / এফআই (PHP/FI) ।  রিলিজের পরপরই জনপ্রিয় হয়ে ওঠা পিএইচপির দ্বিতীয় ভার্সন (PHP/FI 2.0)অনলাইনে আসে ১৯৯৭ সালের নভেম্বরে। By 1997, PHP/FI 2.0, the second write-up of the C implementation, had a cult of several thousand users around the world (estimated), with approximately 50,000 domains reporting as having it installed, accounting for about 1% of the domains on the Internet. While there were several people contributing bits of code to this project, it was still at large a one-man project. (link) -Mobarak Ali 8/4/08 2:51 AM সে সময় প্রায় ৫০ হাজার ব্যবহারকারী পিএইচপি ব্যবহার করা শুরু করেছে তাদের ডোমেইন গুলোতে যা ছিল সে সময়ের মোট ডোমেনের মাত্র ১ ভাগ

তবে, পিএইচপি জনপ্রিয়তার মেইনস্ট্রিমে আসে মূলত এর ভার্সন ৩ রিলিজ পাওয়ার পর। অ্যান্ডি গুটম্যানস (Andi Gutmans ) এবং জিভ সুরাস্কি (Zeev Suraski ) নামে দুজন ইউনিভার্সিটির ছাত্র তাদের একটি ইকমার্স বেজড প্রজেক্ট তৈরীর জন্য পিএইচপিকে(PHP/FI 2.0 )বেছে নেন। কিন্তু কাজ শুরু করার অল্প কিছুদিন পরেই তারা বুঝতে পারেন যে তাদের প্রজেক্টা সফল ভাবে শেষ করতে হলে আসলে পিএইচপিকেই কিছুটা পরিবর্তন করা লাগবে। এসময় তারা দুজন রাসমুস কে মেইল করেন পিএইচপি সে অনুযায়ী পরিবর্তন করার উদ্দেশ্য নিয়ে, সাথে তাদের ইচ্ছা ছিল রাসমুস ও যেন তাঁদের সাথে এই প্রজেক্টে (পিএইচপি কোর পরিবর্তন) কাজ করেন। রাসমুস খুব সহজেই রাজি হয়ে যান জিভ এবং অ্যান্ডির প্রস্তাবে।  পিএইচপি কে প্রায় পুরো নতুন করে লেখা হয় এই সময়। এছাড়া পিএইচপিতে প্রথম অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং এর সূচনা হয়েছিল  ভার্সন ৫এ অবজেক্ট ওরিয়েন্টেড পোগ্রামিং এর সথে পরিচয় করিয়ে দেয় বলে আপনি উল্লেখ করেছেন, একটু ব্যাখ্যা করুন-Mobarak Ali 8/4/08 4:17 AM এই ৩ ভার্সন থেকে । ১৯৯৮ সালের জুনে, প্রায় ৯ মাস পাবলিক টেস্টিং এর পরে পিএইচপি ৩ অনলাইনে সবার জন্য উন্মুক্ত করা হয়। এসময় তারা পিএইচপির নাম পাল্টে Recursive Acronym এ PHP: Hypertext Preprocessor হিসেবে নামকরন করেন যা আজও প্রচলিত।

পিএইচপি ৩ বাজারে আসার অল্প কাল পরেই জিভ ও এন্ডি পিএইচপির কোর পরিবর্তন করতে আবার নতুন করে পোগ্রাম লিখা শুরু করেন। কেননা এটি তখনো বিভিন্ন থার্ডপাটি ডেটাবেইজ ও API এর মত জটিল বিষয়গুলো নিয়ে পুরোপুরি কাজ করতে সক্ষম ছিল না। তারা তা করতে Zend engine -এর জন্ম দেন। Zeev ও Andi এর নামের সংমিশ্রনে Zend নামের উৎপত্তি। আর এরই সফলতায় ১৯৯৯ সালের মাঝামাঝি সময়ে পিএইচপি ৪ (PHP 4) এর বেটা ভার্সন রিলিজ হয়। ২০০০ সালের মে মাসে এর চুড়ান্ত ভার্সন বের হয়।  আগের ভার্সনের তুলনার একে অনেক বেশী উন্নতমানের ও কর্মোপযোগী করতে এটিকে আরো অধিক সংখ্যক ওয়েব সার্ভারের উপযোগী করা হয়, একই সাথে এটিকে আরো নিরাপদ ভাবে ইউজার ইনপুট নিয়ে কাজ করতে সক্ষম করে তোলা হয়। পাশাপাশি নতুন সুবিধা হিসেবে এটিতে HTTP সেশন, output buffering এর মত ফিচার যোগ হয়। একই সাথে কিছু নতুন ল্যাঙ্গুয়েজ কনন্ট্রাক্টও এ ভার্সনে যোগ করা হয়।

Zend Engine 2.0 এর উপর ভিত্তি করে আরও নতুন আরও উন্নত ফিচার নিয়ে ২০০৪ সালের জুলাই মাসে PHP-5 রিলিজ হয়। এই ভার্সনে যে ডজন খানেক নতুন ফিচারের সংযুক্ত হয় তার মধ্যে অবজেক্ট মডেল (object model) বা অবজেক্ট ওরিয়েন্টেড পোগ্রামিং এবং এস.পি.এল বা স্ট্যান্ডার্ড পিএইচপি লাইব্রেরী অন্যতম।

পিএইচপি কি?

পিইচপি হলো সার্ভার সাইড স্ক্রিপ্টিং ল্যংগুয়েজ। স্ক্রিপ্টিং ল্যংগুয়েজ? তাহলে স্ক্রিপ্টিং ল্যংগুয়েজ এবং প্রোগ্রামিং ল্যংগুয়েজ এর মধ্যে পার্থক্য কি? স্ক্রিপ্টিং ল্যংগুয়েজ শুধু কোন ইভেন্টস ঘটলেই রেসপন্স করে বা কোন কিছু করে। অন্যদিকে প্রোগ্রামিং ল্যংগুয়েজ কোন ইভেন্টস না ঘটলেও রেসপন্স করতে পারে।

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

পিএইচপিকে ডিজাইন করা হয়েছে এইচটিএমএল এর সাথে ব্যবহার উপযোগি করে। পিএইচপি এইচটিএমএল এর ভিতর এমবেডেড হতে পারে আবার এটাকে  এইচটিএমএল এর সাথে ব্যবহার করা যেতে পারে এবং শেষে পিএইচপি ব্রাউজারে এইচটিএমএল রিটার্ন করে। পিএইচপি কোড হচ্ছে আমাদের ইনপুট এবং  ওয়েব পেজ হচ্ছে তার আউটপুট। আমরা যেসব ফাইল তৈরি করবো তার শেষে .php দিয়ে সার্ভারকে বোঝাবো যে আমারা পিএইচপি নিয়ে কাজ করছি।
আমরা যারা ওয়েব নিয়ে কাজ করি তারা .htm ও .html এর সাথে সবাই পরিচিত যা কিনা এইচটিএমএল ফাইলের শেষে (ফাইলের এক্সটেনশন হিসেবে) লেখা হয়, পিএইচপি এর ক্ষেত্রে ঠিক সেই একই ব্যপার। কিন্তু পিএইচপি আমাদেরকে দিবে আরও বেশি ফ্লেক্সিবিলিটি, এইচটিএমএল পেজ হলো স্বভাবতই স্ট্যাটিক মানে ভিজিটর সবসময় একই পেজ দেখে কিন্তু পিএইচপি দিয়ে আমরা ডাইনামিক পেজ তৈরি করতে পারবো মানে পেজের কন্টেন বদলানো যাবে কিছু কন্ডিশানের উপর ভিত্তি করে যেমন ইউজারের সাথে ইন্টারেক্ট করে অথবা ডাটাবেজে রক্ষিত ডাটার উপর ভিত্তি করে।

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

পিএইচপি৫ এর মূল ফিচার সমূহ:

 

১. পিইচপি৫ লিমিটেড টাইপ হিন্টিং সমর্থন করে।

২. অবজেক্ট ওরিয়েন্টেড কনসেপ্ট পুরোপুরিভাবে সমর্থন করে।
৩. এক্সপ্লিসিট কনস্ট্রাক্টর ও ডেস্ট্রক্টর, অবজেক্ট ক্লোনিং করা, ক্লাস অ্যাবস্ট্রাকশন, ভ্যারিয়েবল এর স্কোপ  বা পরিধি/ব্যাপ্তী, ইন্টারফেস ইত্যাদি যুক্ত হয়। এছাড়াও পিএইচপি ৫ এ অবজেক্ট ম্যানেজমেন্ট অনেক উন্নত করা হয়েছে।
৪. Try/Catch Exeption Handling: এরর বা ভুল হলে তা কিভাবে মোকাবেলা করবে প্রসিডিউর মূলক প্রোগ্রামে প্রোগ্রামারের নিজস্ব উদ্ভাবিত পদ্ধতিতে বেশিরভাগ ক্ষেত্রেই ভুল থেকে যাবার সম্ভাবনা থাকে। সি++, সি# ও জাভা এর মতো উন্নত প্রোগ্রামিং ভাষায় এগুলো এই ট্রাই-ক্যাচ এর জাল ফেলে ব্যতিক্রম/অন্যথা সুন্দরভাবে ম্যানেজ করা যায়।
৫. এক্সএমএল ও ওয়েব সার্ভিসের উন্নত সংস্করণ: libxml2, simpleXML(parsing and manipulating XML) SOAP and Web Services.
৬. SQLite এর নেটিভ সাপোর্ট যা খুবই শক্তিশালী ডাটাবেজ সার্ভার (এতে ফাইল বেজড ডাটাবেজ সংরক্ষণ সুবিধা আছে)।
৭. উন্নত অবজেক্ট ওরিয়েন্টেড নিয়ন্ত্রণ সুবিধার কারণেই শক্তিশালী পিএইচপি ফ্রেমওয়ার্কগুলো তৈরী করা সম্ভব হয়েছে। যেমন- কেক-পিএইচপি এবং জেন্ড ফ্রেমওয়ার্ক।

পিএইচপি৬ এর মূল ফিচার সমূহ:
১. ইউনিকোড এটিতে নেটিভ সাপোর্ট পাচ্ছে।
২. নিরাপত্তার দিকে জোর দেয়া হয়েছে।
৩. ভাষাভিত্তিক অনেক ফিচার ও কনস্ট্রাক্ট যুক্ত হয়েছে। foreach() কনস্ট্রাক্ট এখন বহুমাত্রিক অ্যারের জন্যও কাজ করবে। ৬৪বিট এর ইন্টিজার টাইপ যুক্ত করা হয়েছে।  লেবেলযুক্ত break, goto

 

যারা পিএইচপি ব্যবহার করছে:
× ফেসবুকএ পিএইচপি এবং মাইএসকিউএল ব্যবহৃত হচ্ছে ব্যাপকভাবে। ৮০০টি ক্লাস্টারকৃত সার্ভারে এর মাইএসকিউএল ডাটাবেজ চলছে। প্রতিটি সার্ভারের কনফিগারেশন হচ্ছে ৬৪গিগাবাইট র্যাম।
ফেসবুক এপ্লিকেশনের একটি প্রধান অনুষঙ্গ পিএইচপি
× ইয়াহু ফিনান্স, ফ্লিকার পিএইচপিতে চলে
* mediawiki of Wikipedia
* Elance.com নামক উচুমানের ফ্রিল্যান্সিং সাইট পিএইচপি দিয়ে চলছে।
× ওয়ার্ডপ্রেস নামক সবচেয় জনপ্রিয় ব্লগিং প্লাটফর্ম চলে পিএইচপি দিয়ে। ওয়ার্ডপ্রেস দিয়ে সিএমএস এর কাজও চলে বেশ ভালোভাবে।
× সবচেয়ে নামকরা দুটি সিএমএস জুমলা এবং ড্রুপাল পিএইচপি দিয়ে তৈরি।
× গুগলের অ্যাপ-এঞ্জিনেও ভবিষ্যতে পিএইচপি অন্তর্ভূক্ত হবার প্রচুর সম্ভাবনা রয়েছে। বর্তমানে এতে পাইথনের একটি বিশেষ সংস্করণ ব্যবহৃত হচ্ছে।

 

Leave a Reply