Overview

Namespaces

  • PHPixie
    • Auth
      • Context
        • Container
      • Domains
      • Providers
        • Builder
        • Provider
      • Repositories
        • Registry
        • Repository
    • AuthHTTP
      • Providers
    • AuthLogin
      • Providers
      • Repository
    • AuthORM
      • Repositories
        • Repository
        • Type
          • Login
    • AuthProcessors
      • Processor
    • BundleFramework
      • Configuration
        • FilesystemLocator
        • ORM
    • Bundles
      • Bundle
        • Provides
      • FilesystemLocators
      • Processors
    • Config
      • Formats
        • Format
      • Storages
        • Storage
          • Editable
        • Type
    • Database
      • Conditions
        • Builder
          • Container
          • Operators
        • Condition
          • Collection
          • Field
        • Logic
      • Connection
      • Driver
        • Mongo
          • Conditions
            • Builder
          • Parser
            • Conditions
          • Query
            • Type
        • PDO
          • Adapter
            • Mysql
              • Parser
            • Pgsql
              • Parser
            • Sqlite
              • Parser
          • Conditions
            • Builder
          • Query
            • Type
      • Exception
      • Parser
      • Query
        • Implementation
        • Type
          • Update
      • Type
        • Document
          • Conditions
            • Builder
            • Condition
              • Collection
                • Embedded
                  • Group
                  • Placeholder
          • Query
            • Implementation
        • SQL
          • Conditions
            • Builder
          • Parser
          • Query
            • Implementation
            • Type
      • Values
    • Debug
      • Logger
      • Tracer
        • Trace
    • DefaultBundle
      • Processor
        • HTTP
    • Filesystem
      • Locators
        • Locator
    • Framework
      • Extensions
        • Template
          • Extension
      • Processors
        • HTTP
          • Response
    • HTTP
      • Context
        • Container
        • Cookies
        • Session
      • Data
        • Headers
      • Messages
        • Message
          • Request
            • ServerRequest
        • Stream
        • UploadedFile
        • URI
      • Responses
    • HTTPProcessors
      • Parsers
        • Parser
      • Processor
        • Actions
        • Dispatcher
          • Builder
          • Registry
    • ORM
      • Conditions
        • Builder
        • Condition
          • Collection
            • RelatedTo
          • Field
          • In
      • Configs
      • Data
        • Diff
        • Type
        • Types
          • Document
            • Node
              • ArrayNode
      • Drivers
        • Driver
          • Mongo
          • PDO
          • SQL
      • Exception
      • Loaders
        • Loader
          • Embedded
          • Proxy
          • Repository
      • Mappers
        • Cascade
          • Mapper
        • Conditions
        • Preload
      • Maps
        • Map
          • Cascade
          • Property
      • Models
        • Model
          • Implementation
        • Type
          • Database
            • Implementation
          • Embedded
            • Implementation
      • Planners
        • Planner
          • In
            • Strategy
          • Pivot
            • Strategy
          • Query
            • Strategy
      • Plans
        • Plan
          • Query
      • Relationships
        • Relationship
          • Handler
            • Cascading
            • Mapping
          • Implementation
            • Preloader
              • Result
                • Multiple
            • Property
            • Side
          • Property
            • Entity
          • Side
            • Cascade
            • Property
          • Type
        • Type
          • Embeds
            • Preload
            • Property
            • Side
            • Type
              • Many
                • Preload
                • Property
                  • Entity
                • Side
              • One
                • Preload
                • Property
                  • Entity
                • Side
          • ManyToMany
            • Property
            • Side
          • OneTo
            • Preloader
            • Property
              • Entity
              • Query
            • Side
            • Type
              • Many
                • Preloader
                  • Property
                • Property
                  • Entity
                  • Query
                • Side
                • Value
                  • Preload
              • One
                • Preloader
                • Property
                • Side
      • Steps
        • Result
        • Step
          • Pivot
          • Query
            • Insert
              • Batch
                • Data
            • Result
          • Update
      • Values
        • Preload
          • Property
        • Update
      • Wrappers
        • Model
        • Type
          • Database
          • Embedded
    • Paginate
      • Loader
    • PaginateORM
      • Loader
    • Processors
      • Processor
        • Dispatcher
    • Route
      • Exception
      • Matcher
      • Resolvers
        • Resolver
          • Pattern
      • Translator
    • Security
      • Tokens
        • Storage
          • Database
    • Slice
      • Data
        • Slice
      • Type
        • ArrayData
        • Slice
    • Template
      • Extensions
        • Extension
      • Formats
      • Renderer
    • Test
  • Project
    • App
      • HTTPProcessors
    • Framework
  • Psr
    • Http
      • Message

