আমি জানি যে ম্যাজেন্টোর একটি হুক-এর মতো সিস্টেম রয়েছে যা ইভেন্ট বলে। কারও কি পুরো তালিকা বা স্ক্রিপ্ট রয়েছে যা কোন ইভেন্টগুলি বলা যেতে পারে তা নির্ধারণের জন্য ব্যবহার করা যেতে পারে?
আমি জানি যে ম্যাজেন্টোর একটি হুক-এর মতো সিস্টেম রয়েছে যা ইভেন্ট বলে। কারও কি পুরো তালিকা বা স্ক্রিপ্ট রয়েছে যা কোন ইভেন্টগুলি বলা যেতে পারে তা নির্ধারণের জন্য ব্যবহার করা যেতে পারে?
উত্তর:
সমস্ত ম্যাজেন্টো ইভেন্টের একটি তালিকা নেই, কারণ বেশিরভাগ ইভেন্টের নাম পরিবর্তনশীল।
আপনি যদি আমাকে জিজ্ঞাসা করেন, এই মূল ঘটনাগুলি (এবং ফলাফলগুলি) জেনে রাখা ভাল সূচনা পয়েন্ট (নিক থেকে তালিকার পাশে):
Mage_Core_Model_Abstract থেকে প্রসারিত প্রতিটি বস্তু লোডিং, সংরক্ষণ এবং মুছে ফেলার জন্য প্রচুর ইভেন্ট প্রেরণ করে:
app/code/core/Mage/Core/Model/Abstract.php:255
Mage::dispatchEvent($this->_eventPrefix.'_load_before', $params);
// e.g. sales_order_load_before, checkout_cart_load_before
উদাহরণস্বরূপ চেক যোগ করার পরে, বস্তুটি লোড হওয়ার পরে
app/code/core/Mage/Core/Model/Abstract.php:267
Mage::dispatchEvent($this->_eventPrefix.'_load_after', $this->_getEventData());
// e.g. cms_page_load_after
সংরক্ষণ করার আগে অবজেক্টে অতিরিক্ত ডেটা যুক্ত করতে
app/code/core/Mage/Core/Model/Abstract.php:391
Mage::dispatchEvent($this->_eventPrefix.'_save_before', $this->_getEventData());
// e.g. catalog_product_save_before
"পিতামাতা" সংরক্ষণের পরে অন্যান্য মডেলগুলি সংরক্ষণ করতে
app/code/core/Mage/Core/Model/Abstract.php:466
Mage::dispatchEvent($this->_eventPrefix.'_save_after', $this->_getEventData());
// e.g. catalogrule_rule_save_after
মডেল মোছার আগে, পরিষ্কার করুন
app/code/core/Mage/Core/Model/Abstract.php:501
Mage::dispatchEvent($this->_eventPrefix.'_delete_before', $this->_getEventData());
// e.g. store_delete_before
পরিষ্কার করুন, মডেল মোছার আগে - বা সম্ভবত পরে? আপনি এখানে লেনদেন এখনও আছে!
app/code/core/Mage/Core/Model/Abstract.php:529
Mage::dispatchEvent($this->_eventPrefix.'_delete_after', $this->_getEventData());
// e.g. website_delete_after
আপনি যদি নিশ্চিত হতে চান যে সত্তাটি মুছে ফেলা হয়েছে
app/code/core/Mage/Core/Model/Abstract.php:541
Mage::dispatchEvent($this->_eventPrefix.'_delete_commit_after', $this->_getEventData());
// e.g. customer_delete_commit_after
সংগ্রহগুলি_মোহর_মোডেল_ রিসোর্স_ডিবি_ সংগ্রহ_আবস্ট্র্যাক্ট থেকে প্রসারিত সংগ্রহগুলিতে দুটি জেনেরিক ইভেন্টও রয়েছে:
উদাহরণস্বরূপ: সংগ্রহ লোড করতে এসকিউএল পরিবর্তন করতে:
app/code/core/Mage/Core/Model/Resource/Db/Collection/Abstract.php:588
Mage::dispatchEvent($this->_eventPrefix.'_load_before', array(
$this->_eventObject => $this
));
// e.g. sales_order_status_history_collection_load_before
উদাহরণস্বরূপ: অবজেক্টগুলিতে অতিরিক্ত ডেটা যুক্ত করতে:
app/code/core/Mage/Core/Model/Resource/Db/Collection/Abstract.php:637
Mage::dispatchEvent($this->_eventPrefix.'_load_after', array(
$this->_eventObject => $this
));
// e.g. sales_order_shipment_collection_load_after
_eventPrefix
মডেল ইভেন্টগুলির জন্য গুরুত্ব , লক্ষ্যযুক্ত অনুরোধ ইভেন্টগুলি, মাঝে মধ্যে দরকারী জেনেরিক ব্লক ইভেন্টগুলি এবং ইভেন্টগুলি
app/code/core/Mage/Core/Model/App.php
এবং mage::log($eventName,null,'events.txt',true);
করতে dispatchEvent
পদ্ধতি। আমি যে পৃষ্ঠাটি পর্যবেক্ষণ করতে চাইছি সেটি লোড করুন। স্পষ্টতই এটিকে যেমন রাখবেন না এবং একবার আপনার ভার / লগ / ইভেন্ট.টিএসটি তৈরি হয়ে গেলে ফিরে আসুন। নোংরা, হ্যাঁ তাড়াতাড়ি, হ্যাঁ :)
রক্তাক্ত করুন grep 'Mage::dispatchEvent' app/ -rsn
এটি আপনার ইনস্টলেশন সম্পর্কিত নির্দিষ্ট ইভেন্টের একটি তালিকা সরবরাহ করবে কারণ ইভেন্টের তালিকাটি ম্যাজেন্টো সংস্করণ, কাস্টমাইজেশন এবং ইনস্টল হওয়া এক্সটেনশানগুলির উপর নির্ভর করে পরিবর্তিত হতে পারে।
sales_order_place_after
ঘটবে, তবে মনে হচ্ছে যে এটি কল করার জন্য তা কল্পনা করা হয়নি Checkout/Type/Onepage.php
।
আমি এটি একটি সুন্দর ঠকানো শীট হিসাবে ব্যবহার করি http://www.nicksays.co.uk/magento-events-cheat-sheet-1-7/ । এটিতে সমস্ত ইভেন্ট রয়েছে যা 1.7 এ কল করা যেতে পারে।
আমি জানি যে এই প্রশ্নের উত্তর দেওয়া হয়েছে আমি এখানে আমার পথটি যুক্ত করছি:
public static function dispatchEvent
শুরুতে আমি যোগ মধ্যে: (~ 446 Ln)
//Mage::log($name, null, 'events.log', true);
তারপরে আপনি var / লগ / ইভেন্টস.লগ খুলুন (~ 40 কেবি) এবং কেবলমাত্র সেই পৃষ্ঠায় একটি সম্পূর্ণ প্রচুর ইভেন্ট দেখুন! :)
উত্তর ইতিমধ্যে গ্রহণ করা হয়েছে তবে আমি ভবিষ্যতের জন্য যাইহোক আমার উত্তর পোস্ট করব:
আপনি যদি ম্যাজেন্টোর কাছে ইভেন্টগুলির তালিকা দেখতে চান তবে আপনার কাছে 3 টি বিকল্প রয়েছে:
1) গুগল এর জন্য, অনেক লোক আছেন যারা ম্যাজেন্টো ইভেন্টগুলির একটি তালিকা সংকলন করেছেন
2) এমন একটি মডিউল তৈরি করুন controller_action_predispatch
যা ইভেন্টটিতে হুক হয় যা ইভেন্টটি অন্য কোনও ইভেন্ট বলার আগে ডাকা হয়। এই মডিউলটির ভিতরে আপনি প্রেরিত কিছু ইভেন্ট লগ করতে পারেন:
কনফিগ.এক্সএমএলে নিম্নলিখিতটি যুক্ত করুন
<events>
<controller_action_postdispatch>
<observers>
<controller_action_after>
<class>yourmodule/observer</class>
<method>hookToControllerActionPostDispatch</method>
</controller_action_after>
</observers>
</controller_action_postdispatch>
</events>
এবং আপনার মডেল / মডেল / পর্যবেক্ষকের ভিতরে:
public function hookToControllerActionPostDispatch($observer) {
Mage::log($observer->getEvent()->getControllerAction()->getFullActionName());
}
উপরেরগুলি প্রেরিত প্রতিটি ইভেন্টে লগ করবে ...
3) আপনার যদি এসএসএইচ অ্যাক্সেস থাকে তবে আপনি সমস্ত ইভেন্টের (এবং তাদের ফাইল যেখানে পাঠানো হয়েছে) এর একটি ওভারভিউ পেতে নিম্নলিখিত কমান্ডটি চালাতে পারেন:
cd /path/to/<magento-root>
grep -nris 'dispatchEvent' app/code/
controller_action_predispatch
উল্লেখযোগ্যভাবে কয়েকটি গুলি চালানো হয়েছে controller_front_init_before
। ২) এই পদ্ধতির দ্বারা প্রেরিত প্রতিটি ইভেন্টকে কেবল লগ করা যাবে না , এটি কি টাইপো বা অসম্পূর্ণ বিভাগ?
আমি ম্যাজেন্টো বিকাশকারী সরঞ্জামদণ্ডটি ব্যবহার করছি যাতে লোড হওয়া পৃষ্ঠায় লক্ষ্য করা যায় এমন ইভেন্টগুলি প্রদর্শনের দুর্দান্ত বৈশিষ্ট্য রয়েছে।
এখানে আপনি সর্বাধিক বিদ্যমান ইভেন্টগুলি দেখতে পারেন: http://www.magentocommerce.com/wiki/5_-_modules_and_de વિકાસ ment / rereferences / magento_events
আমি ম্যাজেন্তোর কোর ম্যাজে মডিউলটিতে একটি গ্রেপ করেছি এবং একটি তালিকা মেনে চলেছি,
ম্যাজেন্টো ইভেন্টগুলির অবসন্ন তালিকা
পিএস হিসাবে উল্লেখ করা হয়েছে, এমন ইভেন্টগুলি থাকতে পারে যা ম্যাজেন্টোর অবহিত ফাংশনের অভ্যন্তরে রয়েছে তাই প্রয়োগের আগে ফাইল এবং লাইন রেফারেন্সটি পরীক্ষা করে দেখুন।
পরামর্শের জন্য উন্মুক্ত!
grep "::dispatchEvent" -R * | sort -u
grep "eventPrefix" -R * | sort -u
পূর্ববর্তী তালিকাভুক্ত গ্রেপ কমান্ডটি সদৃশ (প্রচুর পরিমাণে) রেন্ডার করবে এবং এটি ইভেন্ট প্রিফিক্সগুলির তালিকাটি কভার করে না যা গতিশীলভাবে উত্পন্ন ইভেন্টের নামগুলি বোঝার জন্য প্রয়োজন। এই কমান্ডগুলি উভয় তালিকাকে কেবল অনন্য মান সহ রেন্ডার করে। আপনি অন্যান্য গ্রেপ উত্তরের মতো -n পতাকা যুক্ত করতে পারেন এবং আমি মনে করি লাইন নম্বরটি পেতে পারেন। কিন্তু প্রশ্নটি তারা জিজ্ঞাসা করেনি যে তারা সমস্ত কোডে ছিল কোথায়? ~: _ ~
এখানে একটি চিট শীটও রয়েছে
http://www.magentocommerce.com/wiki/5_-_modules_and_development/reference/magento_events
এখানে আপনি পর্যবেক্ষক ইভেন্টগুলির সম্পূর্ণ তালিকা পেতে পারেন।
এই চিট শিটগুলি উল্লেখ করুন
https://www.nicksays.co.uk/magento-events-cheat-sheet-1-8/ http://rabee.me/codes/magento/cheatsheet/1.9/
এটি আপনার পক্ষে সহায়ক হবে।
আপনি একক লিঙ্কে ব্যাকএন্ড + ফ্রন্টএন্ড ইভেন্টের সমস্ত তালিকা খুঁজে পেতে পারেন
http://www.magentocommerce.com/wiki/5_-_modules_and_development/reference/magento_events
কারও যদি কখনও আপডেট তালিকার প্রয়োজন হয় তবে আমি এটিকে আপ টু ডেট রাখার চেষ্টা করছি:
https://gist.github.com/digitalpianism/d8157c6b492238af2ed7809e5e3a134e
আপনি url অনুসরণ করে সমস্ত ম্যাজেন্টো -১ এক্স ইভেন্ট খুঁজে পেতে পারেন। https://magento2.atlassian.net/wiki/display/m1wiki/Magento+1.x+Events+Reference