Drupal dasturchi Drush dan keshni tozalashda, modullarni hamda tema’larni ko’chirishda/o’rnatishda foydalanib turadi. Ushbu buyruqlar Drupal yadrosida birga keladi, shu bilan birga kastom-modulda buyruq ishlab chiqish uchun kerakli hook’lar ham taqdim etilgan. Bugun biz kichik misol yordamida qanday qilib buyruq yozishni ko’rib chiqamiz.
Muammo:
Drupal sayt sekin ishlayotgan paytda, foydalanuvchi ro’yhatdan o’tish jarayonida Registratsiya knopkasini 0.5 sekund ichida birnecha marta bossa, 1 tadan ko’p foydalanuvchi ma’lumotlari qo’shilib ketayotgan edi. Muammoning Email Registration moduliga aloqasi bor bo’lsa kerak, lekin isbotlay olmadim.
Drupaldagi issue tiket: https://www.drupal.org/project/email_registration/issues/2491157
Yechim:
- Knopkani bittadan ko’p bosmaslik uchun Javascript kod yozildi.
- Dublikat-foydalanuvchi akkauntlarini o’chirib chiqish kerak edi. Ular 100dan ortiq, qo’lda o’chirib chiqish uchun ko’p vaqt ketishi mumkin. Shuning uchun kod yozib, dublikatlardan ohirgi bo’lib saytda login bo’lganini qoldiramiz va qolganlarini o’chiramiz.
Buyruq yozish
mymodule nomli kastom modul yozgan bo’lsangiz, uning ichida mymodule.drush.inc fayl qo’shasiz. Drupal fayllarni o’qib chiqish jarayonida mymodule.drush.inc ichidan buyruq qidiradi. Buyruqni esa hook_drush_command() hook funksiyasi bilan qo’shiladi.
Yuqoridagi kodni qo’shib bo’lgach, drupal keshini tozalang (drushda keshni tozalash – drush cc all).
Drushni quyidagi buyruqlardan birida ishlatish mumkin:
drush urd yoki drush user-rm-dups