jeudi 10 novembre 2016

PHP7. Reflection doesn't work from old versions php

I have a php script which was written on php 5.6.19, works on 5.3 version to, with some installed addons.

I decide to try execute it on php7.

The special of the script that I am initializing a class with parameter by reference via creating a new instance with Reflection::class. And there warning then waited variable by reference but value received.

Definition of the class' constructor method tried to create an instance from:

public function __construct($user, IDatabase &$repository, $errors = null);

Sample of code where this constructor is used:

// define manager type to create (all managers has the same constructor)
$manager = $managersNamespace . ucfirst($this->_manager) . "Manager";
// trying to create the manager
// !!!And here a Warning occurs
$reflect = new \ReflectionClass($manager);
$manager = $reflect->newInstance($user, $database, $errors);

After these I am invoking a method I need, and here the fatal error with stopped the script:

$method = "show" . ucfirst($this->_page) . "Page";
$reflect->getMethod($method)->invoke($manager);

I didn't see any changes in documentation. Anyone had the same issue?





Aucun commentaire:

Enregistrer un commentaire