grape动态PHP结构(一)——目录结构与配置文件

时间:2022-03-15 16:57:38

一、结构介绍

结构的名字grape,中文名叫葡萄,因为最近一个同事经常带葡萄到公司给我们吃,受到启发想到了这个名字。

1)本结构需要在PHP5.5中运行,如果要在5.4中运行,有些地方就要做些修改

2)结构中会用到MongoDB,所以需要在php中额外引用php_mongo.dll文件,查看安装方法

3)还用到了性能工具xhprof,全文检索工具Coreseek(改造了sphinx),如果使用都需要额外的配置,如果不使用可以关闭

4)整合了微信的部分API接口,点击查看《微信公众平台开发系列

5)整合了grape-skin(葡萄皮)静态结构,作为管理后台的页面样式与特效

6)后台管理demo帐号是admin,密码是123456

7)虚拟目录结构引用如下:

<VirtualHost *:80>
DocumentRoot "D:/htdocs/grape/public/admin"
ServerName admin.grape.net
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "D:/htdocs/grape/public/api"
ServerName api.grape.net
</VirtualHost>

二、目录结构

  依托网上的开源框架InitPHP,略微修改了InitPHP的部分源码,使得结构更符合我自己的项目需要,并扩展了几个功能,例如全文检索配置、分页等。

aaarticlea/png;base64,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" alt="" />

1)app:放置的是控制器、试图、拦截器、缓存文件、视图编译文件与特定的配置文件,app下可以有多个项目文件,上面的admin和api隶属于两个项目中

aaarticlea/png;base64,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" alt="" />

2)conf:全局配置文件,包括数据库配置、缓存配置、自动载入配置等,查看InitPHP框架配置

3)initphp:框架initphp库文件,大部分是原先的,有几个地方做了调整。查看InitPHP框架全部文档

4)library:包括控制器通用文件、数据层逻辑、数据字典、表单控件编写、服务层逻辑、第三方代码以及简单的测试,这里我把library单处拎出来和app、initphp等平级。

aaarticlea/png;base64,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" alt="" />

5)logs:日志文件,可以打印出数据库查询语句,也可以做一些调试信息

6)public:项目的入口文件,全局变量配置,摆放静态资源(CSS、JS等)。如下图所示,admin文件夹中有静态资源文件,css、js等,并有自己的index.php入口文件,rpc文件是InitPHP框架中的RPC调用配置

aaarticlea/png;base64,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" alt="" />

7)tool:放置了MySQL数据库示例代码,简易api调试工具,memcache操作工具

aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAALYAAABTCAIAAAC9G2piAAAHM0lEQVR4nO2cf2gbVRzAnyiyf5wlSLfgnP/UStc/KkFmyR9hBWkpaqVhqz1q0f6xQ8cqEhRrRJZ1WRc0w+voStFjG5t1f0jGRBvs3NnhSCZudu3ArRLd6o/RiH9kf+gSdPL847Lk3eW9e5c0uctt3w9fSnq59/rI++TdS+7bL8IAYAiyewBAvQOKABxAEYADKAJwqL4ios9T9T5vExeRGK9Z7wCVyhU5+/7mQmCMR7vcpVG9caqAIjZQoSKxnU3kr79dnB3tcv9z81Q6OREd7FQfMBRJSd6K5xkUsQG6InNzc5FIhNXm7N7NufRULj11Y0lKL0SWz4xkriVHu9zp5MSlT0Oiz6M+AEXuDCiKKIrS2tra3NzManN6ryd341sy3n5+y2iXOzrYKfo8akQHO0e73KX7EhHdxiulMMY4XjyimX7qcVDEBvSKqH709/cbKbLLk0ufJOPWzWuFC43o85i+0MTFgir539RnDI6DIlajUaTghyAIBop8scuTWz5SiFigzSBKWhOKxEVCBOIp1nFQxA6KipB+GCsSC7TmliQ1YoG23PIUNdILkfIV8Uop9nFQxA6KikQikWaCsbExVpvpnU25pUhuKRILtKkPSoPhB+ZcaIgNCuM4KGI1lXzoPfTSI7mFkVigLbcQogbbD4xVR2C76hwqUeQDvzsWaMstjFDD2A/AcVT41dkh8XGDqO4QAXuB23gAB1AE4ACKABxAEYADKAJwAEUADtYp4n/g0QGXe8i1jhUDLnffw6Bs3WHdlBw99om/oXF4/cbJSbS4iMbH0fD6jQHXplfXPkb+9Dc0WjYkwAyWvmsT5y74GxpHUPf4OFpcRJOT6N17nw7f89wI6lZ/7kY9b655ysGWpCSv9g7kHYB1isROfJb7F5+/+IO/ofHDNS8fWStSfx68f3AM9Q651lk2sGoCiqyGpqam+YuXbv2HE+cujKFejDH++gY+dh0fvIr3XcHvXMJvLeAd3/01dCbdPzPgqnpqNFAhlu5FEEI/ppYxxsPrNyYSGw6gfmrsR709CPat9YLVexHVkgGXOxRCPcgoaB0UMgS8klRIIlETUOJiIcEgn21AphEQ5+jTDooHmVcI8x1ScrfLHF79XaZs2Iu0tLQgHrQOiims+ZeZUISY9JQk3n6Viy2052iSYQtzwkrNL6dDhiLlDa/OsGcvct/QDMb45O/445/x1BW8fxHvPo/fSOBX5vDgLO79HKMnevTtddmKcd0qojm35I2qO4dIktXCeg+b7ZC5ipTVW31hz14E9R1PJDagvuOo7zjadhRtPYy2HkZbZeSfRP5J5J+gLCQmFdGvLzxFuAt7WR1yFTHVW31hz14EPRMJhRDybmdG6SpieKEpvr7ErKckr2Yl1zQu/jcGkfZIm6ayOiyMpfjp1+zwQJHV70XIBbp0u0o7SRQ1b1ORtlulbB7Zf5XbIVcRg95AEXIvgvb0Yoy/+vuXaOb71//85sU/Tr2Q/nLL9RObfp1+6NpH6KcDDz7JG5iZa0SRqs9BXU9qdbH0QtPS0pLfi7zWOTuL0Hv9KNKnj33b0J5e2kKSkrxkKnxZHw/Nz6h+B2uwtIAiNUG1BG3fEgqhdc8yg76KEBeFMr8+gFWkcmz4EtPn81W4FwHsACYD4ACKABxAEYADKAJwAEUADlYrElUuC0HZINoF2eIhAcZYrYgQlDHGgqywTnCmIndyVQsbFJmezwqykryanJ7P6iKoKKBIvQGKVAVQpHqAIo7DZkXIp0woYnXuKi1TQHuf7y4owmazIoKsCLIyE20ng9HU8txVyq06XQoSKFIDqBeaWLQjm8VqXFWCdEtsyF1VnyaOMccAilQPA0ViyuWJ6eTKfPTyzI5YtEPf0q7c1bxvtIKwoEgtoG9Xwx2ZLCZDDpcoYlnuaiGnMCVJ+nxD1hhAkepBVUQOd2Qy+VUkLCuZDJ6gKGJV7irxf7mU/S25u5VgFakBVEUmwt0rmSwZ0WA3pyObc1crGINTsU0R8uuQpCKvZLKFVWQlkw1TFLEmd7UcQJFa0C7IQUURgnJQUQqhKLJuFQkHaKtIHeWuYoxBkdoQjCrtgqyLYKC7NCweGMAC8kUADqAIwAEUATiAIgAHqLsKcIC6qwAHqLtqAvPff0BRzdXg4LqroIg1OLju6t3xLSoLqLtqAlDEMlZXdzUuIq8Uz9+mIXPGtGlhups4JlrRa1mxclQNeyveC4qLarYA/Y6Sk4qxOqjWGfFiqROjTyijJqJyW1FzXQ1yVA170wyGfFY3yU4qxuqcuqsaA2iP6YmovFYY49L3sFEComFvTF8pijilGKtz6q6aUYSyIJuZ1JLLhMWK1HcxVmfVXTVeD6hFVMsQi5HTqstRXYUizizG6qy9CO+SQdn0cVtRc10NclRroEh9F2N1bN1VwCocVHcVsAdH1V0F7ADqrgIcYDIADqAIwAEUATiAIgCH/wG8QYQUOr+lbQAAAABJRU5ErkJggg==" alt="" />

三、配置文件

1)conf文件

1.全局的配置放在了外面的conf文件,而在每个app下面的项目中也有一个conf文件,这里面是配置一些这个项目下需要的配置项。

aaarticlea/png;base64,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" alt="" />

2.全局配置内容和InitPHP配置中的基本相同,但我在封装的时候多了几个。

is_xhprof:性能分析工具,点击查看工具配置

sphinx:全文检索工具,点击查看工具配置

