Рубрики
Uncategorized

Разработка фреймворка PHP-MVC На основе спецификации кодирования PSR-0 (2)

Автор оригинала: David Wong.

1. Композитор полагается на инструменты управления пакетами. Композитор полагается на инструменты управления пакетами.

{
    "name":"PHP-FRAME",
    "author":"Guoming.Zhang",
    "type":"FRAME",
    "version":"v1.0.0",
    "date":"2018-4-16 16:18:00",
    "Keywords": ["php", "frame", "PHP framework", "MVC"],
    "Description": "A set of PHP framework developed with PSR-0 coding specification, pure object-oriented development, composer dependence on package management, twig template engine, Medoo database class, Whoops error output, etc.
    "require":{
        "twig/twig":"*",
        "catfan/medoo":"*",
        "filp/whoops":"*"
    }
}

Установите плагины twig, me too и whoops, используя команду composer install в корневом каталоге проекта

2. Въездные документы. Index.php представляет vendor/autoload.php файл и открывает плагин подсказки об ошибке Whoops

pushHandler(new \Whoops\Handler\PrettyPageHandler);
    $whoops->register();
    ini_set('display_error','On');
} else {
    ini_set('display_error','Off');
}
spl_autoload_register('frame\App::autoload');
frame\App::run();
?>

3. Файл конфигурации Базы Данных. Configs/Database.php

 'mysql',
    'database_name' => 'redis',
    'server' => 'localhost',
    'username' => 'root',
    'password' => 'root',
    'charset' => 'utf8',
    'port' => 3306,
    'prefix' => 'redis_',
);

4. Класс работы с базой данных. Frame/Libs/Model.php

В-пятых, слой модели управляет базой данных. App/Models/Users.php

select($this->table,'*');
    }
    // Adding users
    public function addOne(array $data)
    {
        return $this->insert($this->table,$data);
    }
    // Delete users
    public function delOne(array $where)
    {
        return $this->delete($this->table,$where);
    }
    // Modify Users
    public function editOne(array $data, array $where)
    {
        return $this->update($this->table,$data,$where);
    }
}

6. Просмотр Базового Класса Слоя. App/Controllers/Controller.php

 BASEPATH.'/storage/cache/' ) : [];
            $loader = new \Twig_Loader_Filesystem(APP.'/Views/');
            $twig = new \Twig_Environment($loader, $twigConfig);
            $template = $twig->loadTemplate($file.'.html');
            $template->display($data);
        } else {
            Throw new Exception ($file. "View template does not exist", 1);
        }
    }
}

7. Контроллер обрабатывает данные и отображает их на странице. App/Controllers/Home/IndexController.php

model = new Users;
    }
    public function index()
    {
        // Get all users
        $users = $this->model->lists();
        // Delete users
        // $del = $this->model->delOne(['id'=>1]);
        // Modify Users
        // $update = $this - > model - > editOne (['user'= > Zhangsan'], ['id'= > 2]);
        
        // View template rendering
        $this->view('Home/index',['users'=>$users]);
    }
}

8. Просмотр файлов. App/Views/Home/index.html





    
    < title > twig template engine 


    {% for item in users %}
        Username: {{item.user} < br >
        Password: {{item.pass} < br >
    {% endfor %}

Официальная документация для меня класс работы с базой данных: https://medoo.lvtao.net/doc.php Официальный документ движка шаблонов Twig: https://www.kancloud.cn/yunye… Адрес на Github: https://github.com/305515319/…

Оригинал: “https://developpaper.com/developing-a-php-mvc-framework-based-on-psr-0-coding-specification-2/”