クラスライブラリへのパラメーターの受け渡しに関するstackoverflowに関する他の投稿(たとえば、CodeIgniterのライブラリに複数のパラメーターを渡す方法)を読んだり、ライブラリセクションのユーザーマニュアルも読んだりしました。
私が疑問に思っているのは、パラメーターを配列としてではなく、個々の変数として渡すことができるかどうかです。
私のクラス(codeigniterソリューションの外部で使用したい)は次のようになります。
<?php
class ABC
{
private $_hostname;
private $_password;
private $_username;
private $_connection;
private $_data;
private $_timeout;
private $_prompt;
public function __construct($hostname, $password, $username = "", $timeout = 10)
{
set_include_path(get_include_path() . PATH_SEPARATOR . '/var/www/phpseclib');
include('Net/SSH2.php');
$this->_hostname = $hostname;
$this->_password = $password;
$this->_username = $username;
} // __construct
public function connect()
{
}
public function dosomething()
{
}
私は私が次のようなことをすることができることを知っています:
$params = array('_hostname' => $ip, '_password' => 'password', '_username' => '');
$this->load->library($classname,$params );
ただし、このクラスはCI以外のソリューションで再利用されるため、配列は使用したくありません。標準のinclude()ステートメントを使用するように戻してみました。したがって、コードは次のようになります。
set_include_path(get_include_path() . PATH_SEPARATOR . 'var/www/myCIapp/application/libraries');
include_once('libraries/'.$classname.'.php');
しかし、インクルードファイルが見つからないと不平を言っています。具体的なメッセージは次のとおりです。
PHPエラーが発生しました
重大度:警告
メッセージ:include_once()[function.include]:インクルードのために'libraries / HP5406_ssh.php'を開くことができませんでした(include_path ='。:/ usr / share / php:/ usr / share / pear:var / www / myCIapp / application /ライブラリ/')
ファイル名:models / ss_model.php
行番号:88
任意の提案をいただければ幸いです。読んでくれてありがとう...