CakePHP
  • Documentation
    • Book
    • API
    • Videos
    • Reporting Security Issues
    • Privacy Policy
    • Logos & Trademarks
  • Business Solutions
  • Swag
  • Road Trip
  • Team
  • Community
    • Community
    • Get Involved
    • Issues (Github)
    • Bakery
    • Featured Resources
    • Training
    • Meetups
    • My CakePHP
    • CakeFest
    • Newsletter
    • Linkedin
    • YouTube
    • Facebook
    • Twitter
    • Mastodon
    • Help & Support
    • Forum
    • Stack Overflow
    • IRC
    • Slack
    • Paid Support
CakePHP

C CakePHP 3.10 Red Velvet API

  • Project:
    • CakePHP
      • CakePHP
      • Authentication
      • Authorization
      • Chronos
      • Elastic Search
      • Queue
  • Version:
    • 3.10
      • 5.2
      • 5.1
      • 5.0
      • 4.6
      • 4.5
      • 4.4
      • 4.3
      • 4.2
      • 4.1
      • 4.0
      • 3.10
      • 3.9
      • 3.8
      • 3.7
      • 3.6
      • 3.5
      • 3.4
      • 3.3
      • 3.2
      • 3.1
      • 3.0
      • 2.10
      • 2.9
      • 2.8
      • 2.7
      • 2.6
      • 2.5
      • 2.4
      • 2.3
      • 2.2
      • 2.1
      • 2.0
      • 1.3
      • 1.2

Namespaces

  • Global
  • Cake
    • Auth
    • Cache
    • Collection
    • Command
    • Console
    • Controller
    • Core
    • Database
    • Datasource
    • Error
    • Event
    • Filesystem
    • Form
    • Http
    • I18n
    • Log
    • Mailer
    • Network
    • ORM
    • Routing
    • Shell
    • TestSuite
    • Utility
    • Validation
    • View
      • Exception
      • Form
      • Helper
      • Widget

Class ContextFactory

Factory for getting form context instance based on provided data.

Namespace: Cake\View\Form

Property Summary

  • $providers protected
    array

    Context providers.

Method Summary

  • __construct() public

    Constructor.

  • addProvider() public

    Add a new context type.

  • createWithDefaults() public static

    Create factory instance with providers "array", "form" and "orm".

  • get() public

    Find the matching context for the data.

Method Detail

__construct() ¶ public

__construct(array $providers = [])

Constructor.

Parameters
array $providers optional

Array of provider callables. Each element should be of form ['type' => 'a-string', 'callable' => ..]

addProvider() ¶ public

addProvider(string $type, callable $check): $this

Add a new context type.

Form context types allow FormHelper to interact with data providers that come from outside CakePHP. For example if you wanted to use an alternative ORM like Doctrine you could create and connect a new context class to allow FormHelper to read metadata from doctrine.

Parameters
string $type

The type of context. This key can be used to overwrite existing providers.

callable $check

A callable that returns an object when the form context is the correct type.

Returns
$this

createWithDefaults() ¶ public static

createWithDefaults(array $providers = []): Cake\View\Form\ContextFactory

Create factory instance with providers "array", "form" and "orm".

Parameters
array $providers optional

Array of provider callables. Each element should be of form ['type' => 'a-string', 'callable' => ..]

Returns
Cake\View\Form\ContextFactory

get() ¶ public

get(Cake\Http\ServerRequest $request, array $data = []): Cake\View\Form\ContextInterface

Find the matching context for the data.

If no type can be matched a NullContext will be returned.

Parameters
Cake\Http\ServerRequest $request

Request instance.

array $data optional

The data to get a context provider for.

Returns
Cake\View\Form\ContextInterface
Throws
RuntimeException
when the context class does not implement the ContextInterface.

Property Detail

$providers ¶ protected

Context providers.

Type
array
OpenHub
Pingping
Linode
  • Business Solutions
  • Showcase
  • Documentation
  • Book
  • API
  • Videos
  • Reporting Security Issues
  • Privacy Policy
  • Logos & Trademarks
  • Community
  • Get Involved
  • Issues (Github)
  • Bakery
  • Featured Resources
  • Training
  • Meetups
  • My CakePHP
  • CakeFest
  • Newsletter
  • Linkedin
  • YouTube
  • Facebook
  • Twitter
  • Mastodon
  • Help & Support
  • Forum
  • Stack Overflow
  • IRC
  • Slack
  • Paid Support

Generated using CakePHP API Docs