Skip to content

Instantly share code, notes, and snippets.

@totten
Created November 4, 2014 04:34
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save totten/8744df8cb9fdb976ec47 to your computer and use it in GitHub Desktop.
Save totten/8744df8cb9fdb976ec47 to your computer and use it in GitHub Desktop.
Methods and inheritance for CRM_Core_Payment
<?php
// usage: drush refl.php > refl.csv
civicrm_initialize();
/**
* @return array (string $className => array(string $methodName => string $category))
*/
function categorize_methods($classNames) {
$cats = array();
foreach ($classNames as $className) {
$clazz = new ReflectionClass($className);
foreach ($clazz->getMethods() as $method) {
$category = NULL;
if ($className != $method->class) {
$category = "inherited[{$method->class}]";
} elseif ($clazz->getParentClass() && $clazz->getParentClass()->hasMethod($method->name)) {
$overridenMethod = $clazz->getParentClass()->getMethod($method->name);
$category = "override[{$overridenMethod->class}]";
} else {
$category = "original[{$method->class}]";
}
$cats[$className][$method->name] = $category;
}
}
return $cats;
}
function get_method_names($cats) {
$methodNames = array();
foreach ($cats as $className => $methods) {
$methodNames = array_unique(array_merge($methodNames, array_keys($methods)));
}
sort($methodNames);
return $methodNames;
}
function main($classNames) {
$cats = categorize_methods($classNames);
$methodNames = get_method_names($cats);
$header = array_merge(array('Method', '(originals)', '(inherits)', '(overrides)'), array_keys($cats));
fputcsv(STDOUT, $header);
foreach ($methodNames as $methodName) {
$row = array();
$stats = array('original' => 0, 'override' => 0, 'inherited' => 0);
foreach (array_keys($cats) as $className) {
if (isset($cats[$className][$methodName])) {
$row[] = $cats[$className][$methodName];
list ($catName) = explode('[', $cats[$className][$methodName]);
$stats[$catName]++;
} else {
$row[] = '';
}
}
array_unshift($row, $stats['override']);
array_unshift($row, $stats['inherited']);
array_unshift($row, $stats['original']);
array_unshift($row, $methodName);
fputcsv(STDOUT, $row);
}
}
main(array(
'CRM_Core_Payment',
'CRM_Core_Payment_AuthorizeNet',
'CRM_Core_Payment_Dummy',
'CRM_Core_Payment_Elavon',
'CRM_Core_Payment_eWAY',
'CRM_Core_Payment_FirstData',
'CRM_Core_Payment_Google',
'CRM_Core_Payment_IATS',
'CRM_Core_Payment_Moneris',
'CRM_Core_Payment_PayflowPro',
'CRM_Core_Payment_PayJunction',
'CRM_Core_Payment_PaymentExpress',
'CRM_Core_Payment_PayPalImpl',
'CRM_Core_Payment_Realex',
));
Method (originals) (inherits) (overrides) CRM_Core_Payment CRM_Core_Payment_AuthorizeNet CRM_Core_Payment_Dummy CRM_Core_Payment_Elavon CRM_Core_Payment_eWAY CRM_Core_Payment_FirstData CRM_Core_Payment_Google CRM_Core_Payment_IATS CRM_Core_Payment_Moneris CRM_Core_Payment_PayflowPro CRM_Core_Payment_PayJunction CRM_Core_Payment_PaymentExpress CRM_Core_Payment_PayPalImpl CRM_Core_Payment_Realex
CalculateFP 1 0 0 original[CRM_Core_Payment_AuthorizeNet]
GetNodeValue 1 0 0 original[CRM_Core_Payment_Elavon]
__construct 13 0 0 original[CRM_Core_Payment_AuthorizeNet] original[CRM_Core_Payment_Dummy] original[CRM_Core_Payment_Elavon] original[CRM_Core_Payment_eWAY] original[CRM_Core_Payment_FirstData] original[CRM_Core_Payment_Google] original[CRM_Core_Payment_IATS] original[CRM_Core_Payment_Moneris] original[CRM_Core_Payment_PayflowPro] original[CRM_Core_Payment_PayJunction] original[CRM_Core_Payment_PaymentExpress] original[CRM_Core_Payment_PayPalImpl] original[CRM_Core_Payment_Realex]
_checkDupe 6 0 0 original[CRM_Core_Payment_AuthorizeNet] original[CRM_Core_Payment_Elavon] original[CRM_Core_Payment_eWAY] original[CRM_Core_Payment_FirstData] original[CRM_Core_Payment_PayflowPro] original[CRM_Core_Payment_Realex]
_getAuthorizeNetFields 1 0 0 original[CRM_Core_Payment_AuthorizeNet]
_getParam 3 0 0 original[CRM_Core_Payment_AuthorizeNet] original[CRM_Core_Payment_PayJunction] original[CRM_Core_Payment_Realex]
_parseArbReturn 1 0 0 original[CRM_Core_Payment_AuthorizeNet]
_setParam 3 0 0 original[CRM_Core_Payment_AuthorizeNet] original[CRM_Core_Payment_PayJunction] original[CRM_Core_Payment_Realex]
_substring_between 1 0 0 original[CRM_Core_Payment_AuthorizeNet]
_xml_parse 1 0 0 original[CRM_Core_Payment_Realex]
accountLoginURL 2 0 0 original[CRM_Core_Payment_AuthorizeNet] original[CRM_Core_Payment_Google]
buildXML 1 0 0 original[CRM_Core_Payment_Elavon]
buildXMLQuery 1 0 0 original[CRM_Core_Payment_Google]
cancelSubscription 3 0 0 original[CRM_Core_Payment_AuthorizeNet] original[CRM_Core_Payment_Google] original[CRM_Core_Payment_PayPalImpl]
cancelSubscriptionURL 1 0 0 original[CRM_Core_Payment_PayPalImpl]
changeSubscriptionAmount 2 0 0 original[CRM_Core_Payment_AuthorizeNet] original[CRM_Core_Payment_PayPalImpl]
checkConfig 1 0 13 original[CRM_Core_Payment] override[CRM_Core_Payment] override[CRM_Core_Payment] override[CRM_Core_Payment] override[CRM_Core_Payment] override[CRM_Core_Payment] override[CRM_Core_Payment] override[CRM_Core_Payment] override[CRM_Core_Payment] override[CRM_Core_Payment] override[CRM_Core_Payment] override[CRM_Core_Payment] override[CRM_Core_Payment] override[CRM_Core_Payment]
checkMD5 1 0 0 original[CRM_Core_Payment_AuthorizeNet]
checkResult 2 0 0 original[CRM_Core_Payment_Moneris] original[CRM_Core_Payment_PayJunction]
convert_to_nvp 1 0 0 original[CRM_Core_Payment_PayflowPro]
createRecurringPayments 1 0 0 original[CRM_Core_Payment_PayPalImpl]
decodeXMLresponse 1 0 0 original[CRM_Core_Payment_Elavon]
deformat 1 0 0 original[CRM_Core_Payment_PayPalImpl]
doDirectPayment 1 0 13 original[CRM_Core_Payment] override[CRM_Core_Payment] override[CRM_Core_Payment] override[CRM_Core_Payment] override[CRM_Core_Payment] override[CRM_Core_Payment] override[CRM_Core_Payment] override[CRM_Core_Payment] override[CRM_Core_Payment] override[CRM_Core_Payment] override[CRM_Core_Payment] override[CRM_Core_Payment] override[CRM_Core_Payment] override[CRM_Core_Payment]
doExpressCheckout 3 0 0 original[CRM_Core_Payment_PaymentExpress] original[CRM_Core_Payment_PayPalImpl] original[CRM_Core_Payment_Realex]
doRecurCheckout 1 0 0 original[CRM_Core_Payment_Google]
doRecurPayment 1 0 0 original[CRM_Core_Payment_AuthorizeNet]
doTransferCheckout 8 0 0 original[CRM_Core_Payment_Elavon] original[CRM_Core_Payment_eWAY] original[CRM_Core_Payment_FirstData] original[CRM_Core_Payment_Google] original[CRM_Core_Payment_PayflowPro] original[CRM_Core_Payment_PaymentExpress] original[CRM_Core_Payment_PayPalImpl] original[CRM_Core_Payment_Realex]
error 7 0 0 original[CRM_Core_Payment_AuthorizeNet] original[CRM_Core_Payment_Dummy] original[CRM_Core_Payment_Google] original[CRM_Core_Payment_IATS] original[CRM_Core_Payment_Moneris] original[CRM_Core_Payment_PayJunction] original[CRM_Core_Payment_Realex]
errorExit 4 0 0 original[CRM_Core_Payment_Elavon] original[CRM_Core_Payment_eWAY] original[CRM_Core_Payment_FirstData] original[CRM_Core_Payment_PayflowPro]
errorString 1 0 0 original[CRM_Core_Payment_IATS]
explode_csv 1 0 0 original[CRM_Core_Payment_AuthorizeNet]
getArrayFromXML 1 0 0 original[CRM_Core_Payment_Google]
getExpressCheckoutDetails 3 0 0 original[CRM_Core_Payment_PaymentExpress] original[CRM_Core_Payment_PayPalImpl] original[CRM_Core_Payment_Realex]
getForm 1 13 0 original[CRM_Core_Payment] inherited[CRM_Core_Payment] inherited[CRM_Core_Payment] inherited[CRM_Core_Payment] inherited[CRM_Core_Payment] inherited[CRM_Core_Payment] inherited[CRM_Core_Payment] inherited[CRM_Core_Payment] inherited[CRM_Core_Payment] inherited[CRM_Core_Payment] inherited[CRM_Core_Payment] inherited[CRM_Core_Payment] inherited[CRM_Core_Payment] inherited[CRM_Core_Payment]
getRecurringTransactionStatus 1 0 0 original[CRM_Core_Payment_PayflowPro]
getVar 1 13 0 original[CRM_Core_Payment] inherited[CRM_Core_Payment] inherited[CRM_Core_Payment] inherited[CRM_Core_Payment] inherited[CRM_Core_Payment] inherited[CRM_Core_Payment] inherited[CRM_Core_Payment] inherited[CRM_Core_Payment] inherited[CRM_Core_Payment] inherited[CRM_Core_Payment] inherited[CRM_Core_Payment] inherited[CRM_Core_Payment] inherited[CRM_Core_Payment] inherited[CRM_Core_Payment]
handleIPN 1 13 0 original[CRM_Core_Payment] inherited[CRM_Core_Payment] inherited[CRM_Core_Payment] inherited[CRM_Core_Payment] inherited[CRM_Core_Payment] inherited[CRM_Core_Payment] inherited[CRM_Core_Payment] inherited[CRM_Core_Payment] inherited[CRM_Core_Payment] inherited[CRM_Core_Payment] inherited[CRM_Core_Payment] inherited[CRM_Core_Payment] inherited[CRM_Core_Payment] inherited[CRM_Core_Payment]
handlePaymentMethod 1 13 0 original[CRM_Core_Payment] inherited[CRM_Core_Payment] inherited[CRM_Core_Payment] inherited[CRM_Core_Payment] inherited[CRM_Core_Payment] inherited[CRM_Core_Payment] inherited[CRM_Core_Payment] inherited[CRM_Core_Payment] inherited[CRM_Core_Payment] inherited[CRM_Core_Payment] inherited[CRM_Core_Payment] inherited[CRM_Core_Payment] inherited[CRM_Core_Payment] inherited[CRM_Core_Payment]
hmac 1 0 0 original[CRM_Core_Payment_AuthorizeNet]
initialize 1 0 0 original[CRM_Core_Payment_PayPalImpl]
invokeAPI 2 0 0 original[CRM_Core_Payment_Google] original[CRM_Core_Payment_PayPalImpl]
isError 3 0 0 original[CRM_Core_Payment_eWAY] original[CRM_Core_Payment_Moneris] original[CRM_Core_Payment_PayJunction]
isSupported 1 12 1 original[CRM_Core_Payment] inherited[CRM_Core_Payment] inherited[CRM_Core_Payment] inherited[CRM_Core_Payment] inherited[CRM_Core_Payment] inherited[CRM_Core_Payment] inherited[CRM_Core_Payment] inherited[CRM_Core_Payment] inherited[CRM_Core_Payment] inherited[CRM_Core_Payment] inherited[CRM_Core_Payment] inherited[CRM_Core_Payment] override[CRM_Core_Payment] inherited[CRM_Core_Payment]
logPaymentNotification 1 13 0 original[CRM_Core_Payment] inherited[CRM_Core_Payment] inherited[CRM_Core_Payment] inherited[CRM_Core_Payment] inherited[CRM_Core_Payment] inherited[CRM_Core_Payment] inherited[CRM_Core_Payment] inherited[CRM_Core_Payment] inherited[CRM_Core_Payment] inherited[CRM_Core_Payment] inherited[CRM_Core_Payment] inherited[CRM_Core_Payment] inherited[CRM_Core_Payment] inherited[CRM_Core_Payment]
mapProcessorFieldstoParams 2 0 0 original[CRM_Core_Payment_Elavon] original[CRM_Core_Payment_FirstData]
paypalRedirect 1 13 0 original[CRM_Core_Payment] inherited[CRM_Core_Payment] inherited[CRM_Core_Payment] inherited[CRM_Core_Payment] inherited[CRM_Core_Payment] inherited[CRM_Core_Payment] inherited[CRM_Core_Payment] inherited[CRM_Core_Payment] inherited[CRM_Core_Payment] inherited[CRM_Core_Payment] inherited[CRM_Core_Payment] inherited[CRM_Core_Payment] inherited[CRM_Core_Payment] inherited[CRM_Core_Payment]
send_alert_email 1 0 0 original[CRM_Core_Payment_eWAY]
setDoDirectPaymentResult 1 0 0 original[CRM_Core_Payment_Dummy]
setExpressCheckOut 3 0 0 original[CRM_Core_Payment_PaymentExpress] original[CRM_Core_Payment_PayPalImpl] original[CRM_Core_Payment_Realex]
setForm 1 13 0 original[CRM_Core_Payment] inherited[CRM_Core_Payment] inherited[CRM_Core_Payment] inherited[CRM_Core_Payment] inherited[CRM_Core_Payment] inherited[CRM_Core_Payment] inherited[CRM_Core_Payment] inherited[CRM_Core_Payment] inherited[CRM_Core_Payment] inherited[CRM_Core_Payment] inherited[CRM_Core_Payment] inherited[CRM_Core_Payment] inherited[CRM_Core_Payment] inherited[CRM_Core_Payment]
setRealexFields 1 0 0 original[CRM_Core_Payment_Realex]
singleton 1 0 13 original[CRM_Core_Payment] override[CRM_Core_Payment] override[CRM_Core_Payment] override[CRM_Core_Payment] override[CRM_Core_Payment] override[CRM_Core_Payment] override[CRM_Core_Payment] override[CRM_Core_Payment] override[CRM_Core_Payment] override[CRM_Core_Payment] override[CRM_Core_Payment] override[CRM_Core_Payment] override[CRM_Core_Payment] override[CRM_Core_Payment]
submitPostParams 1 0 0 original[CRM_Core_Payment_Google]
submit_transaction 1 0 0 original[CRM_Core_Payment_PayflowPro]
subscriptionURL 1 13 0 original[CRM_Core_Payment] inherited[CRM_Core_Payment] inherited[CRM_Core_Payment] inherited[CRM_Core_Payment] inherited[CRM_Core_Payment] inherited[CRM_Core_Payment] inherited[CRM_Core_Payment] inherited[CRM_Core_Payment] inherited[CRM_Core_Payment] inherited[CRM_Core_Payment] inherited[CRM_Core_Payment] inherited[CRM_Core_Payment] inherited[CRM_Core_Payment] inherited[CRM_Core_Payment]
tidyStringforXML 1 0 0 original[CRM_Core_Payment_Elavon]
updateSubscriptionBillingInfo 2 0 0 original[CRM_Core_Payment_AuthorizeNet] original[CRM_Core_Payment_PayPalImpl]
xml_parse_into_assoc 1 0 0 original[CRM_Core_Payment_Realex]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment