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\ORM\Relationships\Type\ManyToMany;
  4: 
  5: class Handler extends \PHPixie\ORM\Relationships\Relationship\Implementation\Handler
  6:                     implements \PHPixie\ORM\Relationships\Relationship\Handler\Mapping\Database,
  7:                                \PHPixie\ORM\Relationships\Relationship\Handler\Preloading
  8: {
  9:     public function query($side, $related)
 10:     {
 11:         $config = $side->config();
 12:         $side = $side->type();
 13:         $entity = $config->get($side.'Model');
 14:         $property = $config->get($side.'Property');
 15:         $repository = $this->getRepository($entity);
 16:         return $repository->query()->relatedTo($property, $related);
 17:     }
 18: 
 19:     public function loadProperty($side, $entity)
 20:     {
 21:         $config = $side->config();
 22:         $loader = $this->query($side, $entity)->find();
 23:         $editable = $this->loaders->editableProxy($loader);
 24:         
 25:         $opposing = $this->getOpposing($side->type());
 26:         
 27:         $property = $entity->getRelationshipProperty($config->{$opposing.'Property'});
 28:         $property->setValue($editable);
 29:     }
 30: 
 31:     public function linkPlan($config, $leftItems, $rightItems)
 32:     {
 33:         $plan = $this->plans->steps();
 34:         list($leftSide, $rightSide) = $this->plannerSides($config, $leftItems, $rightItems);
 35:         $pivot = $this->plannerPivot($config);
 36:         $this->planners->pivot()->link($pivot, $leftSide, $rightSide, $plan);
 37: 
 38:         return $plan;
 39:     }
 40: 
 41:     public function unlinkPlan($config, $leftItems, $rightItems)
 42:     {
 43:         $plan = $this->plans->steps();
 44:         list($leftSide, $rightSide) = $this->plannerSides($config, $leftItems, $rightItems);
 45:         $pivot = $this->plannerPivot($config);
 46:         $this->planners->pivot()->unlink($pivot, $leftSide, $rightSide, $plan);
 47: 
 48:         return $plan;
 49:     }
 50: 
 51:     public function unlinkAllPlan($side, $items)
 52:     {
 53:         $config = $side->config();
 54:         $plan = $this->plans->steps();
 55:         $opposing = $this->getOpposing($side->type());
 56:         $plannerSide = $this->plannerSide($config, $opposing, $items);
 57:         $pivot = $this->plannerPivot($config);
 58:         $this->planners->pivot()->unlinkAll($pivot, $plannerSide, $plan);
 59: 
 60:         return $plan;
 61:     }
 62: 
 63:     protected function plannerSides($config, $leftItems, $rightItems)
 64:     {
 65:         $sides = array();
 66:         foreach (array('left', 'right') as $side) {
 67:             $items = $side === 'left' ? $leftItems : $rightItems;
 68:             $sides[] = $this->plannerSide($config, $side, $items);
 69:         }
 70: 
 71:         return $sides;
 72:     }
 73: 
 74:     protected function plannerSide($config, $side, $items)
 75:     {
 76:         $entity = $config->get($side.'Model');
 77:         return $this->planners->pivot()->side(
 78:                                             $items,
 79:                                             $this->getRepository($entity),
 80:                                             $config->get($side.'PivotKey')
 81:                                         );
 82:     }
 83: 
 84:     protected function plannerPivot($config)
 85:     {
 86:         $pivotPlanner = $this->planners->pivot();
 87: 
 88:         if ($config->pivotConnection !== null) {
 89:             return $pivotPlanner->pivotByConnectionName($config->pivotConnection, $config->pivot);
 90:         }
 91: 
 92:         $connection = $this->getRepository($config->leftModel)->connection();
 93:         return $pivotPlanner->pivot($connection, $config->pivot);
 94:     }
 95: 
 96:     public function mapDatabaseQuery($query, $side, $collectionCondition, $plan)
 97:     {
 98:         $dependencies   = $this->getMappingDependencies($side);
 99:         $config         = $dependencies['config'];
100:         $sideRepository = $dependencies['sideRepository'];
101:         $inPlanner      = $this->planners->in();
102: 
103:         $sideIdField = $this->getIdField($sideRepository);
104: 
105:         $sideQuery = $sideRepository->databaseSelectQuery();
106:         $this->mappers->conditions()->map(
107:             $sideQuery,
108:             $sideRepository->modelName(),
109:             $collectionCondition->conditions(),
110:             $plan
111:         );
112: 
113: 
114:         $pivotQuery = $dependencies['pivot']->databaseSelectQuery();
115:         $inPlanner->subquery(
116:             $pivotQuery,
117:             $config->get($dependencies['type'].'PivotKey'),
118:             $sideQuery,
119:             $sideIdField,
120:             $plan
121:         );
122: 
123:         $inPlanner->subquery(
124:             $query,
125:             $this->getIdField($dependencies['opposingRepository']),
126:             $pivotQuery,
127:             $config->get($dependencies['opposing'].'PivotKey'),
128:             $plan,
129:             $collectionCondition->logic(),
130:             $collectionCondition->isNegated()
131:         );
132:     }
133: 
134:     public function mapPreload($side, $preloadProperty, $result, $plan)
135:     {
136: 
137:         $dependencies   = $this->getMappingDependencies($side);
138:         $config         = $dependencies['config'];
139:         $sideRepository = $dependencies['sideRepository'];
140:         $inPlanner      = $this->planners->in();
141: 
142:         $pivotQuery = $dependencies['pivot']->databaseSelectQuery();
143: 
144:         $inPlanner->result(
145:                             $pivotQuery,
146:                             $config->get($dependencies['opposing'].'PivotKey'),
147:                             $result,
148:                             $this->getIdField($dependencies['opposingRepository']),
149:                             $plan
150:                         );
151: 
152:         $pivotResult = $this->steps->reusableResult($pivotQuery);
153:         $plan->add($pivotResult);
154: 
155:         $sideQuery = $sideRepository->databaseSelectQuery();
156: 
157:         $inPlanner->result(
158:                             $sideQuery,
159:                             $this->getIdField($sideRepository),
160:                             $pivotResult,
161:                             $config->get($dependencies['type'].'PivotKey'),
162:                             $plan
163:                         );
164: 
165:         $preloadStep = $this->steps->reusableResult($sideQuery);
166:         $plan->add($preloadStep);
167:         $loader = $this->loaders->reusableResult($sideRepository, $preloadStep);
168: 
169:         $preloadingProxy = $this->loaders->preloadingProxy($loader);
170:         $cachingProxy = $this->loaders->cachingProxy($preloadingProxy);
171: 
172:         $this->mappers->preload()->map(
173:             $preloadingProxy,
174:             $sideRepository->modelName(),
175:             $preloadProperty->preload(),
176:             $preloadStep,
177:             $plan
178:         );
179: 
180:         return $this->relationship->preloader($side, $sideRepository->config(), $preloadStep, 
181:                                               $cachingProxy, $pivotResult);
182: 
183:     }
184: 
185:     protected function getMappingDependencies($side)
186:     {
187:         $dependencies = array();
188: 
189:         $type     = $side->type();
190:         $config   = $side->config();
191:         $opposing = $this->getOpposing($type);
192: 
193:         return array(
194:             'config'             => $config,
195:             'type'               => $type,
196:             'opposing'           => $opposing,
197:             'pivot'              => $this->plannerPivot($config),
198:             'sideRepository'     => $this->getRepository($config->get($type.'Model')),
199:             'opposingRepository' => $this->getRepository($config->get($opposing.'Model'))
200:         );
201: 
202:         return $dependencies;
203:     }
204: 
205:     protected function getOpposing($type)
206:     {
207:         return $type === 'left' ? 'right' : 'left';
208:     }
209: 
210:     public function linkProperties($config, $left, $right)
211:     {
212:         $this->processProperties('add', $left, $config->leftProperty, $right);
213:         $this->processProperties('add', $right, $config->rightProperty, $left);
214:     }
215: 
216:     public function unlinkProperties($config, $left, $right)
217:     {
218:         $this->processProperties('remove', $left, $config->leftProperty, $right);
219:         $this->processProperties('remove', $right, $config->rightProperty, $left);
220:     }
221: 
222:     public function unlinkAllProperties($side, $entity)
223:     {
224:         $property = $this->getPropertyIfLoaded($entity, $side->propertyName());
225:         if ($property !== null) {
226:             $loader = $property->value();
227:             $items = $loader->accessedEntities();
228:             $type = $side->type();
229:             $itemsProperty = $side->config()->get($type.'Property');
230:             $this->processProperties('remove', $items, $itemsProperty, $entity);
231:             $loader->removeAll();
232:         }
233:     }
234: 
235:     public function resetProperties($side, $items)
236:     {
237:         $opposing = $this->getOpposing($side->type());
238:         $itemsProperty = $side->config()->get($opposing.'Property');
239: 
240:         if(!is_array($items))
241:             $items = array($items);
242: 
243:         foreach($items as $item) {
244:             if(!$this->isEntityValue($item))
245:                 continue;
246:             $property = $this->getPropertyIfLoaded($item, $itemsProperty);
247:             if($property !== null)
248:                 $property->reset();
249:         }
250:     }
251: 
252:     protected function processProperties($action, $owners, $ownerProperty, $items)
253:     {
254:         if (!is_array($owners))
255:             $owners = array($owners);
256: 
257:         if (!is_array($items))
258:             $items = array($items);
259: 
260:         $resetOwners = false;
261:         foreach ($items as $item) {
262:             if (!$this->isEntityValue($item)) {
263:                 $resetOwners = true;
264:                 break;
265:             }
266:         }
267: 
268:         foreach ($owners as $owner) {
269:             if (!$this->isEntityValue($owner))
270:                 continue;
271: 
272:             $property = $this->getPropertyIfLoaded($owner, $ownerProperty);
273:             if($property === null)
274:                 continue;
275: 
276:             if ($resetOwners) {
277:                 $property->reset();
278:                 continue;
279:             }
280: 
281:             $loader = $property->value();
282:             if ($action === 'remove') {
283:                 $loader->remove($items);
284:             } else {
285:                 $loader->add($items);
286:             }
287:         }
288:     }
289: 
290:     public function handleDelete($side, $result, $plan, $sidePath)
291:     {
292:         $config = $side->config();
293:         $opposing = $this->getOpposing($side->type());
294:         
295:         $pivot  = $this->plannerPivot($config);
296:         $query = $pivot->databaseDeleteQuery();
297:         $pivotKey = $config->get($opposing.'PivotKey');
298:         
299:         $repository = $this->getRepository($side->modelName());
300:         $idField = $this->getIdField($repository);
301:         $this->planners->in()->result($query, $pivotKey, $result, $idField, $plan);
302:         $deleteStep = $this->steps->query($query);
303:         $plan->add($deleteStep);
304:     }
305: 
306:     protected function getRepository($modelName)
307:     {
308:         return $this->models->database()->repository($modelName);
309:     }
310: 
311:     protected function getIdField($repository)
312:     {
313:         return $repository->config()->idField;
314:     }
315: 
316: }
317: 
PHPixie 3 API API documentation generated by ApiGen