Reference another component from within a component in CakePHP 4

Referencing components in CakePHP 4 from within another component

This example shows you how to reference another component from within a separate component in CakePHP 4. For example, you can call functions in Component A from Component B.

First, load your component in your CakePHP app. 

One method to do this is to add the following to your initialize function in AppController.php:
/src/Controller/AppController.php

public function initialize(): void {
        parent::initialize();
....
         $this->loadComponent("componentA");
...

 

Next, reference the loaded componentAComponent (/src/Controller/Component/componentAComponent.php) from within componentBComponent (/src/Controller/Component/componentBComponent.php)

First, In componentBComponent.php, load componentA in your Constructor or initialize function, by adding the following:

function __construct() {
     ...
     $this->componentA = new componentA();
     ...
}

 

Now, you can use componentA within your componentBComponent.php, like follows:

function myFunction() {
     ...
     $someValue = $this->componentA->getSomeValue();
     ...
}

 

Share this Post