Обучу php

25.45K
.
# Koenig (03.11.2016 / 13:43)
ramzes, у тебя ядро жирный контроллер
у меня модуль это контроллер.
ядро всего лишь оппосредственный коммутатор между нуждами модуля и функционалом ядра им не являющимся, т.к. не связан ни с чем (тот же скол.класс, или класс кеширования)
допустим
/books/view/1/
core -> module (books, action: view) -> [module: router give me id (1), sql give me data from id 1, template put data, core run books/view tpl]
все, по домам
.
# ramzes (03.11.2016 / 13:49)
/books/view/1/
core -> module (books, action: view) -> [module: router give me id (1), sql give me data from id 1, template put data, core run books/view tpl]
все, по домам
Ну вот еще этот "гив ми гив ми" вынести в отдельный слой, что бы в твоем модуле не было никакой бизнес логики, и будет то, о чем мы тут все говорим.
.

ramzes, в простом виде MVC выглядит так:
Браузер -> index.php
index.php -> Роутер
Роутер -> Контроллер
Контроллер -> Объекты и БД
Объекты и ДЗ -данные-> Контроллер
Контроллер -> Шаблонизатор
Шаблонизатор -html-> Контроллер
Контроллер -html-> Браузер

Могу в UML показать, если будет понятнее

.
(\/)____o_O____(\/)

L!MP, по сути это модель же получится

.
# Koenig (03.11.2016 / 13:55)
L!MP, по сути это модель же получится
По сути да, но я не люблю это определение, потому что у многих при слове модель, первая же ассоциация - это модель ORM, т.е доступ к данным и всё, а это не правильно т.к слой бизнес логики значительно шире чем просто работа с БД.
.
# L!MP (03.11.2016 / 13:53)
Ну вот еще этот "гив ми гив ми" вынести в отдельный слой, что бы в твоем модуле не было никакой бизнес логики, и будет то, о чем мы тут все говорим.
пардонте. а нафига мне тогда это "модуль" будет нужен вообще?
этим вот модулем и станет тот слой о которым ты говоришь, а изначальный будет просто пустышкой и паразитом
модуль action:top допустим (+/-)

<?php
/**
 * Created by PhpStorm.
 * User: ramzes
 * Date: 30.10.2016
 * Time: 10:31
 */

namespace microapp;


app::xtpl()->assign('title', 'Темы для EMUI');
if(app::user()->right('hw-themes.view')){


    $total = app::sql()->query("SELECT count(*) FROM `hw`;")->count();
    $page = app::router()->query(2) ? app::integer()->clear(app::router()->query(2)) : 0;
    $list = app::sql()->query("SELECT * FROM `hw` ORDER BY `download` DESC LIMIT ".$page.", 20;")->toArray();
    $hws = [];
    foreach ($list as $hw){
        $hw['cover'] = app::storage()->emuiScreen('0__'.$hw['hash']);
        $hw['modules'] = explode('||', $hw['modules']);
        $hws[] = $hw;
    }

    app::xtpl()->assign('add_button', app::user()->right('hw-themes.add') ? '<a class="ajax button" href="/hw-themes/add/">&#xe998;</a>' : '');

    app::xtpl()->assign('list', $hws);
    app::xtpl()->assign('paginator', app::navi()->total($total)->page($page)->step(20)->url('hw-themes/top'));

    app::xtpl()->complite('emui/top');

}else{
    app::xtpl()->complite('access-denied');

}


тут и делить то не чего, и так то 36 строк вместе с пустыми и хидером
.

Koenig, добавь эти смайлы

Прикрепленные файлы:
.
(\/)____o_O____(\/)

L!MP, модель же по сути работает с данными, то есть это не обязательно бд, это могут быть массивы, файлы, json ... , модель их должна извлечь и подготовить для вида

.
Koenig
(\/)____o_O____(\/)

litta, ;-)

.
(\/)____o_O____(\/)
# litta (03.11.2016 / 14:00)
Koenig, добавь эти смайлы
это не ко мне
вроде второй был
Всего: 546