Task framework

от автора

О фреймворке

Task framework основан на MVC парадигме с удобством использования и минимум функционала для решения простых задач.

В отличие от стандартных решений вместо контроллера тут используется задача (task)

ссылка на фреймворк который так же использует task

jsock-framework-tutorial.blogspot.com

java-framework-jsocket.blogspot.com
github.com/nnpa/jsock

Установка фреймворка task

1. Скачайте архив с фреймворком

2. Распакуйте в папку task в директорию где у вас хранятся сайты.

3. Скачайте каркас для приложения

5. Распакуйте в папку site в в директорию где у вас хранятся сайты.

6. Создайте базу данных в mysql.

7. Скачайте таблицу users и экспортируйте в созданную базу данных.

Должно получится такое дерево каталогов

/webroot/task

/webroot/site

8. Настройте веб сервер что бы корневая папка /webroot/site была привязана к определенному хосту при помощи веб сервера который вы используете.

9. Зайдите в папку config и откройте config.php и отредактируйте массив подключения к базе данных на ваши значения подключения и переменную host.

MVC парадигма

Task framework использует MVC парадигму для лучшего разделения логики шаблонов представлений, моделей и контроллера.

Вместо контроллера в Task framework используются задачи Task — задачи расположены в папке tasks и предназначены для выполнения логики приложения.

Модели хранятся в папке models и предназначены для работы с логикой базы данных.

Представления хранятся в папке view и предназначены для работы с логикой представления.

Task

Task (или Controller) располагаются в папке tasks.

Task создаются по переменной в url сайта request:

Если переменная request = test то будет создан экземпляр класса Task который хранится в папке tasks в файле test.php и называется test.

index.php?request=test

Пример класса test.php:

include_once('WebTask.php');  class Test extends WebTask{  	public function run(){            //логика приложения          }  }

Обязательно task должен быть унаследован от WebTask и в нем должен быть создан метод run()

Models

Models располагаются в папке models и отвечают за логику работы с базой данных.

Модели привычнее всего создавать в tasks.

Модель должна быть создана в папке models и быть унаследована от Model так же должно быть прописано поле $table_name.

Пример класса models/users.php:

class Users extends Model{      public $table_name = 'users';  }

В классе Model заранее реализован набор методов для работы с базой данных.

findBySql

$users = new Users();   $users->findBySql("SELECT * FROM `users`");  foreach($users as $user) {        echo $user['email'] . "<br>";  } 

findByPk

$users = new Users();   $users->findByPk(3);   echo $users->email;

find

$users = new Users();   $users->find("email <> ''");  foreach($users as $user) {       echo $user['email'] . "<br>";  }

update

$users = new Users();   $users->findByPk(3);  $users->email = "yandex@mail.ru";  $users->update();

save

$users = new Users();  $users->email = "yandex@mail.ru";  $users->id    = NULL;  $users->save()

;

delete

$users = new Users();  $users->delete("id = 6"); 

exec

$users = new Users();  $users->exec("free sql string"); //mysqli_result 

DB

App::$DB->exec("free sql string");//mysqli_result 

view

Шаблоны представлений хранятся в папке /view/ отвечают за логику представлений.

Представление вызывается в конце метода run класса task при помощи метода render.

В представление передаются переменные которые будут использованы в логике представления.

Пример site task:

include_once('WebTask.php');  class Site extends WebTask{  	public function run(){                $users = new Users();                 $users->find("email <> ''");  	       $this->render('site',[  			'users' => $users,  		]);  	}  }

В методе run модель с пользователями передается в шаблон view/site.php где происходит обработка результатов поиска и генерация html:

<?php  foreach($users as $user) {      echo $user['email'] . "<br>";  }  ?>

Так же в папке view/layout расположен основной шаблон main.php который является главным шаблоном куда в переменную {content} подгружаются наши представления.

Авторизация пользователя

В фреймворке уже реализована регистрация и авторизация по ссылкам login и register.

Метод приложения который позволяет проверять являет ли пользователь авторизованным App::isGuest()

В завершении
task-framework blog

Фреймворк будет дальше разрабатывать и тестироваться на разрабатываемых на нем приложениях.

Cпасибо.

ссылка на оригинал статьи https://habr.com/ru/post/523828/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *