清空所有文件

image.png

首先按照mvc的方式创建目录

app 应用控制器目录
app/controllers 控制器
app/models 模型
app/views 视图

image.png

[root@VM-0-7-centos app]# mkdir controllers
[root@VM-0-7-centos app]# mkdir models
[root@VM-0-7-centos app]# mkdir views

创建控制器类并给与命名空间

image.png


[root@VM-0-7-centos controllers]# touch UserController.php
[root@VM-0-7-centos controllers]# ls
UserController.php
[root@VM-0-7-centos controllers]# pwd
/www/wwwroot/work.gzj2001.com/app/controllers

image.png

创建入口文件

image.png
image.png

<?php

require 'app/controllers/UserController.php';

use controllers\UserControllers;

echo (new UserControllers)->index();

使用自动加载

  • 手动在根目录下创建composer.json 内容为{}
    image.png

创建vendor目录以便于得到autoload.php

使用composer update或composer install
image.png

修改入口文件

image.png

在composer.json中注册自动加载

{
    "autoload":{
        "psr-4":{
            "controllers\\": "app/controllers"
        }
    }
}


  • 修改后使用composer dump-autoload更新自动加载
    image.png

注意,文件名务必检查正确! 否则会报找不到错误

创建一个模型类

image.png

注册模型类的autoload

image.png

简写更新composer: composer dump

修改入口文件并测试模型类

image.png
image.png

创建视图分类文件夹以及文件

image.png

注册视图模型

image.png

测试视图

在控制器中定义一个方法调用输出
image.png

路径修正
image.png

image.png

本章完

本章文件路径结构图
image.png

UserControllers.php

<?php

namespace controllers;

class UserControllers
{
    public function index()
    {
        return "hello gzj2001!";
    }

    public function display()
    {
        include 'app/views/user/index.php';
    }
}

UserModels.php

<?php
namespace models;

class UserModels
{

        public function index(){
            return "this is models test";
        }

}

视图index.php

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>用户中心</title>
</head>
<body>
    <h3>欢迎来到用户中心</h3>
</body>
</html>

vendor由composer自动创建 不再贴出

composer.json

{
    "autoload":{
        "psr-4":{
            "controllers\\": "app/controllers",
            "models\\": "app/models",
            "views\\": "app/views"
        }
    }
}

composer.lock由composer自动创建,不再贴出

入口文件index.php

<?php

require 'vendor/autoload.php';

use controllers\UserControllers;
use models\UserModels;


echo (new UserControllers)->index();
echo "<hr>";

echo (new UserModels)->index();

echo (new UserControllers)->display();
echo "<hr>";