Classes

  • PHPixie\Auth
  • PHPixie\Auth\Builder
  • PHPixie\Auth\Context
  • PHPixie\Auth\Context\Container\Implementation
  • PHPixie\Auth\Domains
  • PHPixie\Auth\Domains\Domain
  • PHPixie\Auth\Providers
  • PHPixie\Auth\Providers\Builder\Implementation
  • PHPixie\Auth\Providers\Provider\Implementation
  • PHPixie\Auth\Repositories
  • PHPixie\Auth\Repositories\Registry\Builder
  • PHPixie\AuthHTTP
  • PHPixie\AuthHTTP\Builder
  • PHPixie\AuthHTTP\Providers
  • PHPixie\AuthHTTP\Providers\Cookie
  • PHPixie\AuthHTTP\Providers\Session
  • PHPixie\AuthLogin
  • PHPixie\AuthLogin\Builder
  • PHPixie\AuthLogin\Providers
  • PHPixie\AuthLogin\Providers\Password
  • PHPixie\AuthORM\Repositories\Repository
  • PHPixie\AuthORM\Repositories\Repository\User
  • PHPixie\AuthORM\Repositories\Type\Login
  • PHPixie\AuthORM\Repositories\Type\Login\User
  • PHPixie\AuthProcessors
  • PHPixie\AuthProcessors\Builder
  • PHPixie\AuthProcessors\Processor\UpdateContext
  • PHPixie\BundleFramework
  • PHPixie\BundleFramework\Assets
  • PHPixie\BundleFramework\Builder
  • PHPixie\BundleFramework\Bundles
  • PHPixie\BundleFramework\Components
  • PHPixie\BundleFramework\Configuration
  • PHPixie\BundleFramework\Configuration\FilesystemLocator
  • PHPixie\BundleFramework\Configuration\FilesystemLocator\Template
  • PHPixie\BundleFramework\Configuration\ORM
  • PHPixie\BundleFramework\Configuration\ORM\Wrappers
  • PHPixie\Bundles
  • PHPixie\Bundles\Auth
  • PHPixie\Bundles\Builder
  • PHPixie\Bundles\FilesystemLocators
  • PHPixie\Bundles\FilesystemLocators\Template
  • PHPixie\Bundles\ORM
  • PHPixie\Bundles\Processors
  • PHPixie\Bundles\Processors\HTTP
  • PHPixie\Bundles\RouteResolvers
  • PHPixie\Config
  • PHPixie\Config\Builder
  • PHPixie\Config\Formats
  • PHPixie\Config\Formats\Format\JSON
  • PHPixie\Config\Formats\Format\PHP
  • PHPixie\Config\Storages
  • PHPixie\Config\Storages\Type\Directory
  • PHPixie\Config\Storages\Type\File
  • PHPixie\Database
  • PHPixie\Database\Conditions
  • PHPixie\Database\Conditions\Builder\Container
  • PHPixie\Database\Conditions\Builder\Container\Conditions
  • PHPixie\Database\Conditions\Condition\Collection\Group
  • PHPixie\Database\Conditions\Condition\Collection\Placeholder
  • PHPixie\Database\Conditions\Condition\Field\Implementation
  • PHPixie\Database\Conditions\Condition\Field\Operator
  • PHPixie\Database\Conditions\Condition\Implementation
  • PHPixie\Database\Conditions\Logic\Parser
  • PHPixie\Database\Connection
  • PHPixie\Database\Connection\Transactable
  • PHPixie\Database\Driver
  • PHPixie\Database\Driver\Mongo
  • PHPixie\Database\Driver\Mongo\Conditions
  • PHPixie\Database\Driver\Mongo\Conditions\Builder\Container
  • PHPixie\Database\Driver\Mongo\Connection
  • PHPixie\Database\Driver\Mongo\Parser
  • PHPixie\Database\Driver\Mongo\Parser\Conditions
  • PHPixie\Database\Driver\Mongo\Parser\Conditions\ExpandedGroup
  • PHPixie\Database\Driver\Mongo\Parser\Operator
  • PHPixie\Database\Driver\Mongo\Query
  • PHPixie\Database\Driver\Mongo\Query\Builder
  • PHPixie\Database\Driver\Mongo\Query\Item
  • PHPixie\Database\Driver\Mongo\Query\Items
  • PHPixie\Database\Driver\Mongo\Query\Runner
  • PHPixie\Database\Driver\Mongo\Query\Type\Count
  • PHPixie\Database\Driver\Mongo\Query\Type\Delete
  • PHPixie\Database\Driver\Mongo\Query\Type\Insert
  • PHPixie\Database\Driver\Mongo\Query\Type\Select
  • PHPixie\Database\Driver\Mongo\Query\Type\SelectSingle
  • PHPixie\Database\Driver\Mongo\Query\Type\Update
  • PHPixie\Database\Driver\Mongo\Result
  • PHPixie\Database\Driver\PDO
  • PHPixie\Database\Driver\PDO\Adapter
  • PHPixie\Database\Driver\PDO\Adapter\Mysql
  • PHPixie\Database\Driver\PDO\Adapter\Mysql\Parser
  • PHPixie\Database\Driver\PDO\Adapter\Mysql\Parser\Conditions
  • PHPixie\Database\Driver\PDO\Adapter\Mysql\Parser\Fragment
  • PHPixie\Database\Driver\PDO\Adapter\Mysql\Parser\Operator
  • PHPixie\Database\Driver\PDO\Adapter\Pgsql
  • PHPixie\Database\Driver\PDO\Adapter\Pgsql\Parser
  • PHPixie\Database\Driver\PDO\Adapter\Pgsql\Parser\Conditions
  • PHPixie\Database\Driver\PDO\Adapter\Pgsql\Parser\Fragment
  • PHPixie\Database\Driver\PDO\Adapter\Pgsql\Parser\Operator
  • PHPixie\Database\Driver\PDO\Adapter\Sqlite
  • PHPixie\Database\Driver\PDO\Adapter\Sqlite\Parser
  • PHPixie\Database\Driver\PDO\Adapter\Sqlite\Parser\Conditions
  • PHPixie\Database\Driver\PDO\Adapter\Sqlite\Parser\Fragment
  • PHPixie\Database\Driver\PDO\Adapter\Sqlite\Parser\Operator
  • PHPixie\Database\Driver\PDO\Conditions
  • PHPixie\Database\Driver\PDO\Conditions\Builder\Container
  • PHPixie\Database\Driver\PDO\Connection
  • PHPixie\Database\Driver\PDO\Query
  • PHPixie\Database\Driver\PDO\Query\Builder
  • PHPixie\Database\Driver\PDO\Query\Items
  • PHPixie\Database\Driver\PDO\Query\Type\Count
  • PHPixie\Database\Driver\PDO\Query\Type\Delete
  • PHPixie\Database\Driver\PDO\Query\Type\Insert
  • PHPixie\Database\Driver\PDO\Query\Type\Select
  • PHPixie\Database\Driver\PDO\Query\Type\Update
  • PHPixie\Database\Driver\PDO\Result
  • PHPixie\Database\Parser
  • PHPixie\Database\Parser\Operator
  • PHPixie\Database\Query\Implementation
  • PHPixie\Database\Query\Implementation\Builder
  • PHPixie\Database\Result
  • PHPixie\Database\Type\Document\Conditions
  • PHPixie\Database\Type\Document\Conditions\Builder\Container
  • PHPixie\Database\Type\Document\Conditions\Condition\Collection\Embedded\Group
  • PHPixie\Database\Type\Document\Conditions\Condition\Collection\Embedded\Group\SubarrayItem
  • PHPixie\Database\Type\Document\Conditions\Condition\Collection\Embedded\Group\Subdocument
  • PHPixie\Database\Type\Document\Conditions\Condition\Collection\Embedded\Placeholder
  • PHPixie\Database\Type\Document\Conditions\Condition\Collection\Embedded\Placeholder\SubarrayItem
  • PHPixie\Database\Type\Document\Conditions\Condition\Collection\Embedded\Placeholder\Subdocument
  • PHPixie\Database\Type\Document\Conditions\Condition\Collection\Placeholder
  • PHPixie\Database\Type\Document\Query\Implementation\Builder
  • PHPixie\Database\Type\SQL
  • PHPixie\Database\Type\SQL\Conditions
  • PHPixie\Database\Type\SQL\Conditions\Builder\Container
  • PHPixie\Database\Type\SQL\Connection
  • PHPixie\Database\Type\SQL\Driver
  • PHPixie\Database\Type\SQL\Expression
  • PHPixie\Database\Type\SQL\Parser
  • PHPixie\Database\Type\SQL\Parser\Conditions
  • PHPixie\Database\Type\SQL\Parser\Fragment
  • PHPixie\Database\Type\SQL\Parser\Operator
  • PHPixie\Database\Type\SQL\Query\Implementation
  • PHPixie\Database\Type\SQL\Query\Implementation\Builder
  • PHPixie\Database\Values
  • PHPixie\Database\Values\OrderBy
  • PHPixie\Debug
  • PHPixie\Debug\Builder
  • PHPixie\Debug\Dumper
  • PHPixie\Debug\Handlers
  • PHPixie\Debug\Logger
  • PHPixie\Debug\Logger\Item
  • PHPixie\Debug\Messages
  • PHPixie\Debug\Tracer
  • PHPixie\Debug\Tracer\Trace
  • PHPixie\Debug\Tracer\Trace\Element
  • PHPixie\DefaultBundle
  • PHPixie\DefaultBundle\Builder
  • PHPixie\DefaultBundle\Processor\HTTP\Actions
  • PHPixie\DefaultBundle\Processor\HTTP\Builder
  • PHPixie\Filesystem
  • PHPixie\Filesystem\Builder
  • PHPixie\Filesystem\Locators
  • PHPixie\Filesystem\Locators\Builder
  • PHPixie\Filesystem\Locators\Locator\Directory
  • PHPixie\Filesystem\Locators\Locator\Group
  • PHPixie\Filesystem\Locators\Locator\Mount
  • PHPixie\Filesystem\Locators\Locator\Prefix
  • PHPixie\Filesystem\Root
  • PHPixie\Framework
  • PHPixie\Framework\Assets
  • PHPixie\Framework\Builder
  • PHPixie\Framework\Components
  • PHPixie\Framework\Context
  • PHPixie\Framework\Extensions
  • PHPixie\Framework\Extensions\Template\Extension\Debug
  • PHPixie\Framework\Extensions\Template\Extension\RouteTranslator
  • PHPixie\Framework\HTTP
  • PHPixie\Framework\Processors
  • PHPixie\Framework\Processors\HTTP\ParseRoute
  • PHPixie\Framework\Processors\HTTP\Response\Exception
  • PHPixie\Framework\Processors\HTTP\Response\Normalize
  • PHPixie\Framework\Processors\HTTP\Response\NotFound
  • PHPixie\HTTP
  • PHPixie\HTTP\Builder
  • PHPixie\HTTP\Context
  • PHPixie\HTTP\Context\Container\Implementation
  • PHPixie\HTTP\Context\Cookies
  • PHPixie\HTTP\Context\Cookies\Update
  • PHPixie\HTTP\Context\Session\SAPI
  • PHPixie\HTTP\Data\Headers
  • PHPixie\HTTP\Data\Headers\Editable
  • PHPixie\HTTP\Data\Server
  • PHPixie\HTTP\Messages
  • PHPixie\HTTP\Messages\Message
  • PHPixie\HTTP\Messages\Message\Implementation
  • PHPixie\HTTP\Messages\Message\Request
  • PHPixie\HTTP\Messages\Message\Request\Implementation
  • PHPixie\HTTP\Messages\Message\Request\ServerRequest
  • PHPixie\HTTP\Messages\Message\Request\ServerRequest\Implementation
  • PHPixie\HTTP\Messages\Message\Request\ServerRequest\SAPI
  • PHPixie\HTTP\Messages\Message\Response
  • PHPixie\HTTP\Messages\Stream\Implementation
  • PHPixie\HTTP\Messages\Stream\StringStream
  • PHPixie\HTTP\Messages\UploadedFile
  • PHPixie\HTTP\Messages\UploadedFile\Implementation
  • PHPixie\HTTP\Messages\UploadedFile\SAPI
  • PHPixie\HTTP\Messages\URI
  • PHPixie\HTTP\Messages\URI\Implementation
  • PHPixie\HTTP\Messages\URI\SAPI
  • PHPixie\HTTP\Output
  • PHPixie\HTTP\Request
  • PHPixie\HTTP\Responses
  • PHPixie\HTTP\Responses\Response
  • PHPixie\HTTPProcessors
  • PHPixie\HTTPProcessors\Builder
  • PHPixie\HTTPProcessors\Parsers
  • PHPixie\HTTPProcessors\Parsers\Parser\JSON
  • PHPixie\HTTPProcessors\Processor\Actions\Attribute
  • PHPixie\HTTPProcessors\Processor\BuildRequest
  • PHPixie\HTTPProcessors\Processor\Dispatcher\Builder\Attribute
  • PHPixie\HTTPProcessors\Processor\Dispatcher\Registry\Attribute
  • PHPixie\HTTPProcessors\Processor\ParseBody
  • PHPixie\HTTPProcessors\Processor\UpdateContext
  • PHPixie\ORM
  • PHPixie\ORM\Builder
  • PHPixie\ORM\Conditions
  • PHPixie\ORM\Conditions\Builder\Container
  • PHPixie\ORM\Conditions\Builder\Proxy
  • PHPixie\ORM\Conditions\Condition\Collection\Group
  • PHPixie\ORM\Conditions\Condition\Collection\Placeholder
  • PHPixie\ORM\Conditions\Condition\Collection\RelatedTo\Group
  • PHPixie\ORM\Conditions\Condition\Field\Operator
  • PHPixie\ORM\Conditions\Condition\Field\Subquery
  • PHPixie\ORM\Conditions\Condition\Implementation
  • PHPixie\ORM\Conditions\Condition\In
  • PHPixie\ORM\Configs
  • PHPixie\ORM\Configs\Config
  • PHPixie\ORM\Configs\Inflector
  • PHPixie\ORM\Data
  • PHPixie\ORM\Data\Diff
  • PHPixie\ORM\Data\Diff\Removing
  • PHPixie\ORM\Data\Type\Implementation
  • PHPixie\ORM\Data\Types\Document
  • PHPixie\ORM\Data\Types\Document\Builder
  • PHPixie\ORM\Data\Types\Document\Diffable
  • PHPixie\ORM\Data\Types\Document\Node
  • PHPixie\ORM\Data\Types\Document\Node\ArrayNode
  • PHPixie\ORM\Data\Types\Document\Node\ArrayNode\Iterator
  • PHPixie\ORM\Data\Types\Document\Node\Document
  • PHPixie\ORM\Data\Types\Map
  • PHPixie\ORM\Database
  • PHPixie\ORM\Drivers
  • PHPixie\ORM\Drivers\Driver
  • PHPixie\ORM\Drivers\Driver\Mongo
  • PHPixie\ORM\Drivers\Driver\Mongo\Config
  • PHPixie\ORM\Drivers\Driver\Mongo\Entity
  • PHPixie\ORM\Drivers\Driver\Mongo\Query
  • PHPixie\ORM\Drivers\Driver\Mongo\Repository
  • PHPixie\ORM\Drivers\Driver\PDO
  • PHPixie\ORM\Drivers\Driver\PDO\Config
  • PHPixie\ORM\Drivers\Driver\PDO\Entity
  • PHPixie\ORM\Drivers\Driver\PDO\Query
  • PHPixie\ORM\Drivers\Driver\PDO\Repository
  • PHPixie\ORM\Drivers\Driver\SQL\Config
  • PHPixie\ORM\Drivers\Driver\SQL\Entity
  • PHPixie\ORM\Drivers\Driver\SQL\Query
  • PHPixie\ORM\Drivers\Driver\SQL\Repository
  • PHPixie\ORM\Loaders
  • PHPixie\ORM\Loaders\Iterator
  • PHPixie\ORM\Loaders\Loader
  • PHPixie\ORM\Loaders\Loader\Embedded
  • PHPixie\ORM\Loaders\Loader\Embedded\ArrayNode
  • PHPixie\ORM\Loaders\Loader\MultiplePreloader
  • PHPixie\ORM\Loaders\Loader\Proxy
  • PHPixie\ORM\Loaders\Loader\Proxy\Caching
  • PHPixie\ORM\Loaders\Loader\Proxy\Editable
  • PHPixie\ORM\Loaders\Loader\Proxy\Preloading
  • PHPixie\ORM\Loaders\Loader\Repository
  • PHPixie\ORM\Loaders\Loader\Repository\DataIterator
  • PHPixie\ORM\Loaders\Loader\Repository\ReusableResult
  • PHPixie\ORM\Mappers
  • PHPixie\ORM\Mappers\Cascade\Mapper
  • PHPixie\ORM\Mappers\Cascade\Mapper\Delete
  • PHPixie\ORM\Mappers\Cascade\Path
  • PHPixie\ORM\Mappers\Conditions
  • PHPixie\ORM\Mappers\Conditions\Normalizer
  • PHPixie\ORM\Mappers\Conditions\Optimizer
  • PHPixie\ORM\Mappers\Preload
  • PHPixie\ORM\Mappers\Query
  • PHPixie\ORM\Mappers\Update
  • PHPixie\ORM\Maps
  • PHPixie\ORM\Maps\Map
  • PHPixie\ORM\Maps\Map\Cascade
  • PHPixie\ORM\Maps\Map\Cascade\Delete
  • PHPixie\ORM\Maps\Map\Preload
  • PHPixie\ORM\Maps\Map\Property
  • PHPixie\ORM\Maps\Map\Property\Entity
  • PHPixie\ORM\Maps\Map\Property\Query
  • PHPixie\ORM\Maps\Map\Relationship
  • PHPixie\ORM\Models
  • PHPixie\ORM\Models\Model
  • PHPixie\ORM\Models\Model\Config
  • PHPixie\ORM\Models\Model\Implementation\Entity
  • PHPixie\ORM\Models\Type\Database
  • PHPixie\ORM\Models\Type\Database\Config
  • PHPixie\ORM\Models\Type\Database\Implementation\Entity
  • PHPixie\ORM\Models\Type\Database\Implementation\Query
  • PHPixie\ORM\Models\Type\Database\Implementation\Repository
  • PHPixie\ORM\Models\Type\Embedded
  • PHPixie\ORM\Models\Type\Embedded\Config
  • PHPixie\ORM\Models\Type\Embedded\Implementation\Entity
  • PHPixie\ORM\Planners
  • PHPixie\ORM\Planners\Planner
  • PHPixie\ORM\Planners\Planner\Document
  • PHPixie\ORM\Planners\Planner\In
  • PHPixie\ORM\Planners\Planner\In\Strategy
  • PHPixie\ORM\Planners\Planner\In\Strategy\Multiquery
  • PHPixie\ORM\Planners\Planner\In\Strategy\Subquery
  • PHPixie\ORM\Planners\Planner\Pivot
  • PHPixie\ORM\Planners\Planner\Pivot\Pivot
  • PHPixie\ORM\Planners\Planner\Pivot\Side
  • PHPixie\ORM\Planners\Planner\Pivot\Strategy
  • PHPixie\ORM\Planners\Planner\Pivot\Strategy\Multiquery
  • PHPixie\ORM\Planners\Planner\Pivot\Strategy\SQL
  • PHPixie\ORM\Planners\Planner\Query
  • PHPixie\ORM\Planners\Planner\Query\Strategy
  • PHPixie\ORM\Planners\Planner\Query\Strategy\Mongo
  • PHPixie\ORM\Planners\Planner\Query\Strategy\SQL
  • PHPixie\ORM\Planners\Planner\Update
  • PHPixie\ORM\Plans
  • PHPixie\ORM\Plans\Plan
  • PHPixie\ORM\Plans\Plan\Query
  • PHPixie\ORM\Plans\Plan\Query\Count
  • PHPixie\ORM\Plans\Plan\Query\Loader
  • PHPixie\ORM\Plans\Plan\Steps
  • PHPixie\ORM\Plans\Transaction
  • PHPixie\ORM\Relationships
  • PHPixie\ORM\Relationships\Relationship\Implementation
  • PHPixie\ORM\Relationships\Relationship\Implementation\Handler
  • PHPixie\ORM\Relationships\Relationship\Implementation\Preloader
  • PHPixie\ORM\Relationships\Relationship\Implementation\Preloader\Result
  • PHPixie\ORM\Relationships\Relationship\Implementation\Preloader\Result\Multiple
  • PHPixie\ORM\Relationships\Relationship\Implementation\Preloader\Result\Multiple\IdMap
  • PHPixie\ORM\Relationships\Relationship\Implementation\Preloader\Result\Single
  • PHPixie\ORM\Relationships\Relationship\Implementation\Property
  • PHPixie\ORM\Relationships\Relationship\Implementation\Property\Entity
  • PHPixie\ORM\Relationships\Relationship\Implementation\Property\Query
  • PHPixie\ORM\Relationships\Relationship\Implementation\Side
  • PHPixie\ORM\Relationships\Relationship\Implementation\Side\Config
  • PHPixie\ORM\Relationships\Type\Embeds
  • PHPixie\ORM\Relationships\Type\Embeds\Handler
  • PHPixie\ORM\Relationships\Type\Embeds\Preload\Result
  • PHPixie\ORM\Relationships\Type\Embeds\Preloader
  • PHPixie\ORM\Relationships\Type\Embeds\Property\Entity
  • PHPixie\ORM\Relationships\Type\Embeds\Side
  • PHPixie\ORM\Relationships\Type\Embeds\Side\Config
  • PHPixie\ORM\Relationships\Type\Embeds\Type\Many
  • PHPixie\ORM\Relationships\Type\Embeds\Type\Many\Handler
  • PHPixie\ORM\Relationships\Type\Embeds\Type\MAny\Preload\Result
  • PHPixie\ORM\Relationships\Type\Embeds\Type\Many\Preloader
  • PHPixie\ORM\Relationships\Type\Embeds\Type\Many\Property\Entity\Items
  • PHPixie\ORM\Relationships\Type\Embeds\Type\Many\Side
  • PHPixie\ORM\Relationships\Type\Embeds\Type\Many\Side\Config
  • PHPixie\ORM\Relationships\Type\Embeds\Type\One
  • PHPixie\ORM\Relationships\Type\Embeds\Type\One\Handler
  • PHPixie\ORM\Relationships\Type\Embeds\Type\One\Preload\Result
  • PHPixie\ORM\Relationships\Type\Embeds\Type\One\Preloader
  • PHPixie\ORM\Relationships\Type\Embeds\Type\One\Property\Entity\Item
  • PHPixie\ORM\Relationships\Type\Embeds\Type\One\Side
  • PHPixie\ORM\Relationships\Type\Embeds\Type\One\Side\Config
  • PHPixie\ORM\Relationships\Type\ManyToMany
  • PHPixie\ORM\Relationships\Type\ManyToMany\Handler
  • PHPixie\ORM\Relationships\Type\ManyToMany\Preloader
  • PHPixie\ORM\Relationships\Type\ManyToMany\Property\Entity
  • PHPixie\ORM\Relationships\Type\ManyToMany\Property\Query
  • PHPixie\ORM\Relationships\Type\ManyToMany\Side
  • PHPixie\ORM\Relationships\Type\ManyToMany\Side\Config
  • PHPixie\ORM\Relationships\Type\OneTo
  • PHPixie\ORM\Relationships\Type\OneTo\Handler
  • PHPixie\ORM\Relationships\Type\OneTo\Preloader\Owner
  • PHPixie\ORM\Relationships\Type\OneTo\Property\Entity
  • PHPixie\ORM\Relationships\Type\OneTo\Property\Entity\Single
  • PHPixie\ORM\Relationships\Type\OneTo\Property\Query
  • PHPixie\ORM\Relationships\Type\OneTo\Property\Query\Single
  • PHPixie\ORM\Relationships\Type\OneTo\Side
  • PHPixie\ORM\Relationships\Type\OneTo\Side\Config
  • PHPixie\ORM\Relationships\Type\OneTo\Type\Many
  • PHPixie\ORM\Relationships\Type\OneTo\Type\Many\Handler
  • PHPixie\ORM\Relationships\Type\OneTo\Type\Many\Preloader\Items
  • PHPixie\ORM\Relationships\Type\OneTo\Type\Many\Preloader\Owner
  • PHPixie\ORM\Relationships\Type\OneTo\Type\Many\Preloader\Property\Owner
  • PHPixie\ORM\Relationships\Type\OneTo\Type\Many\Property\Entity\Items
  • PHPixie\ORM\Relationships\Type\OneTo\Type\Many\Property\Entity\Owner
  • PHPixie\ORM\Relationships\Type\OneTo\Type\Many\Property\Query\Items
  • PHPixie\ORM\Relationships\Type\OneTo\Type\Many\Property\Query\Owner
  • PHPixie\ORM\Relationships\Type\OneTo\Type\Many\Side
  • PHPixie\ORM\Relationships\Type\OneTo\Type\Many\Side\Config
  • PHPixie\ORM\Relationships\Type\OneTo\Type\Many\Value\Preload\Owner
  • PHPixie\ORM\Relationships\Type\OneTo\Type\One
  • PHPixie\ORM\Relationships\Type\OneTo\Type\One\Handler
  • PHPixie\ORM\Relationships\Type\OneTo\Type\One\Preloader\Item
  • PHPixie\ORM\Relationships\Type\OneTo\Type\One\Preloader\Owner
  • PHPixie\ORM\Relationships\Type\OneTo\Type\One\Property\Entity
  • PHPixie\ORM\Relationships\Type\OneTo\Type\One\Property\Query
  • PHPixie\ORM\Relationships\Type\OneTo\Type\One\Side
  • PHPixie\ORM\Relationships\Type\OneTo\Type\One\Side\Config
  • PHPixie\ORM\Repositories
  • PHPixie\ORM\Steps
  • PHPixie\ORM\Steps\Result\Filter
  • PHPixie\ORM\Steps\Step
  • PHPixie\ORM\Steps\Step\In
  • PHPixie\ORM\Steps\Step\Pivot\Cartesian
  • PHPixie\ORM\Steps\Step\Query
  • PHPixie\ORM\Steps\Step\Query\Count
  • PHPixie\ORM\Steps\Step\Query\Insert
  • PHPixie\ORM\Steps\Step\Query\Insert\Batch
  • PHPixie\ORM\Steps\Step\Query\Insert\Batch\Data
  • PHPixie\ORM\Steps\Step\Query\Insert\Batch\Data\Unique
  • PHPixie\ORM\Steps\Step\Query\Result
  • PHPixie\ORM\Steps\Step\Query\Result\Iterator
  • PHPixie\ORM\Steps\Step\Query\Result\Reusable
  • PHPixie\ORM\Steps\Step\Update
  • PHPixie\ORM\Steps\Step\Update\Map
  • PHPixie\ORM\Values
  • PHPixie\ORM\Values\OrderBy
  • PHPixie\ORM\Values\Preload
  • PHPixie\ORM\Values\Preload\Property
  • PHPixie\ORM\Values\Preload\Property\Cascading
  • PHPixie\ORM\Values\Update
  • PHPixie\ORM\Values\Update\Builder
  • PHPixie\ORM\Values\Update\Increment
  • PHPixie\ORM\Values\Update\Remove
  • PHPixie\ORM\Wrappers\Implementation
  • PHPixie\ORM\Wrappers\Model\Entity
  • PHPixie\ORM\Wrappers\Type\Database\Entity
  • PHPixie\ORM\Wrappers\Type\Database\Query
  • PHPixie\ORM\Wrappers\Type\Database\Repository
  • PHPixie\ORM\Wrappers\Type\Embedded\Entity
  • PHPixie\Paginate
  • PHPixie\Paginate\Builder
  • PHPixie\Paginate\Loader\ArrayAccess
  • PHPixie\Paginate\Pager
  • PHPixie\PaginateORM
  • PHPixie\PaginateORM\Builder
  • PHPixie\PaginateORM\Loader\Query
  • PHPixie\Processors
  • PHPixie\Processors\Processor\Actions
  • PHPixie\Processors\Processor\CatchException
  • PHPixie\Processors\Processor\Chain
  • PHPixie\Processors\Processor\CheckIsProcessable
  • PHPixie\Processors\Processor\Dispatcher
  • PHPixie\Processors\Processor\Dispatcher\Builder
  • PHPixie\Processors\Processor\Dispatcher\Registry
  • PHPixie\Route
  • PHPixie\Route\Builder
  • PHPixie\Route\Matcher
  • PHPixie\Route\Matcher\Pattern
  • PHPixie\Route\Resolvers
  • PHPixie\Route\Resolvers\Builder
  • PHPixie\Route\Resolvers\Resolver\Group
  • PHPixie\Route\Resolvers\Resolver\Mount
  • PHPixie\Route\Resolvers\Resolver\Pattern
  • PHPixie\Route\Resolvers\Resolver\Pattern\Implementation
  • PHPixie\Route\Resolvers\Resolver\Pattern\Prefix
  • PHPixie\Route\Translator
  • PHPixie\Route\Translator\Fragment
  • PHPixie\Route\Translator\Match
  • PHPixie\Route\Translator\Target
  • PHPixie\Security
  • PHPixie\Security\Builder
  • PHPixie\Security\Password
  • PHPixie\Security\Random
  • PHPixie\Security\Tokens
  • PHPixie\Security\Tokens\Handler
  • PHPixie\Security\Tokens\Storage\Database
  • PHPixie\Security\Tokens\Storage\Database\Mongo
  • PHPixie\Security\Tokens\Storage\Database\SQL
  • PHPixie\Security\Tokens\Token
  • PHPixie\Slice
  • PHPixie\Slice\Data\Implementation
  • PHPixie\Slice\Iterator
  • PHPixie\Slice\Type\ArrayData
  • PHPixie\Slice\Type\ArrayData\Editable
  • PHPixie\Slice\Type\ArrayData\Slice
  • PHPixie\Slice\Type\Slice
  • PHPixie\Slice\Type\Slice\Editable
  • PHPixie\Template
  • PHPixie\Template\Builder
  • PHPixie\Template\Compiler
  • PHPixie\Template\Container
  • PHPixie\Template\Extensions
  • PHPixie\Template\Extensions\Extension\HTML
  • PHPixie\Template\Formats
  • PHPixie\Template\Renderer
  • PHPixie\Template\Renderer\Context
  • PHPixie\Template\Renderer\Runtime
  • PHPixie\Template\Resolver
  • PHPixie\Test\Testcase
  • Project\App
  • Project\App\Builder
  • Project\App\HTTPProcessor
  • Project\App\HTTPProcessors\Greet
  • Project\App\ORMWrappers
  • Project\Framework
  • Project\Framework\Builder
  • Project\Framework\Bundles
  • Project\Framework\Extensions

