This repository has been archived on 2026-04-06. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
PayPal-PHP-SDK/lib/PayPal/Validation/ModelAccessorValidator.php
japatel 29a8d8f50d Renaming Namespaces and Organizing Classes
- Updated OpenId classes to be in API namespace
- Updated PP Naming Convention to PayPal Naming Convention
- FormatConverter Class got its own namespace
- Handlers are grouped in Handler namespace
- Samples and Tests Updated Accordingly
2014-12-17 17:17:29 -06:00

49 lines
1.8 KiB
PHP

<?php
namespace PayPal\Validation;
use PayPal\Common\PayPalModel;
use PayPal\Core\PayPalConfigManager;
use PayPal\Core\PayPalLoggingManager;
/**
* Class ModelAccessorValidator
*
* @package PayPal\Validation
*/
class ModelAccessorValidator
{
/**
* Helper method for validating if the class contains accessor methods (getter and setter) for a given attribute
*
* @param PayPalModel $class An object of PayPalModel
* @param string $attributeName Attribute name
* @return bool
*/
public static function validate(PayPalModel $class, $attributeName)
{
$mode = PayPalConfigManager::getInstance()->get('validation.level');
if ($mode != 'disabled') {
//If the mode is disabled, bypass the validation
foreach (array('set' . $attributeName, 'get' . $attributeName) as $methodName) {
if (get_class($class) == get_class(new PayPalModel())) {
// Silently return false on cases where you are using PayPalModel instance directly
return false;
}
//Check if both getter and setter exists for given attribute
elseif (!method_exists($class, $methodName)) {
//Delegate the error based on the choice
$className = is_object($class) ? get_class($class) : (string)$class;
$errorMessage = "Missing Accessor: $className:$methodName. Please let us know by creating an issue at https://github.com/paypal/PayPal-PHP-SDK/issues";
PayPalLoggingManager::getInstance(__CLASS__)->warning($errorMessage);
if ($mode == 'strict') {
trigger_error($errorMessage, E_USER_NOTICE);
}
return false;
}
}
}
return true;
}
}