Class ContextFactory
Factory for getting form context instance based on provided data.
Properties summary
-
$providers
protectedContext providers.array
Method Summary
- __construct() publicConstructor.
- addProvider() publicAdd a new context type.
- Create factory instance with providers "array", "form" and "orm".
- get() publicFind the matching context for the data.
Method Detail
__construct()source public
__construct( array $providers [] )
Constructor.
Parameters
- array
$providers
optional [] Array of provider callables. Each element should be of form
['type' => 'a-string', 'callable' => ..]
addProvider()source 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()source 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
Cake\View\Form\ContextFactory
get()source 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
RuntimeExceptionwhen the context class does not implement the ContextInterface.
Properties detail
© 2005–2017 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/3.4/class-Cake.View.Form.ContextFactory.html