Пространства имен в контексте структуры - PullRequest
1 голос
/ 21 декабря 2011

Это хорошая практика, или это может быть, заставить пользователя использовать пространства имен в контексте структуры?Я разрабатываю фреймворк (да, я знаю, в этом нет необходимости, потому что эти потрясающие фреймворки уже созданы; поэтому нет необходимости указывать, что я изобретаю колесо без причины; это только для меня; ямне нужно было создать фреймворк, чтобы быть в согласии с самим собой;) и мне было интересно, было бы приемлемо заставить пользователя использовать что-то вроде:

$post = new Model\Post($id); // for models
$html = new Library\Html(); // for library classes
$ajax = new Helper\Ajax(); // for helpers
# ... and so on

.Мне нужно это, чтобы иметь возможность использовать функцию автозагрузки и автоматически проверять правильную папку класса (модель /, библиотека /, помощник / ... и т. Д.) По пространству имен класса.

Илия должен просто пойти с универсальным $this, ссылающимся на класс родительского контроллера, и загрузить такие вещи, как:

$post = $this->model('Post');
$html = $this->library('Html');
$ajax = $this->helper('Ajax');

Если последнее, как я должен управлять параметрами, которые могут быть отправлены в конструктор этого класса?

1 Ответ

2 голосов
/ 21 декабря 2011

Использовать пространства имен. PHP 5.2 больше не поддерживается активно, а версия 5.3 считается стабильной. Не пишите новый код со старыми методологиями, если вы не пытаетесь поддерживать устаревшую систему.

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

...