W3cubDocs

/CakePHP 4.1

Class ContextFactory

Factory for getting form context instance based on provided data.

Namespace: Cake\View\Form

Properties summary

Method Summary

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)

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)

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

static

get() public

get(\Cake\Http\ServerRequest $request, array $data)

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

Context provider.

Throws

RuntimeException
When a context instace cannot be generated for given entity.

Property Detail

$providers protected

Context providers.

Type

array

© 2005–present The Cake Software Foundation, Inc.
Licensed under the MIT License.
CakePHP is a registered trademark of Cake Software Foundation, Inc.
We are not endorsed by or affiliated with CakePHP.
https://api.cakephp.org/4.1/class-Cake.View.Form.ContextFactory.html