Task framework

Документация

                                                                                                                                      О фреймворке


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

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

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

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

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


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

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

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

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

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

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

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

/webroot/task /webroot/site


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

8. Зайдите в папку 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