Абстрагировать класс от PHP-скрипта? - PullRequest
0 голосов
/ 08 августа 2009

Просто интересно, есть ли в любом случае PHP просто запустить определенный класс по имени файла (controller.php)?

Я не хочу требовать, включать или видеть какие-либо признаки этого в controller.php. Я просто хочу, чтобы это было там.

РЕДАКТИРОВАТЬ: ОК. Что я имею в виду под run - это скрытый от меня файл, я говорю что-то вроде ... $ class = new Class (); Таким образом, я могу использовать $ class в моем controller.php

ТАКЖЕ: я использую PHP 5.3 - так что у меня есть пространства имен и еще много чего.

В любом случае делать это?

Спасибо! Мэтт Мюллер

Ответы [ 2 ]

5 голосов
/ 08 августа 2009

Я собираюсь сделать большое предположение о том, что вы на самом деле имеете в виду. Я думаю, что вы просто хотите отделить ваш класс PHP-файл от основного файла без каких-либо очевидных включений.

Если это так, вы можете использовать функцию __ autoload () :

<?php
function __autoload($class_name) {
    require_once $class_name . '.php';
}

$obj  = new MyClass1();
$obj2 = new MyClass2(); 
?>

Это заметит, что MyClass1 и MyClass2 еще не определены, и вызовет функцию автозагрузки с именами классов в качестве параметра. Таким образом, MyClass1.php и MyClass2.php будут требовать require_once'd.

3 голосов
/ 08 августа 2009

Вы можете автоматически загрузить файл класса , в какой-то момент вам все равно придется создавать экземпляр класса вручную. Или вам нужно будет включить сценарий, который создает его для вас. Или вы перепроектируете свое приложение так, чтобы ваш реальный скрипт был включен другим скриптом, который создает для вас экземпляр класса.

Вкратце: включение файла может быть автоматизировано, создание экземпляра класса не так уж и много.

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