Interfaces

  • PHPixie\Auth\Context\Container
  • PHPixie\Auth\Context\Container\Settable
  • PHPixie\Auth\Providers\Builder
  • PHPixie\Auth\Providers\Provider
  • PHPixie\Auth\Providers\Provider\Autologin
  • PHPixie\Auth\Providers\Provider\Persistent
  • PHPixie\Auth\Repositories\Registry
  • PHPixie\Auth\Repositories\Repository
  • PHPixie\Auth\Repositories\Repository\User
  • PHPixie\AuthLogin\Repository
  • PHPixie\AuthLogin\Repository\User
  • PHPixie\Bundles\Bundle
  • PHPixie\Bundles\Bundle\Provides\Auth
  • PHPixie\Bundles\Bundle\Provides\HTTPProcessor
  • PHPixie\Bundles\Bundle\Provides\ORM
  • PHPixie\Bundles\Bundle\Provides\RouteResolver
  • PHPixie\Bundles\Bundle\Provides\TemplateLocator
  • PHPixie\Bundles\Bundle\Provides\WebRoot
  • PHPixie\Bundles\Registry
  • PHPixie\Config\Formats\Format
  • PHPixie\Config\Storages\Storage
  • PHPixie\Config\Storages\Storage\Editable
  • PHPixie\Config\Storages\Storage\Editable\Persistable
  • PHPixie\Database\Conditions\Builder
  • PHPixie\Database\Conditions\Builder\Operators\In
  • PHPixie\Database\Conditions\Condition
  • PHPixie\Database\Conditions\Condition\Collection
  • PHPixie\Database\Conditions\Condition\Field
  • PHPixie\Database\Driver\Mongo\Conditions\Builder
  • PHPixie\Database\Driver\PDO\Conditions\Builder
  • PHPixie\Database\Query
  • PHPixie\Database\Query\Items
  • PHPixie\Database\Query\Type\Count
  • PHPixie\Database\Query\Type\Delete
  • PHPixie\Database\Query\Type\Insert
  • PHPixie\Database\Query\Type\Select
  • PHPixie\Database\Query\Type\Update
  • PHPixie\Database\Query\Type\Update\Incrementable
  • PHPixie\Database\Query\Type\Update\Unsetable
  • PHPixie\Database\Type\Document\Conditions\Builder
  • PHPixie\Database\Type\Document\Conditions\Condition\Collection\Embedded
  • PHPixie\Database\Type\Document\Conditions\Condition\Collection\Embedded\SubarrayItem
  • PHPixie\Database\Type\Document\Conditions\Condition\Collection\Embedded\Subdocument
  • PHPixie\Database\Type\Document\Query\Items
  • PHPixie\Database\Type\SQL\Conditions\Builder
  • PHPixie\Database\Type\SQL\Query
  • PHPixie\Database\Type\SQL\Query\Items
  • PHPixie\Database\Type\SQL\Query\Type\Count
  • PHPixie\Database\Type\SQL\Query\Type\Delete
  • PHPixie\Database\Type\SQL\Query\Type\Insert
  • PHPixie\Database\Type\SQL\Query\Type\Select
  • PHPixie\Database\Type\SQL\Query\Type\Update
  • PHPixie\Filesystem\Locators\Locator
  • PHPixie\Filesystem\Locators\Registry
  • PHPixie\Framework\Configuration
  • PHPixie\HTTP\Context\Container
  • PHPixie\HTTP\Context\Container\Settable
  • PHPixie\HTTP\Context\Session
  • PHPixie\HTTPProcessors\Parsers\Parser
  • PHPixie\ORM\Conditions\Builder
  • PHPixie\ORM\Conditions\Condition
  • PHPixie\ORM\Conditions\Condition\Collection
  • PHPixie\ORM\Conditions\Condition\Collection\RelatedTo
  • PHPixie\ORM\Conditions\Condition\Field
  • PHPixie\ORM\Conditions\Condition\In\Item
  • PHPixie\ORM\Data\Type
  • PHPixie\ORM\Data\Type\Diffable
  • PHPixie\ORM\Mappers\Preload\Preloadable
  • PHPixie\ORM\Models\Model\Entity
  • PHPixie\ORM\Models\Type\Database\Entity
  • PHPixie\ORM\Models\Type\Database\Query
  • PHPixie\ORM\Models\Type\Database\Repository
  • PHPixie\ORM\Models\Type\Embedded\Entity
  • PHPixie\ORM\Relationships\Relationship
  • PHPixie\ORM\Relationships\Relationship\Handler
  • PHPixie\ORM\Relationships\Relationship\Handler\Cascading\Delete
  • PHPixie\ORM\Relationships\Relationship\Handler\Mapping\Database
  • PHPixie\ORM\Relationships\Relationship\Handler\Mapping\Embedded
  • PHPixie\ORM\Relationships\Relationship\Handler\Preloading
  • PHPixie\ORM\Relationships\Relationship\Preloader
  • PHPixie\ORM\Relationships\Relationship\Property
  • PHPixie\ORM\Relationships\Relationship\Property\Entity
  • PHPixie\ORM\Relationships\Relationship\Property\Entity\Data
  • PHPixie\ORM\Relationships\Relationship\Property\Entity\Query
  • PHPixie\ORM\Relationships\Relationship\Property\Query
  • PHPixie\ORM\Relationships\Relationship\Side
  • PHPixie\ORM\Relationships\Relationship\Side\Cascade\Delete
  • PHPixie\ORM\Relationships\Relationship\Side\Preload
  • PHPixie\ORM\Relationships\Relationship\Side\Property\Entity
  • PHPixie\ORM\Relationships\Relationship\Side\Property\Query
  • PHPixie\ORM\Relationships\Relationship\Side\Relationship
  • PHPixie\ORM\Relationships\Relationship\Type\Database
  • PHPixie\ORM\Steps\Result
  • PHPixie\ORM\Steps\Result\Reusable
  • PHPixie\ORM\Wrappers
  • PHPixie\Paginate\Loader
  • PHPixie\Processors\Processor
  • PHPixie\Processors\Processor\Selective
  • PHPixie\Processors\Registry
  • PHPixie\Route\Resolvers\Registry
  • PHPixie\Route\Resolvers\Resolver
  • PHPixie\Security\Tokens\Storage
  • PHPixie\Slice\Data
  • PHPixie\Slice\Data\Editable
  • PHPixie\Slice\Data\Slice
  • PHPixie\Slice\Data\Slice\Editable
  • PHPixie\Template\Extensions\Extension
  • PHPixie\Template\Formats\Format
  • Psr\Http\Message\MessageInterface
  • Psr\Http\Message\RequestInterface
  • Psr\Http\Message\ResponseInterface
  • Psr\Http\Message\ServerRequestInterface
  • Psr\Http\Message\StreamInterface
  • Psr\Http\Message\UploadedFileInterface
  • Psr\Http\Message\UriInterface

