根目录中目录相关用途:
目录 | 用途 |
---|---|
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() {
}
}