博主信息
博文 145
粉丝 7
评论 7
访问量 202154
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
PHP实战:利用composer写一个MVC小框架
李东亚¹⁸⁰³⁹⁵⁴⁰¹²⁰
原创
1593人浏览过

一.MVC框架核心组成:

1.MVC框架大体可分为model、view、controller,这三块主要都是类、对象的应用和扩展
2.关于composer组件是对PHP代码模块化的一种形式,代码封装,再利用;
3.MVC框架整体构架没有变化,只是在MVC的架构中添加了composer组件管理器,来方便添加组件功能;
4.对于框架可以整体理解为三部分:MVC框架部分{app和core}和组件部分{vendor和composer.json、composer.lock}以及入口文件;
5.MVC框架重点理解:命名空间和自动加载之间的关系;往往出问题都在自动加载这块,自动加载出问题:往往跟命名空间、类名称和文件路径不一致导致;注意:\/的使用场景

二.实战案例(利用数据库catfan/medoo和视图league/plates写一个个MVC小框架)

1.文件目录

2.json文件中自动加载配置项

  1. {
  2. "name": "ldy/frame",
  3. "description": "MVC小框架",
  4. "require": {
  5. "catfan/medoo": "^1.7",
  6. "league/plates": "^3.4"
  7. },
  8. //自动加载配置项
  9. "autoload": {
  10. "psr-4": {
  11. "app\\Controllers\\": "app/Controllers",
  12. "app\\Models\\": "app/Models",
  13. "app\\View\\": "app/View",
  14. "core\\": "core"
  15. }
  16. }
  17. }

3.控制类代码

  1. <?php
  2. namespace app\Controllers;
  3. use app\Models\StaffsModel;
  4. use core\View;
  5. class StaffsController
  6. {
  7. private $model=null;
  8. private $view=null;
  9. public function __construct(StaffsModel $model,View $view){
  10. $this->model=$model;
  11. $this->view=$view;
  12. }
  13. public function index(){
  14. $data=$this->model->select("v_staffs",["id","name","age","gender","salary","email","postion","area"],["LIMIT"=>10]);
  15. echo $this->view->render("index",["rows"=>$data]);
  16. }
  17. }

4.入口文件代码

  1. <?php
  2. use app\Controllers\StaffsController;
  3. use app\Models\StaffsModel;
  4. use core\View;
  5. include __DIR__."/vendor/autoload.php";
  6. $model=new StaffsModel();
  7. $view=new View("app/View/staffs");
  8. (new StaffsController($model,$view))->index();

5.运行结果图

批改老师:天蓬老师天蓬老师

批改状态:合格

老师批语:
本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学