Page Menu
Home
WickedGov Phorge
Search
Configure Global Search
Log In
Files
F1433108
FullyQualifiedClassName.php
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Flag For Later
Award Token
Size
2 KB
Referenced Files
None
Subscribers
None
FullyQualifiedClassName.php
View Options
<?php
declare
(
strict_types
=
1
);
namespace
Phan\Language\FQSEN
;
use
Phan\Language\Type
;
use
Phan\Language\UnionType
;
use
Phan\Memoize
;
use
function
preg_match
;
/**
* A Fully-Qualified Class Name
*/
class
FullyQualifiedClassName
extends
FullyQualifiedGlobalStructuralElement
{
use
Memoize
;
/**
* @return int
* The namespace map type such as \ast\flags\USE_NORMAL or \ast\flags\USE_FUNCTION
*/
protected
static
function
getNamespaceMapType
():
int
{
return
\ast\flags\USE_NORMAL
;
}
/**
* @return string
* The canonical representation of the name of the object. Functions
* and Methods, for instance, lowercase their names.
* TODO: Separate the function used to render names in phan errors
* from the ones used for generating array keys.
*/
public
static
function
canonicalName
(
string
$name
):
string
{
return
$name
;
}
/**
* @return FullyQualifiedClassName
* A fully qualified class name from the given type
*/
public
static
function
fromType
(
Type
$type
):
FullyQualifiedClassName
{
// @phan-suppress-next-line PhanThrowTypeAbsentForCall
return
self
::
fromFullyQualifiedString
(
$type
->
asFQSENString
()
);
}
public
const
VALID_CLASS_REGEX
=
'/^
\\\\
?[a-zA-Z_
\x
7f-
\x
ff][a-zA-Z0-9_
\x
7f-
\x
ff]*(
\\\\
[a-zA-Z_
\x
7f-
\x
ff][a-zA-Z0-9_
\x
7f-
\x
ff]*)*$/D'
;
/**
* Asserts that something is a valid class FQSEN in PHPDoc.
* Use this for FQSENs passed in from the analyzed code.
* @suppress PhanUnreferencedPublicMethod
*/
public
static
function
isValidClassFQSEN
(
string
$type
):
bool
{
return
preg_match
(
self
::
VALID_CLASS_REGEX
,
$type
)
>
0
;
}
/**
* @return Type
* The type of this class
*/
public
function
asType
():
Type
{
// @phan-suppress-next-line PhanThrowTypeAbsentForCall the creation of FullyQualifiedClassName checks for FQSENException.
return
Type
::
fromFullyQualifiedString
(
$this
->
__toString
()
);
}
/**
* @return UnionType
* The union type of just this class type, as a phpdoc union type
* @suppress PhanUnreferencedPublicMethod
*/
public
function
asPHPDocUnionType
():
UnionType
{
return
$this
->
asType
()->
asPHPDocUnionType
();
}
/**
* @return UnionType
* The union type of just this class type, as a real union type
*/
public
function
asRealUnionType
():
UnionType
{
return
$this
->
asType
()->
asRealUnionType
();
}
/**
* @return FullyQualifiedClassName
* The FQSEN for \stdClass.
*/
public
static
function
getStdClassFQSEN
():
FullyQualifiedClassName
{
return
self
::
memoizeStatic
(
__METHOD__
,
static
function
():
FullyQualifiedClassName
{
// @phan-suppress-next-line PhanThrowTypeAbsentForCall
return
self
::
fromFullyQualifiedString
(
"
\s
tdClass"
);
});
}
}
File Metadata
Details
Attached
Mime Type
text/x-php
Expires
Sat, May 16, 22:39 (2 h, 16 m)
Storage Engine
local-disk
Storage Format
Raw Data
Storage Handle
2f/8d/4a7d2a46edb889bc47537054e4dc
Default Alt Text
FullyQualifiedClassName.php (2 KB)
Attached To
Mode
rMWPROD MediaWiki Production
Attached
Detach File
Event Timeline
Log In to Comment