根目录中目录相关用途:
| 目录 | 用途 |
|---|---|
| bin | 命令行工具 |
| core | 核心类库 |
| data | 文件数据存放目录 |
| data/log | 文件Log存放目录 |
| drivers | 驱动目录,比如数据库驱动、缓存驱动,可通过 Composer 自定义安装、删除 |
| libraries | 第三方类库目录,比如 libraries/myqee/develop/ 目录,可通过 Composer 自定义安装、删除 |
| manual | 文档目录,可执行 manual/bin/re-create 重新生产HTML文档,文档将全部生成在 manual/html/ 目录中 |
| modules | 模块目录,比如数据库模块,缓存模块,Session模块等,可通过 Composer 自定义安装、删除 |
| projects | 项目目录,每个项目一个文件夹,比如 projects/default 默认项目 |
| team-library | 团队类库,也可作为自己的私有类库使用,此类库默认会加载,优先级高于Core类库 |
| wwwroot | 站点wwwroot目录,可把Apache、Nginx等站点的根目录设置到这个目录上 |
| wwwroot/assets | 站点的静态资源文件目录,建议用另外一个域名配置一个站点根目录指定到这个目录 |
| config.php | 主配置文件,所有请求都会访问,可通过项目、类库的 config.php 的配置进行个性化配置 |
| index.php | 入口文件 |
| composer.json | Composer 配置 |
子目录定义在类库目录(比如 projects/default/, team-library/, core/, libraries/myqee/develop/ 等目录)下的目录是如下定义的:
| 子目录 | 后缀 | 用途 |
|---|---|---|
| classes | .class.php |
类库目录 |
| controllers | .controller.php |
普通控制器 |
| controllers-admin | .controller.php |
后台控制器 |
| controllers-system | .controller.php |
系统内部调用控制器 |
| controllers-bin | .controller.php |
命令行控制器 |
| models | .models.php |
模型目录 |
| orm | .orm.php |
ORM目录 |
| i18n | .lang |
语言包目录,例如 zh-cn.lang |
| guide | .md |
文档目录,用语言文件夹分开,例如 guide/zh-cn/readme.md 表示中文的 readme.md 文档 |
classes, models, controller, orm 中若对象含有下划线 _,则文件存放在相应目录中,文件夹及文件名都是小写,例如:
MyTest_Lib_abc 应当存放在 classes/mytest/lib/abc.class.php 文件中。Model_M_Test 应当存放在 models/m/test.model.php 文件中。Controller_Abc_Def_Ghi 当存放在 controllers/abc/def/ghi.controller.php 文件中。核心类库的类前缀为 Core_,类库的前缀为 Library_[a-zA-Z0-9]+_[a-zA-Z0-9]+_ 的格式,例如 Library_MyQEE_Admin_,模块的前缀为 Module,驱动的前缀为 Driver_。
Core_Form 方法,你在调用的时候不需要写成 Core_Form::input('test'),直接 Form::input('test') 即可。以下划线分割为目录,文件大小写于类名称保持一致,后缀为 .class.php,例如:
MyTest 应该存放在 classes/mytest.class.php 文件My_Test 应该存放于 classes/my/test.class.php 文件例如:
class Mytest
{
public function __construct(){
}
public function abc(){
}
public static function test(){
}
}
存放在 classes/mytest.class.php 文件中,调用方法:
$mytest = new Mytest();
$mytest->abc();
// 静态调用
Mytest::test();
同样支持扩展到另外一个对象,比如:
class Database extends Core_Database {
}
class Member extends ORM_Memeber_Data {
}
class Member extends Model_Member {
}
控制器对象名称必须以 Controller_ 开头。
controllers 目录,扩展到 Controller 上controllers-shell目录,扩展到 Controller_Shell 上controllers-admin目录,扩展到 Controller_Admin 上controllers-system目录,扩展到 Controller 上例如控制器 Controller_Test 是存放于 controllers 目录的 test.controller.php 文件,内容如下:
<?php
Controller_Test extends Controller
{
public function action_abc()
{
echo 'test';
}
}
以上可通过 http://yourhost/test/abc 访问到 action_abc 方法。
文件夹支持:
例如 Controller_My_Test 控制器:
<?php
Controller_My_Test extends Controller
{
public function action_abc()
{
echo 'test';
}
}
文件应当存放在 controllers/my/test.controller.php 文件里。
以上控制器可通过 http://yourhost/my/test/abc 访问到。
另外,控制器可继承另外一个控制器,例如:
<?php
Controller_Test extends Controller_Ajax
{
public function action_test()
{
echo 'test';
}
}
模型的对象名称必须以 Model_ 开头,存放在 models 目录,文件后缀为 .model.php ,推荐扩展到 Model 类库上,其它规则同上。
例如:
class Model_Member extends Model {
/**
* 定义此model采用的默认数据库配置名
*/
public $database = 'default';
public function test() {
}
}
存放在 models/member.model.php 文件中,调用方法:
$m_member = new Model_Member();
$data = $m_member->test();
模块也可扩展到ORM上,例如:
class Model_Member extends ORM_Member_Finder {
public function test() {
}
}