
MISSION BRIEFING
PHP 课程实训,自定义 MVC 新闻管理平台
完成方式
Solo
独立完成,我负责页面、后端以及数据库。
架构
MVC
自定义路由,Controller、Model 以及 View 做分层组织。
模板
Smarty
视图渲染与组件复用,减少重复模板代码。
编辑器
UEditor
富文本编辑体验,让内容管理更接近真实 CMS。
安全
XSS 与 SQLi
输入过滤与参数化查询,降低常见攻击面。
体验重点
可维护
分页、验证码、上传等能力模块化沉淀。
SCREEN TOUR
作品展示
点击图片可放大查看
页面列表
点击缩略图切换;点击右侧大图可放大查看
当前预览
点击图片可放大查看;放大后支持:滚轮缩放 · 拖拽平移 · ←/→ 切图 · Esc 关闭
新闻门户首页 - 最新新闻展示与分类导航
项目概述
“新闻管理系统”是我在 “PHP框架技术” 课程实训中完成的一套内容管理平台。整体目标是把“内容产出 → 内容分发 → 内容治理”这条链路做完整,同时也让我在这个项目里把一套能复用的自定义 MVC 框架骨架沉淀下来。
在功能划分上,我把系统拆成前台展示以及后台管理两部分。前台侧提供新闻阅读、分类浏览以及热门文章查看等能力,让用户能比较顺畅地发现内容并继续阅读。后台侧则覆盖用户登录验证、文章发布与编辑,以及栏目管理等能力,让内容生产与治理这部分也能跑通。
框架骨架,我在这个项目里沉淀的能力
- 1
入口与路由
解析请求路径并匹配控制器与动作,形成更稳定的请求分发机制。
- 2
控制器
控制器也就是 Controller,用来承接业务编排与参数校验,并统一处理页面跳转与异常反馈。
- 3
模型与数据访问
模型层也就是 Model,用来封装数据库读写,并配合分页与查询组件提升可维护性。
- 4
视图渲染
视图层也就是 View,Smarty 模板负责页面渲染,UEditor 负责内容编辑体验。
- 5
安全与质量
输入过滤、XSS 防护与参数化查询等措施,降低常见 Web 风险。
系统设计
点击图片可放大查看。
技术栈
FRONTEND
前台与交互
- HTML5、CSS3 以及 JavaScript(以 ES5 写法为主)
- jQuery(用来做交互以及 DOM 操作)
- Smarty(用来做模板渲染以及视图复用)
- Toastr(用来做消息提示)
BACKEND
后端与数据
- PHP(用来自定义 MVC 框架骨架)
- MySQL(用来保存内容以及栏目数据)
- PDO(用来做数据库连接以及查询)
TOOLING
通用能力沉淀
- UEditor(用来做内容编辑)
- HTMLPurifier(用来做内容过滤并加强 XSS 防护)
- 验证码也就是 Captcha,以及文件上传处理
- 自定义分页组件
开发过程
- 1
需求分析与架构设计
我先依据实训指导书把功能模块与数据结构进行梳理与设计,并把整体开发按 MVC 架构来开展,确保职责分层更清晰。
- 2
前后端开发
前端部分我选用 HTML、CSS 以及 JavaScript 来实现页面布局与交互。后端则以自定义 PHP 框架作为骨架,把路由解析、数据库操作以及视图渲染等核心能力逐步补齐。系统层面我把文章的 CRUD、分类管理以及用户认证等能力做出来,用来把“内容发布 → 被浏览”这条链路跑通。
- 3
页面美化与优化
在参考代码的基础上,我进一步调整了前端样式,并自主设计制作中间的轮播图与 Logo,用来提升视觉一致性与浏览体验。图片素材则借助 Photoshop 做处理与统一,让整体风格更协调。
- 4
测试与部署
我对系统进行了较完整的测试,包含功能、兼容性以及安全性检查。在修复问题的同时,我也对运行性能做了小幅优化,并最终完成项目部署。
功能亮点
前台有新闻分类导航,用户可以按栏目去浏览不同类别的内容。
文章详情页会把标题、作者、阅读量等信息呈现出来,让阅读体验更接近真实新闻站点。
我补上了上一篇和下一篇的导航,让用户在阅读时能顺着内容继续看下去。
首页也会展示最新文章和热门文章排行,并配合分页展示,避免内容量变大时影响浏览。
后台有登录验证,用来保护管理入口,避免普通访问直接进入后台操作。
文章管理支持新增、编辑以及删除,同时也可以控制文章是否在前台展示。
文章配图支持上传处理,配合 UEditor 的富文本编辑体验,内容录入会更顺手。
栏目管理支持新增、编辑、删除以及排序,用来把内容分发的结构维护起来。
项目里我把自定义 MVC 框架骨架搭起来,后续如果继续扩展模块,也能比较顺着往里加。
在安全上我关注 SQL 注入以及 XSS 这类常见风险点,并通过输入过滤和参数化查询做基础防护。
整体结构偏模块化,每个模块边界更清楚,后续维护成本会低一些。
页面也做了响应式适配,在不同设备上浏览时不容易出现排版崩坏。
我自己做了 Logo 以及首页轮播图,让页面的识别度更统一一些。
界面细节我做过一轮优化,尽量让信息层级更清楚,减少用户找内容时的来回跳转。
导航结构也按分类逻辑整理过,便于内容发现和访问。