boaPHP开发手册v5.5

目录结构

/                  根目录
├─boa              内核目录
├─mod              模块目录
├─var              临时目录(写权限)
├─www              实例目录(写权限)
├─...              更多实例(写权限)
│
├─composer.json    composer配置文件
├─boa.chm          开发手册
├─tool.php         规则测试工具
└─index.php        入口文件
	

实例即一般意义上的站点,用户可以创建更多实例,例如:test.com

boa目录

boa是框架内核,为了后续升级不建议修改,可以在各自模块内进行自定义功能扩展。

mod目录

mod是模块目录,主要用于存放后端程序,每个子目录就是一个模块,目录名即模块名。以test为例创建模块:

php boa -m test

每个模块的目录结构:


/mod/test/                 test模块
      ├─cacher             缓存器
      ├─controller         控制器
      ├─installer          安装器
      ├─listener           监听器
      ├─validater          验证器
      │    ├─checker.php        检查器文件
      │    └─filter.php         过滤器文件
      ├─variable           自动验证配置
      ├─language           语言包
      ├─library            类库
      ├─model              模型
      ├─public             资源
      ├─view               视图
      │
      └─config.php         模块配置文件
	

创建模块时,public会被移至www/res/test目录;view会被移至www/tpl/test目录

www目录

www是默认实例目录,主要用于存放前端文件,目录名即实例名。以test.com为例创建实例:

php boa -w test.com

创建实例的同时,会在var下创建该实例对应的临时目录

每个实例的目录结构:


/test.com/            test.com实例
     ├─cfg            存放配置文件,如路由、权限等
     ├─file           存放用户文件,如上传的图片
     ├─res            存放资源文件,如JS、CSS、图片
     ├─tpl            存放视图文件,如模板、404页面
     ├─...            更多自定义目录,如存放html等
     │
     ├─.htaccess      Apache配置文件
     ├─web.config     IIS配置文件
     ├─favicon.ico    网站头像文件
     ├─robots.txt     搜索引擎配置文件
     ├─boa            boa命令
     └─index.php      入口文件
	

然后将 test.com 域名绑定到该目录。

var目录

var是实例运行时的临时目录,主要用于存放临时数据,目录名即实例名。

每个临时目录结构:


/var/test.com/       test.com实例的临时目录
        │
        ├─cache      cache类数据,比如缓存数据
        ├─crypt      crypt类数据,比如RSA公钥、私钥
        ├─http       http类数据,比如curl证书
        ├─image      image类数据,比如字体、水印
        ├─log        log类数据,比如系统日志
        ├─session    session类数据,比如用户会话
        ├─view       view类数据,比如模板缓存
        │
        └─...        更多其他动态数据
	

鉴于安全性,建议禁止外部访问var目录

入口文件

根目录下的index.php、各实例目录下的index.php以及用户自定义的其他文件。其中必须要定义2个常量:

  • BS_ROOT :根路径
  • BS_WWW :实例路径
  • 调用 boa::start() 启动。