# s72_mvc **Repository Path**: knvb/s72_mvc ## Basic Information - **Project Name**: s72_mvc - **Description**: s72的mvc练习 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 5 - **Forks**: 0 - **Created**: 2018-02-28 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # MVC ### 1. mvc 的定义 ``` M Model 模型层 V View 视图层 C Controller 控制器 ``` - 公共的模型层 M - 模版视图文件 V - 一般来说 一个模块 对应一个类 对应一个控制器 C ### 2. mvc 优势 - 高内聚 低耦合 - 易于维护 - 代码可读性 - 单一入口 index.php ### 3. 缺点 - 执行效率有所降低: OOP - 学习难度较大 ### 4. MVC 实例 #### 4.1. mvc 1.0 ``` 目录结构 |-- models 模型层 |-- views 视图层 |-- controllers 控制层 |-- configs 配置文件目录 |-- index.php 入口文件 URL: index.php?c=控制器名&a=操作名 index.php?c=User&a=add ``` #### 4.2. mvc 2.0 `自动加载类` #### 4.3. mvc 3.0 ``` 目录结构 |-- models 模型层 |-- views 视图层 |-- runtime 运行目录 |-- views_c 编译目录 |-- caches 缓存目录 |-- controllers 控制层 |-- libs |-- configs 配置文件目录 |-- index.php 入口文件 引入模版引擎 ``` #### 4.4. mvc 4.0 `添加控制基类` #### 4.5. MVC 5.0 #### 4.6. mvc 6.0 [扩展] ``` 优化URL ./index.php?c=User&a=index 目前的URL ./index.php/User/add 优化成用path模式 ./index.php/User/add.html 再加上静态后缀 localhost/User/add.html 再省略index.php部分 ``` ``` tips: $_SERVER['PATHINFO']; rewrite模块要打开 .htaccess 文件放在根目录 Options +FollowSymlinks RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L] ```