[সেমিনার] [Kohana: একটি লাইটওয়েট পিএইচপি ফ্রেমওয়ার্ক] [Brandon লিউ] [হার্ভার্ড বিশ্ববিদ্যালয়] [এটি CS50.] [CS50.TV] পরিষ্কার উচ্চ সবাই. আমার নাম Brandon হয়. আমি কলেজে করছেন কম্পিউটার বিজ্ঞান এ এখানে একটি জুনিয়র, এবং আজ আমরা যে বিষয়ে কথা বলতে যাচ্ছেন একটি পিএইচপি ওয়েব ডেভেলপমেন্ট ফ্রেমওয়ার্ক যা Kohana,. আজ একটি লাইভ কোডিং সেমিনার হতে যাচ্ছে, তাই আমি মূলত, Kohana কি ব্যাখ্যা 5-10 মিনিট ব্যয় করা যাচ্ছে না এবং তারপর আমি আক্ষরিক একটি সুপার সহজ ব্লগে নির্মাণ করা যাচ্ছে না অধিকার এখানে আক্ষরিক ধাপ থেকে আপনার জন্য. আমরা Kohana ওয়েবসাইট থেকে কোড ডাউনলোড করতে যাচ্ছেন এবং, আমরা একটি ব্লগ নির্মাণ শুরু করতে যাচ্ছেন, এবং আশা এটি খুবই শিক্ষামূলক হবেন আপনি সম্ভবত হয়তো দেখতে পাবেন, কারণ আমি কিছু ভুল করা হবে, এবং আপনি আমাকে তাদের থেকে স্বাভাবিক দেখতে পাবেন, আমি এই ব্লগের মাধ্যমে গড়ে তুলতে হিসাবে অথবা আপনি আমার চিন্তার প্রক্রিয়া দেখতে পাবেন, এবং ইতিমধ্যে, তবে আপনাকে কাঠামো নিজেই সঙ্গে পরিচিত হয়ে উঠবেন. আশা রাখি, এটি একটি অত্যন্ত শিক্ষামূলক ব্যায়াম হবেন. প্রথম, একটি কাঠামো ঠিক কি না? আপনি এ পর্যন্ত CS50 গ্রহণ করছি, আপনি সত্যিই কোনো কাজ হয়নি অবকাঠামো এখনো, এবং জিনিস এই. আপনি সম্ভবত, ইতিমধ্যে 1 ওয়েব ডেভেলপমেন্ট pset করেছেন এবং এর আপনি ওয়েবসাইট নির্মাণ এবং বিল্ডিং ওয়েবসাইটে রাখা অবিরত বলা যাক. আপনি কিছু বিষয় লক্ষ্য করা শুরু করব. আপনি বিজ্ঞপ্তি পাবেন প্রথম জিনিস আপনি সম্ভবত একই জিনিস করছেন যে হয় এবং উপর আবার সব সময়, ব্যবহারকারীর ইনপুট ডেটা পরিষ্কার ভালো জিনিস, একটি নির্দিষ্ট উপায় আপনার ফাইল সংগঠিত ভালো জিনিস. এছাড়াও আপনি সম্ভবত বিজ্ঞপ্তি পাবেন অন্যান্য জিনিস যে আপনার কোড খুব খুব নোংরা হয়ে শুরু হতে পারে, এবং আপনি নোংরা এটি ছেড়ে এবং শুধুমাত্র একটি খুব কঠিন সময় এটা বজায় থাকতে পারে, অথবা আপনি আপনার কোড গঠন শুরু এবং এটি মডুলার তৈরীর পারে এটা অধিক নিয়ন্ত্রণযোগ্য করা নির্দিষ্ট উপায়ে. ওয়েব অবকাঠামো মূলত ইন এসেছিলেন যেখানে এই হল ওয়েবসাইটের অনেক নির্মিত যারা এই ব্যক্তিরা, তারা বলেন, "আমরা এই আমরা একটি ওয়েবসাইট নির্মাণ প্রতি একক সময় পুনরায় করার প্রয়োজন হবে না." "কেন আমরা শুধু আপনার জন্য সব জিনিষ আছে যে কোনো প্যাকেজ না প্রতি একক সময় আপনি একটি ওয়েবসাইট নির্মাণ করতে চান? " এবং যাতে আপনি একটি নতুন ওয়েবসাইট তৈরি করতে হলে, আপনি ঠিক ঠিক এই বিশেষ ওয়েবসাইট সম্পর্কে কি ফোকাস. আপনি সমস্ত বিভিন্ন কনফিগারেশন পুনরাবৃত্তি করতে হবে না এবং কোড বিচ্ছেদ এবং rewriting কোড আপনি প্রায়ই আপনি ওয়েবসাইট তৈরি করছি যখন যা করতে হবে যে. ধারণা একটি কাঠামো আপনি একটি উচ্চ পর্যায়ের কোড লিখতে পারবেন নিম্ন স্তরের বিবরণ সম্পর্কে চিন্তা ছাড়াই. একটি নিম্ন স্তরের বিস্তারিত ভালো কিছু হতে পারে ব্যবহারকারীর ইনপুট ডেটা পরিষ্কার সঙ্গে আচরণ. তার মানে আপনি সত্যিই চিন্তা করতে হবে না যে কিছু. আপনি আপনার ওয়েব বরাদ্দ সম্পর্কে আসলে কি উপর ফোকাস করা উচিত. এটা boilerplate কোড অনেক ঘটিয়েছে. এটা আপনার প্রকল্পের জন্য স্থাপত্য হয়. সবচেয়ে জনপ্রিয় এক মডেল দেখুন-কন্ট্রোলার, হবে আমি এক সেকেন্ডের মধ্যে সম্পর্কে কথা বলতে যাচ্ছি যা. আর বার অনেক এইসব অবকাঠামো পদ্ধতি একটি সেট অঙ্গীভূত, আপনি ব্যবহার করতে জন্য নিয়ম, এবং ভাল পদ্ধতি যাতে আপনি ওয়েব ফ্রেমওয়ার্ক অবলম্বন যখন আপনি যদি একটি নির্দিষ্ট ভাবে আপনার কোড লিখতে হবে এবং এটি সাধারণত একটি নীতির সেট উপর একমত হচ্ছে সাধারণত হতে গৃহীত হয়েছে যে সম্প্রদায় দ্বারা লেখা কোড একটি ভালো উপায়. এটা আরো উপভোগ্য, আপনার কোড অধিক নিয়ন্ত্রণযোগ্য করে তোলে তাই এবং তাই ঘোষণা. এবং পরিশেষে, আমি চাই জিনিস অবকাঠামো বিষয়ে জোর দেওয়া লাইব্রেরি বনাম নিয়ন্ত্রণ বিপর্যয় সম্পর্কে এই ধারণা, এবং জিনিস এই. একটি লাইব্রেরি এবং একটি কাঠামোর মধ্যে পার্থক্য হল যে একটি লাইব্রেরি সঙ্গে আপনি এখনও প্রধান প্রোগ্রাম লেখা হয়, এবং আপনি ধরণের লাইব্রেরি invoking করছি এবং আপনার জন্য কিছু করতে লাইব্রেরির উপর কলিং. একটি লাইব্রেরি এবং একটি কাঠামোর মধ্যে পার্থক্য কাঠামোর নিয়ন্ত্রণ সঙ্গে আরম্ভ আউট অনুপস্থিত এবং এটি আপনার কোড নিয়ে আসে, যাতে আপনি হিসাবে মনে করতে পারেন - এটি একটি কাঠামো নামক এর এটা কেন হয় - ফ্রেমওয়ার্ক আপনার কোড এর জন্য এই ফ্রেম এবং কাঠামো প্রদান করে, এবং আপনি গর্ত পূরণ, এবং এই একটি দ্বিতীয় মধ্যে আরো স্পষ্ট হয়ে যাবে আপনি দেখতে যখন আমার কাঠামোর প্রেক্ষাপটে মধ্যে কোড লিখতে শুরু. আপনি আমি ফাঁক পূরণ করছি দেখতে পাবেন, এবং কাঠামো ধরনের, সব চলন্ত টুকরা নিয়ন্ত্রন করা হয় এবং আমি ঠিক জায়গায় টুকরা দিতে হবে. আজ আমরা Kohana সম্পর্কে কথা বলতে যাচ্ছেন, যা অনেক পিএইচপি অবকাঠামো একটি. , ওয়েব অবকাঠামো আছে, এবং বেশী প্রায় প্রতিটি একক ভাষায় আছে Kohana তর্কসাপেক্ষ, কারণ এবং আমি Kohana অবচয় করছি এবং সাধারণত নিতে সহজে পিএইচপি ফ্রেমওয়ার্ক হিসেবে স্বীকৃত. এটা সবচেয়ে লাইটওয়েট এর. অনেক, আরো অনেক বৈশিষ্ট্য সঙ্গে আসা আউট আছে অন্যান্য বেশী, আছে কিন্তু তারা নিতে আরো কঠিন হতে থাকে. এবং পরিশেষে, Kohana MVC আর্কিটেকচার ব্যবহার করে. এটা আমরা আক্ষরিক একটি প্রকল্প নির্মাণ করতে পারেন যে যথেষ্ট লাইটওয়েট অধিকার এখানে ডান আপনার চোখের সামনে, এবং আপনি প্রায় কাছাকাছি যা করতে পারেন বেশ সহজে বরাবর অনুসরণ. MVC স্থাপত্য কি? এটা মডেল দেখুন-কন্ট্রোলার ঘোরা আপনি কোড সম্পর্কে চিন্তা এবং যদি হয়ত আপনি এ পর্যন্ত লেখা হয়েছে করেছি আপনার ওয়েব ডেভেলপমেন্ট psets কিছু আপনি লেখা শুরু যখন আপনি সাধারণত এই কিছু দেখতে পারবেন, কিন্তু পারে একটি আরো জটিল ওয়েব অ্যাপ্লিকেশন, এই 3 খন্ডের মধ্যে বিভাজন আরও স্পষ্ট হয়ে ওঠে. আমি বাছাই করা একটি স্ট্যাক হিসাবে এখানে MVC পরিপূর্ণ এবং প্রায়ই আপনি মানুষ ওয়েব উন্নয়ন stacks সম্পর্কে কথা শুনতে পাবেন, এবং এই ধারণা চিত্রিত করা হয় প্রতিটি স্তর, প্রতিটি উপাদানের সত্যিই শুধুমাত্র যোগাযোগ করতে চেষ্টা 2 অন্যান্য উপাদান মধ্যে. কেউ একজন ক্লায়েন্ট বা একটি ব্রাউজার হিসাবে আপনার ওয়েবসাইট ব্যবহারের হার. তারা দেখতে কোড মাধ্যমে আপনার প্রোগ্রামের সাথে যোগাযোগ করার. দেখুন কোড নিয়ামক সাথে মিথস্ক্রিয়া. নিয়ামক, মডেল সাথে মিথস্ক্রিয়া এবং মডেল এসকিউএল ডাটাবেজ সাথে মিথস্ক্রিয়া. আপনি সঠিকভাবে আপনার কোড লিখুন এবং যদি এর মধ্যে কোন প্লব আছে. এই জিনিস কি করব? মডেল মূলত আপনার তথ্য সঙ্গে পুলিশ যে কোডের টুকরা. আপনি সঞ্চয় যে বস্তুর সঙ্গে, আপনার ডাটাবেসের সঙ্গে পুলিশ যে কিছু, অথবা ডাটাবেসে ঐ বস্তু উদ্ধার, যে সব মডেল দ্বারা পরিচালিত হচ্ছে. হতে পারে আপনি আপনার ডাটাবেসের মধ্যে বস্তু আছে. আমরা পোস্ট না থাকার একটি মডেল তৈরি করতে যাচ্ছেন, তাই একটি পোস্ট এটি কিছু গুণাবলী থাকতে পারে. আপনি ঐ পোস্ট জমা করার বা পোস্ট পুনরুদ্ধারের কাছাকাছি ফাংশন থাকতে পারে বা তাই এবং তাই ঘোষণা পোস্ট এবং ফিল্টারিং, এবং যে মডেল দ্বারা পরিচালিত যে সব কোড এর. নিয়ন্ত্রক আবেদন যুক্তি সাজান, এবং বিভিন্ন জিনিস অনেক আবেদন লজিক এ যেতে পারেন. আপনি একটি ভিন্ন এপিআই কথা বলা করছি, আপনি আবেদন লজিক সঙ্গে লেনদেন করছেন যে যেখানে হতে পারে. আপনি একাধিক বিভিন্ন মডেল থেকে ডাটা নিয়ে আসতে হবে চেষ্টা করছেন এবং প্রায়ই নিয়ামক দ্বারা পরিচালিত হতে পারে, কিছু উপায় তাদের একত্রিত করতে হবে. উদাহরণস্বরূপ, ফেসবুকে, আপনি বন্ধু কেউ যদি যে সম্পর্ক প্রতিষ্ঠার তাহলে সম্ভবত যে আইন নিয়ামক দ্বারা এটি করা হতে পারে. এবং পরিশেষে, দেখুন আপনি আসলে দেখতে উৎপাদিত যে কোড রয়েছে. বার অনেক আমি CS50 psets মধ্যে মনে তারা সত্যিই এই 3 জিনিসের আলাদা আপনাকে বলছি উত্সাহিত করবেন না. আপনি সম্ভবত শীর্ষে যেখানে এই বড়, দীর্ঘ ফাইল করতে হবে আপনি কিছু এসকিউএল কোয়েরি করতে এবং হয়ত কিছু প্রক্রিয়াজাতকরণ না তথ্য উপর আপনি, ডাটাবেস থেকে উদ্ধার এবং তারপর আপনি নীচে সব আপনার HTML আছে. আপনি আরো এবং আরো পৃষ্ঠা তৈরি এবং হিসাবে আপনি খুঁজে পেতে পারেন তবে আপনাকে কিছু কোড পুনরাবৃত্তি আছে যাচ্ছে, এবং করছি যে, ব্যাপার হল আপনার ফাইল সত্যিই বড় এবং দীর্ঘ পায় হয় এবং পরিচালনা করার জবরজং হয়ে. MVC ভাল গণ্য হয় কারণ কারণের একটি নম্বর জন্য. প্রথম জিনিস উদ্বেগ বিচ্ছেদ কিছু বলা হয় যা আপনি যখন যে ধারণা - কোড এর আদর্শভাবে 1 টুকরা, 1 জিনিস করে এবং সত্যিই ভাল এটা করতে হবে এবং আপনি অসম কিছু করার যে কোড টুকরোগুলি একত্রিত করা উচিত নয়. উদাহরণস্বরূপ,, কোড এবং মডেল কোড দেখতে তারা সত্যিই সম্পর্কিত হতে হবে না. আপনি যদি তাদের আলাদা করতে পারে যখন তারা একই ফাইলের মধ্যে হতে হবে, তাই না তাই এটা বজায় রাখা সহজ. অন্যান্য জিনিস কোড পুনরায় ব্যবহার করা. আপনি নিজেকে একই এসকিউএল কোয়েরি লেখা বা এরকম হতে পারে 1 ফাংশন মধ্যে আনমনা হতে পারে একই প্রশ্ন, এবং যে, ধারণা মডেল এবং কন্ট্রোলার পিছনে আপনি আপনার প্রকল্পের মধ্যে বিভিন্ন জায়গায় পুনরায় ব্যবহার করতে পারেন যে একটি পৃথক ফাংশন মধ্যে এটি হচ্ছে. এবং পরিশেষে, যে, আপনার কোড শুকানোর সাথে সংযুক্ত হচ্ছে বা নিজেকে পুনরায় না, নিজেকে পুনরাবৃত্তি করবেন না. এই উন্নয়নে খুবই বোধগম্য হয়. আপনি, আপনি আপনার নিজের পুনরাবৃত্তি কারণ যদি, নিজেকে পুনরাবৃত্তি করতে চাই না পারেন যখনই,  এটা আরো অনেক ব্যয়বহুল বজায় রাখার জন্য. আপনি 1 জিনিস পরিবর্তন করতে চান, আপনি, সব জায়গায় এটা পরিবর্তন করতে হবে এবং যে বাগ বাড়ে, এবং এটা ভয়ঙ্কর এর. ঠিক আছে. এ পর্যন্ত Kohana সম্পর্কে কোন প্রশ্ন এ সব? গ্রেট. এখন আমরা লাইভ কোডিং সেশনের মধ্যে আকর্ষণীয় করতে যাচ্ছেন, এবং আশা সবকিছু ভাল যায়. আমি মূলত এই ওয়েবসাইট নির্মাণ করতে যাচ্ছি আমার দূরবর্তী সার্ভারের মধ্যে একজন, এবং আপনাকে বলছি এটিও করতে পারেন যে পথে ওয়েবসাইট দেখতে এবং ওয়েবসাইটে প্রবেশ, এবং এছাড়াও পরিবেশ, আমার দূরবর্তী মেশিনের চেয়ে ভাল লিখে পরীক্ষকের এটা পরিবর্তে OS X-র লিনাক্স চলমান কারণ আমরা আক্ষরিক শুরু চলুন. KohanaFramework.org. আমি ওয়েবসাইট থেকে কোড ডাউনলোড করতে যাচ্ছি. আমি লিঙ্ক ঠিকানা কপি করা যাচ্ছে না, আমার সার্ভার যান, এটা ডাউনলোড, এবং আমি তা নিষ্কাশন করা যাচ্ছে না. [ছাত্র] আপনি টেক্সট করতে পারেন বৃহত্তম কি? [Brandon লিউ] যে ভাল? [ছাত্র] [Brandon লিউ] হাঁ, যে সূক্ষ্ম যে doable? হয়. আমি একটি জিপ ফাইল ডাউনলোড এবং Kohana নামক একটি ডিরেক্টরির মধ্যে যে আনজিপ এবং আমরা, যে CS50-Kohana নামান্তর চলুন এবং এর ইন চলুন জট্টিল. এখানে আপনি বিভিন্ন ফাইলের একটি গুচ্ছ দেখুন. আপনি অধিকাংশ উপেক্ষা করতে পারেন - এখানে যে প্রতি একক ফাইল দিয়ে যেতে যাচ্ছে না হন আমাদের সময় সীমাবদ্ধতার কারণে, কিন্তু সাধারণত আপনি Kohana, আপনি প্রথম জিনিস ইনস্টল করার সময় আপনি ডিরেক্টরিতে যেতে হয়, এবং আপনি মূলত কিছু পরিবেশে পরীক্ষা এবং যে কোন বস্তু চেষ্টা করবো নিশ্চিত করুন আপনার পরিবেশ সঠিকভাবে Kohana চালানোর সেট করা হয় এবং সবকিছু ঠিক আছে যে নিশ্চিত করুন. আপনি অধিকাংশ জিনিস পাশ দেখতে পারেন, কিন্তু সাধারণত আপনি সবসময় এই 1 সমস্যা পাতিত এটা, কিছু ডাইরেক্টরি লিখনযোগ্য নয় যে অভিযোগ যেখানে এবং যে কারণ কিছু অনুমতি আছে. আমি আপনাকে বলছি CS50 মধ্যে ফাইলের অনুমতি সম্পর্কে জেনে কত জানি না আপনি ওয়েব ডেভেলপমেন্ট করতে কিন্তু, যদি আপনি যদি এই সমস্যার মধ্যে অনেক রান চলুন. আমি এটা লিখনযোগ্য করতে যাচ্ছি আমরা যেতে আছে - এবং আমি থেকে আমি আরো আছে মনে. ঠিক আছে, তাই এখন আপনি সবকিছু পাশ দেখতে পারেন, এবং এখন এটি install.php ফাইল নামান্তর করতে আপনাকে জানানো হবে. আমি installed.php করতে install.php ফাইল স্থানান্তর করতে চলেছি, এবং এখন আমি, রিফ্রেশ যদি এটি সম্পর্কে কিছু ত্রুটি দেয়, এবং ডিবাগ আসে অংশে যেখানে এই হল আপনি আসলে ঘটতে যাচ্ছে তা দেখতে পারেন এই যেখানে. জিনিস ডিফল্টরূপে, Kohana অনুমান করে যে, হয় আপনার প্রকল্প, আপনার ডোমেইন এর রুট ডিরেক্টরি মধ্যে রয়েছেন তাই এটা আপনি demo.brandonkliu.com হতে আশা করা হচ্ছে. আমরা এটি একটি subfolder মধ্যে আসলে যে তা জানাতে হবে. এটা CS50 Kohana নামক একটি subfolder আছে. ব্যাপার হল এটি CS50-Kohana misinterpreting এর, হয় আমি এক সেকেন্ডের মধ্যে আপনার কাছে ব্যাখ্যা করছি যা অন্য কিছু, হিসাবে. কিন্তু আমি বলে আশা করা যে কিছু আপনাকে বলতে হবে. আমরা কি করতে যাচ্ছেন, আমরা বিষয় খেয়াল রাখতে বলা এই ফোল্ডার ঢোকা চলুন হয় যা বিভিন্ন জিনিস অনেক স্থাপন করা হয় যেখানে কনফিগারেশন ফোল্ডার হয়. আমি যে খুলুন. তারপর হয়তো আমি চেষ্টা করবো প্রথম জিনিস এক সময় অঞ্চল পরিবর্তন করতে হয়. এবং তারপর দেখুন. অই! এখানে ডান. বিভিন্ন কনফিগারেশন বাণী একটি গুচ্ছ এখানে আছে, কিন্তু আমি চাই এক, বেস ইউআরএল নামক এই জিনিস এবং ডিফল্ট অবস্থায় আমি এটা Kohana সেট করুন কিন্তু আমি CS50-Kohana করতে যে পরিবর্তন করা যাচ্ছে না এবং আমি যে এটা ঠিক করা উচিত মনে করি. হ্যাঁ, মহান. ডিফল্টরূপে, এটা, এটা বলছেন, কাজ যে দেখতে "হ্যালো ওয়ার্ল্ড". যে কোথায় থেকে এসেছে? কিভাবে আমরা হ্যালো ওয়ার্ল্ড থেকে পেতে পারি? কোথায় ঠিক আসলে যে লিখেছে যে কোড আছে? যে বুঝতে, আমি রাউটিং নামক এই ধারণা পরিচয় করিয়ে দেব. প্রায় কাছাকাছি সব ওয়েব অবকাঠামো, রাউটিং নামক ধারণা আছে একটি নির্দিষ্ট URL টি ম্যাপ করবে সফ্টওয়্যার টুকরা যা আপনার কাঠামোর মধ্যে অবস্থান নির্দিষ্ট টুকরা করা. আপনি কিছু ইউআরএল আছে এবং উদাহরণস্বরূপ, যদি আপনার মত foo.com / ব্লগ / সব কিছু URL-এ যান তারপর কি কাঠামো যা করতে হবে - অথবা অন্তত কি Kohana যা করতে হবে - এটি নিয়ামক ব্লগ নামক একটি বর্গ খুঁজে পাওয়া যাচ্ছে হয় এবং এটি সমস্ত ফাংশন নামক কর্ম চালাতে যাচ্ছে. আমি ক্লাস এবং ফাংশন বিষয়ে কথা বলছি না জানি, এবং আমি আপনাকে বলছি ক্লাস এবং ফাংশন আচ্ছাদিত করেন নি জানি এখনো CS50 মধ্যে, কিন্তু এখন জন্য, আপনি কর্ম শুধু একটি গ্রুপ হিসাবে ক্লাস মনে করতে পারেন, একসঙ্গে ফাংশন গোষ্ঠীবদ্ধ করার একটি উপায়. যে সত্যিই আপনাকে জানতে হবে সব. এখন আমরা আমাদের ফোল্ডারে কাঠামো তাকান, অ্যাপ্লিকেশন ফোল্ডারের ভিতরে ক্লাস নামক আরেকটি ফোল্ডার আছে, এবং অন্যান্য ফোল্ডার কন্ট্রোলার এবং মডেল বলা হয়. আপনি কন্ট্রোলার ফোল্ডারের ভিতরে তাকান, আমরা, স্বাগতম নামক কোনো ফাইল আছে দেখতে এবং আপনি এখানে দেখতে কন্ট্রোলার স্বাগতম নামক একটি বর্গ হল পারেন ও এক্সন ইনডেক্স নামক একটি ফাংশন আছে, এবং এটি কী জন্য এটা হ্যালো বিশ্ব থেকে আপনার প্রতিক্রিয়া শরীরের সেট করে থাকে. কোড লেখা হচ্ছে যে যেখানে. অন্য প্রশ্ন, ভাল, আমি যেতে হয়নি হয় বাজে কথা, বাজে কথা, বাজে কথা, / স্বাগতম / সূচী. আমি এখানে কিভাবে শেষ হয়নি? ওহ, এটা সহজভাবে কারণ এর এখানে আমাদের বুটস্ট্র্যাপ ফাইল নীচে আমরা আমাদের রুট সেট যেখানে আপনি তারা আপনার জন্য কিছু ডিফল্ট সেট দেখতে পারেন. ডিফল্ট নিয়ামক স্বাগত. ডিফল্ট কর্ম সূচি. আমরা সেখানে কিছুই করা হলে এটি স্বয়ংক্রিয়ভাবে স্বাগতম নিয়ামক গিয়েছিলাম এটা কেন এবং সূচক কর্ম. সবকিছু এ পর্যন্ত জানার জন্য? এখন, আপনি শুধু কন্ট্রোলার যেতে বেশী কিছু করতে পারি এবং একটি নির্দিষ্ট কর্ম. আপনি নিয়ন্ত্রকের পরামিতি পাস করতে পারেন. শুধু একটি উদাহরণ হিসাবে, আমি আপনাকে দেখাতে এই নিয়ামক অন্য কর্ম যোগ করতে যাচ্ছি. এটি আপনাকে তা দিতে যাই হোক না কেন আপনাকে বলা যাচ্ছে না কারণ এর, ইকো এই কর্ম কল করা যাক, এবং তাই আমি মূলত দখল করা যাচ্ছে না রাউটিং প্রোগ্রাম আমার মাধ্যমে পাঠানো হতে যাচ্ছে একটি পরামিতি, এবং আপনি এখানে দেখতে পারেন, ঠিক এই লাইন, আপনি দেখতে পারেন এই মূলত, আপনি নিয়ামক আছে, এবং আপনি একটি / আছে মানে এবং, আপনি কর্ম আছে, এবং আপনি অন্য / আছে এবং যে পরামিতি হতে যাচ্ছে, এবং এর আমরা এই নামের আইডি আছে, কারণ কোণ বন্ধনী মধ্যে, যে আমরা এই পরামিতির আইডি নামকরণ করছি যে মানে. পরবর্তীতে আমার নিয়ামক কোডের আমি যে পরামিতি একটি হোল্ড দখল করতে চান, আমি আইডি নামক প্যারামিটার খুঁজে, আমি লিখেছি কোড ব্যবহার করতে পারেন. যে আমি এখানে কি, এবং আমি ফিরে যান এবং বলতে যাচ্ছি, যে "আপনি বলেন". তাই এখন আমি আমাদের ওয়েবসাইটে যান আমি cs50-kohana/welcome/echo/Helloooo-- যান ওহ, যে ঠিক. আমি বাকি আউট 1 ধাপ পর্যন্ত. এই লাইভ কোডিং ধারণা অংশ. এখানে 1 জিনিস. এর দেখতে দিন. তাই স্বাভাবিকভাবে এই ওয়েব অ্যাপ্লিকেশন অনেক সঙ্গে ডিফল্টরূপে আপনি আপনার URL-এ এই index.php জিনিস অন্তর্ভুক্ত করা আছে, ধারণা index.php এন্ট্রি পয়েন্ট বাছাই করা হয়, কারণ আপনার আবেদন, কিন্তু অবশ্যই, যে ধরণের বিরক্তিকর আছে এর. আপনি index.php আপনার ইউআরএল উপস্থিত থাকতে না চান এবং বাক্সের বাইরে কাছাকাছি প্রতি ওয়েব কাঠামো এই index.php সমস্যা আছে, এবং যাতে আপনি যে সরিয়ে পাবে কিছু ব্যবস্থা গ্রহণ করতে হবে. তাই এই ক্ষেত্রে, আমরা কি করতে যাচ্ছেন আমরা. htaccess নামক একটি ফাইল ব্যবহার করতে যাচ্ছেন না, এবং এই, Apache ওয়েব সার্ভার নির্দিষ্ট কিছু যে হয় এবং এটি পুনঃলিখনের URL গুলি ভালো জিনিস করতে পারেন এবং তাই এবং তাই ঘোষণা URL গুলি এবং পুনর্নির্দেশ, এবং Kohana আমরা ব্যবহার করতে পারেন একটি টেমপ্লেট. htaccess ফাইলের প্রদান যথেষ্ট সুন্দর. আপনি দেখতে পারেন >>, example.htaccess বলা আছে একটি ফাইল আছে, এবং আমরা. htaccess যে কপি চলুন. আমি এই খুলুন এবং তা সম্পাদনা করা যাচ্ছে না, এবং মূলত এটি বিভিন্ন জিনিস একটি গুচ্ছ আছে. আপনি তাকান করতে পারেন কি লাইন ডান এখানে. ধারণা, এই যে একটি নিয়ম আপ সেট করে যে "ঠিক আছে, যাই হোক না কেন আপনি যে, শুরুতে যোগ index.php টাইপ." আপনি দেখতে পারেন. . * কিছু মেলে, কিছু ঘোরা এবং তারপর দ্বিতীয় অংশ, index.php / $ 0 এবং $ 0 পূর্বে মিলেছে ছিল যাহা বোঝায়. যে জানার জন্য? কিন্তু আমি পরিবর্তন করতে চান সত্যিই কি জিনিস, এই পুনঃলিখনের বেস পরিবর্তন হয় যা URL টি বেস. আপনার কাছ থেকে কাজ করে যাচ্ছি যেখানে এটি ধরণের অনুমান. আমি যে CS50 Kohana যোগ করা যাচ্ছে না, এবং যে ভাবে এখন আমি index.php অপসারণ হলে, এটি কাজ করা উচিত, এবং আমি কিছু নম্বর যোগ করা যাচ্ছে না এটি সত্যিই কাজ যে আপনি প্রদর্শন. শব্দগুলি ভালো. এ পর্যন্ত কোন প্রশ্ন? [ছাত্র] কিভাবে এটি 123 করতে জানেন? যে একটি যুক্তি কি? যথাযথভাবে. আপনি শুধুমাত্র একটি আর্গুমেন্ট মত মনে করতে পারেন. কিন্তু অদ্ভুত ব্যাপার হল, যদিও, যে Kohana এটি আছে উপায় তারা ঠিক একটি আর্গুমেন্ট মত এটি করবেন না হয়. আপনি ভালো এটি দখল আছে. আপনি অনুরোধ বস্তু দখল এবং আইডি নামে যে পরামিতির জন্য জিজ্ঞাসা আছে, এবং যে নামের আইডি যে বুটস্ট্র্যাপ ফাইল থেকে আসে , আমি তার আগে দেখিয়েছেন, এবং নামের আইডি ঐ কোণ বন্ধনী ছিল এবং যে আপনি ঐ পরামিতি দখল কিভাবে. জট্টিল. অন্য কোন প্রশ্ন? ভালো লেগেছে আমি বলেন, কন্ট্রোলার, তারা আবেদন যুক্তিবিজ্ঞান সব ব্যবস্থা তাই যে আপনি অদূর ভবিষ্যতে দেখতে পাবেনা 1 ইনস্ট্যান্স এর - , এটা খুবই সাধারন, কিন্তু এটি এখনও আবেদন লজিক আছে পরামিতি দখল এবং একটি নতুন স্ট্রিং তৈরি ধারণা "আপনি বাজে কথা বলেন," বলেছেন এবং তারপর আপনি যে ফিরে spitting যে. এবং সাধারণত কি আপনাকে যা আপনি বিভিন্ন কন্ট্রোলার তৈরি হয়. আপনি আপনার ওয়েবসাইটের বিভিন্ন অংশ জন্য পৃথক কন্ট্রোলার তৈরি. আজ আমরা একটি খুব সহজ ওয়েবসাইট করতে যাচ্ছেন, এবং এটি একটি খুব মৌলিক ব্লগ হতে যাচ্ছে. আমরা শুধু একটি ব্লগে পোস্টের জন্য একটি নতুন নিয়ামক করা চলুন. কিন্তু তারপর আমি, এছাড়াও ব্লগে পোস্টে মন্তব্য যোগ করতে হলে তারপর আমি সম্ভবত ঐ মন্তব্যের জন্য নতুন নিয়ামক করতে চাই না. আমি ব্যবহারকারীদের যুক্ত করতে চেয়েছিলেন, আমি সম্ভবত ঐ ব্যবহারকারীদের জন্য নতুন নিয়ামক যোগ হবে, এবং সাধারণভাবে, ধারণা যে আপনি একটি নতুন মডেল আছে যখনই, আপনার সাথে লেনদেন করছেন যে একটি নতুন তথ্য বস্তু, আপনি যে তথ্য বস্তুর জন্য একটি নিয়ামক আছে. আজ আমরা মাত্র 1 তথ্য বস্তুর সঙ্গে কাজ করতে যাচ্ছেন, এবং যে পোস্ট হতে যাচ্ছে, এবং এছাড়াও আপনি সারণী সংশ্লিষ্ট হিসাবে তথ্য বস্তু মনে করতে পারেন. সাধারণত প্রতিটি টেবিলের তথ্য বস্তুর 1 টাইপ অনুরূপ, তাই পোস্ট টেবিল, 1 টি মডেল হবে যে সংশ্লিষ্ট 1 পোস্ট নিয়ামক হবে যা, এবং মতামত, তাই এবং তাই ঘোষণা ব্যবহারকারীদের জন্য একই, এবং জন্য একই. এবং যে একটি চলতি সাধারণ নিয়ম. আপনি যে থেকে ভিন্ন হতে পারে যেখানে বিশেষ ক্ষেত্রে আছে যাচ্ছি, কিন্তু আপনি করছেন করা চলুন কি যে সময় 90%, এবং আমি যে আমরা আজ কাজ করা চলুন কি আপনি দেখাব. 1 আমরা ফিরে কোড মধ্যে আকর্ষণীয় আগে আরও ধারণা, অবজেক্ট রিলেশনাল ম্যাপিং এই ধারণা. আপনি না ইতিমধ্যে একটি ওয়েব ডেভেলপমেন্ট pset কাজ আছে, এবং আপনি, আপনি একটি SQL কোয়েরি যে দেখা করেছি এবং এটি আপনার কাছে ফেরৎ যাই হোক না কেন সারি হয়. আপনি, কিছু নাম অনুসারে তাদের এই সারি পেতে, এবং আপনি সূচী কলাম ও টেবিলের নাম, এবং যে, আপনি এটি সঙ্গে কাজ কিভাবে এবং এটা একটু কষ্টকর হতে পারে. কিন্তু উপরন্তু, আপনি আপনার ডাটাবেসের মধ্যে সম্পর্ক আছে, যেমন উদাহরণস্বরূপ আমি, মন্তব্য এবং পোস্ট আছে তাহলে হয়তো আমি একটি মন্তব্য অভিভাবক পোস্ট দখল করতে চান. আমি এসকিউএল মধ্যে শুধু সারি ব্যবহার, তারপর আমি পেতে পারেন সব আইডি হল মূল পোস্টের এবং না প্রকৃত পোস্টে নিজেই. আমরা কোডিং করছি কিন্তু, কি আসলে আমরা চাই আসলে দখল করা হয়  ঊর্ধ্বতন মাঝে মাঝে নিজেই পোষ্ট. রিলেশনাল ম্যাপিং করা হয় কি বস্তু এটি ডাটাবেস কোয়েরি ফলাফল লাগে এবং এর সাথে কাজ করা অনেক nicer হয় যা আপনার জন্য বস্তু, সেটিকে রাখে প্লেইন অ্যারে এবং সারি তুলনায়. উদাহরণস্বরূপ, এখন আমি, সম্ভবত একটি মন্তব্য আছে এবং আমি তার মূল পোস্ট দখল করতে চান, এবং আমি হয়তো তীর পোস্টে মন্তব্য করবেন, তারপর এটি আসলে আমার পোস্ট বস্তু দিতে হবে প্রকৃত মূল পোস্টে সংশ্লিষ্ট, কিছু আইডি না ঠিক, যা আমি অন্যথায় পোস্ট দখল অন্য এসকিউএল কোয়েরি ব্যবহার ও করতে হবে, কষ্টকর এবং অপ্রয়োজনীয় যা. আর তাছাড়া, বস্তু মধ্যে এই সমস্ত তথ্য সারি ম্যাপিং দ্বারা, তবে আপনাকে বস্তু আরও ফাংশন সংযুক্ত করতে পারেন, তাই উদাহরণস্বরূপ, আমি ক্লাস মূলত কর্ম groupings কিভাবে সম্পর্কে বললাম. আপনি যে মত এটি মনে করতে পারেন. উদাহরণস্বরূপ, হয়তো আমি এই বস্তু আছে, এবং হয়তো আমি তা সংযুক্ত ফাংশন কিছু সাজানোর থাকতে চাই যে মূলত আমার এটা সম্প্রতি পোস্ট করা হয়েছে বলে? এটা সত্য বা মিথ্যা, গত সপ্তাহে মধ্যে পোস্ট করা হয়েছে? এবং যে আমি যে বস্তু সম্মুখের সংযুক্ত করতে পারেন একটি ফাংশন আছে, এবং এটি একই স্থানে আছে সত্যিই সুবিধাজনক এবং আপনি তৈরি করতে পারেন বিভিন্ন ফাংশন একটি হোস্ট আছে এই বস্তুর জন্য, এবং এটি একটি বর্গ এটি জোড়া পাবে সত্যিই চমৎকার, একটি বস্তুর জন্য, আপনি শুধু আপনার ডাটাবেস থেকে আসছে সারি ছিল যেহেতু, তাহলে আপনি সত্যিই যে কোনো কার্যকারিতা সংযুক্ত করতে পারবেন না. এটা আক্ষরিক শুধু তথ্য নয়. সব সময়ে যে সম্পর্কে কোন প্রশ্ন? ORMs খুব সাধারণ ওয়েব ডেভেলপমেন্ট হয়, এবং ORMs বিভিন্ন ধরনের অনেক আছে, এবং Kohana নিজস্ব ORM আছে. এটা খুবই সাধারন, কিন্তু আপনি কি এটা দেখে মনে হচ্ছে কি একটি স্বাদ পাবেন. আসুন আমাদের ব্লগ পোস্ট জন্য একটি মডেল তৈরি করা যাক, এবং আমরা অবশ্যই যা করতে হবে সর্বপ্রথম একটি প্রকৃত টেবিল তৈরি হয় আমাদের ডাটাবেসের মধ্যে আসলে ঐ পোস্টের জন্য আমাদের তথ্য ধারণ করার জন্য. আমি যা করতে যাচ্ছি সর্বপ্রথম phpMyAdmin যেতে হয়. আপনাকে বলছি আগে phpMyAdmin ব্যবহার করেছেন? ঠিক আছে, সন্ত্রস্ত, তাই আপনাকে বলছি ইতিমধ্যে যে কি জানি, এবং আমি Kohana পোস্টগুলি নামক একটি নতুন টেবিল তৈরি করতে যাচ্ছি, এবং এটা সত্যিই সহজ হতে যাচ্ছে. আমি ইন ফিরে লগ ইন করতে হবে আমরা আজ করতে যাচ্ছেন সমস্ত একজন লেখক এবং একটি শরীর আছে, এটা সহজ রাখা. আমি যে টেবিল তৈরি করা যাচ্ছে না, এবং এখন আমরা শুধু আমাদের পোস্ট প্রতিনিধিত্বমূলক একটি টেবিল আছে আমাদের লেখক এবং আমাদের শরীরের জন্য 2 ক্ষেত্রের সাথে. আমি এখন কি করতে যাচ্ছি অন্যান্য জিনিস এটি ডাটাবেসের সাথে সংযোগ জানে কিভাবে তাই আমার ওয়েব অ্যাপ্লিকেশন কনফিগার, এবং এই আবার,, আপনি সমস্ত ওয়েব অ্যাপ্লিকেশনের সাথে কাজ করতে হবে এমন কিছু বিষয় যা. আপনি এটি ব্যবহারকারীর নাম এবং পাসওয়ার্ড জানাতে হবে এবং ডাটাবেসের নাম এবং তাই এবং তাই ঘোষণা আসলে আপনার ডাটাবেসের সাথে সংযোগ করার চিন্তা কিভাবে. Kohana, আমরা, একটি ডাটাবেস মডিউল কিছু বলা আছে ও কনফিগারেশন ফোল্ডারে আমরা ডাটাবেস নামক ফোল্ডারটি আছে আপনি দেখতে পারেন হিসাবে, আপনি এখানে সেট করা আছে সেটিংস একটি গুচ্ছ আছে ব্যবহারকারীর নাম এবং পাসওয়ার্ড কি তা জানাতে ডাটাবেসের জন্য তাই আমি আসলে এর সাথে সংযোগ করতে পারেন. এবং আমি আপনাকে বলছি আসলে জানতে চাই না, যেহেতু ব্যবহারকারীর নাম ও আমার ডাটাবেসের পাসওয়ার্ড, আমি ইতিমধ্যে আমি এটা সব সেট আপ যেখানে একটি ফাইল আছে, এবং আমি কপি এবং এটি উপর পেস্ট করুন যাচ্ছি. জট্টিল. ঠিক আছে. আমি যে আমি সব করতে প্রয়োজন কনফিগারেশন মনে করি, কিন্তু দেখুন. কিছু বিপর্যস্ত যদি আমরা এটা কাজ রাখা, এবং করব তারপর আমরা এটা ঠিক করে দেব. এখন আমি কি করতে যাচ্ছি আমি একটি নতুন নিয়ামক তৈরি করতে যাচ্ছি না. অথবা আসলে, দুঃখিত. প্রথমত আমি একটি নতুন মডেল তৈরি করা আছে. আমি Post.php নামক একটি নতুন মডেল তৈরি করব এবং কি আমরা করতে যাচ্ছেন আমরা বর্গ Model_Post কল চলুন হয়. কিছু বাক্য গঠন উপর হাইলাইট করুন, এবং তাই আমি বলতে গেলে, যে মূলত "ORM, প্রসারিত করে" আরো কিছু অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং, যা দুর্ভাগ্যবশত আপনি না এখনো CS50 মধ্যে শেখা হয়নি, কিন্তু এটি নিতে বেশ সহজ. এটা আমার এই ORM প্যাকেজের মধ্যে আসে যে এই সব অতিরিক্ত কার্যকারিতা দেয় এবং তাই আমি, অতিরিক্ত ফাংশন এবং বিনামূল্যে জন্য যে কোন বস্তু একটি গুচ্ছ পেতে যদি আপনি একটি দ্বিতীয় মধ্যে কোনো কিছু দেখতে পাবেন যা. এই মুহূর্তে আসলে আমি সব করতে প্রয়োজন এই বর্গ তৈরি হয়. আমি এমনকি কোনো ফাংশন বা কিছু করতে হবে না, কিন্তু আমি টেবিলে উপস্থাপন করে এমন একটি শ্রেণী তৈরি করেছি, এবং আমি এই ORM শ্রেণীর বর্ধিত করেছি কারণ, আমি মুক্ত জন্য জিনিস এক গুচ্ছ পেতে, তাই এখন জন্য আপনি কিছু আরো সেট আপ করতে হবে না. এবং এখন আমি কি করতে যাচ্ছি আমি একটি নতুন নিয়ামক তৈরি করা যাচ্ছে না হয়, যা আমি blog.php নাম দিতে যাচ্ছি, এবং আমি স্বাগতম নিয়ামক উপর কপি করা যাচ্ছে না তাই আমি কিছু উপাদান আবার টাইপ করতে হবে না, এবং এখন আমি এই নামান্তর আছে. এখন কি আমি নিশ্চিত সবকিছু কাজ করছে করতে পরীক্ষা করতে যাচ্ছি, আমি আমার ডাটাবেস থেকে প্রথম পোস্ট দখল করা যাচ্ছে না এবং পর্দায় পোস্টের শরীরে মুদ্রণ. কি আমি প্রথম যা করতে যাচ্ছি আমি পোস্ট সংরক্ষণ করা যাচ্ছে না যে কাজের জন্য একটি পরিবর্তনশীল তাই কি আমরা করতে যাচ্ছেন হয় - Kohana মধ্যে কি আপনি করবেন পোস্টে বস্তুর দখল করা হয় , এটা কোন ধরনের কষ্টকর, কিন্তু আপনি ORM নামক এই জিনিস :: কারখানা যা করতে হবে এবং তারপর আপনি যে আপনি চান মডেল নামে পাস, এবং এটি যে মডেল উপস্থাপন করে ORM বস্তু ফেরৎ. এবং তারপর, যেমন আমি, আমরা ORM বস্তু প্রসারিত যখন বলেন, আমরা বিনামূল্যে জন্য সব এই পদ্ধতি পান, তাই উদাহরণস্বরূপ, আমরা নামক এই নতুন ফাংশন ", সব অনুসন্ধান" পেতে যা স্বয়ংক্রিয়ভাবে ডাটাবেসের মধ্যে প্রতি একক পোস্টে ফেরৎ, যা বেশ সুবিধাজনক. এবং এখন শরীরে আমি ফিরে যাচ্ছি প্রথম পোস্ট এবং তার শরীরের ফিরে. এবং অবশ্যই, আমি একটি পোস্ট তৈরি করা প্রয়োজন, তাই এর একটি নতুন পোস্ট সন্নিবেশ যাক. আমি, "Brandon, আমার প্রথম পোস্ট." বলবো জট্টিল. এবং এখন আমরা ব্লগে যেতে চলুন সব ভাল কাজ করে যদি ও - ওহ, এই আবার অন্য কিছু মূক ফাইলের অনুমতি জিনিস. 1 সেকেন্ড নেভিগেশন রাখা. এটা ধরনের অযৌক্তিক নয়. এখন পর্যন্ত আমরা যেতে. ঠিক আছে. আমি যে অনুমতি সমস্যা সংশোধন করা হয়েছে. এটা কিছু ফাইল এবং কিছু লগের তৈরি করার চেষ্টা ছিল, ও অনুমতি, আবার, সঠিকভাবে সেট করা হয় নি, তাই আমি এটি গঠিত তাই ঐ ফাইল লিখনযোগ্য এবং এক্সিকিউটেবল ছিল তাই এটি আসলে জিনিষ লগ ইন পারে. এখন এটা ", বর্গ ORM পাওয়া না" আমার আরেকটি ব্যতিক্রম বলছে, দেবার হচ্ছে আমি অন্য ধাপে ভুলে গেছি এবং যে কারণ. এটা খুব খারাপ. বুটস্ট্র্যাপ ফোল্ডারে ফাইলের মধ্যে, এখানে এই মডিউল আছে, আপনি সক্ষম বা অক্ষম করতে পারেন যা. এই যে আপনি ব্যবহার করতে পারেন যে বিভিন্ন বৈশিষ্ট্য একটি গুচ্ছ ধরণের যা সুন্দর Kohana, মধ্যে. উদাহরণস্বরূপ, তারা একটি প্রমাণীকরণ মডিউল আছে যা আপনি ব্যবহারকারীদের অনুমোদন জন্য ব্যবহার করতে পারেন. আপনি বাস্তবায়ন করতে চান তারা একটি ক্যাশে মডিউল আছে অ্যাপ্লিকেশনটি কাজ দ্রুততর এবং যে কোন বস্তু করা শেষে ফিরে ক্যাশে কিছু বাছাই. আমরা ডাটাবেস এবং ORM মডিউল সক্রিয় করতে হবে, মত আমি তাকে বললাম কারণ, আমরা সম্ভবত,, ডাটাবেস ব্যবহার করছেন এবং আমরা ORM মডিউল সক্রিয় করতে হবে, আমরা আছে যা সুন্দর অতিরিক্ত কার্যকারিতা, আছে চাই কারণ. আমি যা করতে হবে তা, যারা 2 লাইনের মধ্যে uncomment হয় আমি রিফ্রেশ যদি এবং এখন, এটা আমার আরেকটি ত্রুটি দিয়েছে. এটা "ক্লাস Model_Post পাওয়া না.", বলেছেন আমি এই আছে একটি ভালো সমস্যা. এর দেখতে দিন. এটা পাবলিক না. নং নেভিগেশন রাখা. ওহ, দুর্মূল্য. এটা যে খুঁজে পেতে সক্ষম না কেন আমি জানি না. এটা সত্যিই অদ্ভুত. আমি ঠিক এই বর্গ আছে. উহু - আমি থাকতে পারে অনুমান. আমি তাই মূক না. আমি একটি পিএইচপি ট্যাগ যুক্ত করতে ভুলে গেছি. যে কেন. এখন আমি 1 পরিবর্তনের আমি ঠিক করেছিলাম যে পূর্বাবস্থা আছে. ঠিক আছে. এখন পর্যন্ত আমরা যেতে. যে সত্যিই অর্থহীন ছিল. আমি একটি খোলার পিএইচপি ট্যাগ আছে কি না. আপনি দেখতে পারেন হিসাবে কিন্তু, এখন এটা সঠিক, সঠিকভাবে কাজ করছেন? আমরা 1 পোস্ট আছে. আমরা প্রথম পোস্ট ধরলাম, এবং এখন আমরা তার শরীরের আউট মুদ্রিত. গ্রেট. কল্পনাপ্রসূত. কোন প্রশ্ন এতদূর? নাঃ? কোন প্রশ্ন? ঠিক আছে, তাই আমরা ঠিক, খুব মৌলিক, পোস্ট মডেল তৈরি এবং আমরা পরে কিছু ফাংশন যোগ চলুন. আমরা যাচাই এবং ফিল্টারিং যোগ করতে পারেন. যাচাই জিনিস এক হয় অবকাঠামো সত্যিই ভাল, সত্যিই আপনার জন্য সমাধান যে, এবং আমি আপনাকে বলছি আপনার CS50 pset জন্য এই কি ছিল তা মনে করি না, কিন্তু আপনি আপনার চূড়ান্ত প্রকল্পের জন্য ওয়েব ডেভেলপমেন্ট করতে হলে, আপনি সম্ভবত বৈধতা কিছু সাজানোর কাজ করতে চান চলুন, মত ফাঁকা ব্যবহারকারীর নাম হচ্ছে না, হয়তো অন্তত কিছু দৈর্ঘ্য সঙ্গে একটি পাসওয়ার্ড হচ্ছে, যে ভালো জিনিস. এবং এটা, নিজেদেরকে দ্বারা এই জিনিস বাস্তবায়ন সত্যিই কষ্টকর এর এবং প্রায় কাছাকাছি প্রতি একক ওয়েব ফ্রেমওয়ার্ক এটা আপনার জন্য না এবং আপনি একটি খুব পরিষ্কার ভাবেই তা করতে পারবেন. আপনি সাধারণত যারা বৈধতা নিয়ম প্রকাশ যেখানে এবং মডেল, হয় এটি একটি মডেল বৈধ বা না কিনা যাচাই কারণ. কিন্তু এখন জন্য, আমরা, পরে না হওয়া পর্যন্ত যে রাখা চলুন এবং এখন জন্য আমরা অন্য অংশ কাজ করতে যাচ্ছেন, এবং আমরা একটি নতুন দেখুন এবং চেষ্টা করতে যাচ্ছেন যে সকল পোস্ট তালিকা. সকল পোস্ট তালিকা জন্য নতুন কর্ম তৈরীর সাথে জড়িত পদক্ষেপ সকল পোস্ট একটি তালিকা দখল করে এবং তারপর একটি দৃশ্য মাধ্যমে সকল পোস্ট তালিকা রেন্ডার. এখানে ডান, ভাগ্যক্রমে যথেষ্ট, আমরা ইতিমধ্যে সকল পোস্ট ধরলাম এই প্রথম লাইন ব্যবহার করে, সব ফাংশন খুঁজে এবং এখন আমরা কি করতে যাচ্ছেন এ পর্যন্ত হয় আমি সরাসরি প্রতিক্রিয়া শরীরের সেটিং করছি স্ট্রিং ক্ষণস্থায়ী, কিন্তু এখন আমি একটি দৃশ্য ব্যবহার করতে চান দ্বারা, এবং ঠিক এই কাজ একটি দৃশ্য এবং এর মধ্যে পার্থক্য একটি দেখুন সঙ্গে আমি একটা চমৎকার, বড় এইচটিএমএল টেমপ্লেট থাকতে পারে না, এবং কি আমি কি করতে পারি তা কয়েকটি ভেরিয়েবল পাস করা হয় এবং তারপর দেখুন স্বয়ংক্রিয়ভাবে তার টেমপ্লেট পূরণ করেছেন ঐ ভেরিয়েবল ব্যবহার করে. আমি কি করব, আমি একটি নতুন দৃশ্য তৈরি করব হয় এবং আমি ", ব্লগ / ইনডেক্স" মত দেখতে কিছু নাম দিন করব এবং আমি মূলত এই আবদ্ধ চলেছি - উহু, আমি কি লেখা করছি? আমার মস্তিষ্কের অন্য কোথাও না. আমি দৃশ্যে পরিবর্তনশীল পোস্ট আবদ্ধ যাচ্ছি তাই যে ভাবে প্রদর্শন এই ভেরিয়েবল ব্যবহার করেছে. তাই এখন আমি এই দৃশ্য তৈরি করা প্রয়োজন, তাই আমরা এখানে "দেখেছে," বলা এই ফোল্ডারটি আছে এবং প্রথম, আমি যে বলা অধীনে একটি নতুন ফোল্ডার তৈরি করা যাচ্ছে না "ব্লগ". এই চমৎকার. এই ভাবে আমরা আমাদের মতামত জন্য একটা চমৎকার অনুক্রমের থাকতে পারে. এবং তারপর আমি বলা আছে অন্য ফাইল তৈরি করা যাচ্ছে না "index.php." জট্টিল. বাস্তবিক, আমি কি এখানে তাদের উভয় আছে যাক. একটি দৃশ্য ফাইলটি মেকিং সম্ভবত সব এই সহজ অংশ, এবং এই সম্ভবত আপনি ইতিমধ্যে সাথে পরিচিত জিনিস. আমরা সত্যিই সহজ কিছু করতে যাচ্ছেন , এই বলে শুরু "ব্লগ পোস্ট আমার তালিকা." তারপর আমরা মধ্য দিয়ে যেতে পারে, এবং আমরা পোস্ট অ্যারে মাধ্যমে পুনরুক্তি করতে পারেন, প্রতি একক পোস্টে দখল এবং ভালো কিছু বলতে - হয়তো একটি লাইন যোগ করুন এবং তারপর লেখকের এবং শরীরের প্রিন্ট আউট. যে এ পর্যন্ত জানার জন্য? এবং এটা কাজ করে যদি এর দেখতে দিন. কিছুই ঘটেছে. আমি কেন ভাবছি. ওহ, আমি 1 পদক্ষেপ ধরতে পারিনি. আমার খুব নিরীহ. আমি একটি দৃশ্য তৈরি, কিন্তু আমি প্রতিক্রিয়া হিসাবে দেখুন সেট করা হয়নি, তাই আপনি 1 আরো জিনিস যা করতে হবে. আপনি "এই প্রতিক্রিয়া শরীর" কি এবং দেখুন হতে এটি সেট করা আছে. এখন পর্যন্ত আমরা যেতে. আমরা আমাদের শিরোনাম আছে, এবং তারপর আমরা একটি পোস্ট আছে, এবং ঠিক kicks জন্য, এর অন্য একটি পোস্টে ঢুকিয়ে দেওয়া তাই আমরা একটি তালিকা দেখতে পারেন. এবং এই 2 টি প্রকাশনা সন্নিবেশ, এবং এখন আমি পৃষ্ঠাটি রিফ্রেশ যদি, আমরা এখানে এই পোস্ট দেখুন. যে এ পর্যন্ত জানার জন্য? হ্যাঁ, একটি প্রশ্ন? ঠিক আছে, ওহ. যেহেতু আপনি দেখতে পারেন, আমরা খুঁজে এই সব কোড আলাদা করতে পারব বিভিন্ন বিভাগে ভাগ করা, এবং তারপর আপনি এটি দেখুন কোড সহ সবচেয়ে স্পষ্ট দেখতে পারেন. এই দৃশ্য প্রতিনিধিত্ব করে এখানে ফাইল, এটি শুধুমাত্র তথ্য প্রদর্শন, তথ্য প্রতিনিধিত্বমূলক বজায় রাখে. এটি তথ্য কিছু বাছাই গৃহীত পরার, এবং এটি আছে সব ঠিক আপনার কাছে এটি প্রদর্শন করা হয়. আপনার কোড সব অন্যান্য অংশ, আপনি যে কোন চিন্তা করতে হবে না, এবং একইভাবে, আপনার ভিউ কোড সম্পর্কে কিছু চিন্তা করতে হবে না ডাটাবেস একসেস করুন, এবং তাই এবং তাই ঘোষণা, কিভাবে যা সত্যিই ভাল এবং আপনার কোড অনেক অধিক নিয়ন্ত্রণযোগ্য তোলে. ভালো লেগেছে আমি বলেন, দেখ, তারা যে গতিশীল আছেন এটি 1 ফাইল, কিন্তু এটি বিভিন্ন মতামত উৎপন্ন হবে আসলে আপনি পাস ভেরিয়েবলের উপর ভিত্তি করে, এবং উপরন্তু, বিভিন্ন সাহায্যকারী কর্ম অনেক আছে আপনি, আপনি দ্রুত আপনার কোড লিখে সাহায্য করার জন্য ব্যবহার করতে পারেন আমি শুধু একটি দ্বিতীয় আপনাকে দেখাব যা. হ্যাঁ. [ছাত্র] সুতরাং $ 0, ডান একটি নিয়ামক হয়? যে দ্বিতীয় বিষয়. প্রশ্ন $ 0 একটি নিয়ামক হয় না? $ 0 আমি ডান সময়ে তৈরি একটি পরিবর্তনশীল. আমি প্রথম একটি দৃশ্য তৈরি. আমি কিছু ভেরিয়েবল তা নির্ধারিত হয়. তারপর আমি, এই ফাংশন মধ্যে এটি পাস প্রতিক্রিয়া দেহ হিসেবে সেট. যে জানার জন্য? [ছাত্র] সুতরাং ভিউ :: কারখানার মধ্যে, একটি বর্গ মত দেখুন অথবা একটি লাইব্রেরি [শ্রবণাতীত] কারখানা ফাংশন? প্রশ্ন, দেখুন :: কারখানা ফাংশন সম্পর্কে এবং মূলত এই মূলত আরো কিছু অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং করা. ", ফ্যাক্টরী" দেখুন দেখুন বর্গ, এবং এটা নামে একটি পদ্ধতি রয়েছে এবং যে নামে যে বস্তু দখল একটি উপায় "ব্লগে / সূচী." এবং যে আরো কিছু অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং স্টাফ এর আমি খুব বেশী এখানে ঢোকা যাচ্ছি না যে. এখন স্পষ্টত, আমরা নতুন পোস্ট তৈরি করতে চান, কিন্তু আমরা একটি ডাটাবেস মাধ্যমে এটি করতে হবে তা না চান, তাই আমরা একটি নতুন পোস্ট তৈরি করার জন্য একটি নতুন কর্ম তৈরি করতে যাচ্ছেন, এবং আমরা যা করতে হবে জিনিস অনেক আছে. আমরা করতে যাচ্ছেন প্রথম জিনিস - এর এই জিনিস একের পর এক মোকাবেলা যাক. আমরা চেষ্টা করবো প্রথম জিনিস আমরা একটি ফর্ম তৈরি করতে পেয়েছেন হয় একটি নতুন পোস্ট ঢোকাতে জন্য, কিন্তু আমি প্রথম একটি নতুন ব্যবস্থা যোগ করা যাচ্ছে না তাই একটি নতুন কর্ম যোগ হিসাবে ঠিক যেমন সহজ আপনার নিয়ামক সঙ্গে একটি নতুন ফাংশন, যোগ এবং এখন জন্য আমি খুব মৌলিক কিছু করতে যাচ্ছি শুধু এই দেখুন দখল এবং তা পোস্ট, শুধুমাত্র আপনার জন্য এটি প্রদর্শন. এবং তারপর এখন আমি একটি নতুন ভিউ ফাইল তৈরি করা যাচ্ছে না, এবং আমি কিছু উপাদান লেখা শুরু করতে যাচ্ছি. কি Kohana সম্পর্কে চমৎকার তারা বিভিন্ন সাহায্যকারী ফাংশন অনেক প্রদান করে আপনি আরও সহজে দেখুন কোড লিখুন জন্য সেই সাহায্যকারী ফাংশন বা সাহায্যকারী মডিউল এবং 1 কাছাকাছি ধরনের লেখা হয়. ফরম লেখার জন্য, আমি সত্যিই সরাসরি কোনো এইচটিএমএল নিজেই লিখতে হবে না. আপনি না এইচটিএমএল ফর্ম লিখিত আছে. আপনি এটা সত্যিই সত্যিই বেদনাদায়ক এবং ফর্ম লিখতে কষ্টকর হতে পারে জানি. এটা, তাই ভাগ্যক্রমে, মজা না আমরা মূলত Kohana এর ব্যবহার করে একটি ফর্ম লিখতে পারেন আমাদের জন্য এটা করতে সাহায্যকারী ফাংশন গঠন করে. আমরা মূলত না আমরা প্রতি একক জিনিস জন্য ক্ষেত্র আছে চলুন তাই লেখক জন্য এক ও সংস্থা জন্য এক. আমরা একটি লেবেল আছে চলুন, এবং আমরা একটি ইনপুট আছে চলুন. এবং পরিশেষে, তাহলে আমরা একটি জমা আছে চলুন. এবং আপনি দেখতে পারেন, এই লেখার জন্য অনেক ক্লিনার ধরনের যা সুন্দর সব যে নোংরা এইচটিএমএল, তুলনায়. মঞ্জুর, যে তুলনায় এটি আরও ক্লিনার আছে অন্যান্য ওয়েব অবকাঠামো আছে, কিন্তু অন্তত এই এইচটিএমএল নিজের লেখার চেয়ে ভাল. জট্টিল, তাই এই কি আপনি দেখতে হয়. যে ধরনের নোংরা না তাই আমি সেখানে একটি লাইন বিরতি যোগ করা যাচ্ছে না যে সামান্য nicer বানাতে. ওয়েল, অবশ্যই, এটি এখনও সত্যিই, খুব খারাপ দেখায়, কিন্তু আমরা শুধু নিবদ্ধ করছি নন্দনতত্ব তে নেভিগেশন এবং না জন্য কার্যকারিতা উপর. সবকিছু করতে কোন সময়. আপনি দেখতে পারেন হিসাবে এবং, এখন আমরা একটি সুপার মৌলিক ফর্ম আছে, যা ধরনের চমৎকার. আমি বলতে চাই এই কোড নিজেকে গঠন একটি HTML লিখতে চেষ্টা তুলনায় ক্লিনার, তাই যে চমৎকার. পরবর্তী কি? এখন আমরা কর্ম সঙ্গে কিছু করার প্রয়োজন. আপনি এইচটিএমএল ফর্ম লিখতে সাধারণত যখন, আপনি এটি করতে ফর্ম জমা যাচ্ছে যেখানে এটা জানাতে হবে. অধিকাংশ ওয়েব অবকাঠামো মধ্যে ডিফল্টরূপে, , এটা সঠিক একই URL-এ জমা হয়, তাই জিনিস আপনি / ব্লগ / নতুন, একটি পেতে অনুরোধ পাঠাতে হলে এটা আপনার ফর্ম প্রদর্শন করা উচিত, কিন্তু আপনি একটি পোস্ট অনুরোধ পাঠাতে যদি করতে / ব্লগ / তথ্য সঙ্গে নতুন, এটা আসলে যে পোস্টে বাঁচাতে চেষ্টা করা উচিত এবং এটা দিয়ে কিছু করতে. আমরা কি করতে যাচ্ছেন হয় মূলত সমস্ত আমরা এটি একটি পোস্ট অনুরোধ অথবা একটি পেতে অনুরোধ কিনা চেক করতে যা করতে হবে আপনি সেট করতে পারেন পোস্ট ভেরিয়েবল কি চেক করা হল. পোস্ট পরিবর্তনশীল সেট করা হয়, তাহলে আমরা চেষ্টা এবং একটি নতুন পোস্ট তৈরি করতে যাচ্ছেন. আবার, আমরা শুধু এই না, এবং যে একটি নতুন পোস্ট তৈরি করে, এবং আমরা আক্ষরিক চলুন এই মত তার ক্ষেত্র সেট, এবং তারপর আমরা এটি সংরক্ষণ চলুন. এবং তারপর আমি পুনর্নির্দেশ করা যাচ্ছে না ইনডেক্স পৃষ্ঠা থেকে যাতে তারা পোস্ট আমাদের তালিকা আবার দেখতে পারেন. এর যে চেষ্টা করুন. আমি ", Brandon", বলবো এবং তারপর পোস্ট জমা, এবং যদি সব ঠিক যায় আপনি দেখতে পারেন, এটি, ইনডেক্স পৃষ্ঠা থেকে আপনাকে পুনঃনির্দেশিত সম্পর্কে আমি নীচে স্ক্রল এবং, যদি আমরা একটি সদ্য ঢোকানো পোস্ট আছে. ইয়ে! হ্যাঁ, প্রশ্ন. [ছাত্র] কি আপনি সঠিক একই জিনিস প্রবেশ করে যদি আপনি আগে প্রবেশ করানো? এটা নিশ্চিত করুন যে আপনি সদৃশ নি করতে পরীক্ষা করে একই জমা? ডিফল্ট করা, না, কারণ ডিফল্টরূপে - আপনি আকারে সঠিক একই তথ্য প্রবেশ করলে দুঃখিত, প্রশ্ন এবং, এটা আপনি একটি অনুরূপ বস্তুর সন্নিবেশ করার অনুমতি দেবে, যে জমা একটি মূলত, এন্ট্রি নকল? ঠিক এখন, হ্যাঁ, এটা আপনি তা করতে অনুমতি দেবে, উপাত্ত তা সম্পূর্ণ প্রতিলিপি সারি আছে পুরোপুরি বৈধ কারণ, যে একটি উদ্বেগ কিন্তু যদি, তাহলে উদাহরণস্বরূপ, যাচাই যোগ করতে পারেন, এই ইতিমধ্যেই বিদ্যমান এমন কিছু বিষয় হিসাবে ঠিক একই যদি নিশ্চিত যে, তারপর এটি একটি অবৈধ বস্তুর যে বলে, এবং তারপর আপনি এমনকি আপনার সমস্যা বার্তা নির্দিষ্ট করতে পারেন "এটি ইতিমধ্যেই বিদ্যমান কারণ অবৈধ" বা যে ভালো কিছু আর বলতে. কিন্তু এই ক্ষেত্রে, আমি শুধু ডুপ্লিকেট কিছু তৈরি করতে পারে. এখন আসুন চেষ্টা করা যাক এবং কিছু যাচাই যোগ করুন. এই সঙ্গে সমস্যা হল এই মুহূর্তে যে আমি আক্ষরিক একটি সম্পূর্ণ ফাঁকা পোস্টে জমা পারে. আমি এই মুহূর্তে এই বাটন ক্লিক করতে পারেন, এবং সেখানে আমরা যেতে. আপনি সত্যিই এটা দেখতে, কিন্তু করতে পারে না এখানে এই অতিরিক্ত লাইন আমি আক্ষরিক একটি নতুন পোস্ট আছে যে ইঙ্গিত দেয়. এটি শুধু একটি ফাঁকা লেখক এবং একটি ফাঁকা শরীর আছে, এবং আমরা মানুষ তা করতে অনুমতি দেয় না চান. বৈধতা আসে অংশে এটি যেখানে আমি আমার মডেল বস্তুর যেতে পারেন, এবং এখন আমি নির্দিষ্ট করে যে একটি নতুন ফাংশন যোগ করতে পারেন আমি এই মডেল যোগ উচিত বৈধতা নিয়ম এটা বৈধ নিশ্চিত যে বা নির্দিষ্ট করতে কি এটি একটি বৈধ পোস্ট করা মানে? এবং আমি এটা শুধুমাত্র একটি বৈধ পোস্টে বলতে চাই লেখকের এবং শরীরের উভয় ফাঁকা নয়, এবং এই আপনার Kohana মধ্যে তা করে না. আপনি "বিধি" নামক একটি নতুন ফাংশন তৈরি এবং তারপর আপনি মূলত একটি মিশুক অ্যারে ফিরে যে এই বস্তুর জন্য বৈধতা নিয়ম সংজ্ঞায়িত করে. আমরা অ্যারে ফিরে যাচ্ছে, এবং তারপর কি আমরা করতে যাচ্ছেন হল করছি বলে "লেখক," এটি একটি অ্যারের যাওয়া হবে, যা বলা অন্য অ্যারে যায় "ফাঁকা না." এবং তারপর আমি বলতে যাচ্ছি "শরীর." এই জন্য ঠিক আছে, এবং এই জন্য বাক্য গঠন এবং কাঠামো একটু কষ্টকর এবং একটু জটিল হতে পারে. আপনি ডকুমেন্টেশন পড়া, এটা, জিনিসটা বেশ সহজবোধ্য কিন্তু মূলত এই আপনি নির্দিষ্ট করতে যা করতে হবে তা হল কিছু বৈধতা নিয়ম, এবং বিভিন্ন নিয়ম অনেক আছে আপনি বলার নিয়ম যোগ করতে পারেন ভালো Kohana, বিনামূল্যে জন্য আপনাকে দিতে হবে এটা অন্তত এই দৈর্ঘ্য হতে হবে. হয়তো এটা সাংখ্যিক হতে হয়েছে. হয়তো এটা আলফা সাংখ্যিক হতে হয়েছে. হয়তো এটা তাই এবং তাই ঘোষণা, অধিকাংশ সময়ে এই দৈর্ঘ্য হতে হয়েছে. Kohana আপনার জন্য উপলব্ধ করা হয় যে ভিন্ন নিয়ম অনেক আছে, এবং আপনি, ডকুমেন্টেশন তাকান, তাদের ওয়েবসাইটে যেতে পারেন এবং আপনি আপনি কি করতে পারেন যে সব বিভিন্ন জিনিস দেখতে পারেন. কিন্তু এই আমি যা করতে হবে সব, এবং এখন আমি কি কি দেখতে দিন আমি একটি ফাঁকা পোস্টে জমা হলে. কি ঘটতে যাচ্ছে? ওহ, না, আমি একটি ভুল পান. আমি একটি যাচাইকরণ ব্যতিক্রম পেতে. ওয়েল, এটা ভাল. এটা আমার মডেল অবৈধ সম্পর্কে বলেন যে, কিন্তু আমি একটি ব্যতিক্রম প্রদর্শন করতে চাই না আমার ব্যবহারকারীদের তারা অধিকার, অবৈধ কিছু জমা করার চেষ্টা করার সময়? আমি তাদের বন্ধুত্বপূর্ণ ত্রুটির বার্তা কিছু সাজানোর দিতে চান কিছু গোলমাল যখন. আমরা কি করতে যাচ্ছেন আমরা চলুন হয় ব্যবহার করে দেখুন ধরা লুপ সবকিছুই মোড়ানো. বাস্তবিক, আমি এই আপনি এখনো শেখা হয়নি কিছু মনে করি CS50 মধ্যে, কারণ সি, প্রোগ্রামিং ভাষা সি, প্রায় প্রতি একক অন্যান্য ভাষা ব্যতিক্রম আছে, কিন্তু এই নয় , তাই সত্যিই সত্যিই সংক্ষিপ্তভাবে ব্যতিক্রম আছে, একটি ব্যতিক্রম কোড এক টুকরা করতে পারেন এমন কিছু বিষয় কিছু গোলমাল করার সময় একটি ব্যতিক্রম নিক্ষেপ আপ কিন্তু তারপর হয়ত কোড কিছু অন্যান্য টুকরা উচ্চতর যে ব্যতিক্রম ধরা এবং তা দিয়ে কিছু করতে পারেন. উদাহরণস্বরূপ, এই ক্ষেত্রে, একটি মডেল সংরক্ষণ করার যে কোড সমাচার, "ঠিক আছে, এই মডেল অবৈধ" এটা মডেল অনুমোদিত হবে, এবং এটা বলছেন, যদি, এটি একটি ব্যতিক্রম নিক্ষেপ করা যাচ্ছে, এবং এই সমতূল্য ধরনের সি আপনি একজন -1 বা যে ভালো কিছু ফেরত পারে. এবং তারপর আমার জন্য, এই ফাংশন, আমার কোড একটি উচ্চতর পর্যায়ে, আমি যে ব্যতিক্রম এবং চেষ্টা আঁকড়ি পারেন এবং মূলত "ঠিক আছে, আমি ব্যতিক্রম ধরা হলে, আমি কি করতে যাচ্ছি?", বলে অথবা আমি যে ব্যতিক্রম ধরা ও পর্যন্ত কেউ উচ্চতর যাক না করে পারে ব্যতিক্রম ধরা, বা কেউ এটা ক্যাচ যদি, তারপর পুরো প্রোগ্রাম, বিপর্যস্ত এবং বলেছেন "কিছু ভুল হয়েছে, এবং আমি এটা হ্যান্ডেল করতে পারে না." কিন্তু কি আমরা করতে, আপনাকে একটি চেষ্টা ব্লক কোড এক টুকরা মোড়ানো হয় এবং তারপর আপনি একটি ধরা ব্লক কিছু বলা যোগ যা চেষ্টা ঘটতে পারে যে ব্যতিক্রম ফেলবো যে কোড সাজান. এবং তাই আমি এই বিশেষ ব্যতিক্রম ধরা হলে বা invalidation ব্যতিক্রম, তাহলে আমি কি করতে যাচ্ছি হয় আমি ত্রুটি সেট চলেছি - আমি যে আমি এটা করতে কিভাবে মনে করি - এবং আমি কিছু বস্তু ত্রুটি সেট যাচ্ছি. এটা এই ব্যতিক্রম হিট এবং তারপর যদি আমি কি করতে যাচ্ছি না, এটি পুনর্নির্দেশ না হয়, তাহলে এটি পুনর্নির্দেশ করতে যাচ্ছে, এবং না তা যদি ব্লগের বাইরে আসতে যাচ্ছে এবং আমি কাজ করতে চান চান, যা এই ব্লগে / নতুন আঘাত. একটি ত্রুটি আছে, তারপর আমি ফর্ম ফিরে যেতে চান এবং যারা ত্রুটি প্রদর্শন. এখন আমি কি করতে চান আমি ঐ ত্রুটি মধ্যে প্রেরণ করতে ইচ্ছুক হয় ভিউ করতে. ঠিক আছে, আমি, আমি এখানে ডান দৃশ্য আছে মনে এবং মূলত আমি তারা উপস্থিত হলে সেই ত্রুটি প্রদর্শন করতে চান. আমি যে জন্য এইচটিএমএল লিখতে আগে, আমি সত্যিই দ্রুত যাচ্ছি এই ত্রুটি গঠন পরিবর্তনশীল সৌন্দর্য কি চান আপনি প্রদর্শন, এবং এই সাধারণ একটি ভাল অভ্যাস. বার অনেক আপনি, ফিরে কিছু পদ্ধতি থেকে কিছু পেতে ওয়েব ফ্রেমওয়ার্ক কিছু ফাংশন, এবং আপনি, পরিবর্তনশীল মত দেখাচ্ছে কি না জানি না তাই আপনি এটা দিয়ে কাজ করতে কিভাবে জানি না. আমি মূলত এটি প্রিন্ট আউট একটি মুদ্রণ R পদ্ধতি ব্যবহার করা যাচ্ছে না. আপনি দেখতে পারেন হিসাবে এবং, এটা, এটা একটি সহযোগী অ্যারে আমাকে বলে এবং আপনি, এই স্ট্রিং একটি কী, লেখক, পয়েন্ট আছে লেখক খালি করা, এবং অন্য কী, দেহ, না হবে অন্য স্ট্রিং, শরীর পয়েন্ট ফাঁকা নাও আবশ্যক. আমি শান্ত, ঠিক আছে, ভালো আছি. তারপর আমি অ্যারে মাধ্যমে পুনরুক্তি এবং প্রতি একক বার্তা প্রিন্ট আউট করতে পারেন. এটা বার্তা একটি গুচ্ছ সঙ্গে একটি মিশুক অ্যারের মত মূলত এর. আমি কি করতে যাচ্ছি ", যদি ত্রুটি" হয় এবং আমি একটি unordered তালিকা তৈরি করা যাচ্ছে না, এবং আমি সব ত্রুটি মাধ্যমে পুনরুক্তি করা যাচ্ছে না. এবং এই, এবং এখন আমি আবার এই জমা দেওয়ার চেষ্টা করতে যাচ্ছি এবং এর আমরা পেতে কি দেখতে দিন. এখন আমরা ত্রুটি এই চমৎকার তালিকা পেতে, এবং, এই এখনও প্রশংসনীয় কুশ্রী, কিন্তু এই সম্ভবত সুন্দর দেখাচ্ছে ফরম্যাট করা যায় কিন্তু মৌলিক ধারণা, শুধু একটি কোড কয়েক লাইন হয় আমরা আমাদের মডেল যাচাই করতে পারবেন, নির্দিষ্ট ক্ষেত্র খালি ছিল না নিশ্চিত যে, এবং কিছু ভুল হয়েছে, তাহলে সমস্যা বার্তা কিছু সাজানোর ফিরে আমি তারপর ব্যবহারকারী ফিরে উপস্থাপন করতে পারে. এছাড়াও আপনি আপনার বৈধতা কাস্টমাইজ করতে পারেন আপনি আসলে সমস্যা বার্তা থাকতে পারে, তাই যে যে আপনার আবেদন বা যে ভালো কিছু করতে আরও নির্দিষ্ট করে. সমস্ত যে সাধারণত স্বনির্ধারিত. দুর্ভাগ্যক্রমে, আমরা, সময় চলমান আউট করছি তাই আমি এখানে লাইভ কোডিং সেশন ছিন্ন করতে যাচ্ছি. আমি আপনার জন্য প্রদর্শন করতে চান যে অন্যান্য বৈশিষ্ট্য একটি গুচ্ছ আছে এই উদাহরণে. উদাহরণস্বরূপ, যদি আপনি আপনার সাইট থেকে টেমপ্লেট যোগ করতে পারেন, তাই হয়ত আপনি প্রয়োগ করতে চান এইচটিএমএল কোড কিছু বাছাই আছে আপনার সাইটে প্রতি একক পৃষ্ঠা থেকে, এবং পরিবর্তে পেস্ট যে প্রতি একক প্রদর্শন ফাইলে আপনাকে অবশ্যই একটি খারাপ অভ্যাস হবে, যা আছে আপনি মূলত এই টেমপ্লেট নির্ধারণ করতে পারবেন, এবং তারপর আপনার নিয়ামক মধ্যে "ঠিক আছে, আমি এই টেমপ্লেটটি ব্যবহার করছি.", বলে "সব আমার মতামত এই টেমপ্লেটটি ব্যবহার করতে হবে." আর আমি পাশাপাশি আপনার কাছে প্রকট করতে চান এক শেষ জিনিস আমরা, ক্রস সাইট স্ক্রিপ্টিং হয় জন্য সময় না যে এবং মূলত আমি আপনাকে বলছি সম্ভবত CS50 মধ্যে দেখা যায় মনে হয় - আমি ডেভিড Malan সম্ভবত আপনি সাধারণত উদ্বুদ্ধ করতে পারেন কিভাবে স্বপ্ন মনে মধ্যে জাভাস্ক্রিপ্ট কোড - আপনি এই কথা বলেছেন? হয়তো? হয়তো বা নয়? কিন্তু বার অনেক আপনি দূষিত জাভাস্ক্রিপ্ট কোড উদ্বুদ্ধ করা যেতে পারে কেউ এর ডাটাবেসের মধ্যে, এবং তারা সঠিকভাবে যে পালিয়ে না, তারপর তারা ফিরে ব্যবহারকারীকে যে তথ্য উপস্থাপন করার সময়, তাহলে এটা আপনার ঘটবে না চান র্যান্ডম জাভাস্ক্রিপ্ট কোড কিছু বাছাই চালাতে পারে, এবং আমি আপনাকে Kohana মধ্যে তা করতে চাই কিভাবে প্রকট হচ্ছে. এটা আসলে সত্যিই সত্যিই সহজ. আমি আক্ষরিক 2 সেকেন্ডের মধ্যে এই মুহূর্তে এটা করতে পারে. আপনাকে যা করতে হবে তা হচ্ছে মূলত এই জিনিস মোড়ানো হয় এই জিনিস মধ্যে এইচটিএমএল সত্ত্বা বলা. এবং যে স্বয়ংক্রিয়ভাবে সঠিকভাবে সব অক্ষর অব্যাহতি হবে এবং আপনি এই সমস্যা পাবেন না নিশ্চিত করুন. [ছাত্র] আপনি ভুল প্রথম পরীক্ষা বানান. [Brandon লিউ] ওহো, ওহ. ঠিক আছে, যে আমি আজকের জন্য আপনার সাথে ভাগ করা ছিল সব. এই স্লাইড পোস্ট করা যাচ্ছে, কিন্তু এই সাধারণত হয় শুধুমাত্র সম্পদ সত্যিই আপনি Kohana সঙ্গে শুরু করা প্রয়োজন হবে. আপনি ওয়েবসাইটে যেতে পারেন. তারা একটি ইউজার গাইড আছে, এবং তারা একটি এপিআই অনুসন্ধানকারী আছে. আমরা তারা আপনার জন্য আছে সব বিভিন্ন ফাংশন এবং সাহায্যকারী ফাংশন অন্বেষণ করতে পারবেন. তারা সাধারণত ওয়েবসাইটে পর্যাপ্ত তথ্য আছে আপনি শুরু করতে এবং Kohana দিয়ে যাচ্ছে পেতে ব্যবহার করতে পারেন. অনেক টিউটোরিয়াল বাইরে, Kohana জন্য, আমি মনে করি, এখন পর্যন্ত নয় কি তারা এখানে ওয়েবসাইটে আছে, তাই এটা সম্ভবত আপনার সেরা বাজি. তবে আপনি যদি ওয়েব ফ্রেমওয়ার্ক সঙ্গে যেতে চান এবং যদি আপনি একটি নতুন ভাষা নিতে আছে না চান, এবং আপনি, তুলনামূলকভাবে হালকা এবং একটি সহজ লার্নিং কার্ভ আছে কিছু যে চাই আমি স্পষ্টভাবে Kohana সুপারিশ করবে. যে সম্ভবত যে জন্য সেরা অবদান আছে. আমরা পাগল নেভিগেশন রুবি ব্যবহার করা হয়েছে কিনা মজার ব্যাপার হল, যদিও, হয়, আমরা শুধু আমরা কি প্রতিলিপি করতে পারে এবং সম্ভবত 3 অধীন মিনিটের মধ্যে আরো. কোন রসিকতা, কিন্তু পাগল নেভিগেশন রুবি শেখার অনেক আর লাগে এটা Kohana শিখতে লাগবে তুলনায়. এটা, আপনি শিখতে চয়ন করতে চান কি মূলত আপনার পছন্দ কিন্তু আপনি আপ এবং দ্রুত চলমান পেতে চান, Kohana স্পষ্টভাবে একটি খুব ভাল পছন্দ. আমরা শেষ কোন শেষ প্রশ্ন করার আগে? হ্যাঁ. [ছাত্র] কিভাবে আমরা যে সংহত করবে আপনি অধ্যাপনা যখন আপনি ব্যবহার ছিল মত একটি সিএসএস ফ্রেমওয়ার্ক মধ্যে? প্রশ্ন কিভাবে আমরা একটি CSS কাঠামো সঙ্গে যে সংহত করবে কি? কি সম্ভবত আমরা কি আমরা সম্ভবত অন্তর্গত হয় আমরা সব আমাদের সিএসএস ফাইল ডাম্প যেখানে একটি নতুন ফোল্ডার, এবং তারপর আমরা একটি নতুন টেমপ্লেট যোগ করা চাই. টেমপ্লেট আমরা যারা সিএসএস ফাইল অন্তর্ভুক্ত চাই তারা প্রতি একক পৃষ্ঠায় উল্লেখ করছেন নিশ্চিত, এবং তারপর আপনি আসলে এইচটিএমএল লেখা হয়, আপনি শুধু যথাযথ ক্লাস এবং যে কোন বস্তু, যোগ এবং উদাহরণস্বরূপ, যখন আপনি ফর্ম মত কিছু ব্যবহার করছেন সাহায্যকারী ফাংশন, আপনি পরে আরো পরামিতি যোগ করতে পারেন আপনি বিভিন্ন জিনিস সংযুক্ত করতে চান কি ক্লাস নির্দিষ্ট করতে যাতে তারা সঠিকভাবে তা শৈলী পারে, এবং যে আপনি যেতে হবে মূলত এর. অন্য কোন প্রশ্ন? জট্টিল. আপনার সময় জন্য আপনাকে ধন্যবাদ, এবং আসার জন্য আপনাকে ধন্যবাদ. আমি অনেক অন্য যুক্ত করতে রাজী হয়নি কিন্তু আছে 1 টি সত্যিই দ্রুত জিনিস আমরা একটি লিঙ্ক আছে না হয় ফরমের. সত্যিই মূক. এর একটা যোগ করি - আসলে মনে করেন, ব্লগ, সূচক, নতুন পৃষ্ঠা থেকে যে যায় একটি লিঙ্ক যুক্ত সত্যিই দ্রুত এর যাক, আমরা একটি নতুন পোস্ট সন্নিবেশ করতে পারেন যেখানে পাতা. আমরা এই কাজ করতে যাচ্ছেন. কি চমৎকার এইচটিএমএল সাহায্যকারী ফাংশন এই পুরো গ্রুপ আছে হয় আপনার জন্য ভিন্ন কিছু করার, যাতে আপনি ইতিমধ্যে সত্ত্বা যা দেখেছি "নোঙ্গর" এখানে কাজ, কিন্তু তারা একটি ফাংশন বলা আছে আপনি ব্লগ / নতুন টাইপ করতে পারেন যা এবং "পোস্ট একটি নতুন ব্লগ.", বলে এবং এটা আপনার জন্য যে লিঙ্ক তৈরি হবে এবং, এই কাজ সত্যিই তুচ্ছ মনে হচ্ছে, কিন্তু এই সুন্দর আপনি 1 ডোমেইন থেকে অন্য আপনার ওয়েবসাইটের চলন্ত হয় যে অনুমান কারণ. এবং যদি আপনি মাত্র URL গুলি নিজেকে খুঁজে লিখেছিলেন যদি তারপর আপনি সব URL গুলি পরিবর্তন করতে হবে. অথবা হয়ত আপনি অন্য subfolder করতে 1 subfolder থেকে এটি সরানো. আপনি ঐ সমস্ত URL গুলি নিজেকে পরিবর্তন করতে হবে এবং যে কোন মজা. আপনি, এখানে ডান এই নোঙ্গর ব্যবহার করতে পারেন এবং আপনি ডোমেইন বা subfolder প্রিফিক্স পরিবর্তন করতে পারেন একবার কনফিগারেশন ফাইলের মধ্যে এবং তারপর, এটা যে সব জায়গায় প্রয়োগ করা হবে, এবং এই আবার, হয় মহান উদাহরণ আপনার কোড শুকানোর আউট, নিজেকে পুনরাবৃত্তি করবেন না. আপনি নিজেকে পুনরায় করছি যেখানেই, চেষ্টা এবং কনফিগারেশন ফাইলের কিছু সাজানোর মধ্যে নিষ্কাশন অথবা একটি ভিন্ন ফাংশন এবং এটি আপনার জন্য যে সব ব্যবস্থা আছে. আর আমি আপনাকে দেখাতে চেয়েছিলেন যে খুব শেষ জিনিস ছিল আমরা এই পোস্ট এ ফিরে এসেছি, এবং আমি কিছু সত্যিই দীর্ঘ প্রবন্ধ রচনা করেছিলেন অনুমান, কিন্তু আমি আমার লেখক অন্তর্ভুক্ত ভুলে গেছি. এখন আমি ", পোস্ট জমা দিন" ক্লিক করা হলে আমি সবকিছু হারিয়ে গেছে. কোন! সত্যিই দু: খিত. সুতরাং কিভাবে আপনি যে মোকাবেলা করেন? এই আমরা কি করব তা হল. আমরা কি এই ইনপুট এবং টেক্সট এলাকা ফাংশন জন্য এখানে হয়, আমরা একটি দ্বিতীয় পরামিতি, যা দ্বিতীয় পরামিতির তারপর মান অন্তর্ভুক্ত হলে ক্ষেত্রের প্রাথমিকভাবে সঙ্গে জনবহুল করা যাচ্ছে কি হতে যাচ্ছে. আমরা কি যেত না আমাদের ব্লগ নিয়ামক হয়, আমরা অন্য পরিবর্তনশীল আবদ্ধ পারে. হয়ত এটা "মান" কল করুন. এবং আক্ষরিক, পোস্ট অ্যারের মধ্যে পাস. অর্থাৎ, বৈধতা ব্যর্থ হলে এর মানে হল আমার আমি গত অনুরোধ থেকে জমা যে পোস্ট অ্যারের পাস, এবং যে ভাবে আমি আমার গত জমা থেকে মান ব্যবহার করতে পারেন ক্ষেত্র repopulate করতে. এখন আমি মান লেখক ভালো কিছু করতে পারেন আমি কিছু র্যান্ডম স্টাফ না এবং যদি এখন শরীর, এবং যে উপায় মান এবং তারপর এটি সেখানে থাকে ", পোস্ট জমা দিন" ক্লিক করুন. কিন্তু আমরা অন্য সমস্যা পাতিত চলুন. আমি পাতা থেকে খুব প্রথমবার যান যে, কাজ করে, কিন্তু এটি বিপর্যস্ত যাচ্ছে, এবং যে খুব প্রথমবার কারণ আমরা পৃষ্ঠাতে যান, এই পোস্টে পরিবর্তনশীল এখনো সংজ্ঞায়িত করা হয় নি. এটা নাল না. এটা বিদ্যমান নেই. এই কি বিদ্যমান যদি এবং কি আমরা বলতে চাই, হয় তাহলে এই অ্যারের মান ফিরে, কী বিদ্যমান নেই কিন্তু যদি তারপর একটি ফাঁকা স্ট্রিং ফিরে. যে আমরা এখানে চাই কার্যকারিতা নেই. আমরা কি অ্যারে অ্যাক্সেস করার প্রচেষ্টা করার পূর্বে বিদ্যমান যদি পরীক্ষা করতে, এবং ভাগ্যক্রমে যথেষ্ট, Kohana এছাড়াও আমাদের যে জন্য একটি সাহায্যকারী ফাংশন আপনি. তারা কর্ম এই পুরো স্যুট আছে নামের Arr অধীন, ছোট অ্যারের জন্য, এবং তারা "পেতে" নামক 1 ফাংশন আছে এবং আপনি অ্যারের মধ্যে পাস করতে পারেন, এবং আপনি কি নামে পাস করতে পারেন. তারপর মূলত কি এটা করতে হবে এটা যে কি পেতে চেষ্টা করবে না, কিন্তু যে কি অ্যারের মধ্যে উপস্থিত না থাকলে, , আমি বিশ্বাস করি, তারপর ফাঁকা ফিরে আসবে, অথবা আমরা একটি ডিফল্ট নির্দিষ্ট করতে পারেন যা চমৎকার. এখন আমরা আবার একই জিনিস করে যদি, তারপর আপনি, এটা প্রায় প্রথম সময় কাজ করে এখন দেখুন এবং আবার, আমরা কিছু র্যান্ডম স্টাফ টাইপ হলে এবং তারপর এটি সেখানে থাকে, চেষ্টা করুন এবং জমা দিন. আমি আমি কিভাবে সত্যিই দ্রুত একটি টেমপ্লেট যুক্ত করতে আপনাকে দেখাতে পারে অনুমান. আমরা প্রথম কিছু করতে পারি কি হয় আমরা "template.php" নামক একটি নতুন দৃশ্য যোগ করতে পারেন দেখেছে ফোল্ডার মধ্যে, এবং কি আমি যা করতে যাচ্ছি, "কন্টেন্ট" আমি কিছু বলা প্রিন্ট আউট করা যাচ্ছে না হয় আমার মূল বিষয়ে হতে যাচ্ছে যা. এবং হয়ত খুব নীচে আমি,, বলতে যোগ করা যাচ্ছে না কপিরাইট. [শ্রবণাতীত ছাত্র প্রশ্ন] [Brandon লিউ] হয়তো এই আমি ব্যবহার করতে চান একটি সুপার মৌলিক টেমপ্লেট. আমি প্রতি একক পৃষ্ঠায় আমার কপিরাইট সঙ্গে একটি ফোল্ডার আছে সেটি, এবং এখন আমি আমার নিয়ামক মধ্যে করতে যাচ্ছি কি পরিবর্তে বলছে এখন হয়, "কন্ট্রোলার প্রসারিত করে" আমি ", Controller_Template প্রসারিত করে", বলতে যাচ্ছি পরিবর্তে বলছে এবং এখন, "প্রতিক্রিয়া শরীর, এই দেখুন সমান" আমি বলতে যাচ্ছি "এই টেমপ্লেটটি কন্টেন্ট হল -" এবং আমি মনে করি - আমি একটি সমান চিহ্ন লাগাতে পারি? আমি ভুলে. হ্যাঁ, আমি তাই চিন্তা. এবং এখন আমি কন্টেন্ট পরিবর্তনশীল দেখুন সমান যে সেট. আমি এখানে একই কাজ করতে পারেন. আমি রিফ্রেশ করুন এবং যদি এখন, আপনি এই কপিরাইট সেখানে যোগ করা হয় এখন দেখতে পারেন এবং কিছু কিছু র্যান্ডম পোস্ট করতে, এবং তারপর আবার, আপনি কপিরাইট পৃষ্ঠার খুব নীচে যে দেখতে পাবেন. গ্রেট. আমি আপনাকে বলছি দেখাতে চেয়েছিল সব. [সাধুবাদ] কোন প্রশ্ন? [CS50.TV]