一款PHP/Golang框架。目录结构简单。支持前端/后端/DBA隔离开发。

众产未来 - IT工程 - 全栈工程师

CiyPHP框架

这款PHP框架,经历了8年发展,开发了近百个toB/toG项目。

并于2023年进行了大规模升级。

极易理解,目录结构清晰,文件极少,支持前后端分离,DBA与后端逻辑可分离。

支持Golang增量开发,低频使用的功能用PHP开发,高频使用的功能用Golang重写。函数级替换。

PHP优点: 上手快,用人成本低廉。开发效率较高,节省开发成本。

Golang优点: 连接池、高并发。无商业授权风险。

PHP缺点: Low。

Golang缺点: 用人成本较高。

Java缺点: 有商业授权风险。

目录结构

zcommon/

common.php
data.php
pdo.php
dbajax.php
config.php

http.php

excel.php

examples/

/jscss/
demo.html
demo.goc
demo_update.html
demo_update.goc
upload.goc
init.php

comm.php 常用公共函数库。

封装了 Ajax函数、用户安全输入、文件操作、常用函数等

data.php 应用数据层类库。

封装了数据层,get/getone/set/execute/delete数据库接口,set接口实现了insert和update SQL命令整合
pdo.php  PDO驱动层。由数据层data.php引用,实现了prepare SQL预处理。
mysql.php  MYSQLi驱动层。由数据层data.php引用,实现了prepare SQL预处理。
dbajax.php  跨服访问层。由数据层data.php引用,实现了可控的HTTP远程数据库接口,自定义授权函数。

config.php 配置文件。

配置一个或多个数据库服务器连接参数。

class ciy_config {
    public static $conmmonkey = 'abcdefg';//做数据加解密时的加密因子,每个项目都不要相同。
    public static function getdb($index = 1)
    {
        $ret = array();
        if($index == 1)
        {
            $ret['type'] = 'mysql';//mysql-tab 多主多从读写分离+分库模式;mysql-ms 单库多主多从读写分离模式。详见data.php注释
            $ret['charset'] = 'utf8';
            $ret['name'] = 'ciyphp';
            $ret['port'] = 3306;
            $ret['host'] = '127.0.0.1';
            $ret['user'] = 'ciyphp';
            $ret['pass'] = 'CiyPHP';
            if(stripos($_SERVER['HTTP_HOST'],'local') !== false)
            {
                $ret['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', PATH_ROOT.'examples/');    //指定项目后端目录,可以实现前后端不同目录管理。  
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.html demo.goc demo_update.html demo_update.goc

例子程序,演示框架基本代码编写流程。包含数据增删改查、导出等基本功能。
调用例子函数之前,请先用d_test.sql在mysql中建立d_test/d_test_bak表。

//demo.html
<!DOCTYPE html>
<html>
...
//demo.goc
<?php
$mydata = new ciy_data();
ciy_runJSON();

function json_setact() {//Ajax交互函数,ciy_runJSON()调用。
    global $mydata;
    $act = post('act');
    数据处理...
    return succjson();
}

部署方式

web根目录下拷贝zcommon目录,更改config.php配置文件。即可完成文件部署。
项目目录可以在子目录,也可以在根目录。只需对init.php 中的PATH_PROGRAM进行修改。  

源码

PHP版演示       Golang版演示

以上框架,功能基本相同,函数名称完全一致,可平替。

内部开源,请加入众产研学社

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值