ФорумПрограммированиеPHP для идиотовPHP и ООП → Нужен совет по реализации mvc-каркаса

Нужен совет по реализации mvc-каркаса

  • wats

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

    Spritz Июль 20, 2010, 9:01 п.п., спустя 47 минут 23 секунды

    Base - это что такое? Типа контейнер? Если да, то зачем там autoload и exception handler? Почему класс Application захардкоден?
     
    Почему ты используешь такие низкоуровневые ф-ции типа mysql_query и такую припизденную обработку ошибок (or die(mysql_error()))?

    Ёпте это все для примера я привел, что бы вы поняли суть, а не придирались к таким мелочам, именно такая реализация используется в Yii framework и где ты там увидел (or die(mysql_error()))? И что значит захардкоден?
    А к мускулу подключаться лучше наверно так Base::app()->db(); это можно расширить для разных драйверов, например Base::app()->db('PDO');
    Спустя 227 сек.
    Troy, ты вообще нахрен привел пример какого то контроллера? Это будет потом.
  • wats

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

    Spritz Июль 20, 2010, 9:07 п.п., спустя 5 минут 58 секунд

    тьфу, ступил, вот так правильно Base::app()->db;
  • wats

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

    Spritz Июль 20, 2010, 9:13 п.п., спустя 6 минут 17 секунд

    Почему ты используешь такие низкоуровневые ф-ции типа mysql_query

    ну ты вообще убил, че щас никто mysql_query не использует что ли? а что тогда?
  • Troy

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

    Spritz Июль 20, 2010, 9:15 п.п., спустя 1 минуту 46 секунд

    wats, до Yii тебе далеко, не сравнивай себя с Yii, минусовать будут
    Спустя 71 сек.
    wats, ты выше написал про "разные драйвера" . а теперь говоришь про "почему не mysql_query"
  • wats

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

    Spritz Июль 20, 2010, 9:18 п.п., спустя 3 минуты

    wats, до Yii тебе далеко, не сравнивай себя с Yii, минусовать будут

    на минусы мне пох, а вот с чего ты взял что я себя сравниваю с Yii??? Я где то выше писал, что пример как начать свой каркас мне подсказал Yii, открой его исходники и посмотри.
  • Абырвалг

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

    Spritz Июль 20, 2010, 9:36 п.п., спустя 18 минут 26 секунд

    Ёпте это все для примера я привел, что бы вы поняли суть, а не придирались к таким мелочам, именно такая реализация используется в Yii framework и где ты там увидел (or die(mysql_error()))? И что значит захардкоден?


    $lnk = mysql_connect(Base::App()->config['db']['host'],
    Base::App()->config['db']['user'],
    Base::App()->config['db']['password']) or exit('Can not connect to mysql');

    вот блядь где. Все, я устал тут с вами, ебитесь сами
  • krasun

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

    Spritz Июль 20, 2010, 9:55 п.п., спустя 19 минут 24 секунды

    wats, как минимум зачем в Base, два метода возвращающих Application, тогда уже лучше getApplication, в котором просто используешь отложенную инициализацию.

    Потом, в Application, у тебя getDb, getConfig и так далее. А что если будут появляться новые ресурсы, допустим AuthManager, то добавишь метод Application::getAuthManager и так до бесконечности. Нет так не пойдет. Самый минимум это можно использовать паттерн реестр(или ищи еще информацию).

    Хотя если тебе не нужна гибкость, тогда хардкодь.
  • Troy

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

    Spritz Июль 20, 2010, 9:58 п.п., спустя 2 минуты 32 секунды

    krasun, я об этом писал, дуд и рыба не поддержали реестр
  • krasun

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

    Spritz Июль 20, 2010, 10:01 п.п., спустя 3 минуты 31 секунду

    Troy, а что они предложили?
    Спустя 34 сек.
    Дело даже не в реестре, все зависит от потребностей wats`а.
  • Абырвалг

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

    Spritz Июль 20, 2010, 10:06 п.п., спустя 4 минуты 8 секунд

    $context->entityManager() // вы думаете, что это `public function entityManager() {return $this->em;}`? А вот хуй


    на самом деле сработает __call.

    А откуда тогда автодополнение будет? Есть фейковые классы, которые сгенерированы с пхпдоками.


    Хотя это спорный вопрос. Может быть нужно работать со сгенерированным классом а не через __call. Я посмотрю как в Symfony2
  • krasun

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

    Spritz Июль 20, 2010, 10:10 п.п., спустя 4 минуты 27 секунд

    Абырвалг, надо подумать
  • Абырвалг

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

    Spritz Июль 20, 2010, 10:15 п.п., спустя 5 минут 7 секунд

    http://madbee.ukr.su/solenko/dependency-injection/06-Speed.html
    Спустя 93 сек.
    а, блин, там вроде без пхпдоков
  • wats

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

    Spritz Июль 20, 2010, 10:18 п.п., спустя 3 минуты 8 секунд

    Абырвалг, измените эти три файла так как считаете правильным и выложите здесь хотя бы с небольшими комментариями, очень прошу, я только на реальных примерах пойму что делаю не так.
  • Абырвалг

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

    Spritz Июль 20, 2010, 10:22 п.п., спустя 3 минуты 13 секунд

    завтра накидаю че-нить
  • wats

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

    Spritz Июль 20, 2010, 10:30 п.п., спустя 8 минут 5 секунд


    завтра накидаю че-нить

    Спасибо огромное, я сразу понял что вы понимающий человек.
    Спустя 163 сек.
    Потом, в Application, у тебя getDb, getConfig и так далее. А что если будут появляться новые ресурсы, допустим AuthManager, то добавишь метод Application::getAuthManager и так до бесконечности.

    Вы правы, хрень какая то получается(

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