autoload:自动载入文件,载入的是library文件夹中的一些php文件。自动载入的命名是有规则的,例如下面的第一个配置,自动载入library/controller文件夹中的adminController.php文件。

/*********************************自动载入配置*****************************************/
$InitPHP_conf['autoload']['controller'] = array(
'path' => LIB_PATH . '/controller',
'files' => array('admin', 'api')
);
$InitPHP_conf['autoload']['helper'] = array(
'path' => LIB_PATH . '/helper',
'files' => array('url', 'dict/const', 'dict/enum')
);

自动载入的逻辑代码写在了InitPHP里initphp.php文件中:

private static function _autoload() {
$config = self::getConfig();
$autoloads = $config['autoload'];
foreach ($autoloads as $key=>$autoload) {
if(empty($autoload['files']) || empty($autoload['path']))
continue;
$path = $autoload['path'];
foreach ($autoload['files'] as $file) {
require_once $path . '/' . $file.ucfirst($key).'.php';
}
}
//是否打开性能测试
if($config['is_xhprof']) {
require_once LIB_XHPROF_PATH . "/xhprof_lib/utils/xhprof_lib.php";
require_once LIB_XHPROF_PATH . "/xhprof_lib/utils/xhprof_runs.php";
}
}

2)定义全局常量

1.defined.php

文件位于public下面,这个文件中将定义些目录常量,域名常量,API密钥,微信配置等,并引入全局入口文件。

<?php
/**
* 常量定义
* @author: pwstrick
*/
define('ROOT_PATH', dirname(dirname(__FILE__)));
define('LIB_PATH', ROOT_PATH . '/library');
define('LIB_THIRD_PATH', LIB_PATH . '/third');//第三方类库目录
define('LIB_XHPROF_PATH', LIB_THIRD_PATH . '/xhprof');//性能测试工具
define('SCRIPT_PATH', 'scripts');//开发使用scripts,部署使用optimize
define('UPLOAD_PATH', ROOT_PATH.'/upload');//上传路径
define('UPLOAD_HTTP', 'http://upload.grape.net'); /**
* API客户端密钥
*/
define('API_IOS_KEY', 'DF_A98=D^&7$^%*9CNAhj0UO!!LM11');
define('API_ANDROID_KEY', 'KU98&)dsf8%@kji89dfadJK-800i122');
define('API_UNKNOW_KEY', 'jfdsfd798hj+@(*kb66578-223q670933'); /**
* 微信配置
*/
define('WEIXIN_APPID', 'xx');//TODO
define('WEIXIN_SECRET', 'xx');//TODO
define('WEIXIN_TOKEN', 'xx');//TODO
define('WEIXIN_NOTIFY_URL', 'http://xx');//TODO
define('WEIXIN_MCHID', 'xx');//TODO
define('WEIXIN_KEY', 'xx');//TODO header("Content-Type:text/html; charset=utf-8");
require_once(ROOT_PATH . '/initphp/initphp.php'); //导入配置文件-必须载入
require_once(ROOT_PATH . '/conf/comm.conf.php'); //公用配置

  2.index.php

index文件夹是各个项目的入口文件,同样位于public下面,里面有特定的配置常量,引用defined.php文件,并运行InitPHP开发框架。

<?php

require_once(dirname(dirname(__FILE__)) . DIRECTORY_SEPARATOR . 'defined.php');
define('APP_NAME', 'admin');
define('APP_PATH', ROOT_PATH.'/app/'.APP_NAME);
require_once(APP_PATH . '/conf/comm.conf.php'); //APP配置
InitPHP::init();

GitHub地址:

https://github.com/pwstrick/grape

