ФорумПрограммированиеPHP для идиотов → механизм наследования в ооп

механизм наследования в ооп

  • soul

    Сообщения: 790 Репутация: N Группа: Кто попало

    Spritz 3 апреля 2010 г. 12:42, спустя 10 минут 4 секунды

    не нравятся слова - замени на другие. вопрос не как лучше а как сделать
  • NRG

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

    Spritz 3 апреля 2010 г. 12:44, спустя 2 минуты 44 секунды

    soulgarden, что в твоем понимании "ядро" ?
    зачем его надо наследовать ?

    лично я это вижу так, у приложения есть базовый класс, назовем его Application.
    он статичен.
    он умеет подгружать обьекты.
    у него есть статик метод run(), который запускает наше приложение.

    лично я вижу "ядро" таким.
    но, "ядро" это может быть полноценный модуль в котором есть абстрактные классы для наших моделей, контроллеров, блоков. А так же класы типа Session. Url, Cache, Date, …… etc
    Спустя 97 сек.
    так что ты поподробнее обьясни, чем является твое "ядро", и что ты от него хочешь
  • adw0rd

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

    Spritz 3 апреля 2010 г. 12:45, спустя 1 минуту 4 секунды

    soulgarden,
    1. Это не вам лично было адресовано, простите если вы подумали что вам
    2. Не важно какие там слова, я вообще о таких беседах
    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • soul

    Сообщения: 790 Репутация: N Группа: Кто попало

    Spritz 3 апреля 2010 г. 13:03, спустя 17 минут 16 секунд


    soulgarden, что в твоем понимании "ядро" ?
    зачем его надо наследовать ?

    лично я это вижу так, у приложения есть базовый класс, назовем его Application.
    он статичен.
    он умеет подгружать обьекты.
    у него есть статик метод run(), который запускает наше приложение.

    лично я вижу "ядро" таким.
    но, "ядро" это может быть полноценный модуль в котором есть абстрактные классы для наших моделей, контроллеров, блоков. А так же класы типа Session. Url, Cache, Date, …… etc
    Спустя 97 сек.
    так что ты поподробнее обьясни, чем является твое "ядро", и что ты от него хочешь


    тут дело не в ядре, аппликухе и вообще не в фреймворке, это просто пример, видно неудачный. другой пример, base_controller и пользовательский контроллер его наследующий. разработчик оперирует пользовательским контроллером страницы. чтоб не нужно было подгружать разные либы, они инстанцированв в base_coontroller'е
    вопрос в том, как их инстанцировать их, чтоб не вызывать из пользовательского контроллера конструктор контроллера baze_c…r
    и чтобы если какой-то другой контроллер приложения тоже отнаследовал baze_с..er, то тот не снова инстанцировал все те нужные либы а взял уже их из себя, истанцированных ранее.
    Спустя 100 сек.

    soulgarden,
    1. Это не вам лично было адресовано, простите если вы подумали что вам
    2. Не важно какие там слова, я вообще о таких беседах


    ну дык я говорю что беседа о другом, фреймворк взять только для примера
  • NRG

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

    Spritz 3 апреля 2010 г. 13:23, спустя 20 минут 22 секунды

    блин, ну так в чем проблема то ?

    создал какойто базовый контроллер, наследуйся от него и просто не перекрывай конструктор.

    <?php
    class Controller_Abstract
    {
    public function __construct($request, $response)
    {
    $this->_request = $request;
    $this->_response = $response;

    NRG::app()->getFrontController()->setAction($this);

    $this->_construct();
    }

    protected function _construct()
    {
    return $this;
    }
    }

    class Module_Controller extends Controller_Abstract
    {

    }
    Спустя 226 сек.
    если надо чтобы "нужные либы" создались лишь раз, то сделай их синглтонами
  • artoodetoo

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

    Spritz 3 апреля 2010 г. 21:24, спустя 8 часов 46 секунд

    Мне кажется, soulgarden, тебе не хватает практики чтобы всё сложилось в цельную картинку.
    ιιlllιlllι унц-унц
  • Абырвалг

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

    Spritz 4 апреля 2010 г. 2:16, спустя 4 часа 52 минуты 37 секунд


    лично я это вижу так, у приложения есть базовый класс, назовем его Application.
    он статичен.
    он умеет подгружать обьекты.
    у него есть статик метод run(), который запускает наше приложение.

    лично я вижу "ядро" таким.
    но, "ядро" это может быть полноценный модуль в котором есть абстрактные классы для наших моделей, контроллеров, блоков. А так же класы типа Session. Url, Cache, Date, …… etc
    Спустя 97 сек.
    так что ты поподробнее обьясни, чем является твое "ядро", и что ты от него хочешь


    ахуеть, я так в BL сделал. Значит я наверно на правильном пути

    class BLM_MyModule implements BL_ModuleInterface
    {
       protected $request;
       public function __construct(BL_Application $app) // implementation
       {
           $this->request = $app->getRequest();
           // $app->getResponse();
       }

       public function process() // implementation
       {
           if ($this->request->isActiveForm('comments') {
               // проверяем форму, сохраняем ее
           } else {
               // показываем форму
           }
       }
    }

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