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\BundleFramework;
  4: 
  5: use PHPixie\Processors\Processor;
  6: use PHPixie\Slice\Data;
  7: 
  8: /**
  9:  * Framework configuration
 10:  */
 11: class Configuration implements \PHPixie\Framework\Configuration
 12: {
 13:     /**
 14:      * @var Builder
 15:      */
 16:     protected $builder;
 17: 
 18:     /**
 19:      * @var array
 20:      */
 21:     protected $instances = array();
 22: 
 23:     /**
 24:      * Constructor
 25:      * @param Builder $builder
 26:      */
 27:     public function __construct($builder)
 28:     {
 29:         $this->builder = $builder;
 30:     }
 31: 
 32:     /**
 33:      * Bundles configuration
 34:      * @return Data
 35:      */
 36:     public function bundlesConfig()
 37:     {
 38:         return $this->instance('bundlesConfig');
 39:     }
 40: 
 41:     /**
 42:      * @inheritdoc
 43:      */
 44:     public function databaseConfig()
 45:     {
 46:         return $this->instance('databaseConfig');
 47:     }
 48: 
 49:     /**
 50:      * @inheritdoc
 51:      */
 52:     public function httpConfig()
 53:     {
 54:         return $this->instance('httpConfig');
 55:     }
 56: 
 57:     /**
 58:      * @inheritdoc
 59:      */
 60:     public function templateConfig()
 61:     {
 62:         return $this->instance('templateConfig');
 63:     }
 64: 
 65:     /**
 66:      * @inheritdoc
 67:      */
 68:     public function filesystemRoot()
 69:     {
 70:         return $this->builder->assets()->root();
 71:     }
 72: 
 73:     /**
 74:      * ORM configuration merger
 75:      * @return Configuration\ORM
 76:      */
 77:     public function orm()
 78:     {
 79:         return $this->instance('orm');
 80:     }
 81: 
 82:     /**
 83:      * @inheritdoc
 84:      */
 85:     public function ormConfig()
 86:     {
 87:         return $this->orm()->configData();
 88:     }
 89: 
 90:     /**
 91:      * @inheritdoc
 92:      */
 93:     public function ormWrappers()
 94:     {
 95:         return $this->orm()->wrappers();
 96:     }
 97: 
 98:     /**
 99:      * @inheritdoc
100:      */
101:     public function authConfig()
102:     {
103:         return $this->instance('authConfig');
104:     }
105: 
106:     /**
107:      * @inheritdoc
108:      */
109:     public function authRepositories()
110:     {
111:         $components = $this->builder->components();
112:         return $components->bundles()->auth();
113:     }
114: 
115:     /**
116:      * @inheritdoc
117:      */
118:     public function httpProcessor()
119:     {
120:         return $this->instance('httpProcessor');
121:     }
122: 
123:     /**
124:      * @inheritdoc
125:      */
126:     public function httpRouteResolver()
127:     {
128:         return $this->instance('httpRouteResolver');
129:     }
130: 
131:     /**
132:      * @inheritdoc
133:      */
134:     public function templateLocator()
135:     {
136:         return $this->instance('templateLocator');
137:     }
138: 
139:     /**
140:      * @param string $name
141:      * @return mixed
142:      */
143:     protected function instance($name)
144:     {
145:         if(!array_key_exists($name, $this->instances)) {
146:             $method = 'build'.ucfirst($name);
147:             $this->instances[$name] = $this->$method();
148:         }
149:         
150:         return $this->instances[$name];
151:     }
152: 
153:     /**
154:      * @return Data
155:      */
156:     protected function buildBundlesConfig()
157:     {
158:         return $this->configStorage()->arraySlice('bundles');
159:     }
160: 
161:     /**
162:      * @return Data
163:      */
164:     protected function buildDatabaseConfig()
165:     {
166:         return $this->configStorage()->arraySlice('database');
167:     }
168: 
169:     /**
170:      * @return Data
171:      */
172:     protected function buildHttpConfig()
173:     {
174:         return $this->configStorage()->arraySlice('http');
175:     }
176: 
177:     /**
178:      * @return Data
179:      */
180:     protected function buildTemplateConfig()
181:     {
182:         return $this->configStorage()->arraySlice('template');
183:     }
184: 
185:     /**
186:      * @return Data
187:      */
188:     protected function buildAuthConfig()
189:     {
190:         return $this->configStorage()->arraySlice('auth');
191:     }
192: 
193:     /**
194:      * @return Configuration\ORM
195:      */
196:     protected function buildOrm()
197:     {
198:         $components = $this->builder->components();
199:         
200:         return new Configuration\ORM(
201:             $components->slice(),
202:             $components->bundles()->orm()
203:         );
204:     }
205: 
206:     /**
207:      * @return Processor
208:      */
209:     protected function buildHttpProcessor()
210:     {
211:         $components = $this->builder->components();
212:         
213:         return $components->httpProcessors()->attributeRegistryDispatcher(
214:             $components->bundles()->httpProcessors(),
215:             'bundle'
216:         );
217:     }
218: 
219:     /**
220:      * @return \PHPixie\Route\Resolvers\Resolver
221:      */
222:     protected function buildHttpRouteResolver()
223:     {
224:         $components = $this->builder->components();
225:         
226:         return $components->route()->buildResolver(
227:             $this->configStorage()->arraySlice('http.resolver'),
228:             $components->bundles()->routeResolvers()
229:         );
230:     }
231: 
232:     /**
233:      * @return Configuration\FilesystemLocator\Template
234:      */
235:     protected function buildTemplateLocator()
236:     {
237:         $components = $this->builder->components();
238:         $bundleLocators = $components->bundles()->templateLocators();
239:         
240:         $overridesLocator = null;
241:         
242:         $overridesConfig = $this->configStorage()->arraySlice('template.locator');
243:         if($overridesConfig->get('type') !== null) {
244:             $overridesLocator = $components->filesystem()->buildLocator(
245:                 $overridesConfig,
246:                 $bundleLocators
247:             );
248:         }
249:         
250:         return new Configuration\FilesystemLocator\Template(
251:             $bundleLocators,
252:             $this->builder->assets(),
253:             $overridesLocator
254:         );
255:     }
256: 
257:     /**
258:      * @return \PHPixie\Config\Storages\Type\Directory
259:      */
260:     protected function configStorage()
261:     {
262:         return $this->builder->assets()->configStorage();
263:     }
264: }
265: 
PHPixie 3 API API documentation generated by ApiGen