Преимущества Framework Foton на практике
Тонкий контроллер из коробки.
(можно работать без get/post параметров, нет ручного рендеринга)
namespace Controller\Site;
class news extends Model\Site\news{
public function item($href){
//выводим новость по get параметру href
$arr = $this->core->getlist(['table'=>'news','where'=>['href'=>$href]]);
return $arr;
}
public function list($page){
//выводим список новостей на странице $page
$arr = $this->core->getlist(['table'=>'news','count'=>10,'page'=>(int)$page]);
return $arr;
}
}Простая работа с CRUD методами
Из коробки можно работать с CRUD методами включающими обработку шардирования и событий.
namespace Foton\Module\Operation\Base;
class crud{
public $obj,$table;
public function __construct(){
$this->obj = new Base();
$this->table = 'table';
}
public function update($arr,$where){
return $obj->update($this->table,$arr,$where);
}
public function create($arr){
return $obj->insert($this->table,$arr,'id');
}
public function delete($where){
return $obj->delete($this->table,$where);
}
public function get($arr){
return $obj->getlist($arr);
}
}Легкий доступ к результатам методов контроллера
В MVC модели Foton все return публичных методов записываются в массив $data, ключом массива являются названия методов.
@for:{$data['list'] as $news} @{news['name']} @{news['description']} @:@
Благодаря распределенной системе Framework Foton и методу ядра view() в любом месте системы мы можем вызвать ее клона с любыми параметрами с любым типом запроса,
например этот код
namespace Controller\Site;
class news extends Model\Site\news{
public function item($href){
//выводим новость по get параметру href
if($href=='company'){
return $this->core->view()->mvc->company->end();
}
$arr = $this->core->getlist(['table'=>'news','where'=>['href'=>$href]]);
return $arr;
}
}вызовет mvc страницу company внутри другой страницы news
Подробнее про все типы можно прочитать в статье про роутинг