本文整理汇总了PHP中Phan\Language\UnionType::internalFunctionSignatureMap方法的典型用法代码示例。如果您正苦于以下问题:PHP UnionType::internalFunctionSignatureMap方法的具体用法?PHP UnionType::internalFunctionSignatureMap怎么用?PHP UnionType::internalFunctionSignatureMap使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Phan\Language\UnionType
的用法示例。
在下文中一共展示了UnionType::internalFunctionSignatureMap方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: addUndefinedFunctionSignatures
/**
* Add any functions from the FunctionSignatureMap that aren't
* defined in this version of PHP to the code base
*
* @return void
*/
private function addUndefinedFunctionSignatures()
{
$function_signature_map = UnionType::internalFunctionSignatureMap();
foreach ($function_signature_map as $function_name => $signature) {
$fqsen = FullyQualifiedFunctionName::make('\\', $function_name);
// If we already loaded the function, skip it
if ($this->hasMethod($fqsen)) {
continue;
}
// Add each method returned for the signature
foreach (Method::methodListFromSignature($this, $fqsen, $signature) as $method) {
$this->addMethod($method);
}
}
}
示例2: hasMethodWithScopeAndName
/**
* @param string $scope
* The scope of the method or function
*
* @param string $name
* The name of the method (with an optional alternate id)
*
* @return bool
*/
private function hasMethodWithScopeAndName(string $scope, string $name)
{
if (!empty($this->method_map[$scope][$name])) {
return true;
}
// For elements in the root namespace, check to see if
// there's a static method signature for something that
// hasn't been loaded into memory yet and create a
// method out of it as its requested
if ('\\' == $scope) {
$function_signature_map = UnionType::internalFunctionSignatureMap();
$fqsen = FullyQualifiedFunctionName::make($scope, $name);
if (!empty($function_signature_map[$name])) {
$signature = $function_signature_map[$name];
// Add each method returned for the signature
foreach (FunctionFactory::functionListFromSignature($this, $fqsen, $signature) as $method) {
$this->addMethod($method);
}
return true;
}
}
if (Database::isEnabled()) {
// Otherwise, check the database
try {
MethodModel::read(Database::get(), $scope . '|' . $name);
return true;
} catch (NotFoundException $exception) {
return false;
}
} else {
return false;
}
}
示例3: hasInternalFunctionWithFQSEN
/**
* @param FullyQualifiedFunctionName
* The FQSEN of a function we'd like to look up
*
* @return bool
* If the FQSEN represents an internal function that
* hasn't been loaded yet, true is returned.
*/
private function hasInternalFunctionWithFQSEN(FullyQualifiedFunctionName $fqsen) : bool
{
// Only root namespaced functions will be found in
// the internal function map.
if ($fqsen->getNamespace() != '\\') {
return false;
}
// For elements in the root namespace, check to see if
// there's a static method signature for something that
// hasn't been loaded into memory yet and create a
// method out of it as its requested
$function_signature_map = UnionType::internalFunctionSignatureMap();
if (!empty($function_signature_map[$fqsen->getNameWithAlternateId()])) {
$signature = $function_signature_map[$fqsen->getNameWithAlternateId()];
// Add each method returned for the signature
foreach (FunctionFactory::functionListFromSignature($this, $fqsen, $signature) as $i => $function) {
$this->addFunction($function);
}
return true;
}
return false;
}