Exceptions

  • PHPixie\Auth\Exception
  • PHPixie\BundleFramework\Exception
  • PHPixie\Bundles\Exception
  • PHPixie\Config\Exception
  • PHPixie\Database\Exception
  • PHPixie\Database\Exception\Builder
  • PHPixie\Database\Exception\Driver
  • PHPixie\Database\Exception\Parser
  • PHPixie\Database\Exception\Value
  • PHPixie\Debug\Exception
  • PHPixie\Filesystem\Exception
  • PHPixie\HTTP\Exception
  • PHPixie\HTTPProcessors\Exception
  • PHPixie\ORM\Exception
  • PHPixie\ORM\Exception\Builder
  • PHPixie\ORM\Exception\Data
  • PHPixie\ORM\Exception\Entity
  • PHPixie\ORM\Exception\Loader
  • PHPixie\ORM\Exception\Mapper
  • PHPixie\ORM\Exception\Model
  • PHPixie\ORM\Exception\Plan
  • PHPixie\ORM\Exception\Planner
  • PHPixie\ORM\Exception\Query
  • PHPixie\ORM\Exception\Relationship
  • PHPixie\Paginate\Exception
  • PHPixie\Processors\Exception
  • PHPixie\Route\Exception
  • PHPixie\Route\Exception\Route
  • PHPixie\Security\Exception
  • PHPixie\Slice\Exception
  • PHPixie\Template\Exception
  • Overview
  • Namespace
  • Class
  • Tree
  • Return
  1: <?php
  2: 
  3: namespace PHPixie\HTTP\Messages;
  4: 
  5: use InvalidArgumentException;
  6: use Psr\Http\Message\UriInterface;
  7: 
  8: /**
  9:  * Base PSR-7 URI implementation
 10:  */
 11: abstract class URI implements UriInterface
 12: {
 13:     /**
 14:      * @var string
 15:      */
 16:     const CHAR_SUB_DELIMS = '!\$&\'\(\)\*\+,;=';
 17: 
 18:     /**
 19:      * @var string
 20:      */
 21:     const CHAR_UNRESERVED = 'a-zA-Z0-9_\-\.~';
 22: 
 23:     /**
 24:      * generated uri string cache
 25:      * @var string|null
 26:      */
 27:     protected $uriString;
 28: 
 29:     /**
 30:      * @var array
 31:      */
 32:     protected $parts = array();
 33: 
 34:     /**
 35:      * @inheritdoc
 36:      */
 37:     public function __toString()
 38:     {
 39:         if ($this->uriString === null) {
 40: 
 41:             $uri = '';
 42: 
 43:             if(($scheme = $this->getScheme()) !== '') {
 44:                 $uri .= $scheme . '://';
 45:             }
 46: 
 47:             $uri .= $this->getAuthority();
 48:             $uri .= $this->getPath();
 49: 
 50:             if(($query = $this->getQuery()) !== '') {
 51:                 $uri .= '?' . $query;
 52:             }
 53: 
 54:             if(($fragment = $this->getFragment()) !== '') {
 55:                 $uri .= '#' . $fragment;
 56:             }
 57: 
 58:             $this->uriString = $uri;
 59:         }
 60: 
 61:         return $this->uriString;
 62:     }
 63: 
 64:     /**
 65:      * @inheritdoc
 66:      */
 67:     public function getAuthority()
 68:     {
 69:         $authority = '';
 70:         $authority.= $this->getHost();
 71: 
 72:         if (($userInfo = $this->getUserInfo()) !== '') {
 73:             $authority = $userInfo . '@' . $authority;
 74:         }
 75: 
 76:         $port = $this->getPort();
 77:         if ($port !== null) {
 78:             $authority .= ':' . $port;
 79:         }
 80: 
 81:         return $authority;
 82:     }
 83: 
 84:     /**
 85:      * @inheritdoc
 86:      */
 87:     public function getScheme()
 88:     {
 89:         return $this->part('scheme');
 90:     }
 91: 
 92:     /**
 93:      * @inheritdoc
 94:      */
 95:     public function getUserInfo()
 96:     {
 97:         return $this->part('userInfo');
 98:     }
 99: 
100:     /**
101:      * @inheritdoc
102:      */
103:     public function getHost()
104:     {
105:         return $this->part('host');
106:     }
107: 
108:     /**
109:      * @inheritdoc
110:      */
111:     public function getPort()
112:     {
113:         $port = $this->part('port');
114: 
115:         if($this->isStandardPort($this->getScheme(), $port)) {
116:             $port = null;
117:         }
118: 
119:         return $port;
120:     }
121: 
122:     /**
123:      * @inheritdoc
124:      */
125:     public function getPath()
126:     {
127:         return $this->part('path');
128:     }
129: 
130:     /**
131:      * @inheritdoc
132:      */
133:     public function getQuery()
134:     {
135:         return $this->part('query');
136:     }
137: 
138:     /**
139:      * @inheritdoc
140:      */
141:     public function getFragment()
142:     {
143:         return $this->part('fragment');
144:     }
145: 
146:     /**
147:      * @inheritdoc
148:      */
149:     public function withScheme($scheme)
150:     {
151:         $scheme = strtolower($scheme);
152:         $scheme = str_replace('://', '', $scheme);
153: 
154:         if (!in_array($scheme, array('', 'http', 'https'), true)) {
155:             throw new InvalidArgumentException("Unsupported scheme '$scheme', must be either 'http', 'https' or ''");
156:         }
157: 
158:         return $this->updatePart('scheme', $scheme);
159:     }
160: 
161:     /**
162:      * @inheritdoc
163:      */
164:     public function withUserInfo($user, $password = null)
165:     {
166:         $userInfo = $this->normalizePart($user);
167: 
168:         if ($userInfo !== '' && $password !== null) {
169:             $userInfo.= ':' . $password;
170:         }
171: 
172:         return $this->updatePart('userInfo', $userInfo);
173:     }
174: 
175:     /**
176:      * @param string $key
177:      * @param string $value
178:      * @return URI
179:      */
180:     protected function updatePart($key, $value)
181:     {
182:         $new = clone $this;
183:         $new->parts[$key] = $value;
184:         $new->uriString = null;
185: 
186:         return $new;
187:     }
188: 
189:     /**
190:      * @inheritdoc
191:      */
192:     public function withHost($host)
193:     {
194:         $host = $this->normalizePart($host);
195:         return $this->updatePart('host', $host);
196:     }
197: 
198:     /**
199:      * @inheritdoc
200:      */
201:     public function withPort($port)
202:     {
203:         if($port !== null) {
204:             if (!is_numeric($port)) {
205:                 throw new InvalidArgumentException("Port '$port' is not numeric");
206:             }
207: 
208:             $port = (int) $port;
209: 
210:             if ($port < 1 || $port > 65535) {
211:                 throw new InvalidArgumentException("Invalid port '$port' specified");
212:             }
213:         }
214: 
215:         return $this->updatePart('port', $port);
216:     }
217: 
218:     /**
219:      * @inheritdoc
220:      */
221:     public function withPath($path)
222:     {
223:         $path = $this->normalizePath($path);
224:         return $this->updatePart('path', $path);
225:     }
226: 
227:     /**
228:      * @inheritdoc
229:      */
230:     public function withQuery($query)
231:     {
232:         $query = $this->normalizeQuery($query);
233:         return $this->updatePart('query', $query);
234: 
235:     }
236: 
237:     /**
238:      * @inheritdoc
239:      */
240:     public function withFragment($fragment)
241:     {
242:         $fragment = $this->normalizeFragment($fragment);
243:         return $this->updatePart('fragment', $fragment);
244:     }
245: 
246:     /**
247:      * @param string $fragment
248:      * @return string
249:      */
250:     protected function normalizeFragment($fragment)
251:     {
252:         $fragment = $this->normalizePart($fragment, '#');
253:         return $this->normalizeQueryString($fragment);
254:     }
255: 
256:     /**
257:      * @param string $part
258:      * @param string|null $prefix
259:      * @return string
260:      */
261:     protected function normalizePart($part, $prefix = null) {
262:         if($part === null || $part === '') {
263:             return '';
264:         }
265: 
266:         if($prefix !== null && $part[0] === $prefix) {
267:             return substr($part, 1);
268:         }
269: 
270:         return $part;
271:     }
272: 
273:     /**
274:      * @param string $scheme
275:      * @param int $port
276:      * @return bool
277:      */
278:     protected static function isStandardPort($scheme, $port)
279:     {
280:         if ($scheme === 'https' && $port === 443) {
281:             return true;
282:         }
283: 
284:         if ($scheme === 'http' && $port === 80) {
285:             return true;
286:         }
287: 
288:         return false;
289:     }
290: 
291:     /**
292:      * @param string $path
293:      * @return string
294:      */
295:     protected function normalizePath($path)
296:     {
297:         if (strpos($path, '?') !== false) {
298:             throw new InvalidArgumentException("Path '$path' contains '?'");
299:         }
300: 
301:         if (strpos($path, '#') !== false) {
302:             throw new InvalidArgumentException("Path '$path' contains '#'");
303:         }
304: 
305:         if ($path === null || $path === '') {
306:             return '/';
307:         }
308: 
309:         if($path[0] !== '/') {
310:             $path = '/' . $path;
311:         }
312: 
313:         return preg_replace_callback(
314:             '/(?:[^' . self::CHAR_UNRESERVED . ':@&=\+\$,\/;%]+|%(?![A-Fa-f0-9]{2}))/',
315:             array($this, 'encodeMatchedQueryPart'),
316:             $path
317:         );
318:     }
319: 
320:     /**
321:      * @param string $query
322:      * @return string
323:      * @throws InvalidArgumentException
324:      */
325:     protected function normalizeQuery($query)
326:     {
327:         if (strpos($query, '#') !== false) {
328:             throw new InvalidArgumentException(
329:                 'Query string must not include a URI fragment'
330:             );
331:         }
332: 
333:         $query = $this->normalizePart($query, '?');
334: 
335:         $pairs = explode('&', $query);
336: 
337:         foreach ($pairs as $pairKey => $pair) {
338:             $pair = explode('=', $pair, 2);
339:             foreach($pair as $key => $value) {
340:                 $pair[$key] = $this->normalizeQueryString($value);
341:             }
342: 
343:             $parts[$pairKey] = implode('=', $pair);
344:         }
345: 
346:         return implode('&', $parts);
347:     }
348: 
349:     /**
350:      * @param string $value
351:      * @return string
352:      */
353:     protected function normalizeQueryString($value)
354:     {
355:         return preg_replace_callback(
356:             '/(?:[^' . self::CHAR_UNRESERVED . self::CHAR_SUB_DELIMS . '%:@\/\?]+|%(?![A-Fa-f0-9]{2}))/',
357:             array($this, 'encodeMatchedQueryPart'),
358:             $value
359:         );
360:     }
361: 
362:     /**
363:      * @param array $matches
364:      * @return string
365:      */
366:     protected function encodeMatchedQueryPart($matches) {
367:         return rawurlencode($matches[0]);
368:     }
369: 
370:     /**
371:      * @param string $name
372:      * @return string
373:      */
374:     protected function part($name)
375:     {
376:         if(!array_key_exists($name, $this->parts)) {
377:             $this->requirePart($name);
378:         }
379: 
380:         return $this->parts[$name];
381:     }
382: 
383:     /**
384:      * @param string $name
385:      */
386:     protected function requirePart($name)
387:     {
388:         if($name === 'port') {
389:             $this->parts['port'] = null;
390:         }else{
391:             $this->parts[$name] = '';
392:         }
393:     }
394: }
395: 
PHPixie 3 API API documentation generated by ApiGen