本文整理匯總了PHP中Symfony\Component\Validator\Constraint::getStorageApi方法的典型用法代碼示例。如果您正苦於以下問題:PHP Constraint::getStorageApi方法的具體用法?PHP Constraint::getStorageApi怎麽用?PHP Constraint::getStorageApi使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類Symfony\Component\Validator\Constraint
的用法示例。
在下文中一共展示了Constraint::getStorageApi方法的2個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的PHP代碼示例。
示例1: validate
public function validate($value, Constraint $constraint)
{
if (!$constraint instanceof OrchestrationTableEntity) {
throw new \InvalidArgumentException('Given constraint must ne instance of OrchestrationTableEntity class');
}
if ($value) {
// table exists
try {
/** @var StorageApi $storageApi */
$storageApi = $constraint->getStorageApi();
if (!$storageApi->tableExists($value)) {
throw new \Exception('Configuration table does not exists');
}
} catch (\Exception $e) {
$this->context->addViolation($constraint->message, array('%string%' => $value));
return;
}
// table structure
try {
/** @var StorageApi $storageApi */
$storageApi = $constraint->getStorageApi();
$table = $storageApi->getTable($value);
$token = new Token($storageApi);
$requiredColumns = self::getRequiredColumns();
$missingColumns = array_diff($requiredColumns, $table['columns']);
if (!empty($missingColumns)) {
throw new \Exception('Invalid configuration table structure');
}
} catch (\Exception $e) {
$this->context->addViolation($constraint->structureMessage, array('%string%' => implode(', ', $requiredColumns)));
return;
}
}
}
示例2: validate
public function validate($value, Constraint $constraint)
{
if (!$constraint instanceof TokenEntity) {
throw new \InvalidArgumentException('Given constraint must ne instance of TokenEntity class');
}
if ($value) {
$configValidation = false;
try {
/** @var StorageApi $storageApi */
$storageApi = $constraint->getStorageApi();
$token = $storageApi->getToken($value);
if (!$token) {
throw new \Exception('Token does not exists');
}
$userToken = new Token($storageApi);
$configValidation = true;
$components = new Components(new StorageApi(array('token' => $token['token'], 'url' => $storageApi->getApiUrl(), 'userAgent' => $storageApi->getUserAgent())));
$components->listComponents(new ListConfigurationsOptions());
} catch (\Exception $e) {
if ($e instanceof \Keboola\StorageApi\ClientException && $e->getCode() === 403) {
//@FIXME jak zmenit api exception code
if ($configValidation) {
$this->context->addViolation($constraint->configMessage, array('%string%' => $value), null, null, 'TOKEN_PERMISSION');
} else {
$this->context->addViolation($constraint->permissionsMessage, array(), null, null, 'TOKEN_PERMISSION');
}
} else {
$this->context->addViolation($constraint->message, array('%string%' => $value));
}
return;
}
//@FIXME doplnit validaci na master token!!!
}
}