Xpoint
   [напомнить пароль]

Философский вопрос по поводу фреймворка

Метки: [без меток]
2007-05-31 00:48:44 [обр] Sergio[досье]
Много времени занимает написание админ панелей для сриптов. На чем можно автоматизировать этот процес? Имеется ввиду вывод форм, таблиц, менюшек всяких.
Смотрел CakePHP, но то что он хочет менять webroot на свою папку не нравиться. VCL который используется в Delphi for PHP хорош, но иногда подгюкивает, а надо что-то попроще, что бы много времени не тратить на изучение.
спустя 3 часа 12 минут [обр] durdomclient[досье]
сообщение промодерировано
[удалено]
спустя 35 минут [обр] Алексей В. Иванов(509/2861)[досье]
М durdomclient[досье] смысл в сообщениях должен быть
спустя 3 часа 17 минут [обр] Привидение+(611/795)[досье]

А чем повторное использование кода не устраивает?
Если "менюшка или таблица" такая же, как уже использовалась, то почему бы не взять код от неё?
А если другая, нестандартная - то смысл хотеть автоматическую админку?

Фреймворк, в моем понимании - это конструктор, детали которого можно использовать в строительстве сайтов.
А любая автоматизация будет выглядеть убого, как мне кажется.

спустя 2 часа 10 минут [обр] Дмитрий(1/2)[досье]
Когда-то озадачился таким вопросом, естественно готового ничего толкового не нашел, начал писать сам, в итоге понял, что если буду продолжать её дорабатывать, то у меня получится аналог phpMyAdmin, тогда я забросил это дело и стал тупо копипастить похожие куски, и как ни странно скорость разработки не уменьшилась а возросла.
спустя 24 минуты [обр] Сергей Пантелеев(0/15)[досье]
Это пройдет, как только Вы найдете багу в раскопипастеном коде.
спустя 21 минуту [обр] Дмитрий(1/2)[досье]
А что изменится-то? Придеться переворошить все проекты и везде эту багу поправить. В случае с фреймворком всё будет аналогично, так же нужно будет все ворошить и исправлять.
спустя 48 минут [обр] Михаил Кюршин aka ya-ya(69/414)[досье]
Вопрос слишком абстрактный, всё зависит от соотношения "число проектов/объём проекта/частота изменений". Кроме того, копи-пейст тоже можно делать грамотно, да и глобальный поиск/с заменой ещё никто не отменял (это на случай обнаружения багов в скопированных кусках).
спустя 32 минуты [обр] Thirteensmay(17/157)[досье]

Дмитрий[досье] Хм, а почему в случае с фреймворком тоже ВСЕ ? а не только код кривой функции в одном месте ? Нет, я конечно понимаю что в некоторых особых случаях красиво и полностью отвязать код движка/общей библиотеки от бизнес логики проблематично, но это очень редкое явление, так что в целом повторное использование рулит. В противном случае просто у вас кривой фреймворк либо модель его использования.

Михаил Кюршин aka ya-ya[досье] Можно конечно, но зачем если в подавляющем большинстве случаев этого можно избежать получая дивиденды ? ;)

спустя 1 час 44 минуты [обр] Прокаев2(13/35)[досье]
Thirteensmay[досье]А вы какой фреймворк пользуете?
спустя 39 минут [обр] Thirteensmay(17/157)[досье]
Да так, написал себе несколько библиотек, + база, под мои задачи вполне устраивает...
спустя 12 дней [обр] Евгений[досье]

Sergio[досье]
Постотри здесь: Shareware Connection

А вообще, не вижу смысла писать фреймворк только для этого. Чтобы сгенерировать таблицу или select можно написать свою небольшую библиотеку. Я сам сейчас юзаю свою библиотеку, где написаны функции создания WYSIWYG, таблицы, select'a, меню. Могу сказать, что в результате в админке редкий модуль весит больше двух страниц кода.

спустя 2 дня 16 часов [обр] Sallee V(4/4)[досье]

Я когда-то решил эту проблему созданием ассоциативного массива для каждой модели данных и созданием соответсвтующего плагина к Смарти. Создание нового модуля занимает максимум 15 мин., если это просто хранилище без какой-то особой логики.
В массиве хранится нечто вроде:
$news_model=array(
  'table'=>DB_TABLE_PREF . 'news',
  'key'=>'news_id', // какое поле является ключем (нужно для обработчиков создания/обновления данных)
  'mtime'=>'news_mtime', // есть ли поле даты обновления
  'muser'=>'news_muser', // есть ли поле админа, сделавшего обновление
  'fields'=>array( // список полей таблицы в БД для данной модели
    'news_id'=>array(
      'title'=>'№',
      'type'=>'hidden', // здесь типы, которые понимает плагин Смарти. Например: text, select, options, label, textarea
      'regexp'=>REGEXP_INT,
      'required'=>0,
      'default'=>0
    ),
    'news_title'=>array(
      'title'=>'Заголовок',
      'type'=>'text',
      'required'=>1,
      'size'=>32,
      'max_size'=>255,
      'list_view'=>1 // будет ли поле отображаться в списочном контексте
    ),
    .....
  )
);

В итоге все админ панели выводятся через 3-4 шаблона. Выбор конкретного зависит от типа модели (для деревьев одна, для списков - другая, для элемента списка или дерева - третья).
Экономит время разработки до безобразия, а скорость формирования страницы админ-панели не критично, поскольку, как правило, небольшой объем данных и число запросов в БД. Но и все-равно время не превышает, как правило 0,1 сек. для списков даже.
Н-да. Последнее время прихожу к выводу, что использование асс. массивов для этой цели не удобно. Сейчас перевожу модели в классы, что позволяет вводить базовые модели и от них уже наследовать специфические. Гораздо удобнее и легче модифицировать код на уровне сайта (перекрывая или расширяя какие-то вещи, заложенные в CMS или Framework).

Powered by POEM™ Engine Copyright © 2002-2005