Page Menu
Home
WickedGov Phorge
Search
Configure Global Search
Log In
Files
F1431658
Var_.php
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Flag For Later
Award Token
Size
3 KB
Referenced Files
None
Subscribers
None
Var_.php
View Options
<?php
declare
(
strict_types
=
1
);
/**
* This file is part of phpDocumentor.
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*
* @link http://phpdoc.org
*/
namespace
phpDocumentor\Reflection\DocBlock\Tags
;
use
Doctrine\Deprecations\Deprecation
;
use
phpDocumentor\Reflection\DocBlock\Description
;
use
phpDocumentor\Reflection\DocBlock\DescriptionFactory
;
use
phpDocumentor\Reflection\Type
;
use
phpDocumentor\Reflection\TypeResolver
;
use
phpDocumentor\Reflection\Types\Context
as
TypeContext
;
use
phpDocumentor\Reflection\Utils
;
use
Webmozart\Assert\Assert
;
use
function
array_shift
;
use
function
array_unshift
;
use
function
implode
;
use
function
strpos
;
use
function
substr
;
use
const
PREG_SPLIT_DELIM_CAPTURE
;
/**
* Reflection class for a {@}var tag in a Docblock.
*/
final
class
Var_
extends
TagWithType
implements
Factory\StaticMethod
{
protected
?
string
$variableName
=
''
;
public
function
__construct
(?
string
$variableName
,
?
Type
$type
=
null
,
?
Description
$description
=
null
)
{
Assert
::
string
(
$variableName
);
$this
->
name
=
'var'
;
$this
->
variableName
=
$variableName
;
$this
->
type
=
$type
;
$this
->
description
=
$description
;
}
/**
* @deprecated Create using static factory is deprecated,
* this method should not be called directly by library consumers
*/
public
static
function
create
(
string
$body
,
?
TypeResolver
$typeResolver
=
null
,
?
DescriptionFactory
$descriptionFactory
=
null
,
?
TypeContext
$context
=
null
):
self
{
Deprecation
::
triggerIfCalledFromOutside
(
'phpdocumentor/reflection-docblock'
,
'https://github.com/phpDocumentor/ReflectionDocBlock/issues/361'
,
'Create using static factory is deprecated, this method should not be called directly
by library consumers'
,
);
Assert
::
stringNotEmpty
(
$body
);
Assert
::
notNull
(
$typeResolver
);
Assert
::
notNull
(
$descriptionFactory
);
[
$firstPart
,
$body
]
=
self
::
extractTypeFromBody
(
$body
);
$parts
=
Utils
::
pregSplit
(
'/(
\s
+)/Su'
,
$body
,
2
,
PREG_SPLIT_DELIM_CAPTURE
);
$type
=
null
;
$variableName
=
''
;
// if the first item that is encountered is not a variable; it is a type
if
(
$firstPart
&&
$firstPart
[
0
]
!==
'$'
)
{
$type
=
$typeResolver
->
resolve
(
$firstPart
,
$context
);
}
else
{
// first part is not a type; we should prepend it to the parts array for further processing
array_unshift
(
$parts
,
$firstPart
);
}
// if the next item starts with a $ it must be the variable name
if
(
isset
(
$parts
[
0
])
&&
strpos
(
$parts
[
0
],
'$'
)
===
0
)
{
$variableName
=
array_shift
(
$parts
);
if
(
$type
)
{
array_shift
(
$parts
);
}
Assert
::
notNull
(
$variableName
);
$variableName
=
substr
(
$variableName
,
1
);
}
$description
=
$descriptionFactory
->
create
(
implode
(
''
,
$parts
),
$context
);
return
new
static
(
$variableName
,
$type
,
$description
);
}
/**
* Returns the variable's name.
*/
public
function
getVariableName
():
?
string
{
return
$this
->
variableName
;
}
/**
* Returns a string representation for this tag.
*/
public
function
__toString
():
string
{
if
(
$this
->
description
!==
null
)
{
$description
=
$this
->
description
->
render
();
}
else
{
$description
=
''
;
}
if
(
$this
->
variableName
!==
null
&&
$this
->
variableName
!==
''
)
{
$variableName
=
'$'
.
$this
->
variableName
;
}
else
{
$variableName
=
''
;
}
$type
=
(
string
)
$this
->
type
;
return
$type
.
(
$variableName
!==
''
?
(
$type
!==
''
?
' '
:
''
)
.
$variableName
:
''
)
.
(
$description
!==
''
?
(
$type
!==
''
||
$variableName
!==
''
?
' '
:
''
)
.
$description
:
''
);
}
}
File Metadata
Details
Attached
Mime Type
text/x-php
Expires
Sat, May 16, 20:55 (1 d, 11 h)
Storage Engine
local-disk
Storage Format
Raw Data
Storage Handle
f1/01/bcc9e8e8134b50f1d684c13e67a7
Default Alt Text
Var_.php (3 KB)
Attached To
Mode
rMWPROD MediaWiki Production
Attached
Detach File
Event Timeline
Log In to Comment