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\Database\Type\SQL;
  4: 
  5: abstract class Parser extends \PHPixie\Database\Parser
  6: {
  7:     protected $fragmentParser;
  8:     protected $conditionsParser;
  9:     protected $supportedJoins;
 10: 
 11:     public function __construct($database, $driver, $config, $fragmentParser, $conditionsParser)
 12:     {
 13:         parent::__construct($database, $driver, $config);
 14:         $this->fragmentParser = $fragmentParser;
 15:         $this->conditionsParser = $conditionsParser;
 16:     }
 17: 
 18:     public function parse($query)
 19:     {
 20:         $expr = $this->database->sqlExpression();
 21:         $type = $query->type();
 22: 
 23:         switch ($type) {
 24:             case 'select':
 25:                 $this->selectQuery($query, $expr);
 26:                 break;
 27:             case 'insert':
 28:                 $this->insertQuery($query, $expr);
 29:                 break;
 30:             case 'update':
 31:                 $this->updateQuery($query, $expr);
 32:                 break;
 33:             case 'delete':
 34:                 $this->deleteQuery($query, $expr);
 35:                 break;
 36:             case 'count':
 37:                 $this->countQuery($query, $expr);
 38:                 break;
 39:             default:
 40:                 throw new \PHPixie\Database\Exception\Parser("Query type $type is not supported");
 41:         }
 42: 
 43:         return $expr;
 44:     }
 45: 
 46:     protected function selectQuery($query, $expr)
 47:     {
 48:         $expr->sql = "SELECT ";
 49:         $this->appendFields($query, $expr);
 50: 
 51:         if ($query->getTable() !== null) {
 52:             $expr->sql.= " FROM ";
 53:             $this->appendTable($query, $expr);
 54:         }
 55: 
 56:         $this->appendJoins($query, $expr);
 57:         $this->appendConditions('where', $query->getWhereConditions(), $expr);
 58:         $this->appendGroupBy($query, $expr);
 59:         $this->appendConditions('having', $query->getHavingConditions(), $expr);
 60:         $this->appendOrderBy($query, $expr);
 61:         $this->appendLimitOffset($query, $expr);
 62:         $this->appendUnion($query, $expr);
 63:     }
 64: 
 65:     protected function insertQuery($query, $expr)
 66:     {
 67:         $expr->sql = "INSERT INTO ";
 68: 
 69:         $this->appendTable($query, $expr, true);
 70:         $this->appendInsertValues($query, $expr);
 71:     }
 72: 
 73:     protected function updateQuery($query, $expr)
 74:     {
 75:         $expr->sql = "UPDATE ";
 76: 
 77:         $this->appendTable($query, $expr, true);
 78:         $this->appendJoins($query, $expr);
 79:         $this->appendUpdateValues($query, $expr);
 80:         $this->appendConditions('where', $query->getWhereConditions(), $expr);
 81:         $this->appendOrderBy($query, $expr);
 82:         $this->appendLimitOffset($query, $expr);
 83: 
 84:         return $expr;
 85:     }
 86: 
 87:     protected function deleteQuery($query, $expr)
 88:     {
 89:         $expr->sql = "DELETE FROM ";
 90: 
 91:         $this->appendTable($query, $expr, true);
 92:         $this->appendJoins($query, $expr);
 93:         $this->appendConditions('where', $query->getWhereConditions(), $expr);
 94:         $this->appendOrderBy($query, $expr);
 95:         $this->appendLimitOffset($query, $expr);
 96: 
 97:         return $expr;
 98:     }
 99: 
100:     protected function countQuery($query, $expr)
101:     {
102:         $expr->sql .= "SELECT COUNT(1) AS ";
103:         $this->fragmentParser->appendColumn('count', $expr);
104:         $expr->sql .= " FROM ";
105:         $this->appendTable($query, $expr, true);
106:         $this->appendJoins($query, $expr);
107:         $this->appendConditions('where', $query->getWhereConditions(), $expr);
108:     }
109: 
110:     protected function appendTable($query, $expr, $required = false)
111:     {
112:         $table = $query->getTable();
113: 
114:         if ($required && $table === null) {
115:             $type = strtoupper($query->type());
116:             throw new \PHPixie\Database\Exception\Parser("Table not specified for $type query");
117:         }
118: 
119:         $this->fragmentParser->appendTable($table['table'], $expr, $table['alias']);
120:     }
121: 
122:     protected function appendInsertValues($query, $expr)
123:     {
124:         if (($insertData = $query->getBatchData()) !== null) {
125:             $columns = $insertData['columns'];
126:             $rows    = $insertData['rows'];
127:         
128:         }elseif(($data = $query->getData()) !== null) {
129:             $columns = array_keys($data);
130:             $rows    = array(array_values($data));
131:              
132:         }else{
133:             $columns  = array();
134:             $rows     = array();
135:         }
136:         
137:         if (empty($columns) && empty($rows) ) {
138:             return $this->appendEmptyInsertValues($expr);
139:         }
140: 
141:         if (!empty($columns)) {
142:             $expr->sql .= "(";
143:             
144:             foreach ($columns as $key => $column) {
145:                 if($key > 0)
146:                     $expr->sql.= ', ';
147:                 $this->fragmentParser->appendColumn($column, $expr);
148:             }
149:             
150:             $expr->sql .= ")";
151:             
152:         }
153:         
154:         $expr->sql .= " ";
155: 
156:         if (!$this->appendSubquery($expr, $rows)) {
157:             $expr->sql .="VALUES ";
158:             $columnsCount = count($columns);
159:             
160:             foreach ($rows as $rowKey => $row) {
161:                 
162:                 if (count($row) != $columnsCount)
163:                     throw new \PHPixie\Database\Exception\Parser("The number of keys does not match the number of values for bulk insert.");
164:                 
165:                 if($rowKey > 0)
166:                     $expr->sql.= ', ';
167:                 
168:                 $expr->sql.= '(';
169:                 foreach ($row as $valueKey => $value) {
170:                     if($valueKey > 0)
171:                         $expr->sql.= ', ';
172:                     
173:                     $this->fragmentParser->appendValue($value, $expr);
174:                 }
175:                 $expr->sql.= ')';
176:             }
177:         }
178: 
179:     }
180: 
181:     protected function appendEmptyInsertValues($expr)
182:     {
183:         $expr->sql.= "() VALUES ()";
184:     }
185: 
186:     protected function appendUpdateValues($query, $expr)
187:     {
188:         $expr->sql .= " SET ";
189:         $set = $query->getSet();
190:         $increment = $query->getIncrement();
191: 
192:         if(empty($set) && empty($increment))
193:             throw new \PHPixie\Database\Exception\Parser("Empty data passed to the UPDATE query");
194: 
195:         $first = true;
196:         foreach ($set as $column => $value) {
197:             if (!$first) {
198:                 $expr->sql.= ', ';
199:             } else {
200:                 $first = false;
201:             }
202:             $this->fragmentParser->appendColumn($column, $expr);
203:             $expr->sql.= " = ";
204:             $this->fragmentParser->appendValue($value, $expr);
205:         }
206: 
207:         foreach ($increment as $column => $amount) {
208:             if (!$first) {
209:                 $expr->sql.= ', ';
210:             } else {
211:                 $first = false;
212:             }
213:             $this->fragmentParser->appendColumn($column, $expr);
214:             $expr->sql.= " = ";
215:             $this->fragmentParser->appendColumn($column, $expr);
216:             if ($amount >= 0) {
217:                 $expr->sql.=' + ';
218:             } else {
219:                 $expr->sql.=' - ';
220:                 $amount = 0 - $amount;
221:             }
222: 
223:             $this->fragmentParser->appendValue($amount, $expr);
224:         }
225:     }
226: 
227:     protected function appendJoins($query, $expr)
228:     {
229:         foreach ($query->getJoins() as $join) {
230: 
231:             if (!isset($this->supportedJoins[$join['type']]))
232:                 throw new \PHPixie\Database\Exception\Parser("Join type '{$join['type']}' is not supported by this database driver");
233: 
234:             $expr->sql.= ' '.$this->supportedJoins[$join['type']]." JOIN ";
235:             $this->fragmentParser->appendTable($join['table'], $expr, $join['alias']);
236:             $this->appendConditions('on', $join['container']->getConditions(), $expr);
237:         }
238:     }
239: 
240:     protected function appendConditions($prefix, $conditions, $expr)
241:     {
242:         if(empty($conditions))
243: 
244:             return;
245: 
246:         $expr->sql.= ' '.strtoupper($prefix).' ';
247:         $expr->append($this->conditionsParser->parse($conditions));
248:     }
249: 
250:     protected function appendGroupBy($query, $expr)
251:     {
252:         $groupBy = $query->getGroupBy();
253: 
254:         if (empty($groupBy))
255:             return;
256: 
257:         $expr->sql.= " GROUP BY ";
258:         foreach ($groupBy as $key => $column) {
259:             if ($key > 0)
260:                 $expr->sql.= ', ';
261: 
262:             $this->fragmentParser->appendColumn($column, $expr);
263:         }
264:     }
265: 
266:     protected function appendOrderBy($query, $expr)
267:     {
268:         $order = $query->getOrderBy();
269: 
270:         if (empty($order))
271:             return;
272: 
273:         $expr->sql.= " ORDER BY ";
274:         foreach ($order as $key => $orderBy) {
275:             $field = $orderBy->field();
276:             $dir   = $orderBy->direction();
277: 
278:             if ($key > 0)
279:                 $expr->sql.= ', ';
280: 
281:             $this->fragmentParser->appendColumn($field, $expr);
282:             $expr->sql.= ' '.strtoupper($dir);
283:         }
284:     }
285: 
286:     protected function appendLimitOffset($query, $expr)
287:     {
288:         $limit = $query->getLimit();
289:         $offset = $query->getOffset();
290: 
291:         $this->appendLimitOffsetValues($expr, $limit, $offset);
292:     }
293:     
294:     protected function appendLimitOffsetValues($expr, $limit, $offset)
295:     {
296:         if ($limit !== null) {
297:             $expr->sql.= " LIMIT $limit";
298:         }
299:         
300:         if ($offset !== null) {
301:             $expr->sql.=" OFFSET $offset";
302:         }
303:     }
304: 
305:     protected function appendUnion($query, $expr)
306:     {
307:         foreach ($query->getUnions() as $union) {
308:             $query = $union['query'];
309:             $all = $union['all'];
310:             $expr->sql.= " UNION ";
311:             if ($all)
312:                 $expr->sql.= "ALL ";
313:             
314:             if (!$this->appendSubquery($expr, $query)) {
315:                 throw new \PHPixie\Database\Exception\Parser("Union parameter must be either a SELECT Query object or SQL expression object");
316:             }
317:         }
318:     }
319:     
320:     protected function appendSubquery($expr, $query)
321:     {
322:         if ($query instanceof \PHPixie\Database\Type\SQL\Query && $query->type() === 'select') {
323:             $expr->append($query->parse());
324:             
325:         } elseif ($query instanceof \PHPixie\Database\Type\SQL\Expression) {
326:             $expr->append($query);
327:             
328:         }else{
329:             return false;
330:         }
331:         
332:         return true;
333:     }
334:     
335:     protected function appendFields($query, $expr)
336:     {
337:         $fields = $query->getFields();
338: 
339:         if (empty($fields)) {
340:             $expr->sql.= '*';
341: 
342:             return;
343:         }
344: 
345:         $first = true;
346:         foreach ($query->getFields() as $key => $field) {
347:             if (!$first) {
348:                 $expr->sql.= ', ';
349:             }else
350:                 $first = false;
351: 
352:             if (!is_numeric($key)) {
353:                 $this->fragmentParser->appendColumn($field, $expr);
354:                 $expr->sql.=" AS ".$this->fragmentParser->quote($key);
355:             } else {
356:                 $this->fragmentParser->appendColumn($field, $expr);
357:             }
358:         }
359:     }
360: 
361: }
362: 
PHPixie 3 API API documentation generated by ApiGen