$contents
$previous->getCode()
$previous->getCode()
$code
$code
$code
$code
is_string($version)
$stream
$header
$header
$value
$headerNames
$headers
$new->headers
$header
$header
$new->headerNames
$new->headers
$maxLength
$maxLength
$this->resource
PhpInputStream
$this->decoratedStream->getSize()
$headers
$method
$protocolVersion
$requestTarget
$uri
self::getValueFromKey($serializedRequest, 'body')
$headers
$method
$protocolVersion
$requestTarget
$uri
Request
$body
$headers
$method
$requestTarget
$version
$request->getHeaders()
Request
is_string($method)
RequestInterface
RequestInterface
RequestInterface
$requestTarget
$this->uri->getPort()
$uri->getPort()
$uri === null
! is_numeric($code)
gettype($code)
is_float($code)
is_string($reasonPhrase)
static::MAX_STATUS_CODE_VALUE
static::MIN_STATUS_CODE_VALUE
(int) $code
is_scalar($code)
$headers
$protocolVersion
$reasonPhrase
$statusCode
self::getValueFromKey($serializedResponse, 'body')
$headers
$protocolVersion
$reasonPhrase
$statusCode
new static(204, $headers)
is_string($html)
$carry
$item
$item
$hasContentType
json_encode
! is_string($uri) && ! $uri instanceof UriInterface
$body
$headers
$reasonPhrase
$status
$version
$response->getHeaders()
(int) $status
is_string($text)
is_string($xml)
! is_array($data) && ! is_object($data) && null !== $data
$attribute
$attribute
$headers['cookie']
is_callable(self::$apacheRequestHeaders)
$e
?int
bool
$stats['size']
$resource
$resource
$resource
$this->resource
$this->resource
$this->resource
$stream
is_resource($resource)
\GdImage
$file
! is_string($targetPath)
$this->file
$stream
$size
! is_numeric($port)
is_float($port)
is_object($port)
is_string($fragment)
is_string($host)
is_string($path)
is_string($query)
is_string($scheme)
is_string($user)
null !== $password && ! is_string($password)
$key
$key
$matches[0]
$port
$value
$this->port
(int) $port
gettype($port)
func_get_args()
$spec['error']
$spec['name'] ?? null
$spec['tmp_name']
$spec['type'] ?? null
func_get_args()
$headers[$name]
$headers[$name]
$value
func_get_args()
string
$server['REQUEST_METHOD'] ?? 'GET'
func_get_args()
$server['SERVER_PROTOCOL']
func_get_args()
$default
$host
$https
function ($host) {
function (string $name, array $headers, $default = null) {
$getHeaderFromArray('x-forwarded-proto', $headers, '')
$host
$host
$host
$host
$port
$requestUri
$server['QUERY_STRING']
$host
$iisUrlRewritten
$origPathInfo
$unencodedUrl
$value
array
string
$server['SERVER_ADDR']
$defaults
$origPathInfo
$unencodedUrl
strrpos($host, ':')
func_get_args()
$apacheRequestHeaders['Authorization']
$apacheRequestHeaders['authorization']
$apacheRequestHeaders
$server['HTTP_AUTHORIZATION']
$server['HTTP_AUTHORIZATION']
func_get_args()
$normalized
UploadedFileInterface[]
$normalized[$key]
$value
$value
array
$cookieHeader
func_get_args()
function () {
$callback
$expected
$callback
$ret
$ret
array
$assertion
$expected
$value
$value
$value
assertValues
getFilterValues
testAssertValidRaisesExceptionForInvalidValue
testFiltersValuesPerRfc7230
testValidatesValuesPerRfc7230
validateValues
$value
$value
$stream
$stream->getSize()
$value
$value
$value
$value
$value
$value
$version
[ $value ]
[ $value ]
[ $value ]
$message
$test
assertStreamContents
getFileContents
testCanReadStreamIteratively
testCastingToStringReturnsFullContentsRegardlesOfPriorReads
testGetContentsReturnCacheWhenReachedEof
testGetContentsReturnsRemainingContentsOfStream
testMultipleCastsToStringReturnSameContentsEvenIfReadsOccur
testStreamIsNeverWritable
$contents
$message
$content
$contents
assertSame
testCanReadContentFromNotSeekableResource
testClose
testDetach
testGetContents
testGetContentsRaisesExceptionWhenPointerIsBehindOffset
testGetMetadata
testGetSize
testIsReadable
testIsSeekable
testIsWritable
testRead
testReadRaisesExceptionWhenPointerIsBehindOffset
testRewind
testSeek
testTell
testToString
testWrite
testWriteRaisesExceptionWhenPointerIsBehindOffset
testDeserializeFromArray
testMissingBodyParamInSerializedRequestThrowsException
testSerializeToArray
function () use ($payload) {
$exceptionMessage
$expectations
$expectations
$line
$line
$line
$message
$requestTarget
$requestTarget
$text
$exceptionMessage
$message
$text
$payload[$i++]
$expect
$expect
$i
$method
$method
array
array
array
array
array
$i
$line
$line
$line
'UNLOCK' => ['UNLOCK']
['TOTALLY INVALID']
$body
$contains
$expected
$headers
$hostKey
$method
$method
$method
$request
$requestTarget
$uri
$value
customRequestMethods
headersWithInjectionVectors
hostHeaderKeys
invalidHeaderTypes
invalidMethod
invalidRequestBody
invalidRequestMethod
invalidRequestUri
requestsWithUri
testAllowsCustomRequestMethodsThatFollowSpec
testCanProvideARequestTarget
testConstructorCanAcceptAllMessageParts
testConstructorRaisesExceptionForHeadersWithCRLFVectors
testConstructorRaisesExceptionForInvalidBody
testConstructorRaisesExceptionForInvalidHeaders
testConstructorRaisesExceptionForInvalidMethod
testConstructorRaisesExceptionForInvalidStream
testConstructorRaisesExceptionForInvalidUri
testDefaultStreamIsWritable
testGetHeadersContainsHostHeaderIfUriWithHostIsDeleted
testGetHeadersContainsHostHeaderIfUriWithHostIsPresent
testGetHeadersContainsNoHostHeaderIfNoUriPresent
testGetHeadersContainsNoHostHeaderIfUriDoesNotContainHost
testGetHostHeaderLineReturnsEmptyStringIfNoUriPresent
testGetHostHeaderLineReturnsEmptyStringIfUriDoesNotContainHost
testGetHostHeaderLineReturnsUriHostWhenPresent
testGetHostHeaderReturnsEmptyArrayIfNoUriPresent
testGetHostHeaderReturnsEmptyArrayIfUriDoesNotContainHost
testGetHostHeaderReturnsUriHostWhenHostHeaderDeleted
testGetHostHeaderReturnsUriHostWhenPresent
testHostHeaderNotSetFromUriOnCreationIfHostHeaderSpecified
testHostHeaderSetFromUriOnCreationIfNoHostHeaderSpecified
testHostHeaderUpdatesToUriHostAndPortWhenPreserveHostDisabledAndNonStandardPort
testMethodIsGetByDefault
testMethodMutatorReturnsCloneWithChangedMethod
testNotPassingPreserveHostFlagWhenUpdatingUriWithoutHostDoesNotUpdateHostHeader
testPassingPreserveHostFlagWhenUpdatingUriDoesNotUpdateHostHeader
testRequestTargetCannotContainWhitespace
testRequestTargetDoesNotCacheBetweenInstances
testRequestTargetIsSlashWhenNoUriPresent
testRequestTargetIsSlashWhenUriHasNoPathOrQuery
testReturnsRequestTargetWhenUriIsPresent
testReturnsUnpopulatedUriByDefault
testSettingNewUriResetsRequestTarget
testWithInvalidMethod
testWithUriAndNoPreserveHostWillOverwriteHostHeaderRegardlessOfOriginalCase
testWithUriReturnsNewInstanceWithNewUri
validRequestTargets
$body
$contains
$headers
$hostKey
$hostKey
$method
$method
$method
$requestTarget
$uri
getRequestTarget
createResponse
createSerializedResponse
testDeserializeFromArray
testMissingBodyParamInSerializedRequestThrowsException
testSerializeToArray
$response
$response
$serializedRequest
$serializedResponse
$serializedRequest['body']
$response
$response
$serializedRequest
$serializedResponse
testConstructor
testHeaderConstructor
$body
invalidHtmlContent
testAllowsStreamsForResponseBody
testConstructorAcceptsHtmlString
testConstructorAllowsPassingHeaders
testConstructorAllowsPassingStatus
testConstructorRewindsBodyStream
testRaisesExceptionforNonStringNonStreamBodyContent
$body
$value
$value
scalarValuesForJSON
testCanProvideAlternateContentTypeViaHeadersPassedToConstructor
testCanProvideStatusCodeToConstructor
testConstructorAcceptsDataAndCreatesJsonEncodedMessageBody
testConstructorRewindsBodyStream
testEncodingOptionsGetter
testJsonErrorHandlingOfBadEmbeddedData
testJsonErrorHandlingOfResources
testModifyingThePayloadDoesntMutateResponseInstance
testPayloadGetter
testScalarValuePassedToConstructorJsonEncodesDirectly
testUsesSaneDefaultJsonEncodingFlags
testWithEncodingOptions
testWithPayload
valuesToJsonEncode
$uri
invalidUris
testConstructorAcceptsStringUriAndProduces302ResponseWithLocationHeader
testConstructorAcceptsUriInstanceAndProduces302ResponseWithLocationHeader
testConstructorAllowsSpecifyingAlternateStatusCode
testConstructorAllowsSpecifyingHeaders
testConstructorRaisesExceptionOnInvalidUri
$uri
$exceptionMessage
$message
$text
headersWithContinuationLines
messagesWithInvalidHeaders
testCanDeserializeBasicResponse
testCanDeserializeResponseWithHeaderContinuations
testCanDeserializeResponseWithMultipleHeadersOfSameName
testCanDeserializeResponseWithoutBody
testCanDeserializeResponseWithoutHeadersButContainingBody
testCanDeserializeResponseWithoutHeadersOrBody
testDeserializationRaisesExceptionForInvalidStatusLine
testDeserializationRaisesExceptionForMalformedHeaders
testDeserializeCorrectlyCastsStatusCodeToInteger
testFromStreamThrowsExceptionWhenStreamIsNotReadable
testFromStreamThrowsExceptionWhenStreamIsNotSeekable
testOmitsReasonPhraseFromStatusLineIfEmpty
testSerializesBasicResponse
testSerializesMultipleHeadersCorrectly
testSerializesResponseWithoutBodyCorrectly
$exceptionMessage
$message
$text
$body
invalidContent
testAllowsStreamsForResponseBody
testConstructorAcceptsBodyAsString
testConstructorAllowsPassingHeaders
testConstructorAllowsPassingStatus
testConstructorRewindsBodyStream
testRaisesExceptionforNonStringNonStreamBodyContent
$body
$body
invalidContent
testAllowsStreamsForResponseBody
testConstructorAcceptsBodyAsString
testConstructorAllowsPassingHeaders
testConstructorAllowsPassingStatus
testConstructorRewindsBodyStream
testRaisesExceptionforNonStringNonStreamBodyContent
$body
[ 'TOTALLY INVALID' ]
$body
$code
$code
$code
$contains
$headers
$invalidReasonPhrase
$reasonPhrase
$value
headersWithInjectionVectors
ianaCodesReasonPhrasesProvider
invalidHeaderTypes
invalidReasonPhrases
invalidResponseBody
invalidStatusCodes
testCanSetCustomReasonPhrase
testCannotSetInvalidStatusCode
testConstructorCanAcceptAllMessageParts
testConstructorRaisesExceptionForHeadersWithCRLFVectors
testConstructorRaisesExceptionForInvalidBody
testConstructorRaisesExceptionForInvalidHeaders
testConstructorRaisesExceptionForInvalidStream
testCreateWithValidStatusCodes
testReasonPhraseCanBeEmpty
testReasonPhraseDefaultsAgainstIana
testReasonPhraseDefaultsToStandards
testStatusCodeIs200ByDefault
testStatusCodeMutatorReturnsCloneWithChanges
testWithStatusRaisesAnExceptionForNonStringReasonPhrases
validStatusCodes
$body
$code
$code
$code
$contains
$headers
$invalidReasonPhrase
$responseCode
$response
assertIsInt
$value
$normalizedFiles['fooFiles']
$expected
$protocol
cookieHeaderValues
marshalProtocolVersionProvider
testCanCreateServerRequestViaFromGlobalsMethod
testCookieHeaderVariations
testCreateFromGlobalsShouldNotPreserveKeysWhenCreatedWithAnEmptyValue
testCreateFromGlobalsShouldPreserveKeysWhenCreatedWithAZeroValue
testFromGlobalsUsesCookieHeaderInsteadOfCookieSuperGlobal
testFromGlobalsUsesCookieSuperGlobalWhenCookieHeaderIsNotSet
testMarshalHostAndPortReturnsEmptyValuesIfNoHostHeaderAndNoServerName
testMarshalHostAndPortReturnsServerAddrForHostIfPresentAndHostIsIpv6Address
testMarshalHostAndPortReturnsServerNameForHostIfServerAddrPresentButHostIsNotIpv6Address
testMarshalHostAndPortReturnsServerNameForHostWhenPresent
testMarshalHostAndPortReturnsServerPortForPortWhenPresentWithServerName
testMarshalHostAndPortUsesHostHeaderWhenPresent
testMarshalHostAndPortWillDetectPortInHostHeaderWhenPresent
testMarshalHostAndPortWillDetectPortInIpv6StyleHost
testMarshalInvalidHeadersStrippedFromServerArray
testMarshalProtocolReturnsDefaultValueIfHeaderIsNotPresent
testMarshalProtocolVersionReturnsHttpVersions
testMarshalProtocolVersionRisesExceptionIfVersionIsNotRecognized
testMarshalRequestUriFallsBackToRoot
testMarshalRequestUriPrefersRequestUriServerParamWhenXOriginalUrlButNoXRewriteUrlPresent
testMarshalRequestUriStripsSchemeHostAndPortInformationWhenPresent
testMarshalRequestUriUsesIISUnencodedUrlValueIfPresentAndUrlWasRewritten
testMarshalRequestUriUsesOrigPathInfoIfPresent
testMarshalUriDetectsHttpsSchemeFromServerValue
testMarshalUriDetectsHttpsSchemeFromXForwardedProtoValue
testMarshalUriInjectsFragmentFromServer
testMarshalUriInjectsQueryStringFromServer
testMarshalUriStripsQueryStringFromRequestUri
testMarshalUriUsesHttpSchemeIfHttpsServerValueEqualsOff
testMarshalsExpectedHeadersFromServerArray
testMarshalsVariablesPrefixedByApacheFromServerArray
testNormalizeFilesReturnsOnlyActualFilesWhenOriginalFilesContainsNestedAssociativeArrays
testNormalizeServerReturnsArrayUnalteredIfApacheHeadersDoNotContainAuthorization
testNormalizeServerUsesLowerCaseAuthorizationHeaderFromApacheWhenPresent
testNormalizeServerUsesMixedCaseAuthorizationHeaderFromApacheWhenPresent
testReturnsServerValueUnchangedIfHttpAuthorizationHeaderIsPresent
testServerRequestFactoryHasAWritableEmptyBody
$data
$data
$param
array
iterable
$parsedBody
$methodReturned
$parameterMethod
$request
provideMethods
testAllowsRemovingAttributeWithNullValue
testAllowsRemovingNonExistentAttribute
testAttributeMutatorReturnsCloneWithChanges
testAttributesAreEmptyByDefault
testCookieParamsAreAnEmptyArrayAtInitialization
testCookiesAreEmptyByDefault
testCookiesMutatorReturnsCloneWithChanges
testNestedUploadedFiles
testParsedBodyIsEmptyByDefault
testParsedBodyIsNullAtInitialization
testParsedBodyMutatorReturnsCloneWithChanges
testQueryParamsAreAnEmptyArrayAtInitialization
testQueryParamsAreEmptyByDefault
testQueryParamsMutatorReturnsCloneWithChanges
testRemovingAttributeReturnsCloneWithoutAttribute
testServerParamsAreEmptyByDefault
testSingleAttributesWhenEmptyByDefault
testTryToAddInvalidUploadedFiles
testUploadedFilesAreEmptyByDefault
testUsesProvidedConstructorArguments
$parameterMethod
$new
getAttribute
withoutAttribute
setMethods
[' THIS WILL NOT WORK ']
$fileShouldExist
$fileShouldExist
$flag
$flag
$mode
$mode
$resource
$tmpnam
findNonExistentTempName
getResourceFor67
invalidResources
provideDataForIsReadable
provideDataForIsWritable
testAttachWithInvalidStringResourceRaisesException
testAttachWithNonStringNonResourceRaisesException
testAttachWithResourceAttachesResource
testAttachWithStringRepresentingResourceCreatesAndAttachesResource
testCanInstantiateWithGDResource
testCanInstantiateWithStreamIdentifier
testCanInstantiteWithStreamResource
testCanReadContentFromNotSeekableResource
testCloseClosesResource
testCloseDoesNothingAfterDetach
testCloseUnsetsResource
testDetachReturnsResource
testEofReportsFalseWhenNotAtEndOfStream
testEofReportsTrueWhenAtEndOfStream
testEofReportsTrueWhenStreamIsDetached
testGetContentsRisesExceptionIfStreamIsNotReadable
testGetContentsShouldGetFullStreamContents
testGetContentsShouldReturnStreamContentsFromCurrentPointer
testGetMetadataReturnsAllMetadataWhenNoKeyPresent
testGetMetadataReturnsDataForSpecifiedKey
testGetMetadataReturnsNullIfNoDataExistsForKey
testGetSizeReturnsStreamSize
testIsReadableReturnsCorrectFlagForMode
testIsReadableReturnsFalseIfStreamIsNotReadable
testIsReadableReturnsFalseWhenStreamIsDetached
testIsSeekableReturnsFalseForDetachedStreams
testIsSeekableReturnsTrueForReadableStreams
testIsWritableReturnsCorrectFlagForMode
testIsWritableReturnsFalseIfStreamIsNotWritable
testIsWritableReturnsFalseWhenStreamIsDetached
testIsWritableReturnsTrueForWritableMemoryStream
testPassingInvalidStreamResourceToConstructorRaisesException
testRaisesExceptionOnAttachForNonStreamResources
testRaisesExceptionOnConstructionForNonStreamResources
testReadRaisesExceptionWhenStreamIsDetached
testReadReturnsEmptyStringWhenAtEndOfFile
testRewindResetsToStartOfStream
testSeekAdvancesToGivenOffsetOfStream
testSeekRaisesExceptionWhenStreamIsDetached
testSizeReportsNullForPhpInputStreams
testSizeReportsNullWhenNoResourcePresent
testStringSerializationReturnsEmptyStringWhenStreamIsNotReadable
testTellRaisesExceptionIfResourceIsDetached
testTellReportsCurrentPositionInResource
testToStringRetrievesFullContentsOfStream
testWriteRaisesExceptionWhenStreamIsDetached
testWriteRaisesExceptionWhenStreamIsNotWritable
$mode
$mode
$resource
$resource
$resource
$this->tmpnam
$this->tmpnam
$this->tmpnam
$this->tmpnam
$resource
$resource
$test
push
reset
$stream
$stream
$stream
$stream
$stream
$path
$status
$status
$status
$status
$streamOrFile
$tmpFile
errorConstantsAndMessages
invalidErrorStatuses
invalidMovePaths
invalidStreams
nonOkErrorStatus
testCannotRetrieveStreamAfterMove
testConstructorDoesNotRaiseExceptionForInvalidStreamWhenErrorStatusPresent
testGetStreamRaisesExceptionWhenErrorStatusPresent
testGetStreamRaisesExceptionWithAppropriateMessageWhenUploadErrorDetected
testGetStreamReturnsOriginalStreamObject
testGetStreamReturnsStreamForFile
testGetStreamReturnsWrappedPhpStream
testMoveCannotBeCalledMoreThanOnce
testMoveRaisesExceptionForInvalidPath
testMoveToCreatesStreamIfOnlyAFilenameWasProvided
testMoveToRaisesExceptionWhenErrorStatusPresent
testMoveToRaisesExceptionWithAppropriateMessageWhenUploadErrorDetected
testMovesFileToDesignatedPath
testRaisesExceptionOnInvalidErrorStatus
testRaisesExceptionOnInvalidStreamOrFile
testValidClientFilename
testValidClientMediaType
testValidNullClientFilename
testValidSize
$path
$status
$status
$status
$status
$streamOrFile
$this->tmpfile
'3001'
1
$credential
$expected
$expected
$expected
$expected
$method
$method
$path
$port
$port
$port
$query
$query
$query
$result
$result
$scheme
$scheme
$scheme
$url
$url
$url
$user
$value
$value
authorityInfo
invalidPaths
invalidPorts
invalidQueryStrings
invalidSchemes
invalidStringComponentValues
mutations
queryStringsForEncoding
standardSchemePortCombinations
testAuthorityIsPrefixedByDoubleSlashIfPresent
testAuthorityOmitsPortForStandardSchemePortCombinations
testCanEmitOriginFormUrl
testCanSerializeToString
testConstructWithUnsupportedSchemeRaisesAnException
testConstructorRaisesExceptionForSeriouslyMalformedURI
testConstructorSetsAllProperties
testESchemeStripsOffDelimiter
testEmptyPathOnOriginFormRemainsAnEmptyPath
testEncodeFragmentPrefixIfPresent
testFragmentIsNotDoubleEncoded
testFragmentIsProperlyEncoded
testHostIsLowercase
testHostIsLowercaseWhenIsSetViwWithHost
testMutatingSchemeStripsOffDelimiter
testMutatingWithUnsupportedSchemeRaisesAnException
testMutationResetsUriStringPropertyInClone
testPassingInvalidValueToWithMethodRaisesException
testPathDoesNotBecomeDoubleEncoded
testPathIsNotPrefixedWithSlashIfSetWithoutOne
testPathIsProperlyEncoded
testPathNotSlashPrefixedIsEmittedWithSlashDelimiterWhenUriIsCastToString
testProperlyTrimsLeadingSlashesToPreventXSS
testQueryIsNotDoubleEncoded
testQueryIsProperlyEncoded
testReservedCharsInPathUnencoded
testRetrievingAuthorityReturnsExpectedValues
testSettingEmptyPathOnAbsoluteUriReturnsAnEmptyPath
testStringRepresentationOfAbsoluteUriWithNoPathSetsAnEmptyPath
testStringRepresentationOfOriginFormWithNoPathRetainsEmptyPath
testStripsQueryPrefixIfPresent
testUriDistinguishZeroFromEmptyString
testUriDoesNotAppendColonToHostIfPortIsEmpty
testUtf8Path
testUtf8Query
testUtf8Uri
testWithFragmentReturnsNewInstanceWithProvidedFragment
testWithFragmentReturnsSameInstanceWithProvidedFragmentSameAsBefore
testWithHostReturnsNewInstanceWithProvidedHost
testWithHostReturnsSameInstanceWithProvidedHostIsSameAsBefore
testWithPathRaisesExceptionForInvalidPaths
testWithPathReturnsNewInstanceWithProvidedPath
testWithPathReturnsSameInstanceWithProvidedPathSameAsBefore
testWithPortRaisesExceptionForInvalidPorts
testWithPortReturnsNewInstanceWithProvidedPort
testWithPortReturnsSameInstanceWithProvidedPortIsSameAsBefore
testWithQueryRaisesExceptionForInvalidQueryStrings
testWithQueryReturnsNewInstanceWithProvidedQuery
testWithSchemeReturnsNewInstanceWithNewScheme
testWithSchemeReturnsSameInstanceWithSameScheme
testWithUserInfoEncodesUsernameAndPassword
testWithUserInfoReturnsNewInstanceWithProvidedUser
testWithUserInfoReturnsNewInstanceWithProvidedUserAndPassword
testWithUserInfoReturnsSameInstanceIfUserAndPasswordAreSameAsBefore
testWithUserInfoThrowExceptionIfPasswordIsNotString
userInfoProvider
utf8PathsDataProvider
utf8QueryStringsDataProvider
validPorts
$credential
$expected
$path
$port
$port
$port
$query
$query
$scheme
$scheme
$test
$url
$url
$url
$user
$test
$port
$scheme
array
array
testCreatesUploadedFileFromFlatFileSpecification
testTraversesDenormalizedNestedTreeOfIndicesToExtractUploadedFiles
testTraversesNestedFileSpecificationContainingNumericIndicesToExtractUploadedFiles
testTraversesNestedFileSpecificationToExtractUploadedFile
$normalised['my-form']['details']['avatars']
$normalised['slide-shows'][0]['slides']
$normalised['my-form']['details']['avatar']
$normalised['my-form']['details']['avatars']
$normalised['my-form']['details']['avatars']
$normalised['my-form']['details']['avatars']
$normalised['my-form']['details']['avatars']
$normalised['slide-shows'][0]['slides']
$normalised['slide-shows'][0]['slides']
$normalised['slide-shows'][0]['slides']
getClientFilename
getClientFilename
getClientFilename
getClientFilename
getClientFilename
getClientFilename
$normalised['my-form']
$normalised['my-form']
$normalised['my-form']
$normalised['my-form']
$normalised['my-form']
$normalised['slide-shows']
$normalised['slide-shows']
$normalised['slide-shows']