Как мне установить следующую архитектуру - PullRequest
0 голосов
/ 11 января 2010

Извините, если название немного расплывчато, я не знаю, как еще его описать.

Я делаю свои собственные маленькие рамки. Дела идут хорошо, и мне нравится смотреть на темы, которые мне обычно не нужно проверять, поскольку «магия» делает это для меня.

Мой фреймворк основан на PHP, и я хочу, чтобы он запускался из одного экземпляра. Под этим я подразумеваю следующее.

class Controller_Name extends Controller {

  public function __construct() {
    $this->load->library('session');
    $this->load->model('Model_Name');
  }

}

class Model_Name extends Model {

  public function something() {
    if ($this->session->get($something))
      // Do something Amazing
  }

}

Как показано выше, я хочу, чтобы все контроллеры / модели / представления совместно использовали уже загруженные библиотеки.

Так что, если класс загружен в контроллер, я смогу использовать его в файле представления.

Кто-нибудь знает, как это делается? Можете ли вы указать мне направление статьи, освещающей это, как это называется, или вызов некоторых функций php полностью или частично выполняет эту работу.

Как всегда, любые ответы приветствуются.

Ответы [ 2 ]

0 голосов
/ 11 января 2010

Если ваша цель - убедиться, что все зависимости внутри ваших классов разрешены, взгляните на Сервисные контейнеры из Компонента внедрения зависимостей Symfony или Stubbles рамки.

0 голосов
/ 11 января 2010

Ваш контроллер может реализовать __get и перехватывать запросы для загруженных библиотек. В идеале вы должны хранить библиотеки в статическом поле для повторного использования, о котором вы говорили, что вам нужно.

Кроме того, чтобы заставить нагрузку вести себя так, как вы хотите, я бы лично создал класс Loader и создал его экземпляр в Controller. Затем в методе __get magic я бы заставил его извлечь его из загрузчика.

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