🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
`WeCenter`支持传统的MVC(Model-View-Controller)模式的应用开发,`WeCenter`采用的是Zend框架,在zend框架基础上进行了重构; #### **入口文件** * * * * * 用户请求的PHP文件,负责处理一个请求(注意,不一定是URL请求)的生命周期,最常见的入口文件就是index.php。 `WeCenter`入口文件负责调用数据库配置,检测是否安装,调用系统文件,`WeCneter`入口文件内容如下: ~~~ if (!file_exists(dirname(__FILE__) . '/system/config/database.php') AND !file_exists(dirname(__FILE__) . '/system/config/install.lock.php') AND !defined('SAE_TMP_PATH')) { header('Location: ./install/'); exit; } include('system/system.php'); AWS_APP::run(); ~~~ #### **控制器** * * * * * 每个功能模块均有一个控制器文件,控制器文件位于`./app/功能名称/`目录下,每个控制器均继承`AWS_CONTROLLER`控制器; 每个控制器的入口文件命名均以`main.php`作为入口,如典型的控制器类如下: main.php ~~~ <?php if (!defined('IN_ANWSION')) { die; } class main extends AWS_CONTROLLER { public function get_access_rule() { $rule_action['rule_type'] = 'white'; if ($this->user_info['permission']['visit_question'] AND $this->user_info['permission']['visit_site']) { $rule_action['actions'][] = 'index'; } return $rule_action; } public function index_action() { $list = $this->model('hello')->data(); TPL::assign('hello', 'hello world!'); TPL::assign('list', $list); TPL::output('hello/index'); } } ?> ~~~ #### **模型** * * * * * 每个功能模块均有一个控制器文件,控制器文件位于`./models/`目录下,每个模型均继承`AWS_MODEL`模型; 每个模型文件命名均以`模型名称(一般均对应控制器名称).php`,如典型的模型类如下: hello.php ~~~ <?php class hello_class extends AWS_MODEL { public function data() { $list = array(array('name'=>'张三','id'=>1),array('name'=>'李四','id'=>2)); return $list; } } ?> ~~~ #### **视图** * * * * * 视图文件位于`./views/模板名称/`目录下; 文件保存路径一般为`./views/模板名称/控制器名称/方法名.html` 如典型的视图文件如下: 在view/default/hello里新建htm文件为: index.tpl.htm ~~~ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> </head> <body> <h1><?php echo $this->hello ?></h1> <?php foreach($this->list as $k=>$row){?> <p><em><?php echo $row['id']?></em><?php echo $row['name']?></p> <?php } ?> </body> </html> ~~~