实例介绍
【实例简介】
这款PHP框架,经历了5年发展,开发了十几个商业项目。 众产风格极易理解,目录结构清晰,文件极少,支持前后端分离,DBA与后端逻辑可分离。
包含一套界面还过得去的极简后台UI。
编写轻封装的软件架构,让普通人都能看懂程序代码块。
众产风格,能简化的,绝不繁杂,去概念化,回归本质。
1个目录,最少4个文件组成框架结构,函数式代码风格。
支持前端、后端、DBA协同开发,类似但有别于MVC架构。
提供了一套演示代码
后台UI演示地址:前往查看
一套管理后台脚手架
带管理的后台演示地址:前往查看
【实例截图】
【核心代码】
目录结构
zcommon/
common.php
data.php
pdo.php
dbajax.php
config.php
acommon.php
jscss/
examples/init.php
demo.php
demo.pro.php
demo_update.php
demo_update.pro.php
serverdata.php
upload.php
common.php 常用公共函数库。
封装了 Ajax函数调用、Url参数拼接函数、CSV导出、用户安全输入、文件操作等
acommon.php 扩展的公共函数库,与耦合了部分数据库。
封装了 报错显示、数字/字符串加解密函数、log保存、页面分页显示等
data.php 应用数据层类库。
封装了数据层,get/getone/set/execute/delete数据库接口。
pdo.php PDO驱动层。由数据层data.php引用,set接口实现了insert和update SQL命令整合。
mysql.php MYSQL驱动层。由数据层data.php引用,功能同pdo,建议使用pdo。
dbajax.php 跨服访问层。由数据层data.php引用,实现了可控的远程数据库接口,自定义授权函数。 serverdata.php 数据中间件。一般在项目目录内,用来被dbajax.php远程调用。
config.php 配置文件。
配置一个或多个数据库服务器连接参数,配置加密因子。
class ciy_config { public static $conmmonkey = 'zid4Akto8';//做数据加解密时的加密因子,每个项目都不要相同。 public static function getdb($index = 1) { //一般的,本地调试连接本地数据库,数据库密码一般会不同,您可以单独配置,便于本地调试。 $ret = array(); if($index == 1) { $ret['type'] = 'pdo'; $ret['mode'] = '';//空 单服务器模式;ns 一主多从模式;ms 单库多主多从模式。请替换专用data.php文件 $ret['conn'] = array(); $ret['conn'][] = array( 'dsn'=>'mysql:host=127.0.0.1;dbname=ciyphp;port=3306;', 'user'=>'ciyphp', 'pass'=>'CiyPHP', 'timeout'=>5,//数据库连接超时时间,默认5秒 'persistent'=>false,//持久连接,默认false 'charset'=>'utf8'//编码方式,默认utf8 ); if(isset($_SERVER['HTTP_HOST']) && stripos($_SERVER['HTTP_HOST'],'local') !== false) { $ret['conn'][0]['pass'] = 'CiyPHP'; } } else if($index == 2) { //$ret['type']... 第二个数据库服务器集群 } return $ret; } }
init.php 路径配置及框架引用。项目中所有php都应先引用init.php
特别的,目录默认使用/结尾
defined('PATH_ROOT') || define('PATH_ROOT', $_SERVER['DOCUMENT_ROOT'].'/'); //web根目录。 defined('PATH_PROGRAM') || define('PATH_PROGRAM', __DIR__.'/'); //指定项目后端目录,可以实现前后端不同目录管理。 defined('NAME_SELF') || define('NAME_SELF', $_SERVER['PHP_SELF']); require PATH_ROOT . 'zcommon/config.php'; require PATH_ROOT . 'zcommon/common.php'; require PATH_ROOT . 'zcommon/data.php'; require PATH_ROOT . 'acommon.php';
demo.php demo.pro.php demo_update.php demo_update.pro.php
例子程序,演示框架基本代码编写流程。包含数据增删改查、上传文件、导出等基本功能。
调用例子函数之前,请先用database.sql在mysql中建立d_user/d_test/d_test_bak表。
//demo.php <?php require 'init.php'; require PATH_PROGRAM . NAME_SELF . '.pro.php'; ?><!DOCTYPE html>
<html>
...
//demo.pro.php <?php $mydata = new ciy_data(); ciy_runJSON(); $table = 'd_test'; $msql = new ciy_sql($table); $msql->where('truename',get('truename'),'like'); $msql->order(get('order','id desc')); $pageno = getint('pageno', 1); $rows = $mydata->get($msql,$pageno,$pagecount,$mainrowcount); function json_setact() {//Ajax交互函数,ciy_runJSON()调用。 global $mydata; $post = new ciy_post(); $id = $post->getint('id'); $act = $post->get('act'); 数据处理... return succjson(); }
部署方式
web根目录下拷贝zcommon目录,更改config.php配置文件。即可完成文件部署。
后端代码目录可以非WEB目录。只需对init.php 中的PATH_PROGRAM进行修改。
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论