easyphp框架
easyphp框架
燕玉苗 发表于1年前
easyphp框架
  • 发表于 1年前
  • 阅读 47
  • 收藏 0
  • 点赞 0
  • 评论 2

标题:腾讯云 新注册用户域名抢购1元起>>>   

摘要: easyphp框架是之前做项目时写的。项目之初对框架需求简单,有MVC分层、有DB操作封装、不需要视图、方便集成第三方类库。然后看了几个当下流行的PHP框架,相对需求就显得比较臃肿,代码量多且不易读不易修改,于是自己根据需求写了这个框架,也算是个人对PHP框架的一点小理解。

github : https://github.com/yanyumiao/easyphp
oschina : https://git.oschina.net/YanYuMiao/easyphp

关于easyphp

easyphp是一个非常简单的php框架,全部框架的实现只使用了很少的代码
Code Climate

特性

  • 实现简单 源码易读
  • MVC分层 SERVICE层可选
  • 动态加载smarty
  • DB类 单例 PDO prepare 防SQL注入
  • xss过滤
  • 实用日志

目录结构

│  README.md  
├─app (web应用目录)
│  ├─config (配置目录)
│  │      db_config.php (db配置)
│  ├─ctrl (控制器目录)
│  │      indexCtrl.php (默认控制器)
│  ├─lib (第三方类库)
│  │  │  smartyLib.php (动态引入smarty)
│  │  └─smarty (smarty目录)
│  ├─log (日志目录)
│  ├─model (模型目录)
│  ├─service (服务目录)
│  └─view (视图目录)
│      ├─cache (视图缓存目录)
│      ├─compile (视图编译目录)
│      └─html (视图模板目录)
├─sys (框架目录)
│      app.php (核心类)
│      ctrl.php (控制器基类)
│      db.php (DB类)
│      function.php (函数库)
└─web (web入口目录)  
       index.php (入口文件) 

安装

  • 数据库配置,~/app/db_config.php
  • 添加smarty,将smarty中libs目录copy到~/app/lib/smarty目录

路由

例:host/index.php/user/login 访问userCtrl控制器loginAct方法
控制器类名采用Ctrl后缀 方法名采用Act后缀

去掉index.php

apache 添加.htaccss文件到~/web目录即可

<IfModule mod_rewrite.c>  
	RewriteEngine on  
	RewriteCond %{REQUEST_FILENAME} !-d  
	RewriteCond %{REQUEST_FILENAME} !-f  
	RewriteRule ^(.*)$ index.php/$1 [L]  
</IfModule>  

nginx (需 php.ini 中 cgi.fix_pathinfo=1)

location /{
    ...
    if (!-e $request_filename) {
        rewrite ^/(.*)$ /index.php/$1 last;
        break;
    }
}
location ~ .+\.php($|/) {
    ...
    fastcgi_split_path_info ^(.+\.php)(.*)$;
    fastcgi_param PATH_INFO $fastcgi_path_info;
}

DB操作

mysql> SELECT * FROM user;
+----------+-------+  
| username | phone |  
+----------+-------+  
| a        | 1     |  
| a        | 2     |  
| b        | 3     |  
+----------+-------+  

<?php
DB::insert('user', ['username'=>'a', 'phone'=>'1']);
DB::update('user', ['phone'=>'1'], ['username'=>'a']);
DB::select('user', 'SELECT * FROM `user` WHERE username=?', ['a']);
DB::find('user', 'SELECT * FROM `user` WHERE phone=?', ['1']);
DB::delet('user', ['phone'=>'1']);

日志

系统默认开启访问日志,日志文件命名采用日期加后缀的格式
例如: 20160805.request 20160805.debug

命名规范

没有严格的命名规范,要求代码紧凑、清晰、简洁就可以了
Controller Model Service 此类文件名推荐使用小驼峰加特定后缀的方式命名 例如:
userCtrl(控制器) userMode(模型名) userService(服务名)

共有 人打赏支持
粉丝 7
博文 4
码字总数 1776
评论 (2)
红薯
代码放到 git.oschina.net 呗:)
燕玉苗

引用来自“红薯”的评论

代码放到 git.oschina.net 呗:)
好的好的
×
燕玉苗
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: