অন্য উত্তরগুলি দুর্দান্ত, নির্ভুল, বিশদযুক্ত, তবে আমি নিশ্চিত নই যে তারা "সাধারণ শব্দ" ধারণাটির খালি হাড়কে ব্যাখ্যা করছে যা প্রশ্নকারী খুঁজছিল।
আমি হুকগুলি এমন একটি বিন্দু হিসাবে ভাবি যেখানে কোডটি থেমে যায় এবং চিৎকার করে "" অন্য কেউ এখানে যোগ করার জন্য কিছু পেয়েছিল? "। যে কোনও মডিউলের একটি ফাংশন থাকতে পারে যা এর জবাব দেয় এবং কোডের সেই সময়ে উপযুক্ত ডেটা দিয়ে তা চালিত করে।
একটি দুর্দান্ত সোজা উদাহরণ হুক_নোড_ডিলেট () । যে কোনও মডিউল প্রতিটি নোড মোছার পরে জিনিসগুলি ঘটতে এটি ব্যবহার করতে পারে। দস্তাবেজগুলি আপনাকে বলবে যে এই হুকটি সেই মুছে ফেলা নোডের সাথে কাজ করার জন্য মডিউলটি পাস করে এবং অন্যান্য দরকারী তথ্যের রূপরেখা যেমন যেমন ডাকা হয় তার সঠিক সময় সম্পর্কে (যেমন এটি নোডের তথ্যটি ডাটাবেস থেকে মুছে ফেলার আগেই হয়) , এবং যেখানে দ্রুপালের কোডে হুককে ডাকা হয় (যা একাধিক জায়গায় হতে পারে)।
আপনি কী হুক বিদ্যমান তা অন্বেষণ করতে পারেন এবং দ্রুপাল এপিআইতে "হুক_" দিয়ে শুরু হওয়া জিনিসগুলি অন্বেষণ করে তাদের কাছে কী ডেটা প্রেরণ করা হয়েছে তা সন্ধান করতে পারেন ।
হুক একটি নাম কনভেনশন অনুসারে কাজ করে: hook_node_delete
আমাদের উদাহরণ হিসাবে ব্যবহার করে , যখন নোড মোছার প্রক্রিয়াটি হুক নামে ডাকে সেখানে পৌঁছে যায়, প্রতিটি মডিউলের জন্য এই জাতীয় ফাংশন সহ [modulename]_node_delete()
যেখানে হুকের নাম হুক শব্দটি মডিউলটির নামের সাথে প্রতিস্থাপন করা হয় (উদাঃ my_amazing_module_node_delete()
), functions ফাংশনগুলি কল হয়।
কেন? সুতরাং যে কোনও মডিউল এই মূল পয়েন্টগুলিতে কিছু করতে পারে: উদাহরণস্বরূপ আপনি মুছে ফেলা নোডের দিকে তাকান এবং কোনও নির্দিষ্ট শর্ত পূরণ করলে এটি কাজ করতে পারেন (বলুন, কোনও প্রশাসককে ইমেল করুন বা কিছু দীর্ঘ প্রক্রিয়া চালু করুন) launch
কিছু হুক আপনাকে প্রক্রিয়াজাত হওয়ার ঠিক আগে তৈরি হওয়া জিনিসগুলি পরিবর্তিত করতে দেয়। উদাহরণস্বরূপ, hook_menu_alter () সিস্টেমটি তৈরি করা বর্তমান মেনু আইটেমগুলি আপনাকে দেয়। যে কোনও মডিউল কোনও ফাংশনকে কিছু_মডিউলনেম_মেনু_াল্টার () সংজ্ঞায়িত করতে পারে এবং তাদের দিকে তাকান, allyচ্ছিকভাবে এগুলি পরিবর্তন করুন (কিছু মুছুন, কিছু সংযোজন করুন, বাছাই করুন ...), এবং নতুনভাবে পরিবর্তিত মেনুটি আবার পাস করতে পারেন।
এটি সহজ, সত্যই শক্তিশালী এবং ড্রুপাল কীভাবে একটি মডুলার সিস্টেম হিসাবে কাজ করে তার কেন্দ্রস্থলে। হুকগুলির প্রয়োগগুলি বেশিরভাগ দ্রুপাল মডিউলগুলির কেন্দ্রস্থলে থাকে।
একটি দ্রুপাল মডিউলের কোডটি সন্ধান করার সময়, আপনি হুকগুলি থেকে আসা কোন ক্রিয়াগুলি স্পষ্ট করতে পারেন (মডিউল কোডের মধ্যে কেবল যে ফাংশনগুলি কেবল বলা হয় তার বিপরীতে), কারণ দ্রুপাল সম্প্রদায় একটি কনভেনশন কার্যকর করে যার ফলে প্রতিটি হুকের বাস্তবায়ন হয় এর সামনে এই মত মন্তব্য করুন ("প্রয়োগকারী হুক _..." বিটটি নোট করুন):
/**
* Implements hook_some_hook().
*
* Some descriptive summary of what this does
*/
function my_amazing_module_some_hook() {
কিছু মডিউল যা এপিআই হিসাবে কাজ করে তাদের নিজস্ব হুক সংজ্ঞায়িত করে। উদাহরণস্বরূপ, দেখেছে অনেক আঙ্গুলসমূহ আপনি যোগ পড়া এবং তৈরি অথবা একটি দৃশ্য প্রদর্শন করার প্রক্রিয়ার মধ্যে বিভিন্ন বিন্দুতে ডেটা পরিবর্তন বা সম্পাদনা করার অনুমতি দেয় সংজ্ঞায়িত করে। আপনি দুটি জায়গা থেকে কাস্টম মডিউলগুলিতে তৈরি হুক সম্পর্কে তথ্য পেতে পারেন (ধরে নিলেন মডিউলটি কনভেনশন অনুসরণ করে):
অন্যরা যেমন বুঝিয়েছিল, বুটস্ট্র্যাপিং হ'ল মূলত বুট আপ করা - আমি অন্য ভাল পরিষ্কার ব্যাখ্যাগুলি সদৃশ করব না।