grape动态PHP结构(一)——目录结构与配置文件的更多相关文章

  1. Linux目录结构 重要目录结构详细

    1.1 /etc/hosts ip地址与主机名(域名)的对应关系  解析主机名  ping www.baidu.com 解析成10.0.0.200 1.产品测试 2  用主机名互相访问 1.2 /et ...

  2. 描述linux目录结构以及目录结构命名规定

    FHS全称(Filesystem Hierarchy Standard),中文意思是目录层次标准,是linux的目录规范标准. 详情点击查看 FHS定义了两层规范: 第一层:“/”目录下的各个目录应该 ...

  3. NetCore Web项目目录结构说明

    目录结构说明 目录/文件 说明 依赖项 ASP.NET Core 开发.构建和运行过程中的依赖想,一般都是 NuGet 包和一些 SDK Properties 配置,存放了一些 .json 文件用于配 ...

  4. python基础之迭代器、装饰器、软件开发目录结构规范

    生成器 通过列表生成式,我们可以直接创建一个列表.但是,受到内存限制,列表容量肯定是有限的.而且,创建一个包含100万个元素的列表,不仅占用很大的存储空间,如果我们仅仅需要访问前面几个元素,那后面绝大 ...

  5. 小白的Python之路 day4 软件目录结构规范

    软件目录结构规范 为什么要设计好目录结构? "设计项目目录结构",就和"代码编码风格"一样,属于个人风格问题.对于这种风格上的规范,一直都存在两种态度: 一类同 ...

  6. 笔记:Maven 项目目录结构

    Maven提倡使用一个共同的标准目录结构,使开发人员能在熟悉了一个Maven工程后,对其他的Maven工程也能清晰了解.这样做也省去了很多设置的麻烦,以下的文档介绍是Maven希望的目录结构,并且也是 ...

  7. 软件目录结构规范(以python为例)

    为什么要设计好目录结构   "设计项目目录结构",就和"代码编码风格"一样,属于个人风格问题.对于这种风格上的规范,一直都存在两种态度: 一类同学认为,这种个人 ...

  8. InfluxDB源码目录结构解析

    操作系统 : CentOS7.3.1611_x64 go语言版本:1.8.3 linux/amd64 InfluxDB版本:1.1.0 influxdata主目录结构 [root@localhost ...

  9. 025&lowbar;&lowbar;name&lowbar;&lowbar;变量和目录结构规范

    ##__name__变量被其他模块调用的时候就不是main,所以就有这种使用if __name__=='__main__': ##软件目录结构规范为什么要设计好目录结构?"设计项目目录结构& ...

随机推荐

  1. 归档NSKeyedArchiver解归档NSKeyedUnarchiver与文件管理类NSFileManager (文件操作)

    ========================== 文件操作 ========================== 一.归档NSKeyedArchiver 1.第一种方式:存储一种数据. // 归档 ...

  2. IntelliJ IDEA 修改缓存文件设置

    今天在查看C盘,发现虽然我idea安装在了D盘,但是idea的缓存还是在C盘 config 目录是 IntelliJ IDEA 个性化化配置目录,或者说是整个 IDE 设置目录.也是我个人认为最重要的 ...

  3. Spark Streaming揭秘 Day27 Job产生机制

    Spark Streaming揭秘 Day27 Job产生机制 今天主要讨论一个问题,就是除了DStream action以外,还有什么地方可以产生Job,这会有助于了解Spark Streaming ...

  4. Xcode 调试技巧-b

    随着Xcode 5的发布,LLDB调试器已经取代了GDB,成为了Xcode工程中默认的调试器.它与LLVM编译器一起,带给我们更丰富的流程控制和数据检测的调试功能.LLDB为Xcode提供了底层调试环 ...

  5. Activity四种launchMode

    更多内容在这里查看 https://ahangchen.gitbooks.io/windy-afternoon/content/ 总共有四篇关于Activity,task,launchMode的文章, ...

  6. HoloLens开发手记 - 构建2D应用 Building 2D apps

    HoloLens可以让我们在真实世界中看到全息图像内容.但是它本质上还是一台Windows 10设备,这意味着HoloLens可以以2D应用形式运行Windows Store里的大部分UWP应用. 目 ...

  7. 201521123006 《Java程序设计》第1周学习总结

    1. 本章学习总结 (1)java在使用的过程中可以发现其本身有着许多为了节约资源而作的设计,而java根据其应用领域分为了三大平台:Java SE.Java ME与Java EE.在本周的学习中我们 ...

  8. PhantomJS命令行选项

    支持命令行选项有: --help或-h列出所有可能的命令行选项.立即停止,不会运行一个脚本作为参数传递. --version或-v打印的版本PhantomJS.立即停止,不会运行一个脚本作为参数传递. ...

  9. Promise(一)

    每个Promise对象就是一个值的代理,这个值在Promise创建时可以是未知的.Promise对象允许你为异步事件的成功操作和失败操作分别绑定对应的处理方法,让异步方法可以像同步方法那样返回值,但不 ...

  10. DOSD用scratch的方式训练通用目标检测,性能很高

    推荐一篇今年ICCV上基于DenseNet的general object detection的工作.这是目前已知的第一篇在完全脱离ImageNet pre-train模型的情况下使用deep mode ...