Çekirdek kesmek, başlatılmamışlar için kesinlikle önerilmemektedir, çünkü binlerce destek topluluğunu bir destek topluluğuna (veya takım büyüklüğünüz ne olursa olsun) etkili bir şekilde azaltır. Bu en iyi uygulama olmadan, Drupal'da yeni olanlara yardım etmek neredeyse imkansız olurdu. Ayrıca modülerliği ve bazı durumlarda güvenliği de engeller.
Bunun söylendiği gibi, hack çekmeyi yapmak her zaman olduğu kadar kötü değildir. Çekirdeği değiştirmeden, Pressflow ve benzerleri gibi dağıtım çekirdeğini ilginç şekillerde elde edemeyiz . Ne yaptığınızı tam olarak bilmeniz, yamalarınızı dağıtımınıza dağıtmanız (tercihen onları yükseltme işleminden sonra otomatik olarak tekrar uygulamanıza izin verecek şekilde) ve ayrıntılı belgeleri tutmanız çok önemlidir. değiştirdiklerin ve neden değiştiğinin.
Nesnelerin nasıl yapılandırıldığına bağlı olarak, yukarıdaki değişikliği kesinlikle yapabilir, xmlrpc_request()
bir yama yaratabilir ve daha sonra Drush Make gibi bir uygulamayı kullanarak otomatikleştirerek uygulayabilirsiniz (Drush Make'ın 5.x sürümü için Drush projesine girdiğini unutmayın. ), makefile ve başka yerlerde, değişikliğin ne yaptığı ve neden gerekli / istendiği konusunda ek belgeler sağlarken.
Çekirdek işlevlerini geliştirmek için başka bir yaygın model, çekirdek işlevine küçük bir işlevsellik katan bir sarmalayıcı oluşturmak ve çekirdeği uygulamak yerine sarmalayıcı olarak çağırmaktır. Mümkün olduğunda, bu işleri daha modüler kılar. Aşağıdakileri göz önünde bulundur:
/**
* Wrapper function for xmlrpc_request() to provide logging.
*/
function mymodule_xmlrpc_request($method, $args) {
$xrr = xmlrpc_request($method, $args);
watchdog('xmlrpc', $xrr->xml);
return $xrr;
}
Yine, yaptığınız şeye bağlı olarak bu mümkün olabilir veya olmayabilir, ancak ne zaman o çekirdeğin yamalı ve belgelenmiş kaldığından emin olmak için kendinize birkaç baş ağrısından kurtuldunuz. Bu durumda, böyle bir kerelik bir işlev böyle bir sarıcı için mükemmel bir aday gibi görünüyor. Uygulamanız bir modülde ele geçirildiyse, tüm işlevlerinizin günlük düzeyini kontrol etmek ve hatta üretim sitelerinde bu işlevselliği devre dışı bırakmak için genişletebilirsiniz:
/**
* Wrapper function for xmlrpc_request() to provide logging (if enabled).
*/
function mymodule_xmlrpc_request($method, $args) {
$xrr = xmlrpc_request($method, $args);
if (variable_get('mymodule_log_level', 0) > 0) {
watchdog('xmlrpc', $xrr->xml);
}
}
Kısacası, modüller ile yapabileceklerinizi en üst düzeye çıkarmak istiyorsunuz (ve çok şey yapabilirsiniz), ancak çekirdeği değiştirmek için meşru sebepler var. Özenle yapılmalı, hepsi bu.