За последние 24 часа нас посетили 34300 программистов и 1694 робота. Сейчас ищут 685 программистов ...

Велосипед

Тема в разделе "PHP для новичков", создана пользователем Alex_1984, 23 авг 2015.

  1. Alex_1984

    Alex_1984 Новичок

    С нами с:
    10 дек 2014
    Сообщения:
    133
    Симпатии:
    0
    Уважаемые Профи данного форума и все кто себя ими считает, да и вообще все, представляю вашему вниманию новый только что сделанный велосипед. Прошу покритиковать кому не лень, желательно подробно. Пример работы тут. Работает авторизация и регистрация, на этом решил пока остановиться, до выяснения.

    PS у попова не учился, если по коду будет заметно обратное, брошу все и уйду в монастырь ))
     
  2. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Это чо хоть такое-то?

    Добавлено спустя 1 минуту 28 секунд:
    непонятно, а регистрироваться не охота. А код читать тоже, т.к. не понятно, что это в принципе =)
     
  3. Alex_1984

    Alex_1984 Новичок

    С нами с:
    10 дек 2014
    Сообщения:
    133
    Симпатии:
    0
    Ну ок, я ж написал, кому не лень. хз как назвать, ну пусть микро фреймворком будет ))
     
  4. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.128
    Симпатии:
    1.248
    Адрес:
    там-сям
    Особенности распиши. Что умеет, чем лучше других.
    Мне достаточно пустого README чтобы стало лень смотреть дальше )))
     
  5. Alex_1984

    Alex_1984 Новичок

    С нами с:
    10 дек 2014
    Сообщения:
    133
    Симпатии:
    0
    да он ничем не лучше, и еще в принципе не доделан, есть минимальная функциональность которая позволяет отображать страницы, есть авторизация и регистрация. хотелось бы, чтобы люди понимающие в пхп больше меня посмотрели код и чуть чуть его покритиковали.
     
  6. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.128
    Симпатии:
    1.248
    Адрес:
    там-сям
    Ок. Тогда пара вопросов чтобы задать тебе курс развития:

    - Придерживаешся ли ты каких-то стандартов кодирования?
    - Насколько сильно связаны отдельные компоненты, можно ли подключить что-то одно через composer?
    - Используешь ли пространства имен, генераторы, примеси и т.д.?
    - Добавляет ли твой класс БД какое-то удобство плюсом к тому что дает mysqli/PDO?
    - То же самое с Представлением: чем лучше варианта "без микрофреймворка"?
    - Говоришь есть авторизация, покажи минимальный набор кода чтобы ограничить доступ к одной странице. То же ко всем страницам в "папке".
     
  7. Alex_1984

    Alex_1984 Новичок

    С нами с:
    10 дек 2014
    Сообщения:
    133
    Симпатии:
    0
    - PSR-1 если ты об этом
    - про composer слышал но как пользоваться не знаю, поэтому скорее всего нет
    - генераторы, примеси - нет, пространства имен не знаю стоит ли, есть класс autoload, который со своей задачей автозагрузки классов справляется
    - в результате всех манипуляций select выглядит так $user = user_mapper::get()->get_user_by_login($user_login); insert так user_mapper::get()->add_user($user_login, $user_name, $user_email, password_hash($user_password, PASSWORD_DEFAULT), 1);
    - представление состоит из шаблона index и блоков которые к шаблону подключаются. примерно так выглядит:

    в контроллере добавляются блоки которые необходимо показать на странице
    Код (PHP):
    1. <span class="syntaxdefault"><br />        if</span><span class="syntaxkeyword">(isset(</span><span class="syntaxdefault">$_SESSION</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'login'</span><span class="syntaxkeyword">])</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">&&</span><span class="syntaxdefault"> $_SESSION</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'login'</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">==</span><span class="syntaxdefault"> 1</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">            render</span><span class="syntaxkeyword">::</span><span class="syntaxdefault">get</span><span class="syntaxkeyword">()-></span><span class="syntaxdefault">add_content</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">id блока</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> имя файла блока</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">        </span><span class="syntaxkeyword">}<br /></span><span class="syntaxdefault">        else<br />        </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">            render</span><span class="syntaxkeyword">::</span><span class="syntaxdefault">get</span><span class="syntaxkeyword">()-></span><span class="syntaxdefault">add_content</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">id блока</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> имя файла блока</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">        </span><span class="syntaxkeyword">}<br /></span><span class="syntaxdefault"></span>
    в шаблоне эти блоки отображаются
    Код (PHP):
    1. <span class="syntaxhtml"><br /><div class="col-md-4"><br />                    <span class="syntaxdefault"><?php echo render</span><span class="syntaxkeyword">::</span><span class="syntaxdefault">get</span><span class="syntaxkeyword">()-></span><span class="syntaxdefault">get_content</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">id блока</span><span class="syntaxkeyword">)</span><span class="syntaxdefault">?><br /></span></div><br /></span>
    - доступ ограничивается пока переменной в SESSION к каждой странице отдельно
    Код (PHP):
    1. <span class="syntaxdefault"><br /></span><span class="syntaxkeyword">if(!isset(</span><span class="syntaxdefault">$_SESSION</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'login'</span><span class="syntaxkeyword">])</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">||</span><span class="syntaxdefault"> $_SESSION</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'login'</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">!=</span><span class="syntaxdefault"> </span><span class="syntaxstring">'1'</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> <br /></span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">         return </span><span class="syntaxkeyword">[</span><span class="syntaxstring">'controller'</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> </span><span class="syntaxstring">'main'</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">'action'</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> </span><span class="syntaxstring">'index'</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">'params'</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> </span><span class="syntaxkeyword">[</span><span class="syntaxstring">'messages'</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> </span><span class="syntaxstring">'access_denied'</span><span class="syntaxkeyword">]];<br />}<br /></span><span class="syntaxdefault"></span>
    этот код вернет не авторизованного пользователя на главную и выведет ошибку
     
  8. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Что такое id блока?
     
  9. Alex_1984

    Alex_1984 Новичок

    С нами с:
    10 дек 2014
    Сообщения:
    133
    Симпатии:
    0
    шаблон index.php разделен на области, примерно так
    Код (PHP):
    1. <!DOCTYPE html>
    2. <html lang="en">
    3. <head>
    4. </head>
    5. <body>
    6.  
    7. <div class="container">
    8.             <div>
    9.                 <?php echo render::get()->get_content('navigation')?>
    10.             </div>
    11.                 <div>
    12.                     <?php echo render::get()->get_content('user_info')?>
    13.                 </div>
    14.             <div>
    15.                    <?php echo render::get()->get_content('left_panel')?>
    16.             </div>
    17.                 <div>
    18.                     <?php echo render::get()->get_content('content')?>
    19.                 </div>
    20.     </div>
    21. </body>
    22. </html>
    чтобы показать страницу нужно в контроллере загрузить блоки этой страницы

    Код (PHP):
    1. <span class="syntaxdefault"><br />class dictionaries_controller<br /></span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">    function actionUsers</span><span class="syntaxkeyword">()<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">        render</span><span class="syntaxkeyword">::</span><span class="syntaxdefault">get</span><span class="syntaxkeyword">()-></span><span class="syntaxdefault">add_content</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'user_info'</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">'user_info'</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">        render</span><span class="syntaxkeyword">::</span><span class="syntaxdefault">get</span><span class="syntaxkeyword">()-></span><span class="syntaxdefault">add_content</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'content'</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">'user_list'</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">}<br />}<br /> </span><span class="syntaxdefault"></span>
    в общем id блока это место блока на странице. как то так

    кстати что лучше использовать
    Код (PHP):
    1. <span class="syntaxdefault"><br />        ob_start</span><span class="syntaxkeyword">();<br /></span><span class="syntaxdefault">        echo </span><span class="syntaxstring">'asd'</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">        $content </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> ob_get_contents</span><span class="syntaxkeyword">();<br /></span><span class="syntaxdefault">        ob_end_clean</span><span class="syntaxkeyword">();<br /> </span><span class="syntaxdefault"></span>
    или
    Код (PHP):
    1. <span class="syntaxdefault"><br />        $arr </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> array</span><span class="syntaxkeyword">();<br /></span><span class="syntaxdefault">        array_push</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$arr </span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">'asd'</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">        $content </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> implode</span><span class="syntaxkeyword">(</span><span class="syntaxstring">' '</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> $arr</span><span class="syntaxkeyword">);<br /> </span><span class="syntaxdefault"></span>
    PHP, JavaScript, SQL и другой код пишите внутри тегов
    Код ( (Unknown Language)):
    1. [b]php][/b]Тут код[b][/[/b][b]code][/b][/color]
     
  10. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Чего так сложно и длинно? :D можно было тупо метки придумать какие.
    Код (PHP):
    1. <?php echo render::get()->get_content('navigation')?>
    я у себя это сделал так:
    Код (Text):
    1. [[*navigation]]
     
  11. Alex_1984

    Alex_1984 Новичок

    С нами с:
    10 дек 2014
    Сообщения:
    133
    Симпатии:
    0
    можно и метки, но по сути одно и то же ))
    только у меня их не надо искать и заменять
     
  12. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Как это связано?
     
  13. Alex_1984

    Alex_1984 Новичок

    С нами с:
    10 дек 2014
    Сообщения:
    133
    Симпатии:
    0
    ну я представляю себе работу с метками так: записать шаблон в переменную -> найти метку -> заменить на соответствующий контент -> показать шаблон, может у тебя не так конечно ))
     
  14. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Ну эта операция очень быстрая. В пхп есть специальная функция, она даже ест массивы. Никаких сложностей. Т.е. это одна строка кода.
     
  15. Alex_1984

    Alex_1984 Новичок

    С нами с:
    10 дек 2014
    Сообщения:
    133
    Симпатии:
    0
    Да я и не говорю что сложности есть, просто действий меньше. У меня в контроллере записываются блоки для страницы и показывается шаблон.
    Я делал с метками, так че то мне проще показалось ))
     
  16. rodent90

    rodent90 Новичок

    С нами с:
    26 мар 2015
    Сообщения:
    533
    Симпатии:
    37
    Пых должен крутиться над всем, приложение для сайтов, должно работать с шаблонами js,css,html.
    Мы можем менять все на ходу, нужен удобный динамический шаблонизатор.
    Следовательно - можем кешировать области скриптов, создаваемые динамически (удаляя их: в ручную, из панели кеша, событием) - если в этом будет необходимость.
    Придумайте для себя, что Вам будет удобно, этим и пользуйтесь, главное логически поделите все на части, чтобы не запутаться, распишите все, что Вам необходимо, а потом уже делайте вывод и пишите. ;)

    Я для себя придумал, такой вариант:

    index.php:
    Код (PHP):
    1. $this->file('index');
    2. $this->tag('{charset}','utf-8');
    3. $this->tag('{title}','Главная');
    4. $block2=array(
    5.     1=>'One',
    6.     2=>'Two',
    7.     3=>'Three'
    8. );
    9. foreach($block2 as $key => $value) {
    10.     $this->struct('block2',array(
    11.         '{i}'=>$key,
    12.         '{value}'=>$value
    13.     ));
    14. }
    15. if('replace'===$this->get('url')) {
    16.     $this->struct('block1','Replacement...');
    17. }
    18. if('hide'===$this->get('url')) {
    19.     $this->struct('block1');
    20. }
    21. $this->parse('index');
    22. echo $this->html('index'); 
    index.html:
    Код (PHP):
    1. <!DOCTYPE html>
    2. <html>
    3.     <head>
    4.         <meta charset="{charset}">
    5.         <title>
    6.             {title}
    7.         </title>
    8.     </head>
    9.     <body>
    10.         {block1}
    11.             <div>
    12.                 {block2}
    13.                     <p>
    14.                         {i}. {value}
    15.                     </p>
    16.                 {/block2}
    17.             </div>
    18.         {/block1}
    19.     </body>
    20. </html> 
    Вывод:
    Код (PHP):
    1. <!DOCTYPE html>
    2. <html>
    3.     <head>
    4.         <meta charset="utf-8">
    5.         <title>
    6.             Главная
    7.         </title>
    8.     </head>
    9.     <body>
    10.         <div>
    11.             <p>
    12.                 1. One
    13.             </p>
    14.             <p>
    15.                 2. Two
    16.             </p>
    17.             <p>
    18.                 3. Three
    19.             </p>
    20.         </div>
    21.     </body>
    22. </html> 
    Можно и проще, что - то придумать, да что угодно...
    У igordada тоже норм. ;)
    Я все не могу никак доума довести, по этому ничего и не вылаживаю...
    Времени на это все нужно много...
     
  17. Alex_1984

    Alex_1984 Новичок

    С нами с:
    10 дек 2014
    Сообщения:
    133
    Симпатии:
    0
    Так я и выложил чтоб мне мои косяки показали, а че то лень всем

    У вас я так понимаю на каждую страницу шаблон?
     
  18. rodent90

    rodent90 Новичок

    С нами с:
    26 мар 2015
    Сообщения:
    533
    Симпатии:
    37
    Лень разбираться в Вашем велосипеде, без описания, без проектирования. Терять время? Не каждый захочет.
    Есть шаблон -> шаблонные файлы -> структура (мы можем разделять файл на блоки, каждый блок мы можем отдавать на разных страницах, а также заменять, скрывать, показывать) - не обязательно делать каждой странице новый шаблон, можете сделать и один шаблонный файл.

    Вы придумайте для себя всю логику на листочке - увидите вам проще будет потом писать, попробуйте, чиркать придется много, Вам понравится :D
     
  19. Alex_1984

    Alex_1984 Новичок

    С нами с:
    10 дек 2014
    Сообщения:
    133
    Симпатии:
    0
    Ну тут одно из двух или я вас не понимаю или вы меня )) у меня так и работает есть один шаблон, можно сравнить с masterpage из аспнет
    в нем плейсхолдеры вида <?php echo render::get()->get_content("id области")?> в который можно поставить любой блок, можно по условию их показывать, выполняется - один блок, не выполняется - другой. сами блоки лежат в отдельных файлах

    пример блока
    Код (PHP):
    1. <span class="syntaxhtml"><br /><span class="syntaxdefault"><?php $users </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> user_mapper</span><span class="syntaxkeyword">::</span><span class="syntaxdefault">get</span><span class="syntaxkeyword">()-></span><span class="syntaxdefault">get_users</span><span class="syntaxkeyword">()</span><span class="syntaxdefault">?></span> //получает массив с пользователями<br /><span class="syntaxdefault"><?php $list1 </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> module_linked_table</span><span class="syntaxkeyword">::</span><span class="syntaxdefault">get</span><span class="syntaxkeyword">()-></span><span class="syntaxdefault">create</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$users</span><span class="syntaxkeyword">,</span><span class="syntaxdefault">  </span><span class="syntaxcomment">// создает таблицу <br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">[</span><span class="syntaxstring">'controller'</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> </span><span class="syntaxstring">'dictionaries'</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">'action'</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> </span><span class="syntaxstring">'user'</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">'col_ind'</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> </span><span class="syntaxstring">'id'</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">'col_link'</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> </span><span class="syntaxstring">'login'</span><span class="syntaxkeyword">],</span><span class="syntaxdefault"> <br />    </span><span class="syntaxkeyword">[</span><span class="syntaxstring">'class'</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> </span><span class="syntaxstring">'table'</span><span class="syntaxkeyword">],</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">[</span><span class="syntaxstring">'ID'</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">'Name'</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">'Login'</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">'Email'</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">'Role'</span><span class="syntaxkeyword">])</span><span class="syntaxdefault">?><br /><?php module_block</span><span class="syntaxkeyword">::</span><span class="syntaxdefault">get</span><span class="syntaxkeyword">()-></span><span class="syntaxdefault">set_content</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$list1</span><span class="syntaxkeyword">)</span><span class="syntaxdefault">?></span> //запихивает ее в див<br /><span class="syntaxdefault"><?php echo module_block</span><span class="syntaxkeyword">::</span><span class="syntaxdefault">get</span><span class="syntaxkeyword">()-></span><span class="syntaxdefault">create</span><span class="syntaxkeyword">([</span><span class="syntaxstring">'class'</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> </span><span class="syntaxstring">'table table-bordered'</span><span class="syntaxkeyword">])</span><span class="syntaxdefault">?></span> &nbsp;//выводит <br /></span>
    можно html теги в блоке писать

    другой блок

    Код (PHP):
    1. <span class="syntaxhtml"><br /><div class="col-md-4"><br />        <span class="syntaxdefault"><?php $user </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> user_mapper</span><span class="syntaxkeyword">::</span><span class="syntaxdefault">get</span><span class="syntaxkeyword">()-></span><span class="syntaxdefault">get_user_by_id</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$_SESSION</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'user_id'</span><span class="syntaxkeyword">])</span><span class="syntaxdefault">?><br /></span>        <span class="syntaxdefault"><?php echo </span><span class="syntaxstring">'Hello  <a href="/dictionaries/user?id='</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">$_SESSION</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'user_id'</span><span class="syntaxkeyword">].</span><span class="syntaxstring">'">'</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">$user</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'name'</span><span class="syntaxkeyword">].</span><span class="syntaxstring">'</a>'</span><span class="syntaxdefault">?><br /></span>    </div><br />    <div class="col-md-8"><br />        <form class="form-inline" action="/user/logout" method="post"><br />            <button type="submit" class="btn btn-primary btn-sm"><br />                 Выход<br />            </button><br />        </form><br /></span>
    как то так ))
     
  20. rodent90

    rodent90 Новичок

    С нами с:
    26 мар 2015
    Сообщения:
    533
    Симпатии:
    37
    Ну по мне лучше php писать отдельно от html. По этому у меня html'a в php нет, у меня html логически поделен на секции, а php обрабатывает.
     
  21. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.598
    Симпатии:
    1.764
    И каким образом у вас получается, в итоге, вывести, к примеру, 20 товаров, полученных из базы?
     
  22. romach

    romach Старожил

    С нами с:
    26 окт 2013
    Сообщения:
    2.904
    Симпатии:
    719
    А в чем проблема?

    К примеру в Laravel при запросах к БД через EloquentORM возвращается на массив, а Collection, который изнутри - один большой хелпер над пыховским разнобоем функций по работе с массивом, а снаружи довольно удобный интерфейс, близкий по духу к самой ORM. В итог получается что-то типа этого:
    Код (PHP):
    1. <ul>
    2. <?php foreach($rows as $row) :?>
    3.   <li> <?= $row->price ?> </li>
    4. <?php endforeach; ?>
    5. </ul>
    6. <?= $rows->sum('price') ?>
    Конечно, для экономящих на спичках тут на лицо оверхед, но на деле мы получаем чистый код, не замутненный бизнес-логикой )
     
  23. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    хороший код
     
  24. Alex_1984

    Alex_1984 Новичок

    С нами с:
    10 дек 2014
    Сообщения:
    133
    Симпатии:
    0
    Код (PHP):
    1. <span class="syntaxhtml"><br /><span class="syntaxdefault"><?php $list </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> module_list</span><span class="syntaxkeyword">::</span><span class="syntaxdefault">get</span><span class="syntaxkeyword">()-></span><span class="syntaxdefault">create</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$rows</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">[</span><span class="syntaxstring">'class'</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> </span><span class="syntaxstring">'list-group-item list-group-item-info'</span><span class="syntaxkeyword">])</span><span class="syntaxdefault">?><br /><?php echo $list?><br /></span></span>
     
  25. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.598
    Симпатии:
    1.764
    Так не об этом. Я такой код регулярно пишу. Но человек пишет, что он "отделяет php от html", а это
    php чистой воды