Здравствуйте. Мне нужно вызвать в файле контроллера my/my.php методы, из другого контроллера my/args.php. Кроме как $Controller = $this->load->controllet('my/args/методы' ,$data), ни как не обратиться к ним, как нибудь попроще? Как наподобе обращения к library, но не помещая туда свой класс с методами.
$this->load->controller('my/args_lib'); $sp = new ControllerMyArgsLib($this->registry); $aa = $sp->ppp(); var_dump($aa); Но почему не работает, если не передавать регистр $sp = new ControllerMyArgsLib(); ???
Здравствуйте А зачем вам проще? И так же вроде просто? Можете создать свой отдельный класс и вызывать его. Ну и вы смотрели конструктор базового контроллера?
А зачем вам проще? И так же вроде просто? Методов много. каждый раз писать $this->load->controllet('my/args/методы' ,$data) мне лень )))
Так а что у вас за методы? Например, если вам там только доступ к БД нужен и не нужно ничего выводить. Сделайте класс с конструктором с передачей коннекта к БД. И добавьте этот класс куда-нибудь в каталог system в свою директорию
В принципе, паттерн MVC не противоречит возможности существования обычных классов (т.е. не обязательно все в контроллерах и моделях хранить).
Там в основном хочу сделать функции обработки строк, обращения к серверу по API , что бы не загромождать код. Получается большая портянка. Жутко не удобно елозить по ней. "Сделайте класс с конструктором......" для меня конструктор, это что то очень серьезное. Я его не понимаю. )))) Спасибо.
Сделайте обычный класс в отдельном файле. Если не понимаете конструктор, то сделайте обычное protected поле, добавьте метод в стиле init (&$db), амперсант (&) это для передачи по ссылке. Ну и подключите класс до объявления контроллера через require_once. Далее просто создавайте класс в нужном месте контроллера, добавляйте вызов obj->init($this->db) и пользуйтесь методами.
Что-то в стиле: PHP: require_once DIR_SYSTEM . 'MyLib/MyClass.php';class ControllerExtension... extends Controller{ .... public function index() { ... $my = new MyClass(); $my->init($this->db); .... $my->someMethod($data); }
Ну а сам класс примерно так: PHP: class MyClass{ protected $db; public function init(&$db) { $this->db = &$db; } ... public function someMethod($data) { .... }