PHP:在不同的类构造函数

时间:2017-04-13 16:40:35

标签: php ssh constructor

在PHP方面,我仍然相当环保。不太确定问题出在哪里。我使用的是一个非常简单的SSH2类(https://www.phpclasses.org/browse/file/34450.html),它可以很好地满足我的需求,或者直到现在为止。

这是我设置的课程。我将ssh连接放入构造函数中,并尝试在其余的类函数中使用$ this-> ssh。

include ("/var/www/html/class/ssh2_class.php"); ##https://www.phpclasses.org/browse/file/34450.html

class crontab {

   function __construct($host,$params) {
      $this->host = $host;
      $this->pubkey  =  $params['pubkey'];
      $this->privkey =  $params['privkey'];
      $this->usr     =  $params['user'];
      $this->port    =  $params['port'];
      $this->secret  =  $params['secret'];

      $this->ssh = new SSH2($this->host)
         or die ("Unable to connect to ". $this->host ."!");
      $this->ssh->auth($this->usr, $this->pubkey, $this->privkey, $this->secret)
         or die ("Unable to authenticate to ". $this->host ."!");
   }

   function show($sudo) {
      if ($sudo) { $sudo = "sudo"; } else { $sudo = ""; }
      $cmd = $sudo."$sudo crontab -l";
      $this->ssh->exec($cmd);
      return ($this->ssh->output);
   }

我遇到的问题是上面 show 函数的返回行。 $ this-> ssh-> exec($ cmd); 无问题地运行;我只是通过触摸文件来测试它。

PHP Notice:  Undefined property: SSH2::$output in /home/mackay_c/scripts/deploy/deploy.class.php on line 26

我在网上搜索过,但为什么会发生这种情况我感到有些不知所措。 SSH2类中的'output'函数是:

 function output() {
    return stream_get_contents($this->stream);

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:1)

 return ($this->ssh->output())