ভূমিকা
ইন্টারনেটের সহজলভ্যতা ও দ্রুতগতির কারণে এখন সফটওয়্যার তৈরি করে বিতরণ করার জন্য ক্লায়েন্ট-সার্ভারভিত্তিক অ্যাপ্লিকেশন মডেল খুবই জনপ্রিয়। এই পদ্ধতিতে সফটওয়্যারের মূল অংশটি থাকে একটি কম্পিউটারে, যাকে বলা হয় সার্ভার। আর সেই সঙ্গে থাকে ক্লায়েন্ট অ্যাপ্লিকেশন যা ওই সার্ভারের সঙ্গে যোগাযোগ করে। ক্লায়েন্ট অ্যাপ্লিকেশনগুলো অধিকাংশ ক্ষেত্রেই ওয়েব কিংবা মোবাইল ফোন অ্যাপ্লিকেশন হতে পারে, তবে ডেস্কটপভিত্তিক ক্লায়েন্ট অ্যাপ্লিকেশনও তৈরি করা হয়। ব্যবহারকারীরা সরাসরি এই অ্যাপ্লিকেশনগুলো ব্যবহার করেন, কিন্তু সার্ভার অ্যাপ্লিকেশনের গুরুত্বপূর্ণ অংশটুকু রয়ে যায় তাঁদের চোখের আড়ালে। সার্ভার অংশের সফটওয়্যার অ্যাপ্লিকেশন তৈরির ক্ষেত্রে অনেক বছর ধরেই পৃথিবীর সবচেয়ে জনপ্রিয় প্রোগ্রামিং ভাষার নাম পিএইচপি। গত বিশ বছরে অনেক প্রোগ্রামিং ভাষা ও সেসব ভাষায় তৈরি বিভিন্ন ওয়েব ফ্রেমওয়ার্ক জনপ্রিয়তা অর্জন করলেও সংখ্যার বিচারে এখনও পিএইচপি এক নম্বর।
পিএইচপি নিয়ে দ্বিমিক প্রকাশনীর একটি বই দীর্ঘদিন ধরেই পাঠকদের প্রত্যাশিত ছিল। কিন্তু আমরা এমন কাউকে খুঁজছিলাম যিনি পেশাগত জীবনে পিএইচপি ব্যবহার করেন এবং এই বিষয়ে একটি বই লিখতে ইচ্ছুক হবেন। এই দুইয়ের সমন্বয় ঘটানো একটু কঠিন বটে, তবে সৌভাগ্যবশত আমরা পেয়ে যাই নাসির খান সৈকতকে। সৈকতের সঙ্গে আমার পরিচয় অনেক বছরের। প্রোগ্রামার ও লেখক হিসেবে তাঁর ওপর আমার বরাবরই আস্থা ছিল। তাই সৈকতের কাছ থেকে বইটি পাওয়া আমাদের জন্য অত্যন্ত আনন্দের।
বইটিতে পিএইচপি প্রোগ্রামিং ভাষার সঙ্গে একেবারে গোড়া থেকে পাঠককে পরিচয় করিয়ে দেওয়া হয়েছে। আর যেহেতু পিএইচপি ভাষার মূল ব্যবহার হচ্ছে ওয়েব অ্যাপ্লিকেশন তৈরিতে, তাই বইতে এই বিষয়েও আলোকপাত করা হয়েছে। পাঠক যেন নিজে নিজে একটি পূর্ণাঙ্গ ওয়েব অ্যাপ্লিকেশন তৈরির স্বাদ পেতে পারেন, সেজন্য এইচটিএমএল, সিএসএস, ডেটাবেজ ইত্যাটি বিষয়েও আলোচনা করা হয়েছে। আশা করি, এই বইটির মাধ্যমে বাংলা ভাষাভাষী অনেকেই ওয়েব প্রোগ্রামিংয়ের আনন্দময় জগতে প্রবেশ করবে এবং বিষয়টি উপভোগ করবে।
তামিম শাহরিয়ার সুবিন,
সিডনি, অস্ট্রেলিয়া।
ডিসেম্বর, ২০২০
লেখকের কথা
বাংলা, ইংরেজি ও গণিতের মতো কম্পিউটার প্রোগ্রামিং শেখাও একই রকম গুরুত্বপূর্ণ। যে যত আগে এই বিষয়ে দক্ষ হতে পারবে সে ততট আগে এর সুবিধাগুলো নিতে পারবে। আর এজন্য যে কম্পিউটারবিজ্ঞানের শিক্ষার্থী হতে হবে, এমন নয়। বরং প্রোগ্রামিং শেখা উচিত স্কুল থেকে। কলেজে ভর্তি হওয়ার সময় থেকেই নিজের একটি ওয়েবসাইট থাকতে পারে, যা তার নিজের তৈরি করা। আর যারা কলেজ-জীবন পার করে এসেছেন তাঁরা এখন শিখতে পারেন এবং এখন থেকেই চালু করতে পারেন নিজের ব্যক্তিগত ওয়েবসাইট।
আমরা এখানে ধারাবাহিকভাবে প্রোগ্রামিং শিখব এবং সেগুলো নিজে নিজে চর্চা করব। প্রোগ্রামিং ভাষা হিসেবে ব্যবহার করব পিএইচপি (PHP)।
পিএইচপি অত্যন্ত জনপ্রিয় একটি প্রোগ্রামিং ভাষা। পিএইচপি জেনারেল পারপাস প্রোগ্রামিং ভাষা বলা হলেও এটি তৈরি করা হয়েছিল মূলত ওয়েবসাইট তৈরির উদ্দেশ্যে। ১৯৯৪ সালে রাসমাস লারডর্ফ (Rasmus Lerdorf) নামের একজন প্রোগ্রামার প্রথম এই প্রোগ্রামিং ভাষা তৈরির কাজ শুরু করেন। সেই সময় Personal Home Page-এর সংক্ষিপ্ত রূপ হিসেবে PHP নাম দেওয়া হয়েছিল। বর্তমানে এটি পরিবর্তন করে করা হয়েছে PHP: Hypertext Preprocessor এবং এই প্রোগ্রামিং ভাষার মান উন্নয়নের দায়িত্বে রয়েছে পিএইচপি গ্রুপ (https://www.php.net)।
পিএইচপি একটি অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং ভাষা। এটি যেমন কমান্ড লাইন থেকে ব্যবহার করা যায়, তেমনি এটি দিয়ে এইচটিএমএল (HTML) কোডের সমন্বয়ে বিভিন্ন ওয়েব অ্যাপ্লিকেশন তৈরি করা যায়। অ্যাপ্লিকেশন এপিআই তৈরির জন্য পিএইচপি অত্যন্ত জনপ্রিয় একটি প্রোগ্রামিং ভাষা। পিএইচপিভিত্তিক বিভিন্ন জনপ্রিয় কনটেন্ট ম্যানেজমেন্ট সিস্টেম (সিএমএস) রয়েছে, যেমন ওয়ার্ডপ্রেস (WordPress), জুমলা (Joomla), দ্রুপাল (Drupal) ইত্যাদি। অন্যদিকে লারাভেল (Laravel) ও সিম্ফনি (Symfony) রয়েছে জনপ্রিয় পিএইচপি ফ্রেমওয়ার্কের তালিকায়। পিএইচপি প্রোগ্রামিং ভাষায় দক্ষতা থাকলে এগুলো ব্যবহার করে নানা কাজের অ্যাপ্লিকেশন তৈরি করা যাবে।
ব্যাকএন্ড বা সার্ভার-সাইড প্রোগ্রামিংয়ের জন্য পিএইচপি বেশি পরিচিত। পিএইচপি প্রায় সব ধরনের অপারেটিং সিস্টেম থেকে ব্যবহার করা যায়। তাই উইন্ডোজ, লিনাক্স বা ম্যাক, যে যেমন কম্পিউটারই ব্যবহার করেন সেখান থেকেই শিখতে পারবেন। পিএইচপি প্রোগ্রামিং ভাষা ব্যবহার করে ডেটাবেজ সার্ভার থেকে তথ্য নিয়ে এসে প্রদর্শন করা যায়, এবং জনপ্রিয় প্রায় সবগুলো ডেটাবেজ সিস্টেমের সঙ্গে পিএইচপি যুক্ত করে ব্যবহার করার সুযোগ রয়েছে। ফেসবুক, ইয়াহু, উইকিপিডিয়া, ওয়ার্ডপ্রেস, ফ্লিকার, বাইডুর মতো ওয়েবসাইটগুলো তৈরি করা হয়েছে পিএইচপি প্রোগ্রামিং ভাষা ব্যবহার করে। শুধু তা-ই নয়, বর্তমানে ইন্টারনেটের প্রায় 80 (আশি) ভাগ ওয়েবসাইট তৈরিতে কোনো না কোনোভাবে পিএইচপি ব্যবহার করা হয়েছে।
পিএইচপি দিয়ে যেকোনো ধরনের অ্যাপ্লিকেশন তৈরি করা যায়। কাজের সুবিধার জন্য রয়েছে নানা সিএমএস বা ফ্রেমওয়ার্ক। কোনো বিশেষ অ্যাপ্লিকেশন, সিএমএস বা ফ্রেমওয়ার্ক ব্যবহারে দক্ষ হওয়ার অর্থ এই নয় যে প্রোগ্রামিংয়ে দক্ষতা এসেছে। কারণ, সিএমএস বা ফ্রেমওয়ার্কে নিয়মিত প্রয়োজন হয় এমন অনেকটা অংশ তৈরি করাই থাকে। ফলে এগুলো ব্যবহার করে নতুন অ্যাপ্লিকেশন তৈরি করা যায়, এমনকি কাজের সুবিধার জন্য আরো নানা বৈশিষ্ট্য যুক্ত করা থাকে। তবে আগে থেকে তৈরি করা অংশগুলো প্রয়োজন অনুযায়ী পরিবর্তন বা নিজের মতো তৈরি করে ব্যবহার করা যায়, এমনকি সম্পূ্র্ণ একটি সিএমএস বা ফ্রেমওয়ার্কও তৈরি করা সম্ভব। এজন্য প্রথমে প্রোগ্রামিংয়ের সব বিষয়ে দক্ষতা অর্জন করা জরুরি।
কম্পিউটার ব্যবহারের সাধারণ জ্ঞান আছে বা শিখতে আগ্রহী এমন যে-কেউই পিএইচপি প্রোগ্রামিং শিখতে পারবে। কোন বিষয়ে লেখাপড়া করেছে বা বর্তমানে পড়ছে, এটি একেবারেই গুরুত্বপূর্ণ নয়। তবে বর্তমান সময়ে প্রায় সব ধরনের কাজের ক্ষেত্রেই কম্পিউটারের ব্যবহার বাড়ছে। তাই কম্পিউটার বিজ্ঞানের শিক্ষার্থী না হলেও প্রোগ্রামিংয়ে দক্ষতা থাকলে অন্য সব ধরনের কাজের ক্ষেত্রেই অন্যদের থেকে এগিয়ে থাকা সম্ভব। কম্পিউটার প্রোগ্রামিং জানা থাকলে লেখাপড়া, চাকরি, ব্যবসায়সহ নানা ক্ষেত্রে এই জ্ঞান ব্যবহার করে উন্নতি করা সম্ভব। ফ্রিল্যান্সার হিসেবে কাজ পাওয়ার বা সফল হওয়ার ক্ষেত্রে প্রোগ্রামিংয়ের দক্ষতা একটি বড়ো ভূমিকা পালন করতে পারে। আমরা পিএইচপি ভাষা ব্যবহার করে প্রোগ্রামিংয়ের বিভিন্ন দিক জানব। আগে কখনো প্রোগ্রামিং শেখেনি বা খুব সামান্য চর্চা করেছে, এমন ব্যক্তিদের উদ্দেশ্য করে ধারাবাহিকভাবে নতুন নতুন বিষয় নিয়ে আলোচনা করা হবে। পিএইচপি শেখার জন্য আগে থেকে কোনো কিছু শিখে রাখার প্রয়োজন নেই। শেখার শুরুতে আমরা কয়েকটি সফটওয়্যার ইনস্টল করব, তবে সেগুলো কীভাবে কাজ করে তা প্রথমেই জানার প্রয়োজন নেই। ধাপে ধাপে আমরা পিএইচপি শিখতে থাকব এবং কিছুটা দক্ষ হওয়ার পরে ওয়েব-প্রযুক্তির অন্যান্য নানা দিক, সিএমএস ও ফ্রেমওয়ার্ক ইত্যাদি সম্পর্কে জানব।
সূচিপত্র
- ভূমিকা
- লেখক পরিচিতি
- লেখকের কথা
- অধ্যায় ১ – সূচনা
- প্রোগ্রামিং শিখতে পিএইচপি কেন?
- পিএইচপি কোড লেখার পরিবেশ তৈরি
- পিএইচপি কোড এডিটর
- পিএইচপি ট্যাগ, ফাইল এক্সটেনশন ও প্রথম প্রোগ্রাম
- কোডে কমেন্ট (comment) লেখা
- অধ্যায় ২ – ভ্যারিয়েবল
- কনস্ট্যান্ট (Constant)
- অধ্যায় ৩ – ডেটা টাইপ
- বুলিয়ান
- ইন্টিজার (Integer)
- ফ্লোটিং পয়েন্ট সংখ্যা (Float Point Number)
- স্ট্রিং (String)
- অ্যারে (Array)
- ডেটা টাইপ পরিবর্তন
- অধ্যায় ৪ – অপারেটর
- অপারেটরের অগ্রাধিকার
- অ্যারিথমেটিক (Arithmetic) অপারেটর
- কম্পারিসন (Comparison) অপারেটর
- ইনক্রিমেন্ট (Increment)/ডিক্রিমেন্ট (Decrement) অপারেটর
- লজিক্যাল (Logical) অপারেটর
- স্ট্রিং (String) অপারেটর
- অ্যারে (Array) অপারেটর
- বিটওয়াইজ (Bitwise) অপারেটর
- অধ্যায় ৫ – কনট্রোল স্ট্রাকচার
- কনডিশনাল লজিক (if, else)
- কনডিশনাল লজিক (নেস্টেড if – else এবং elseif/else if)
- লুপ (Loop)
- While লুপ
- Do while লুপ
- for লুপ
- foreach লুপ
- ব্রেক (break)
- কনটিনিউ (continue)
- সুইচ (Switch)
- ইনক্লুড (include)
- রিকোয়্যার (require)
- require_once ও include_once
- পিএইচপি ল্যাংগুয়েজ কনস্ট্রাক্ট
- অধ্যায় ৬ – ফাংশন (Function)
- নতুন ফাংশন তৈরি করা
- যেকোনো-সংখ্যক প্যারামিটার
- বিল্টইন ফংশন
- অধ্যায় ৭ – প্রয়োজনীয় কিছু ফাংশন
- ইউনিক আইডি তৈরি করা
- কোনো ডিরেক্টরি বা ফোল্ডারের সব ফাইলের তালিকা
- অ্যারে-সংক্রান্ত কিছু ফাংশন
- স্ট্রিং-সংক্রান্ত ফাংশন
- সময় ও তারিখ
- অধ্যায় ৮ – অবজেক্ট-ওরিয়েন্টেড পিএইচপি
- অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিংয়ের কিছু বৈশিষ্ট্য
- পিএইচপিতে ওওপি ব্যবহার
- পিএইচপি ক্লাস ও অবজেক্ট তৈরি করা
- কনস্ট্রাক্টর মেথড
- ডিস্ট্রাক্টর মেথড
- ইনহেরিট্যান্স
- অ্যাবস্ট্রাক্ট (abstract) ক্লাস ও মেথড
- কনস্ট্যান্ট
- স্ট্যাটিক মেথড
- স্ট্যাটিক প্রপার্টি
- ট্রেইট (Trait)
- নেমস্পেস (Namespace)
- অধ্যায় ৯ – এরর (Error) ও এক্সেপশন (Exception)
- এরর (Error)
- এক্সেপশন (Exception)
- অধ্যায় ১০ – পিএইচপি কীভাবে কাজ করে
- অধ্যায় ১১ – ওয়েব কনসেপ্ট
- স্ট্যাটিক ও ডাইনামিক ওয়েবসাইট
- ওয়েব ব্রাউজার
- ওয়েবসাইটের ঠিকানা
- ডোমেইন নেম সার্ভিস
- পাবলিক আইপি
- ওয়েব সার্ভার
- ওয়েবসাইট
- এইচটিএমএল
- ডেটাবেজ
- সার্ভারসাইড প্রোগ্রামিং/পিএইচপি (PHP)
- ক্লায়েন্টসাইড প্রোগ্রামিং/জাভাস্ক্রিপ্ট (JavaScript)
- অধ্যায় ১২ – এইচটিএমএল (HTML)
- এইচটিএমএলের সাধারণ কিছু তথ্য
- এইচটিএমএল ফাইলের উদাহরণ
- এইচটিএমএল কোড এডিটর
- এইচটিএমএল এলিমেন্ট
- <head>
- <title>
- <body>
- হেডিং (Heading)
- প্যারাগ্রাফ
- এইচটিএমএল ফরম্যাটিং
- কোটেশন ও সাইটেশন
- কমেন্ট
- লিংক
- ছবি
- টেবিল
- লিস্ট
- এইচটিএমএল ব্লক ও ইনলাইন
- এইচটিএমএল অ্যাট্রিবিউট
- অধ্যায় ১৩ – সিএসএস (CSS)
- ইনলাইন/এইচটিএমএল স্টাইল
- ইন্টারনাল সিএসএস
- এক্সটারনাল সিএসএস
- সিএসএস লেখার পদ্ধতি
- সিলেক্টর
- কমেন্ট
- সিএসএসের ক্রম (CSS Precedence)
- সিএসএস এককসমূহ
- রিসপনসিভ ডিজাইন
- রিসপনসিভ ডিজাইন তৈরি
- মিডিয়া কুয়েরি
- রিসপনসিভ ডিজাইনের কিছু সাধারণ নিয়ম
- মোবাইল ফার্স্ট ডিজাইন
- সিএসএস রিসেট এবং নর্মালাইজ
- গুরুত্বপূর্ণ সিএসএস প্রপার্টি
- অধ্যায় ১৪ – পিএইচপি, এইচটিএমএল ও সিএসএস-এর সমন্বয়
- ব্রাউজার থেকে পিএইচপি
- পিএইচপি ফাইলের সঙ্গে সিএসএস ব্যবহার করা
- অধ্যায় ১৫ – ফর্ম ব্যবস্থাপনা
- সম্পূর্ণ ফর্ম তৈরি ও ডিজাইন করা
- ফর্ম অ্যাকশন ও মেথড
- ফর্ম যাচাই বা ভ্যালিডেশন
- সার্ভার থেকে ভ্যালিডেশন
- এইচটিএমএল ভ্যালিডেশন
- ফাইল আপলোড
- অধ্যায় ১৬ – $_SERVER ভ্যারিয়েবল
- অধ্যায় ১৭ – ফাইলের সঙ্গে ফাইল যুক্ত করা
- অধ্যায় ১৮ – কুকি (Cookie)
- কুকি নির্ধারণ করা
- কুকির মান পরিবর্তন করা
- কুকির মান মুছে ফেলা
- কুকি অপশন নিষ্ক্রিয় কি না যাচাই করা
- অধ্যায় ১৯ – সেশন (Session)
- সেশন শুরু করা
- সেশনের মান পুনর্নির্ধারণ
- সেশনের মান মুছে ফেলা
- অধ্যায় ২০ – ডেটা ফিল্টারিং (Filtering)
- ভ্যালিডেশন ফিল্টার
- স্যানিটাইজেশন ফিল্টার
- ফ্ল্যাগ ফিল্টার
- filter_var() ফাংশন
- filter_var_array()
- বিভিন্ন ধরনের তথ্য যাচাই করার ফিল্টারসমূহ
- অধ্যায় ২১ – ইমেইল (Email)
- SMTP ইমেইল
- অন্যান্য ইমেইল সেবা
- অধ্যায় ২২ – রেগুলার এক্সপ্রেশন
- রেগুলার এক্সপ্রেশন ফাংশনসমূহ
- রেগুলার এক্সপ্রেশন সিনট্যাক্স
- ক্যারেক্টার ক্লাস প্যাটার্ন
- প্রিডিফাইন্ড ক্যারেক্টার ক্লাসসমূহ
- রিপিটেশন কোয়ান্টিফায়ার
- পজিশন অ্যাংকর
- প্যাটার্ন মডিফায়ার
- ওয়ার্ড বাউন্ডারি
- অধ্যায় ২৩ – ডেটাবেজ ম্যানেজমেন্ট সিস্টেম
- ডেটা বা উপাত্ত
- ডেটাবেজ
- বিভিন্ন ধরনের ডেটাবেজ
- RDBMS (Relational Database Management System)
- ডেটাবেজের কিছু গুরুত্বপূর্ণ ধারণা
- অধ্যায় ২৪ – মাইএসকিউএল ডেটাবেজ
- মাইএসকিউএল ইনস্টল করা
- মাইএসকিউএল ক্লায়েন্ট
- phpMyAdmin ওয়েব ক্লায়েন্ট
- মাইএসকিউএল ওয়ার্কবেঞ্চ
- কমান্ড লাইন থেকে ব্যবহার করা
- অধ্যায় ২৫ – মাইএসকিউএল ক্লায়েন্টের ব্যবহার পদ্ধতি
- phpMyAdmin ক্লায়েন্ট ব্যবহার
- মাইএসকিউএল ওয়ার্কবেঞ্চ ব্যবহার
- অধ্যায় ২৬ – পিএইচপি কোড থেকে ডেটাবেজ ব্যবহার
- সংযোগ (Connect)
- ডেটাবেজ তৈরি (Create database)
- ডেটাবেজ টেবিল তৈরি (Create Table)
- ইনসার্ট (Insert)
- সর্বশেষ আইডি
- প্রিপেয়ার্ড স্টেটমেন্ট (Prepared Statement)
- সিলেক্ট (Select)
- শর্তযুক্ত সিলেক্ট
- অর্ডার বাই (ORDER BY)
- লিমিট (Limit)
- আপডেট (Update)
- ডিলিট (Delete)
- অধ্যায় ২৭ – এজ্যাক্স (AJAX)
- পিএইচপি এজ্যাক্স অ্যাপ্লিকেশন
- অধ্যায় ২৮ – অ্যাপ্লিকেশনের নিরাপত্তা
- সার্ভার থেকে পিএইচপি ব্যবহার
- সেশনের নিরাপত্তা
- ফাইল সিস্টেমের নিরাপত্তা
- ডেটাবেজের নিরাপত্তা
- এরর রিপোর্টিং (Error Reporting)
- ফর্মে ডেটা সাবমিট করা
- এসকিউএল ইনজেকশন (SQL Injection)
- ক্রস-সাইট স্ক্রিপ্রিং (Cross-site Scripting) বা XSS
- নিরাপদ কোড লেখার কৌশল
- অধ্যায় ২৯ – পিএইচপি স্ট্যান্ডার্ড রেকমেন্ডেশন
- অধ্যায় ৩০ – পিএইচপি প্যাকেজ
- অধ্যায় ৩১ – সিএমএস ও ফ্রেমওয়ার্ক
- সিএমএস (CMS)
- ফ্রেমওয়ার্ক
- সিএমএস এবং ফ্রেমওয়ার্কের তুলনা
Reviews
There are no reviews yet.