Ошибка с newInstanceArgs в ReflectionClass - PullRequest
0 голосов
/ 16 июня 2011

Следующий скрипт работает отлично,

$transport = new Amazonses_App_Mail_Transport_AmazonSES(
        array(
            'accessKey' => '*******************',
            'privateKey' => '***********************'
            )
        );

Но, когда он переносится следующим образом, выдает ошибку.

$mailConfig = array(
          'class' => 'Amazonses_App_Mail_Transport_AmazonSES',
          'args' => array( 'accessKey' => '*******************',
            'privateKey' => '***********************')
        );
 try {

        $args = ( !empty($mailConfig['args']) ? $mailConfig['args'] : array() );

        $r = new ReflectionClass($mailConfig['class']);


            $transport = $r->newInstanceArgs($args);


        if( !($transport instanceof Zend_Mail_Transport_Abstract) ) {
          $transport = false;
        } 
      } catch( Exception $e ) {

        $transport = false;
        throw $e;
      }

Amazonses_App_Mail_Transport_AmazonSES несет __construct. Но, не удается вернуть $transport = $r->newInstanceArgs($args);

Есть идеи почему?

1 Ответ

1 голос
/ 26 мая 2012

Вы пробовали, заменив

$r = new ReflectionClass($mailConfig['class']);
$transport = $r->newInstanceArgs($args);

от

$className = $mailConfig['class'];
$transport = new $className($args);

Я думаю, что это должно работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...