私は、このクラスをしたと仮定:クラスプロパティのクラスを拡張しますか?
class Loader
{
function library($name)
{
require $name . '.php';
}
}
、今私はこのように、私のコントローラ内のクラスfoo
($名):
class Controller
{
function __construct()
{
$this->load = new Loader();
}
}
class Child_Controller extends Controller
{
function __construct()
{
parent::__construct();
$this->load->library('foo');
init();
}
}
は、例えば、アクセス可能です内に含まれるクラス$this
?以下のような:print
はfoo
の方法である
class Child_Controller extends Controller
{
//..construct above..
function init()
{
$this->print('some text');
}
}
は、クラスが含ま:
class Foo
{
function print($message)
{
echo "your message: " . $message;
}
}
ので、合計し、私は、$this
で、子コントローラに含める含まれるクラスのすべてのメソッドをしたいですベースコントローラーによって拡張されたLoaderクラスによって呼び出されます。これは可能ですか?
それとも別のアイデア、Child_Controllerに動的に含まれるクラスの名前を取るプロパティを作成し、そう、ためfoo
のメソッドを呼び出すことになる私のような何かを行うことができます:あなたは、ノー
$this->Foo->print('some text');
いいえ、それは不可能です。また、同じ名前のクラスメソッドと競合する可能性があります。新しいプロパティを作成し、クラスのインスタンスを割り当てます。 –
はい、できます。しかし、それは多くの作業を必要とします。実際には、オートロード/コンポーザーがあなたが探しているものです。 – felipsmartins