Lunule

一款基于MVC模式并集成了Smarty3模板引擎的PHP框架,并基于该框架实现一个简易的带后台登录以及curd操作的管理系统

前言

市面上已经有成熟的PHP框架,比如Yii,Laravel,ThinkPHP,Yaf,CI...,我们为什么还要设计自己的PHP框架呢? 这是因为在设计自己框架的过程中,我们会更加深入地了解框架的运行原理,培养自己面向对象的编程思维,同时也会提升自身的编码能力

环境要求

PHP版本>=5.4

目录结构

www WEB部署目录 |--index.php 前台应用模块入口文件 |--admin.php 后台应用模块入口文件 |--README.md README文件 |--Admin 后台应用模块目录 |--Index 前台应用模块目录(首次运行项目时会自动生成) |--Common 公共目录 |--Lunule 框架目录 |--Static 静态资源目录 |--Temp 临时目录

其中框架目录Lunule的目录结构为:

Lunule 框架目录 |--Config 框架核心配置目录 | |--config.php 框架核心配置文件 |--Data 框架资源目录 | |--Tpl 框架模板目录 |--Extends 框架扩展类库目录 | |--Lib 框架扩展类库目录 | |--Tool 框架工具类库目录 |--Lib 框架库文件目录 | |--Core 框架核心库文件目录 | |--Function 框架核心函数目录 |--Lunule.php 框架入口文件

入口文件

在项目根目录下,有入口文件index.php和admin.php,index.php负责Index模块的入口,admin.php负责Admin模块的入口
比如index.php的文件内容为:

<?php // 检测PHP环境 if(version_compare(PHP_VERSION,'5.4.0','<')) die('require PHP > 5.4.0 !'); // 开启调试模式 建议开发阶段开启 部署阶段注释或者设为FALSE define('DEBUG', TRUE); // 定义应用目录 define('APP_NAME', 'Index'); // 引入Lunule入口文件 require './Lunule/Lunule.php';

自动生成

在第一次访问index.php入口文件的时候,会显示如图所示的默认的欢迎页面,并自动生成了一个默认的应用模块Home

在项目根目录下,已经生成了前台应用模块目录Index,Index的目录结构为:

Index 前台应用模块目录 |--Config 前台应用模块配置目录 | |--config.php 前台应用模块配置文件 |--Controller 前台应用模块控制器目录 | |--IndexController.class.php 前台应用模块默认控制器 |--Tpl 前台应用模块模板目录 | |--error.html 前台应用模块错误提示模板文件 | |--success.html 前台应用模块成功提示模板文件

命名规范

1.类文件都是以.class.php为后缀 2.类名与文件名一致,比如IndexController类的文件命名是IndexController.class.php 3.常量以大写字母和下划线命名 4.数据表和字段采用小写加下划线方式命名 5.配置参数以大写字母和下划线命名

配置格式

配置文件均采用PHP数组的方式

<?php return [ // 配置项 => 配置值 ];

配置加载

配置的优先级为: 应用模块的配置 > 公共配置 > 框架核心配置文件

URL模式

前台应用: http://serverName/index.php?c=控制器&a=方法
后台应用: http://serverName/admin.php?c=控制器&a=方法

框架执行流程

后台管理系统

基于该框架实现一个简易的带后台登录以及curd操作的管理系统,封装Layer弹层,用户体验良好
账户root 密码123456
首先创建名称为lunue的数据库,然后执行如下sql语句

DROP TABLE IF EXISTS `lunule_category`; CREATE TABLE `lunule_category` ( `cid` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '栏目ID', `cname` varchar(50) NOT NULL DEFAULT '' COMMENT '栏目名称', PRIMARY KEY (`cid`) ) ENGINE=MyISAM AUTO_INCREMENT=15 DEFAULT CHARSET=utf8 COMMENT='栏目表'; INSERT INTO `lunule_category` VALUES ('9', 'JAVA笔记'); INSERT INTO `lunule_category` VALUES ('11', '关于作者'); DROP TABLE IF EXISTS `lunule_user`; CREATE TABLE `lunule_user` ( `uid` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '用户ID', `username` varchar(50) NOT NULL DEFAULT '' COMMENT '用户名', `password` varchar(50) NOT NULL DEFAULT '' COMMENT '密码', PRIMARY KEY (`uid`) ) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COMMENT='用户表'; INSERT INTO `lunule_user` VALUES ('1', 'wyx', 'e10adc3949ba59abbe56e057f20f883e');

访问地址: http://localhost/Lunule/admin.php
展示图

版权声明:

1、该文章(资料)来源于互联网公开信息,我方只是对该内容做点评,所分享的下载地址为原作者公开地址。
2、网站不提供资料下载,如需下载请到原作者页面进行下载。
3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考学习用!
4、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。