ФорумПрограммированиеPHP для идиотовPHP и ООП → Делегирование

Делегирование

  • Lirck

    Сообщения: 1658 Репутация: N Группа: Джедаи

    Spritz 30 сентября 2008 г. 15:54, спустя 6 минут 46 секунд

    <?php

    error_reporting(E_ALL);

    class Hello
    {
    public function world(){
    echo "helou wort";
    }
    }

    class Loader
    {
    public static function loadByName($name){
    return new $name;
    }
    }

    class B
    {
    public function load($file)
    {
    $this->$file = Loader::loadByName($file);
    }
    }

    class Test extends B
    {
    public function __construct(){
    $this->load('Hello');
    }
    }

    $x = new Test;


    во чё я сделал, ток нипашет =((


    ты что ZF используешь?


    Нет
  • Trej Gun

    Сообщения: 5305 Репутация: N Группа: в ухо

    Spritz 30 сентября 2008 г. 15:56, спустя 1 минуту 35 секунд

    я ща занят потом те отвечу

  • Lirck

    Сообщения: 1658 Репутация: N Группа: Джедаи

    Spritz 30 сентября 2008 г. 15:57, спустя 34 секунды

    теперь пашет =)))
  • Lirck

    Сообщения: 1658 Репутация: N Группа: Джедаи

    Spritz 30 сентября 2008 г. 15:57, спустя 22 секунды

    я ща занят потом те отвечу

    спс, я уже сделал вроде =)
  • Lirck

    Сообщения: 1658 Репутация: N Группа: Джедаи

    Spritz 30 сентября 2008 г. 16:09, спустя 12 минут 6 секунд

    бля
    этож пиздец какойто
  • Trej Gun

    Сообщения: 5305 Репутация: N Группа: в ухо

    Spritz 30 сентября 2008 г. 16:26, спустя 16 минут 45 секунд

    блоги на пыха ру
  • Lirck

    Сообщения: 1658 Репутация: N Группа: Джедаи

    Spritz 30 сентября 2008 г. 16:27, спустя 1 минуту 27 секунд

    (:
  • Lirck

    Сообщения: 1658 Репутация: N Группа: Джедаи

    Spritz 30 сентября 2008 г. 16:31, спустя 4 минуты 2 секунды

    Получается, что засоряется пространство имён (метод load). Тогда нужно не через метод загружать, а через свойство. Короче я пришёл к тому, что было в начале ):
  • Lirck

    Сообщения: 1658 Репутация: N Группа: Джедаи

    Spritz 30 сентября 2008 г. 17:56, спустя 1 час 24 минуты 40 секунд

    Новое сообщение в теме!
  • Lirck

    Сообщения: 1658 Репутация: N Группа: Джедаи

    Spritz 30 сентября 2008 г. 18:22, спустя 26 минут 10 секунд

    В CodeIgniter’е это как то реализовано:
    http://code-igniter.ru/user_guide/libraries/parser.html
    Ща в коде покопаюсь. Людии, хелп!
  • adw0rd

    Сообщения: 22959 Репутация: N Группа: в ухо

    Spritz 30 сентября 2008 г. 18:36, спустя 14 минут 23 секунды

    Людии, хелп!


    ты об этом?


    <?php

    error_reporting(E_ALL);

    class Hello
    {
    public function world(){
    echo "helou wort";
    }
    }

    class Loader
    {
    public static function loadByName($name){
    return new $name;
    }
    }

    class B
    {
    public function load($file)
    {
    $this->$file = Loader::loadByName($file);
    }
    }

    class Test extends B
    {
    public function __construct(){
    $this->load('Hello');
    }
    }

    $x = new Test;


    во чё я сделал, ток нипашет =((
    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • Lirck

    Сообщения: 1658 Репутация: N Группа: Джедаи

    Spritz 30 сентября 2008 г. 18:39, спустя 2 минуты 51 секунду

    Да нет, это вообще неправильно. На первой странице темы есть описание проблемы. Кто нибудь вообще работал с CodeIgniter’ом? Вот мне нужно сделать как в нём.
    http://code-igniter.ru/user_guide/libraries/parser.html — тут немного есть инфы, если непонятно.
  • adw0rd

    Сообщения: 22959 Репутация: N Группа: в ухо

    Spritz 30 сентября 2008 г. 18:47, спустя 7 минут 31 секунду

    aivee, я не работал с CodeIgniter и не хочу, по собственным причинам. Так что без меня решайте, но если есть общие вопросы - задавай :)
    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • Lirck

    Сообщения: 1658 Репутация: N Группа: Джедаи

    Spritz 30 сентября 2008 г. 18:55, спустя 8 минут 11 секунд

    Да я тоже не хочу. Просто хочу сделать как у него загрузку библиотек. (Библиотека — это обычный класс)

    Есть класс Loader, который нужен для загрузки различных файлов (моделей, видов, библиотек и т.д.). Я его код приводить не буду, приведу лишь пример:
    class Loader
    {
    public function library() {}

    public function model() {}


    }


    То есть для каждого типа файла есть свой метод.

    Там, в контроллере, чтобы загрузить библиотеку, нужно выполнить:
    $this->load->library('имя_библиотеки');

    $this->load — это свойство, в котором находится объект Loader. ($this->load = new Loader;)

    А чтобы вызвать уже загруженную библиотеку, нужно выполнить:
    $this->имя_библиотеки->имя_метода_библиотеки()
    — вот это я и не понимаю как сделать.
  • Lirck

    Сообщения: 1658 Репутация: N Группа: Джедаи

    Spritz 30 сентября 2008 г. 19:02, спустя 7 минут 19 секунд

    Короче просто нужно сделать так, чтобы любая загруженная библиотека «помещалась» в свойство контроллера.
    Например, загружаем библиотеку Parser:
    $this->load->library('Parser');
    Теперь вызываем её:
    $this->Parser->parse('текcт');

Пожалуйста, авторизуйтесь, чтобы написать комментарий!