Are there alternative approaches to accessing controller data in a model in PHP development?

When working with PHP MVC frameworks, it is generally not recommended to directly access controller data in a model, as it can lead to tight coupling and violate the separation of concerns principle. Instead, a common approach is to pass the necessary data from the controller to the model through method parameters or setter methods.

// Controller
$data = ['name' => 'John', 'age' => 30];
$model = new Model();
$model->processData($data);

// Model
class Model {
    public function processData($data) {
        // Process the data here
        $name = $data['name'];
        $age = $data['age'];
        // Do something with the data
    }
}