ФорумПрограммированиеPHP для идиотов → MVC от phpdude и adw0rd+vasa_c (обсуждение подходов)

MVC от phpdude и adw0rd+vasa_c (обсуждение подходов)

  • phpdude

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

    Spritz 14 мая 2009 г. 16:27

    у мну контроллер - вью. нет модели :)

    модель появляется, когда в нее вступает от 3 задач(функций), а создавать доп класс и файл и тп ради 1 действия - увольте
    Сапожник без сапог
  • adw0rd

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

    Spritz 14 мая 2009 г. 16:32, спустя 5 минут 4 секунды

    helldude, покажи как ты выводишь какие-либо данные? Например "новости".
    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • phpdude

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

    Spritz 14 мая 2009 г. 16:34, спустя 1 минуту 40 секунд


    helldude, покажи как ты выводишь какие-либо данные? Например "новости".
    <?php
    list($db,$tpl) = MM::get("DB,Tpl");

    $tpl->title = _("News");
    $now = time();
    $tpl->items = $db->paged($db->scalar("SELECT COUNT(`#__news`) WHERE `date`<=$now"),"SELECT * FROM `#__news` WHERE `date`<=$now",$tpl,"`date` DESC,`id` DESC");

    $tpl->cats = $db->sql2arr("SELECT COUNT(`category`) `count`,`category` FROM `#__news` WHERE `date`<=$now GROUP BY `category` ORDER BY NULL DESC LIMIT 15");

    global $_SITE;
    $tpl->rsstitle = "RSS - ".$_SITE['preferences']['site_name']." - "._("News");
    $tpl->rssurl = "news/rss";
    $tpl->show();
    нечто такое страшное. сразу с пейджером и мета ссылками на рсс ленты и тп
    Сапожник без сапог
  • phpdude

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

    Spritz 14 мая 2009 г. 16:34, спустя 15 секунд

    ну и шаблон

    {@include file="header.tpl" component="core"}

    <h4>{_Categories_}</h4>
    <div class="padding:15px;">
    {foreach from=$cats as item=cat}
    <a href="news/category-{$cat.category|escape:'url'}.html">{$cat.category}</a>
    {/foreach}
    </div>

    <h1>{_Project news_}</h1>
    {foreach from=$items item=item}
    <div style="padding: 20px 10px">
    <p>
    <img src="{"news-`$item.id`.jpg"|path}" alt="" />
    <h4>{$item.title}</h4>
    </p>
    <p>{$item.date|date_format:"%x"}</p>
    {if $item.short != $item.content}
    <a href="news/view-{$item.id}.html">{$item.short|strip_tags}</a>
    {else}
    {$item.short}
    {/if}
    </div>
    {foreachelse}
    <b>{_Nothing was found._}</b>
    {/foreach}

    {@pager}
    {@include file="footer.tpl" component="core"}
    Сапожник без сапог
  • adw0rd

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

    Spritz 14 мая 2009 г. 16:43, спустя 9 минут 6 секунд

    helldude, а, ясно, так делает васяц иногда…. но мне так не нравиться категорично
    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • phpdude

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

    Spritz 14 мая 2009 г. 16:45, спустя 2 минуты 34 секунды


    helldude, а, ясно, так делает васяц иногда…. но мне так не нравиться категорично

    а почему не нравится?

    у тебя как?

    можно это все конечно в модель запихнуть

    тогда это будет пара строчек + в модели это, но от перемены мест слагаемых хуй не меняетсо)
    Сапожник без сапог
  • adw0rd

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

    Spritz 14 мая 2009 г. 16:48, спустя 2 минуты 55 секунд

    helldude, я раньше так же делал, но потом понял что в 90% случаев код понадобится использовать как минимум дважды!
    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • adw0rd

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

    Spritz 14 мая 2009 г. 17:01, спустя 12 минут 25 секунд

    У меня так:

    Модель

    <?php

    class adNews
    {

       /**
        * Вывод всех записей
        * @param
        * @return array array_list
        */
       public function getItems ()
       {

       }

       /**
        * Вывод информации по записи
        * @param integer id_item
        * @return array array_columns
        */
       public function getItem ($id)
       {
           $res = db::query(); // goDB
    return $res;
       }

       private
           $id,
           $obj; // и т.д.
    }

    ?>


    Вью+Контроллер

    <?php

    // Контроллер, проверяет существует ли ключ и значение в массиве GET, также можно задавать default-значение.
    $id = url::get('id');
    if(!$id) {
       return false;
    }


    $news = new adNews();
    foreach($news->getItem() as $V) {
       echo $V['title'];
    }

    ?>
    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • phpdude

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

    Spritz 14 мая 2009 г. 17:02, спустя 1 минуту 1 секунду

    а пейджер? и прочие хитрости?
    Сапожник без сапог
  • phpdude

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

    Spritz 14 мая 2009 г. 17:02, спустя 24 секунды

    http://hell.helldude.ru/archives/592

    не в тему, но может пригодитсо)
    Сапожник без сапог
  • adw0rd

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

    Spritz 14 мая 2009 г. 17:03, спустя 1 минуту 13 секунд


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

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

    Spritz 14 мая 2009 г. 17:05, спустя 1 минуту 58 секунд

    adw0rd, ))
    Сапожник без сапог
  • adw0rd

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

    Spritz 14 мая 2009 г. 17:07, спустя 1 минуту 32 секунды


    http://hell.helldude.ru/archives/592

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

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

    Spritz 14 мая 2009 г. 17:08, спустя 1 минуту 29 секунд

    Все коды я только что придумал и даже не проверял - это не реальный код какого-либо проекта.
    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • phpdude

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

    Spritz 14 мая 2009 г. 17:09, спустя 40 секунд



    http://hell.helldude.ru/archives/592

    не в тему, но может пригодитсо)
    там какие-то вкусности для смарти, а мы не юзаем смарти
    если есть повторяющиеся блоки, например для комментариев (для видео,аудио,фото -сервисов и т.д.) - делаем отдельный шаблончик и все.
    у меня в бесплатной версии кмс(которую я продаю вместе с сайтом) смарти)) вот и приходится в говне копатцо (
    Сапожник без сапог

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